前言
在之前的博客中,介绍过图像标注工具labelme和labelimg,今天带来能同时标注图像和点云的工具Semantic Segmentation Editor。
从 demo 中可以看出来操作非常炫酷,有很多工具可以使用,尤其是魔法工具,在特殊场景下非常方便。
在标注点云时,可以用图像作对照,但好像没有标注后投影到图像的功能。
Semantic Segmentation Editor介绍
基于Web的标签编辑器,专门用于创建机器学习的训练数据。
该工具是在自动驾驶研究的背景下开发的。
它支持图像(.jpg和.png文件)和点云(.pcd文件)。
它是使用React,Paper.js和three.js开发的Meteor应用程序。
位图图像编辑器
VIDEO: Bitmap labeling overview(需要科学上网)
DEMO: Bitmap editor (直接打开网页体验)
PCD点云编辑器
VIDEO: Point cloud labeling overview(需要科学上网)
DEMO: Point cloud editor(直接打开网页体验)
如何运行
git clone https://github.com/Hitachi-Automotive-And-Industry-Lab/semantic-segmentation-editor
cd semantic-segmentation-editor
根据需要,在settings.json
中更改input-folder
和output-folder
。
meteor npm install
meteor --settings settings.json
与任何 Meteor 应用程序一样,编辑器默认运行在http//localhost:3000
(-p以更改端口)。
检查Meteor Environment Variables以配置您的应用程序(MONGO_URL
,DISABLE_WEBSOCKETS
等)
警告:此项目在Meteor 1.6上运行,目前不支持Meteor 1.7。
小插曲:起初没接触过Meteor,所以我首先安装了Meteor,后来执行上条命令时又自动安装了Meteor 1.6。
使用Docker运行应用程序
Docker镜像可在https://hub.docker.com/r/hitachiail/semantic-segmentation-editor/获取。
运行:
docker pull hitachiail/semantic-segmentation-editor
docker run -it -p PORT:3000 -v INPUT_FOLDER:/mnt/images -v OUTPUT_FOLDER:/mnt/pcd hitachiail/semantic-segmentation-editor:latest
根据需要,更换PORT
,INPUT_FOLDER
和OUTPUT_FOLDER
。
配置文件:settings.json
通过修改此文件,可以配置应用程序的存储数据以及工具中可用的类集。
{
"configuration": {
"input-folder": "/mnt/images", // The root folder containing images and PCD files
"output-folder": "/mnt/pointcloud" // Segmentation data (only 3D) will be stored in this folder
},
// The different sets of classes available in the tool
// For object classes, only the 'label' field is mandatory
// The icon field can be set with an icon from the mdi-material-ui package
"sets-of-classes": [
{
"name": "Cityscapes", "objects": [
{"label": "VOID", "color": "#CFCFCF"},
{"label": "Road", "color": "#804080", "icon": "Road"},
{"label": "Sidewalk", "color": "#F423E8", "icon": "NaturePeople"},
{"label": "Parking", "color": "#FAAAA0", "icon": "Parking"},
{"label": "Rail Track", "color": "#E6968C", "icon": "Train"},
{"label": "Person", "color": "#DC143C", "icon": "Walk"},
{"label": "Rider", "color": "#FF0000", "icon": "Motorbike"},
{"label": "Car", "color": "#0000E8", "icon": "Car"}
},
{ ... }
]
}
如何使用
编辑器围绕3个不同的屏幕构建:
文件导航器让您浏览可用文件(input-folder
),以选择用于标注的位图图像或点云。
位图图像编辑器专门用于通过绘制多边形来标注 jpg 和 png 文件。
点云编辑器专门用于通过创建由3D点子集组成的对象(3D bounding box)来标记点云。
使用位图图像编辑器
有几种工具可用于创建多边形标签:
1.多边形绘图工具(P)
- Click and/or drag to create points
- Type ESC to remove last created points in reverse order
- Drag the mouse pointer or hold Shift to create a complex polygon without having to click for each point
- Type ENTER or double click the first point to close the polygon
2.魔术工具(A)
- 使用对比度阈值检测自动创建多边形
- 此工具仅用于绘制具有鲜明对比边缘的对象的轮廓(例如:天空,车道标记)
- 在要绘制的区域内单击,然后调整右侧的任何滑块以调整结果
- 输入ENTER以验证结果
3.操纵工具(Alt)
- 选择,移动并将点添加到现有多边形在多边形内单击以选择它
- 单击一个点以选择它
- 在多个点周围绘制套索以选择它们
- 用鼠标拖动一个点来移动它
- 按住Shift键可以分隔属于多个多边形的点
- 单击多边形的线以创建新点并拖动新创建的点以放置它
4.切割/扩展工具(C)
- 修改现有多边形的形状
- 选择要修改的多边形
- 绘制一条以多边形轮廓开始和结束的线条
- 新线替换起点和终点之间的现有路径
- 由此产生的形状总是最大的
5.连续多边形工具(F)
- 轻松创建连续的多边形
- 使用“多边形绘图工具”启动新的多边形
- 通过捕捉到要解决的多边形的轮廓来创建起点
- 通过捕捉到另一个轮廓来创建终点,此时必须有一条直线穿过一个或多个现有多边形
- 点击一次或多次“F”,选择要使用的解决方法路径
使用点云编辑器
- 鼠标左键:围绕当前聚焦点(默认为点云的中心)旋转点云,单击一个点将其添加到当前选择
- 鼠标滚轮:放大/缩小
- 鼠标中键(或Ctrl +单击):更改摄像机的目标
- 鼠标右键:用于根据当前选择工具和选择模式同时选择多个点
API端点
-
/api/listing
:列出所有带注释的图像 -
/api/json/[PATH_TO_FILE]
:(仅限2D)获取该文件的多边形和其他数据 -
/api/pcdtext/[PATH_TO_FILE]
:(仅限3D)使用2个附加列获取pcd文件的标签:label
和object
-
/api/pcdfile/[PATH_TO_FILE]
:(仅限3D)相同但返回“plain/text”附件文件下载