深度学习100问-13:深度学习如何制做我的数据集?

深度学习100问javascript

Author:louwilljava

Machine Learning Labgit

     

     上一节咱们谈到深度学习,尤为是计算机视觉方向的一些经典数据集。这些数据除了供咱们学习和实验以外,在实际的生产环境下很难起到帮助做用。面对专业领域和定制化场景,咱们每每须要本身动手采集和制做数据集。毕竟,有多少人工就有多少智能。数据量越大、数据标注质量越高,训练出来的AI模型才可以越强大。github

     本节笔者就介绍如何使用一些开源的标注工具来制做本身的深度学习训练数据集。数据标注是一项耗时和费力的工做,在一些专业领域,好比说医学图像的标注,可能标注起来难度更大、专业性更强。算法

     目前开源的深度学习标注工具备不少。像Labelme、LabelImg、Vatic、Sloth、ImageJ、CVAT、Yolo_mark、RectLabel和Labelbox等等。本节就介绍如何使用开源的图像标注工具Labelme来制做我的的训练数据集。至于其它标注工具,你们可自行去搜索尝试。json

640?wx_fmt=jpeg

CVAT语义分割标注函数

     Labelme是MIT的计算机科学和人工智能实验室基于Python和Qt编写的一款开源图像标注工具。咱们可使用Labelme轻松实现分类、检测和分割等视觉任务的图像标注工做。工具

     Labelme的安装很是简单,直接用Python的包安装工具pip便可安装:学习

pip install labelme

     安装完成后直接在命令行输入labelme便可调出gui界面:ui

640?wx_fmt=png

     调出gui后,能够尝试打开某一张图片或者某一文件夹加载全部图片。打开任意一张图片,选择edit菜单栏下的create polygons进行手动标注,勾勒出每一个动物的轮廓,最后点击保存为.json标签文件。

640?wx_fmt=png

     从新打开.json标注文件:

640?wx_fmt=png

     获得.json文件还不够,咱们还须要将json转化为mask标签图像,直接在命令行调用labelme提供好的json_to_dataset函数将json进行标签转换:

labelme_json_to_dataset dogcat.json

     转换完成后会生成一个标签文件夹,包括原始图像img.png、标签图像label.png、标签可视化图像label_viz.png、标签名称的.txt文件和.yaml格式标签名称文件。

640?wx_fmt=jpeg

     查看label的像素分类值状况:

import numpy as np	
from PIL import Image	
np.unique(label)
array([0, 1, 2, 3], dtype=uint8)

     labelme做为一个开源工具,咱们也能够尝试对其源码进行修改或者二次开发来实现定制化的标注功能。labelme代码目录结构:

640?wx_fmt=png

     labelme在PASCAL VOC数据集上的实例分割标注示例:

640?wx_fmt=jpeg

640?wx_fmt=png

640?wx_fmt=jpeg

640?wx_fmt=png

640?wx_fmt=jpeg

参考资料:

https://github.com/wkentaro/labelme

往期精彩:

640?wx_fmt=png


一个算法工程师的成长之路

640?wx_fmt=jpeg