使用Tesseract进行交互式边界框OCR
使用OCR引擎进行交互式机器学习辅助标注,加速布局检测、分类和识别模型的注释流程。
Tesseract用于OCR识别,但只需少量调整即可连接其他OCR引擎或模型。
已在Label Studio 1.10.1版本测试通过,支持Label Studio本地文件存储和S3兼容存储的基本功能,并使用MinIO作为示例数据存储。
开始之前
开始之前:
- 确保已安装git
- 确保已安装Docker Compose。对于MacOS和Windows用户,我们建议使用Docker Desktop。
您还必须安装 Label Studio ML backend。
本教程使用tesseract
示例。
1. 安装Label Studio
启动Label Studio。您可以按照官方文档中的指南操作,或使用以下命令:
docker run -it \
-p 8080:8080 \
-v `pwd`/mydata:/label-studio/data \
heartexlabs/label-studio:latest
可选地,您可以在Label Studio中启用本地文件服务
docker run -it \
-p 8080:8080 \
-v `pwd`/mydata:/label-studio/data \
--env LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true \
--env LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/label-studio/data/images \
heartexlabs/label-studio:latest
如果您使用的是本地文件服务,请确保从Label Studio获取API令牌的副本以连接模型。
2. 创建一个Label Studio项目
为Tesseract OCR创建一个新项目。在项目设置中配置标注界面。
请填写以下模板代码。在RectangleLabels
中指定smart="true"
非常重要。
3. 安装Tesseract OCR
下载Label Studio机器学习后端仓库。
git clone https://github.com/humansignal/label-studio-ml-backend
cd label-studio-ml-backend/label_studio_ml/examples/tesseract
在example.env
文件中配置参数:
LABEL_STUDIO_HOST=http://host.docker.internal:8080
LABEL_STUDIO_ACCESS_TOKEN=<optional token for local file access>
AWS_ACCESS_KEY_ID=<set to MINIO_ROOT_USER for minio example>
AWS_SECRET_ACCESS_KEY=<set to MINIO_ROOT_PASSWORD for minio example>
AWS_ENDPOINT=http://host.docker.internal:9000
MINIO_ROOT_USER=<username>
MINIO_ROOT_PASSWORD=<password>
MINIO_API_CORS_ALLOW_ORIGIN=*
根据您的数据导入方式,可能有以下几种配置方案:
本地文件存储
如果您选择使用Label Studio本地文件存储,请确保设置LABEL_STUDIO_HOST
和LABEL_STUDIO_ACCESS_TOKEN
变量。
S3兼容存储(MinIO或AWS S3)
通过编辑MINIO_ROOT_USER
和MINIO_ROOT_PASSWORD
变量来配置后端和MinIO服务器,并将AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
变量设置为相同的值。您可以选择通过设置这些变量连接到自己的AWS云存储。请注意,您可能需要对tesseract.py
文件进行额外的软件修改,以匹配特定的基础设施配置。
注意:如果使用此方法,请从
example.env
文件中移除LABEL_STUDIO_ACCESS_TOKEN
或将其留空。
其他远程存储
如果您将图像托管在任何其他支持http
或https
访问的公共存储上,请不要更改默认的example.env
文件。
4. 启动Tesseract和MinIO服务器
docker compose up
5. 上传任务
如果您使用的是Label Studio本地文件存储选项,可以直接通过Label Studio界面上传图片。
如果您使用MinIO进行任务存储,请登录MinIO控制面板http://localhost:9001
。创建一个新的存储桶,记下名称,并将您的任务上传到MinIO。
设置任务的可见性为公开。 本教程不涵盖云存储的进一步配置,您需要根据具体需求自行配置存储。
如果使用MinIO,请前往项目设置中的云存储页面。
通过连接到S3端点http://host.docker.internal:9000
添加您的源S3存储,使用上一步中的存储桶名称,以及前几步配置的访问密钥ID和秘密访问密钥。对于MinIO示例,请取消勾选使用预签名URL。检查连接并保存存储配置。
6. 在项目设置中添加模型
在项目设置中,选择模型页面并点击连接模型。
添加URL http://host.docker.internal:9090
并将模型保存为ML后端。
7. 交互模式下的标注
要使用此功能,请启用自动标注并使用Autodetect
矩形框进行绘制
示例如下:
参考链接: