本文档将介绍如何使用 Labelme 标注工具完成语义分割相关单模型的数据标注。 点击上述链接,参考⾸⻚⽂档即可安装数据标注⼯具并查看详细使⽤流程,以下提供简洁版本说明。
该数据集是人工采集的街景数据集,数据种类涵盖了车辆和道路两种类别,包含目标不同角度的拍摄照片。 图片示例:
Labelme 是一个 python 语言编写,带有图形界面的图像标注软件。可用于图像分类,目标检测,语义分割等任务,在语义分割的标注任务中,标签存储为 JSON 文件。
为避免环境冲突,建议在 conda 环境下安装。
conda create -n labelme python=3.10
conda activate labelme
pip install pyqt5
pip install labelme
- 创建数据集根目录,如 seg_dataset
- 在 seg_dataset 中创建 images 目录(目录名称可修改,但要保持后续命令的图片目录名称正确),并将待标注图片存储在 images 目录下,如下图所示:
![](https://private-user-images.githubusercontent.com/142379845/342688167-cd483b25-5453-4364-8724-8bba2544a230.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg4MTY3LWNkNDgzYjI1LTU0NTMtNDM2NC04NzI0LThiYmEyNTQ0YTIzMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xYTY3OWRjMTdjNDhjMGViZGIxNjBlYWU1ZDdkODVjMGY0ZTk3NWFhYjY0YThmNGEyZmY0N2U4OTcyNTJjYmQ1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WZNBtqiK1INbldca24HDlhfLjk7OEpOuhsA0ogDEd5Q)
终端进入到待标注数据集根目录,并启动 labelme 标注工具。
# Windows
cd C:\path\to\seg_dataset
# Mac/Linux
cd path/to/seg_dataset
labelme images --nodata --autosave --output annotations
- --nodata 停止将图像数据存储到JSON文件
- --autosave 自动存储
- --ouput 标签文件存储路径
- 启动 labelme 后如图所示:
![](https://private-user-images.githubusercontent.com/142379845/342688183-f7134296-538d-404a-bf75-d5907f32da6d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg4MTgzLWY3MTM0Mjk2LTUzOGQtNDA0YS1iZjc1LWQ1OTA3ZjMyZGE2ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yMDBiZjYzMDAzZGFiZDAzMTk5MWQ3YTk0NGI1MWRjZjQwYWIyYjNmODA2YjM5ZGE3NmRhYzIxOWNlNmM3MmQ2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.CYKcvbYaEczUASn48Vg2BpqvJUTbBOtI7ukP3dNTT4U)
- 点击"编辑"选择标注类型
![](https://private-user-images.githubusercontent.com/142379845/342688040-629d712f-9b59-4330-9def-53272ad45f56.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg4MDQwLTYyOWQ3MTJmLTliNTktNDMzMC05ZGVmLTUzMjcyYWQ0NWY1Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03YWZkYmE2MDdlOWRmNWExZTFhMzgwNmQxZTUyOTE2NWNhZDQzMDQwNmU4MmMyNWY0ZjkxMDFhNDIxMjZjYTlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.mgpZ10j04mj_vi_hJARXbZx8r72NgRnfeEwdhnYr4fc)
- 选择创建多边形
![](https://private-user-images.githubusercontent.com/142379845/342688210-b33ee453-0628-4d21-81bd-dbfb2636bc9a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg4MjEwLWIzM2VlNDUzLTA2MjgtNGQyMS04MWJkLWRiZmIyNjM2YmM5YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYzZkZjNkNjZhZjczN2VhMmYzOWEwYzBkZWJkZDBhYWI2ZmFjOWIwODVkODM0YWQ5YTg1N2VmYTYwZTE2NWU2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.uxGKmGl5-iP62i7PvjU4SpMs_WEklZUCjD3NkXEWRoY)
- 在图片上绘制目标轮廓
![](https://private-user-images.githubusercontent.com/142379845/342690128-76be62db-287d-4076-9f6f-09b6cf68da51.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjkwMTI4LTc2YmU2MmRiLTI4N2QtNDA3Ni05ZjZmLTA5YjZjZjY4ZGE1MS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MzdiYTBlZWY5YzdjOWJiZmEzYzFkNzE4MWYwNjY1ZTQ4ZWEyMzQ4ZDI5ODE4Y2ZkYjBiZjVhOWU0OTMxOWFlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.KWSkZqK8Umbtm17R4IjEIPs8bD8vjJZA20TlVYuAZ3s)
- 出现如下左图所示轮廓线闭合时,弹出类别选择框,可输入或选择目标类别
通常情况下,只需要标注前景目标并设置标注类别即可,其他像素默认作为背景。如需要手动标注背景区域,类别必须设置为 _background_,否则格式转换数据集会出现错误。 对于图片中的噪声部分或不参与模型训练的部分,可以使用 __ignore__ 类,模型训练时会自动跳过对应部分。 针对带有空洞的目标,在标注完目标外轮廓后,再沿空洞边缘画多边形,并将空洞指定为特定类别,如果空洞是背景则指定为 _background_,示例如下:
![](https://private-user-images.githubusercontent.com/142379845/342688012-03d630e2-880b-450a-9adc-d76799695d49.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg4MDEyLTAzZDYzMGUyLTg4MGItNDUwYS05YWRjLWQ3Njc5OTY5NWQ0OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zYTUzNjBjYjNhNzlkNWMxYWNjOTYyMzFhMTliMjhiMzY2ZmY5NGZmMTdlMDMzMjNmYmYyMDE3OWNiOGJiNGU0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nAga8CtH9-ZiCy8OIqN4qA2z7SGyDZNYKhPAD8mQpS4)
- 标注好后点击存储。(若在启动 labelme 时未指定--output 字段,会在第一次存储时提示选择存储路径,若指定--autosave 字段使用自动保存,则无需点击存储按钮)
![](https://private-user-images.githubusercontent.com/142379845/342676468-8a3f3e54-68a9-4f9a-8c68-63272fb2e0b6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjc2NDY4LThhM2YzZTU0LTY4YTktNGY5YS04YzY4LTYzMjcyZmIyZTBiNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iYjFiMTM1N2I4ZDY3MThkYTI5ZGJiZTczNTg5ZGQ1MTJiZThmMmFkM2IxMTY5YWYwYTlkYmMwOGQwMjNhYThjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.-7gHruOrd22t_ZDkoUvFREWudrXjvRSU5eYTmxUmCeE)
- 然后点击 "Next Image" 进行下一张图片的标注
![](https://private-user-images.githubusercontent.com/142379845/342676887-d9be34e1-d44c-4738-8101-3895c70a8b6e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjc2ODg3LWQ5YmUzNGUxLWQ0NGMtNDczOC04MTAxLTM4OTVjNzBhOGI2ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yMTIwYTRiNjhhMDZjMzc2NjgxYmZiNGYwZGU2ZDgwZmZlYTVkMDNlZWYwMzY4NzQ1NWNlNzg5NGFkZjg1MjY1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.E2Bwpwxuh6vKyv10rNWRxAnmFjo-ohuMmAh9Ylj3KXk)
- 最终标注好的标签文件如图所示
![](https://private-user-images.githubusercontent.com/142379845/342687993-6645863d-45c1-4709-8b1f-abedf33440b6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg3OTkzLTY2NDU4NjNkLTQ1YzEtNDcwOS04YjFmLWFiZWRmMzM0NDBiNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNmZmNTQ4NGZlMjNkNTY2MDlkYzIzZmQ3YjJhYWQzNjAwMzI1MzBhYWNjMGM2MjM2YWY0OTIwZTkzNjI2ZGQzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.SGVsIrrXLxT_8xAv03zthBCqLsALAQwFjjqreRFAnr4)
- 调整目录得到安全帽检测标准labelme格式数据集
a. 在数据集根目录 seg_datset 下载并执行目录整理脚本。执行脚本后的 train_anno_list.txt 和 val_anno_list.txt 中具体内容如图所示:
python format_seg_labelme_dataset.py
![](https://private-user-images.githubusercontent.com/142379845/342687973-71de5ff6-25cb-4034-9197-d452c6c0806e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg3OTczLTcxZGU1ZmY2LTI1Y2ItNDAzNC05MTk3LWQ0NTJjNmMwODA2ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lZmVlOGU0NjQ3MmJlMTdlOGVmZDg5ODc1Y2Q5NzlmNDEzYWJjZWFhMGMxNGUwM2ViMTBlMjlhZDI5MmNkZjJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UP6pQPvcl8-kDrTWo-YBF9tQvxgpiuclSviK-PBHdh4)
b. 经过整理得到的最终目录结构如下:
![](https://private-user-images.githubusercontent.com/142379845/342688026-0f40b46a-07ca-403d-9693-6dcf920de392.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjcxMzYsIm5iZiI6MTczOTA2NjgzNiwicGF0aCI6Ii8xNDIzNzk4NDUvMzQyNjg4MDI2LTBmNDBiNDZhLTA3Y2EtNDAzZC05NjkzLTZkY2Y5MjBkZTM5Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMjA3MTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kODU4MzYwZmQ2ODg2ZWVjYzgxZGE1MGU3ZGQwYjYwNTUxZGFhMjZjYzQ3OGRhYjQ0MGVkMjRhMjQyNTE1ZWYzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2UII3R7Sy5nuKppMal-IRzmitAMhDihHCy3xniugbRQ)
c. 将 seg_dataset 目录打包压缩为 .tar 或 .zip 格式压缩包即可得到语义分割标准 labelme 格式数据集