自动驾驶中使用到的数据标注工具
附赠自动驾驶学习资料和量产经验:链接
标注数据已经成了做深度学习应用的一大负担(看看下面的标注开销),数据不足模型训练就成问题。只是想着transfer learning,就想着model tuning省事也不是长久之计。
标注工具是一个重要的平台,好的工具能够事半功倍,特别是交互界面做得好简直就是优秀的软件产品。记得以前在三星工作时候,标注目标分割的工具还有一个功能,它还能时不时测试一下标注员是不是走神不专心,发一些有ground truth的测试图片:)。
英伟达的标注团队在印度,听说有700人。现在一些大公司也提供标注数据业务,比如百度自动驾驶团队。也有一些创业公司发展这个业务,比如湾区Scale.API就跟很多大公司有合作关系,最近Nutonomy-Aptiv公司就和它合作发布了开源数据NuScenes(不是打广告)。
还有一家公司Playment,也是提供自动驾驶数据标注的服务,包括图像和点云数据,像语义分割,障碍物检测,道路标记等等都能做。
其实好的标注工具是有算法的,需要标注的地方是算法不完美,会有错误,但是如果人工介入,可以减轻算法求解问题的难度。
比如以前Adobe工具就有一些功能,比如在物体边缘处鼠标勾画一个轮廓,然后算法就会基于此把物体完美地“抠”出来,贴到另外一个背景,其实就是分割问题的交互式工作。有阵子,的确出现了各种“Cut”算法:)。
再比如,我们需要把一个灰度图像着色,不管是机器学习的还是图像处理的算法,还是不容易控制着色过程。有时候,人可以鼠标画一些color scribbles,表明这些区域颜色接近这些,那么算法就能很快完成彩色过程。
笔者以前参与过volume rendering方面的项目,当时就非常惊讶一些交互工具的软件功能非常强,比如可以直接定义切割volume的横截面,然后就用鼠标操作展示截面的信息,颜色表做的也是十分鲜艳“有味道”,让客户看的舒服。
自动驾驶所需的HD Map制作也需要工具标注语义信息,一些半自动的标注方法会减少制图的时间和劳力成本。自动提取运动物体,如车辆行人,自动检测交通标志或者红绿灯,自动检测车道线和路标(斑马线,箭头,限速)等。
下面介绍一些标注工具,开源的。另外也谈谈如何开发好的标注工具给自动驾驶研发提供平台。
1 Annotorious - Image Annotation for the Web
2 Comma.AI coloring
https://commacoloring.herokuapp.com/commacoloring.herokuapp.com/
commaai/commacoloringgithub.com/commaai/commacoloring
3 JS Segment Annotator
kyamagu/js-segment-annotatorgithub.com/kyamagu/js-segment-annotator
4 LabelMe: the open annotation tool
LabelMe. The Open annotation toollabelme.csail.mit.edu/Release3.0/
5 Yolo_Mark: GUI for marking BBs
AlexeyAB/Yolo_markgithub.com/AlexeyAB/Yolo_mark
.
6 Alp’s Labeling Tool (ALT)
https://alpslabel.wordpress.com/2017/01/26/alt/alpslabel.wordpress.com/2017/01/26/alt/
7 Alp’s IMage Segmentation Tool (AIMS)
8 Alp’s Labels to Images converter, for Detectnet/KITTI
9 RectLabel for object detection
10 VGG Image Annotator (VIA)
Visual Geometry Group / viagitlab.com/vgg/via/
11 LEAR: Image annotation tool with image masks
12 Fast Image Data Annotation Tool (FIAT)
christopher5106/FastAnnotationToolgithub.com/christopher5106/FastAnnotationTool
13 A Universal Labeling Tool: Sloth
cvhciKIT/slothgithub.com/cvhciKIT/sloth
14 Video Annotation Tool from Irvine, California
cvondrick/vaticgithub.com/cvondrick/vatic
15 VOTT: Video Object Tagging Tool (Microsoft)
microsoft/VoTTgithub.com/Microsoft/VoTT/
16 IAT – Image Annotation Tool
IAT - Image Annotation Toolwww.ivl.disco.unimib.it/activities/imgann/
17 A Video Metadata Markup Tool: ViPER-GT
ViPER-GTviper-toolkit.sourceforge.net/products/gt/
18 LabelD
sweppner/labeldgithub.com/sweppner/labeld
19 Imglab (dlib)
davisking/dlibgithub.com/davisking/dlib/tree/master/tools/imglab
20 Annotation tool of Lidar Point Coud data
LCAS/cloud_annotation_toolgithub.com/lcas/cloud_annotation_tool
3D to 2D Label Transfer
如果有3-D数据标注工具,那么从激光雷达点云可确定物体的3-D bounding box,而图像的物体标注可以通过以上3-D信息直接得到。
Automatic Image Labeling from Weak 3D Supervision
同样,如何通过已经提取的3-D信息自动产生图像标注也是一个有价值的课题,比如下图从已给出的一些标注信息(3-D Bbox)加速/完成物体分割的任务。
其思路就是把已完成的标注信息当作先验知识,在MRF框架下求解分割。
Auto-Annotation of 3D Object
反过来,如果我们有2-D图像标注的结果,能否自动将它反投射到3-D空间完成点云的3-D BBox?如果是多视角的图像输入,那就可以。
还是基于MRF模型,求解这个检测问题。
这里用ImageNet的数据pre-train了一个图像目标检测器。
Guide Me: Interacting with Deep Networks
这里介绍如何通过用户输入指导训练的CNN模型提高其性能,其实是插入一个空间语义指导层。这个指导层通过训练如何修改网络的激活,方法要么是直接能量最小化,要么是非直接的一个RNN模型将人类语言查询转化成交互的权值。这个学习过程是全自动的,不需要手工标注。
如下图所示:“天空”和“云”很难区分,然而用户输入告诉模型,没有天空区域,然后更新了预测,这时候没有重新训练CNN模型。
这个RNN模型其实是一个NLP的QA应用。下图展示它如何在训练的时候自动产生查询替代用户:
Annotating Object Instances with a Polygon-RNN
设计一个半自动标注工具做segmentation,不是pixel labeling那样,而是多边形框。那么,确定多边形的vertex会容易,同时采用算法从一个矩形框去预测多边形框,就是加快标注不错的方法。
下面图示的RNN模型就是能预测新加的vertex位置:
补充一下:
21. PCAT点云标注工具
22. 3D Bounding Box Annotation Tool (3D BAT)
walzimmer/3d-batgithub.com/walzimmer/3d-bat
23. SAnE: Semi-auto annotation for point cloud
https://github.com/hasanari/sanegithub.com/hasanari/sane
24. SUSTechPOINTS: Point Cloud 3D Bounding Box Annotation Tool
naurril/SUSTechPOINTSgithub.com/naurril/SUSTechPOINTS
25. Point Cloud Annotation Tool
26. Semantic Segmentation Editor
Hitachi-Automotive-And-Industry-Lab/semantic-segmentation-editor
另外论文工作:
“LATTE: Accelerating LiDAR Point Cloud Annotation via Sensor Fusion, One-Click Annotation, and Tracking“
代码:
bernwang/lattegithub.com/bernwang/latte
“3D BAT: A Semi-Automatic, Web-based 3D Annotation Toolbox for Full-Surround, Multi-Modal Data Stream“
代码:
walzimmer/3d-batgithub.com/walzimmer/3d-bat