Label Studio在windows上接入本地存储

conda配置环境变量。

最近用label studio打标签炼丹,有些数据在本地硬盘,不想走s3或者再上传一次,于是使用local storage方式接入。但遇到了奇怪的问题,记录下。

安装 label studio

conda create --name label-studio
conda activate label-studio
conda install psycopg2  # required for LS 1.7.2 only
pip install label-studio

# 启动
label-studio start -p 8080 --data-dir d:\\label-studio-data

配置local storage

根据官网配置: https://labelstud.io/guide/storage#Local-storage

  1. 环境变量
LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/home/user (or LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=C:\\data\\media for Windows)

win在系统变量设置了。

  1. 配置路径

path要配置为绝对路径

经过测试,对于win,使用c:\\或者c:\或者c:/格式的分隔符都是ok的。

  1. Treats every bucket object as a source file

开启。否则要手动通过json文件配置要导入的任务。

遇到问题

点击sync之后,顺利扫描到文件。

但是进入导入任务,发现图片无法打开。

There was an issue loading URL from $image_url value

Things to look out for:

URL is valid URL scheme matches the service scheme, i.e. https and https The static server has wide-open CORS, more on that here Technical description: URL: /data/local-files/?d=cats-and-dogs%5Cimages%5CCats_Test0.png

根据文档,/data/local-files/?d=是label studio访问本地资源的api。d=后面跟着的是相对路径(相对于LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT)。

前人有多个有类似的问题:

最初以为是python转换win路径问题,尝试了几种写法都不行。

直到搜索到这篇文章: 针对 anaconda 启动的 label-studio 本地项目设置基于 anaconda 环境的环境变量

想起之前是通过win系统属性配置全局环境变量,虽然在conda shell echo %xx%能识别出来,本地存储sync也能发现图片。但是本着试一下的心态

conda env config vars set LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
conda env config vars set LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=d:\\dataset
conda activate label-studio

然后发现图片正常能够加载了。

其他

lable studio上传文件,django会重写文件名。因此尽量把文件放在s3存储。

CC BY-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy