深度学习之数据标注

作者
作者
发布于 2023-02-13 / 433 阅读
0
0

深度学习之数据标注

深度学习为何在现在爆发了强大的能量?我们可能需要了解下深度学习的关键,深度学习需要硬件和软件的支持,在计算机的高速发展中,约2012年就具备了深度学习理论的硬件和软件,也正是这一年AlexaNet在ImageNet图像识别大赛中夺冠。技术人员逐渐明白了环境已经成熟,目前急需的是驱动材料-“数据”。

 

说明

目前我们的数据大都以数字形式存储,主要的信息传输方式有文字、声音、图像,我这里要说明的正是图像的标注方式(视频标注方式也一样,视频一般是由每一帧图像在每秒放映25+pcs形成的),我以图像分类和对象检测图像的标注方式为例进行说明。

 

步骤一:选择标注工具

1.标注工具:图像标注目前有几个主流的标注工具。

我们自用的一般是开源的labelImg标注工具,可以通过pip进行安装和调用,可标注VOC(xml),Yolo(txt),createM(json)L三种格式标签,安装方式如下

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

开启标注指令为(Imagesdir为图片的路径,class.txt表示存储类别的文件,类别比较少可以不要这个类别)

labelimg  Imagesdir  class.txt

 labelImg快捷键.png

 

如果是公司或集团使用标注工具,建议使用openCV的开源标注工具CVAT

开源地址:https://github.com/opencv/cvat

可以使用git指令安装:

git clone https://github.com/opencv/cvat.git

cd cvat

docker-compose build # 构建前后端镜像,如果网络访问不到,关闭代理

docker-compose up -d # 启动

docker exec -it cvat bash -ic 'python3 ~/manage.py createsuperuser' # 创建超级用户

 

值得一提的是CVAT已经支持大多数主流模型的自动标注,自从特斯拉的自动标注面世过后,深度学习模型的风向开始转换成自动标注和无监督学习。
CVAT.png

 步骤二:搜集数据

2.有了标注工具后我们需要搜集数据,在搜集数据的时候需要遵循几个原则:

数据采集应当尽量贴合使用环境

数据内容人眼应当能辨识并多人认知没有歧义

数据量应当保证总数至少一个batch size的数量,比较好的是每个类200-300pcs

每个类别比例应当大致符合50%:50%,需要检测的类别可以略多(10%)

 

 步骤三:过滤数据

3.搜集完数据后我们需要对数据进行赛选,这个原则叫做“good data”

赛选搜集到的数据让至少两人进行判别,只要有一人认知有疑惑,便舍弃此份数据

检查时发现相同的数据混在数据集内时,舍弃多余数据只保留一份数据

去除与本次专案目的不一致的数据

 数据判定.png图:舍弃数据的原则

 步骤四:进行标注

4.数据赛选后,我们可以正式进入数据标注作业,如果选用的模型具备自动标注功能,也可以将数据直接送入模型自动标注

在标注时应当注意判定区域一般要大于全图区域的50%,不能满足则需要预处理图片,裁切多余的部分,这样可以尽量避免模型注意到其他地方,必要时可通过CAM热力图进行查看

在标注时一般需要两个以上成员进行“共识度判定”,只有当成员标注均一致的数据才保留,如果是涉及对象检测的模型,可通过Iou>60%指标来作为标准

labelimg.png图:labelimg标注界面

CVAT标注.png图:CVAT标注界面

后记

以上所述的大致是实验形式的标注方式,大部分的工业运用对应用准确度有很高的要求,一般需要有像素级别的精确要求需要更精确的标注方式,比如polygon标注方式,这是一种自定义多边形标注方式,可以精确到像素级别(精确的同时标注效率也会大大降低,目前已知的是特斯拉自动驾驶技术是基于类分割自动标注实现的,而polygon正是实现分割标注的一种),感兴趣也可以联络我了解。


评论