深度学习100问

Author:louwill

Machine Learning Lab

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

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

目前开源的深度学习标注工具有很多。像Labelme、LabelImg、Vatic、Sloth、ImageJ、CVAT、Yolo_mark、RectLabel和Labelbox等等。本节就介绍如何使用开源的图像标注工具Labelme来制作个人的训练数据集。至于其它标注工具,大家可自行去搜索尝试。

CVAT语义分割标注

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

Labelme的安装非常简单,直接用Python的包安装工具pip即可安装:

pip install labelme

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

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

重新打开.json标注文件:

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

labelme_json_to_dataset dogcat.json

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

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

import numpy as np
from PIL import Image
np.unique(label)

array([0, 1, 2, 3], dtype=uint8)

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

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

参考资料:

https://github.com/wkentaro/labelme

往期精彩:


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

深度学习100问-13:深度学习如何制作个人数据集?相关推荐

  1. 深度学习100问之深度学习的本质

    今天在查找网上的BP博文([深度学习]backpropagation(反向传播))进行总结和撰写时发现了一篇博客和一个帖子引发了我的深刻思考,以下是分别的链接: Yes you should unde ...

  2. 深度学习100问-1:深度学习环境配置有哪些坑?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 从今天起,开辟一个新的专栏,名字就叫深度学习100问.选取深度学习 ...

  3. 深度学习100问:图像语义分割有哪些经典的上采样方法?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 大家都知道目前主流的语义分割模型都是编码-解码框架的.通过编码器不 ...

  4. 深度学习100问之深入理解Regularization(正则化)

    声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还 ...

  5. Java基础学习 100 问

    Java基础学习 100 问 来源: 赢在面试( [Java知音](javascript:void(0)

  6. 深度学习100问之深入理解Vanishing/Exploding Gradient(梯度消失/爆炸)

    这几天正在看梯度消失/爆炸,在深度学习的理论中梯度消失/爆炸也是极其重要的,所以就抽出一段时间认真地研究了一下梯度消失/爆炸的原理,以下为参考网上的几篇文章总结得出的. 本文分为四个部分:第一部分主要 ...

  7. 深度学习100问:什么是深监督(Deep Supervision)?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 所谓深监督(Deep Supervision),就是在深度神经网络 ...

  8. pli测试50题题库_AI面试必备/深度学习100问1-50题答案解析

    1.梯度下降算法的正确步骤,(正确步骤dcaeb)(梯度下降法其实是根据函数的梯度来确定函数的极小值),这里的问题与其说是梯度下降算法的步骤不如说类似图图像分类训练的整个流程:网络初始化-输入to输出 ...

  9. 深度学习100问之提高深度学习模型训练效果(调参经验)

    声明 1)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 2)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢 ...

最新文章

  1. 【Android View绘制之旅】Draw过程
  2. smarty半小时快速上手入门教程
  3. apply与applymap的区别
  4. OpenCV图像金字塔pyrDown和pyrUp的实例(附完整代码)
  5. Choosing technologies for .NET project
  6. mysql utf 8bm4 没用_不要在 MySQL 中使用“utf8”,請使用“utf8mb4”
  7. Wannafly2016-12-27 SPOJ-INTSUB 数学
  8. .NET技术大系概览
  9. qt for python对比pyqt_PyQt4和electron的第二轮对比
  10. JAVA编写一个加密及解密程序
  11. 山重水复疑无路_最快下降问梯度(深度学习入门系列之七)
  12. react native 高德定位 react-native-amap-geolocation
  13. No installations recognized以及nvm use失败问题
  14. 输入整数显示ASCII字符(c++)
  15. 单机传奇架设教程-传奇联机助手一键自动架设
  16. 解决注册Github邮箱用qq邮箱无法收到验证码的问题
  17. C语言 - 字符常量 字符串常量
  18. MVP??你配吗??
  19. 十进制转BCD码的方法
  20. CentOS 7 gcc、g++、gdb、zhs和oh-my-zsh安装配置 一条龙

热门文章

  1. 迪米特法则(最少知道原则)
  2. 培训演讲的小技巧,你知道多少?
  3. js中时间戳的各种用法
  4. 如何将计算机的名称改成英文翻译,电脑中的文档怎么进行中英文的翻译
  5. 51单片机74ls273并行输出地址c语言程序,51单片机I/O口的扩展问题:使用 锁存器74LS273连接后还是只有8个端口,为什么说是扩展呢?...
  6. 京东商城(HTML和CSS实现京东商城网站)
  7. 张勋说:简述棒磨机的工作运行原理和磨损机制(图文)
  8. Analyze提示:Value stored to ***is never read
  9. 卖VR眼镜需谨慎,已经有30多人因传播VR小黄片被抓了
  10. STC15单片机C语言库函数版本UART_RXD_TXD_Short参数介绍