本文档将介绍如何使用 Labelme 标注工具完成实例分割相关单模型的数据标注。 点击上述链接,参考⾸⻚⽂档即可安装数据标注⼯具并查看详细使⽤流程,以下提供简洁版本说明:
该数据集是水果实例分割数据集,涵盖五种不同的水果,包含目标不同角度的拍摄照片。 图片示例:
Labelme 是一个 python 语言编写,带有图形界面的图像标注软件。可用于图像分类,目标检测,图像分割等任务,在实例分割的标注任务中,标签存储为 JSON 文件。
为避免环境冲突,建议在 conda 环境下安装。
conda create -n labelme python=3.10
conda activate labelme
pip install pyqt5
pip install labelme
- 创建数据集根目录,如 fruit。
- 在 fruit 中创建 images 目录(必须为 images 目录),并将待标注图片存储在 images 目录下,如下图所示:
![](https://private-user-images.githubusercontent.com/142379845/342681686-be007096-4d23-4f9b-9390-cab44afd2f23.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjgxNjg2LWJlMDA3MDk2LTRkMjMtNGY5Yi05MzkwLWNhYjQ0YWZkMmYyMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMjA4YzNlMDM0NjkzZWY4NmY5Mjg2NWUxYWFlYjU0ODQzZTMzMmVjYThhYmEwNGM3NDBiMDA3MDA2OGM3YzY5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UHz2ijP4Cx_DG_9xnBTqIdngY6IfZlVJjPW7POoSCEo)
- 在 fruit 文件夹中创建待标注数据集的类别标签文件 label.txt,并在 label.txt 中按行写入待标注数据集的类别。以水果实例分割数据集的 label.txt 为例,如下图所示:
![](https://private-user-images.githubusercontent.com/142379845/342681711-9fcae431-6538-4bdd-a53a-f6e68a5b68b5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjgxNzExLTlmY2FlNDMxLTY1MzgtNGJkZC1hNTNhLWY2ZTY4YTViNjhiNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iOTlmNTA0OGRlOGE3ZDBjMzg4ZGI4MDVlNzExZmQ3YjVlMjk3NDc0MGUwYTc3OTkyZGQ5ODUyOWZmMDc2N2FmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.0wTmNz7f3kn8rwSZvTgIFtcbhok63eHugqdxxXOLwGk)
终端进入到带标注数据集根目录,并启动 labelme 标注工具。
cd path/to/fruit
labelme images --labels label.txt --nodata --autosave --output annotations
- --labels 类别标签路径。
- --nodata 停止将图像数据存储到JSON文件。
- --autosave 自动存储。
- --ouput 标签文件存储路径。
- 启动 labelme 后如图所示:
![](https://private-user-images.githubusercontent.com/142379845/342681726-58976163-c6e2-4cb6-8bd9-dd248740baa7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjgxNzI2LTU4OTc2MTYzLWM2ZTItNGNiNi04YmQ5LWRkMjQ4NzQwYmFhNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZmY3Zjk3ZWVmNjIwYTVhMzhlMTdmZWQ0YjUzYzBhYzdiMzVkMmUzY2I4ZWM2ZDY4ZTg2ZGY5NDE0NjViODBjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.VXzVSrRWWuR0M41AIE0TrKmX_1PjVKy1Q41_BBvoGJ8)
- 点击 "Edit" 选择标注类型,选则 "Create Polygons"。
![](https://private-user-images.githubusercontent.com/142379845/342681630-2a7bae57-cc02-495a-8470-ae6436743724.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjgxNjMwLTJhN2JhZTU3LWNjMDItNDk1YS04NDcwLWFlNjQzNjc0MzcyNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMjg5NWM1ZjE4YTI1NGFkMzkzYjU3MTM0MWUzYzA1Y2ZkZWIyMWZjNDMxNzM0ZjU4NGJmNmRhNzFmZmZjYTJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ktBfcuB_JF7mK-j7HPuevQYAuS2AiZ4Phxy1s6qqVxA)
- 在图片上创建多边形描绘分割区域边界。
![](https://private-user-images.githubusercontent.com/142379845/342685556-1256b3df-4ffa-4e40-9750-90893c744af2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg1NTU2LTEyNTZiM2RmLTRmZmEtNGU0MC05NzUwLTkwODkzYzc0NGFmMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mOWZmN2U2NjBkN2E5YWM0OTM0NWZmNWZhOTdhYzc4MTMyOTQ5MzBlMDc1OTk4NmEzZmRlYjUyMDhmMDFjZjI5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.i5lq3CHHFe53ci8GtrxAl8CFvNxq6L1ET3ZSBWfhyjs)
- 再次点击选择分割区域类别。
![](https://private-user-images.githubusercontent.com/142379845/342685790-4220612c-fa8f-4c64-b41a-f9f5a53bff27.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg1NzkwLTQyMjA2MTJjLWZhOGYtNGM2NC1iNDFhLWY5ZjVhNTNiZmYyNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zOTJjMzRjOWJkM2YzMDVkMGE0YmM5NzdmMWYzZTNjYjgwNDFkODFhZDE4ZTg5YjhlOWQwZTEzZWRhMTViYWIyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UhMure0pnKm7ROhUCgVRYBGaD-Cnx94CSJCnwDh3aks)
- 标注好后点击存储。(若在启动 labelme 时未指定 --output 字段,会在第一次存储时提示选择存储路径,若指定 --autosave 字段使用自动保存,则无需点击存储按钮)。
![](https://private-user-images.githubusercontent.com/142379845/342676468-8a3f3e54-68a9-4f9a-8c68-63272fb2e0b6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjc2NDY4LThhM2YzZTU0LTY4YTktNGY5YS04YzY4LTYzMjcyZmIyZTBiNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03OTJlMjNkZTIzNDU3NDg0MzE2NjgxMmYyN2QzMGQ3OWNhNjc0NWQxNzRlMGIyZDQ4NTAzMDIxMGEyN2I4ODg5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.MpoTcHzr-f1rNxclGL8r_HLypplXCL6cmdauRIHoVMs)
- 然后点击 "Next Image" 进行下一张图片的标注。
![](https://private-user-images.githubusercontent.com/142379845/342676887-d9be34e1-d44c-4738-8101-3895c70a8b6e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjc2ODg3LWQ5YmUzNGUxLWQ0NGMtNDczOC04MTAxLTM4OTVjNzBhOGI2ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yMmJmMmEwZWYyZTIxZTI1NjdiMzdkZThlMjI5ODY0Y2Q3NTM0M2UyNDQ1MTEzMTIyNjQ2ZTU2MTk0OGZkY2VlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.7OpFTcrXdBCddEl6tF8VzKK5TSPVO8wWqzgOKkLrM2A)
- 最终标注好的标签文件如图所示。
![](https://private-user-images.githubusercontent.com/142379845/342685986-afeb3c58-fc0b-4fea-ae86-8e30cb295369.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg1OTg2LWFmZWIzYzU4LWZjMGItNGZlYS1hZTg2LThlMzBjYjI5NTM2OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05MDE2MGRlOGQ5YWZhMjEzMmU2ODliMDVkNzU4YWY3MjM3MjBiNzY3NWViZjZjMjEyYzU4YmMyYjdjYTdiMmM2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.0up00xs9w0NHFy_IBniadw95bMf2TwYdc_RCNz68SeY)
- 调整目录得到水果实例分割标准 labelme 格式数据集。
在数据集根目录创建 train_anno_list.txt 和 val_anno_list.txt 两个文本文件,并将 annotations 目录下的全部 json 文件路径按一定比例分别写入 train_anno_list.txt 和 val_anno_list.txt,也可全部写入到 train_anno_list.txt 同时创建一个空的 val_anno_list.txt 文件,待上传零代码使用数据划分功能进行重新划分。train_anno_list.txt 和 val_anno_list.txt 的具体填写格式如图所示:
![](https://private-user-images.githubusercontent.com/142379845/342686105-beb79851-b568-4253-a551-fb67b15839ce.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg2MTA1LWJlYjc5ODUxLWI1NjgtNDI1My1hNTUxLWZiNjdiMTU4MzljZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zYzc5ZWQyMGZkNjhhN2ZmNTYyOTljOGJkNzM1OTU3ZDllMDkzMzk2NzliZWY1Njc2MzI0OWJlNzIzMmY4ZmQ2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.XSPUWn_NozTkr86zFV1Tb32D6-8QF85QXsDgTYXJvVA)
- 经过整理得到的最终目录结构如下:
![](https://private-user-images.githubusercontent.com/142379845/342687525-7f18c043-fd7b-4b2e-b60b-325656131995.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcyNDcsIm5iZiI6MTczOTA2Njk0NywicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg3NTI1LTdmMThjMDQzLWZkN2ItNGIyZS1iNjBiLTMyNTY1NjEzMTk5NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA5MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mNmZiZTMzYTAwMWJhZjg5ZGExYjg4Njk0MjY4ZDAxODMzOThlNzBkNDU0NjUzNTVmMzljNzJiYWUzMmZmMTIwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.SDmrq3jrEXErunFG8IkmTrYAkPbSaAbF1n8j85aoukc)
- 将 fruit 目录打包压缩为 .tar 或 .zip 格式压缩包即可得到水果实例分割标准 labelme 格式数据集。