labelStudio安装及使用
docker安装
Label Studio Documentation — Install and Upgrade Label Studio
根据uid查找用户组
1 | getent group | awk -F: '$3 == 1001 {print $1}' |
不用管当前的1001对应的是哪一个用户,直接设置
1 | chown -R 1001:1001 /data/data13/hh/software/label-studio |
新建子目录data和files,注意更改权限
1 | docker run -it -p 26900:8080 --privileged=true -v /data/data13/hh/software/label-studio/data:/label-studio/data --env LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true --env LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/data/data13/hh/software/label-studio/files -v /data/data13/hh/software/label-studio/files:/label-studio/files heartexlabs/label-studio:latest label-studio |
ctrl+p+q
退出页面
配置数据源
Label Studio Documentation — Cloud and External Storage Integration
选定好目录后
1 | sudo docker run -it -p 26900:8080 --privileged=true -v $(pwd)/mydata:/label-studio/data --env LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true --env LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/label-studio/files -v $(pwd)/myfiles:/label-studio/files heartexlabs/label-studio:latest label-studio |
进入容器后,新建目录
1 | docker exec -it ID /bin/bash |
在容器内部新建文件夹后,配置的路径是容器内的路径
首次成功后,就可以在宿主机中新建目录,而不用进入容器里。并且也不用管权限问题,可以直接读取(--privileged=true
)
注意导入单文件时,打开如下设置
如果导入的是JSON,则不需要(待验证)
问题:
localstorage相当于是用户自己管理的,如果在这个目录中删除了文件,UI上的文件还在
LS自己在默认路径下,维护着一份语料
配置
txt文本设置不按行读取
data导入选择第三个,tag修改配置项
1
2- <Text name="text" value="$text"/>
+ <Text name="text" value="$text" valueType="url"/>图片框选标注支持添加描述(包含ocr)
1
2
3
4
5
6
7
8
9<View>
<Image name="image" value="$image"/>
<RectangleLabels name="label" toName="image">
<Label value="Question" background="green"/>
<Label value="Car" background="blue"/>
</RectangleLabels>
<Header value="Describe object"/>
<TextArea name="answer" toName="image" editable="true" perRegion="true" required="true"/>
</View>html
标注数据迁移指南
labelstudio上传的数据集,默认在/home/rhino/.local/share/label-studio/media/upload/
路径下,文件夹编号和项目编号一致
导出的json
文件在/home/rhino/.local/share/label-studio/export/
路径下
背景:现在不用转换文件名的hash了,找到原始标注的文件夹,配置好路径即可
只要修改下路径即可,原来是如下路径:/data/upload/90
现在需要修改成如下:/data/local-files/?d=0006_06_01/0225a044-sdfsA_19.png
批量替换即可。
file-uplod字段不用删
updated_by、completed_by字段要匹配上现在的(类似用户id)
UI上可以正常显示。
另外的问题:原来的任务中的各个标签,一开始没有保存,去哪里找?
打开sqlite数据库文件,在project这个表里
找到了sqlite文件,后面有时间,我们可不可以直接迁移数据库文件呢?
如下废弃
如果是同一服务器部署的labelstudio,导出json后,再新建任务导入json,即使是不同的task,也会自动识别出文件
但是,如果是不同环境的labelstudio,需要使用如下脚本进行迁移
目录结构如下:
1 | import re |