LabelImg

CV学习笔记(二十五):数据集标注与制作

这一生的挚爱 提交于 2021-02-06 00:52:48
作者:云时之间 来源:知乎 链接: https://zhuanlan.zhihu.com/p/146662055 编辑:王萌 最近在做一些数据标注的工作,虽然标注数据比较枯燥,但这也是每个做算法的工程师升级打怪的必由之路。使用一些合适的工具往往可以事半功倍,效率UP。 一:数据标注流程 二:数据处理的一些小代码 1:重命名 当得到这样格式命名不一致的数据的时候,重命名是最好的方法。 代码: #coding=UTF-8 ''' 重命名工具 ''' import os import sys def rename(): path=input(r"请输入路径(例如D:\picture):") name=input("请输入开头名:") startNumber=input("请输入开始数:") fileType=input("请输入后缀名(如 .jpg、.txt等等):") print("正在生成以"+name+startNumber+fileType+"迭代的文件名") count=0 filelist=os.listdir(path) for files in filelist: Olddir=os.path.join(path,files) if os.path.isdir(Olddir): continue Newdir=os.path.join(path,name+str

YOLOv5模型训练

試著忘記壹切 提交于 2021-01-07 09:37:02
软硬件环境 ubuntu 18.04 64bit anaconda with 3.7 nvidia gtx 1070Ti cuda 10.1 pytorch 1.5 YOLOv5 YOLOv5环境配置 请参考之前的文章,YOLOv5目标检测 使用COCO数据集 YOLOv5 的预训练模型是基于 COCO 数据集,如果自己想去复现下训练过程,可以依照下面的命令 $ python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 64 yolov5m 48 yolov5l 32 yolov5x 16 COCO 的数据集可以通过 data 文件夹下 get_coco2017.sh 脚本进行下载,包含图片和 lable 文件。 COCO 的数据集实在是太大了,整个压缩包有18G,考虑到自己到的网速还有机器的算力,还是洗洗睡吧。。。 制作自己的数据集 如果没有对应目标的公开数据集,那就只有自己出手收集了,图片到手后,接下来就是艰辛的打标签工作了,这里使用工具 LabelImg ,下载地址是 https://github.com/tzutalin/labelImg/releases/tag/v1.8.1 LabelImg 使用 Qt 做了图形化的界面,操作还是很方便的,这也是选择它的理由,它提供了默认的

如何在自定义的数据集上训练YOLOv5

 ̄綄美尐妖づ 提交于 2021-01-07 08:54:06
YOLO系列的目标检测模型随着YOLOv5的引入变得越来越强大了。在这篇文章中,我们将介绍如何训练YOLOv5为你识别自己定制的对象。 本文我们使用公共血细胞检测数据集,你可以自己导出,也可以在自己自定义数据上使用本教程。 公共血细胞检测数据集: https://public.roboflow.ai/object-detection/bccd 为了训练检测器,我们采取以下步骤: 安装YOLOv5依赖项 下载自定义YOLOv5对象检测数据 定义YOLOv5模型配置和架构 训练一个定制的YOLOv5检测器 评估YOLOv5性能 可视化YOLOv5训练数据 对测试图像使用YOLOv5进行推断 导出并保存YOLOv5权重以供将来使用 YOLOv5的新技术点 就在两个月前,我们对googlebrain引入EfficientDet感到非常兴奋,并写了一些关于EfficientDet的博客文章。我们认为这个模型可能会超越YOLO家族在实时目标探测领域的突出地位,但事实证明我们错了。 三周内,YOLOv4在Darknet框架下发布,我们还写了很多关于YOLOv4技术解析的文章。 在写这些文章的几个小时之前,YOLOv5发布了,我们发现它非常清晰明了。 YOLOv5是在Ultralytics-Pythorch框架中编写的,使用起来非常直观,推理速度非常快。事实上

Detectron2(AdelaiDet)加载COCO格式自定义数据集

喜欢而已 提交于 2020-12-24 09:20:51
测试环境: OS: Win10 CUDA: 11.0 pytorch: 1.7.1 GPU: 3060Ti python:3.8 Detectron: 0.3(笔者可以在win环境成功编译安装detectron2 Detectron2模型数量虽然比mmdetection少,不过有些论文还是用Detectron2做的,因此有必要了解一下如何用Detectron2训练自定义数据集。 关于mmdetection下训练coco格式的自定义数据请移步笔者另一篇博文: mmdetection-v2.3安装配置及训练自定义数据集 以笔者目前的经验来看,要想对自己领域内的图像做目标检测任务,最好的方法是制作成COCO格式数据集,个人习惯用labelimg先制作成voc格式,然后用脚本转换为coco格式,转换脚本可见笔者的github库: https://github.com/ouening/OD_dataset_conversion_scripts 。制作成COCO格式的好处是目前大部分OD框架都支持该数据格式,直接调用API或者简单修改就可以用,当然VOC格式也是基本都支持的,但是COCO在指标评价上更加丰富,VOC只有传统的mAP,COCO指标有AP,AP0.5,AP0.75,APs,APm,APl,AR1,AR10,AR100等。 下面以AdelaiDet(基于Detectron2

语义分割中单类别和多类别图片数据标注,以及灰度类别转换

穿精又带淫゛_ 提交于 2020-11-17 03:42:47
精、点击上方 “ 码农的后花园 ”, 选择 “ 星标 ” 公众号 精选文章,第一时间送达 上期讲解了语义分割模型的基本架构和常用数据集,这期就讲解一下语义分割数据集的制作,追下去吧~ 制作总体步骤: 1. 使用lableme对图片数据进行标注,生成对应图片的x.json文件。 2. 执行lableme下的内置函数labelme_json_to_dataset,依次 手动 生成图片对应的x_json文件(或者使用代码一次性处理生成)。 3. 对第二步生成文件夹中的文件进行处理,生成语义图片label.png。 4. 将语义图片转换为类别灰度图图片-最终训练标签文件。 一、文件目录结构: 二、正式开始制作 第一步:标注软件的安装 1.Anaconda Prompt中创建一个环境 conda create --name=labelImg python=3.6 2.激活进入刚建立的新环境, conda activate labelImg 3.安装界面支持pyqt5包 pip install pyqt5 -i https://pypi.douban.com/simple/ 4.下载安装labelme pip install labelme -i https://pypi.douban.com/simple/ 5.输入命令labelme,就可以启动程序进行数据标注 第二步:进行标注 A

Win10下数据增强及标注工具安装

自古美人都是妖i 提交于 2020-11-08 16:30:19
Win10 下 数据增强及 标注工具安装 一. 数据增强利器—Augmentor 1.安装 只需在控制台输入:pip install Augmentor 2.简介 Augmentor是用于图像增强的软件包,重点在于提供通常用于生成机器学习问题的图像数据的操作。其包含许多用于标准图像处理功能的类,例如Rotate 旋转类、Crop 裁剪类等等。 包含的操作有:旋转rotate、裁 剪crop、透视perspective skewing、shearing、弹性形变Elastic Distortions、亮度、对比度、颜色等等;更多的操作及其参数设定, 点击 。 数据增强通常是一个多阶段过程,Augmentor因此采用基于管道的处理方法,操作依次添加形成最终的操作管道。图像送到管道中,管道的操作依次作用到图片上形成新的图片,保存下来。Augmentor 管道中定义 的操作按照一定的概率随机地作用于图片上。 3.实例 二.LabelImg的简介 LabelImg是用于制作VOC数据集时,对数据集进行标注的工具。生成的 XML 文件是遵循 PASCAL VOC 的格式的。Faster R-CNN,YOLO,SSD等目标检测网络所需要的数据集,均需要借此工具标定图像中的目标。 三.labelImg的安装 1. 安装anaconda3 具体的安装方法可自行百度 2. 下载labelimg

人脸属性标注工具

谁都会走 提交于 2020-08-19 02:58:15
图片查看器: https://github.com/Largefreedom/pyqt5-master/tree/master/img_viewer 人脸特征点标注: https://baijiahao.baidu.com/s?id=1650683721087093374&wfr=spider&for=pc 多属性标注: https://blog.51cto.com/14028810/2306984 二、普通工具 以下几个是通用图片标注工具,属性值自定义 labelImg: https://github.com/tzutalin/labelImg Annotorious: http://annotorious.github.io/index.html RectLabel: https://rectlabel.com/ (适用mac) 人脸数据标注平台/公司 如果你需要标注的数据量很大,预算也比较充足,可以选择数据标注公司来做,省时省力。当然最关心的还是数据安全问题,这个行业鱼龙混杂,建议选择大背景的平台。 京东众智 :标注质量比较高,项目交付准时,数据安全方面签了协议,看过他们的数据隔离方案,比较重视客户的数据安全 百度众测 :标注能力比较广泛,百度做标注也比较久了 figure-eight 国外知名的数据标注平台,国外好多大公司都与它有合作。直接在平台上发任务,没有客户经理沟通.

fasterrcnn深度学习口罩检测

放肆的年华 提交于 2020-08-17 18:25:54
fasterrcnn深度学习口罩检测 前言 FasterRCNN原理详解 训练我们自己的FasterRCNN 使用labelimg制作我们自己的VOC数据集 FasterRCNN训练详解 源码地址与小结 前言 前两周完成了resnet50垃圾分类,但总觉得太过于基础,不能让人眼前一亮,另外由于我自己也是深度学习的爱好者,所以我应该提高一点难度,于是决定做一次目标检测,大概一个月前学习了RCNN,FastRCNN,FasterRCNN的理论。我个人认为FasterRCNN确实是划时代的深度学习模型,在此向何凯明大神表示最大的尊敬。 最初我想做车辆行人与路标的检测,因为在树莓派上实现自动驾驶是我的一个小愿望,但实际实施过程中,本人真的崩溃了很多次,我实在没找到免费的车辆行人路标的voc数据集,自己标注数据集真的心累,所以从闲鱼10元买了口罩数据集,后续的自动驾驶数据集标注训练好后我会补充一篇新的博客,目前就实现一个口罩检测吧。 目前很多博客都没详细讲解fasterRCNN,或者就是让初学者很难懂,因此本文从头到尾全面理解一次,细致到训练中的损失函数计算,文章末尾会附上源码地址 先预览一下检测结果: FasterRCNN原理详解 这是一篇完整的包括原理与实践的博客,请先阅读原理部分,对后续步骤将有更清晰的认识 目前,看到以下是fasterRCNN的结构图,下面进行详细的过程梳理:

pytorch版yolov3训练自己数据集

ぐ巨炮叔叔 提交于 2020-08-17 03:44:18
目录 1. 环境搭建 2. 数据集构建 1. xml文件生成需要Labelimg软件 2. VOC2007 数据集格式 3. 创建*.names file, 4. 更新data/coco.data,其中保存的是很多配置信息 5. 更新cfg文件,修改类别相关信息 6. 数据集格式说明 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将github库download下来。 git clone https://github.com/ultralytics/yolov3.git 建议在linux环境下使用anaconda进行搭建 conda create -n yolov3 python=3.7 安装需要的软件 pip install -r requirements.txt 环境要求: python >= 3.7 pytorch >= 1.1 numpy tqdm opencv-python 其中只需要注意pytorch的安装: 到 https://pytorch.org/ 中根据操作系统,python版本,cuda版本等选择命令即可。 关于深度学习环境搭建请参看: https://www.cnblogs.com/pprp/p/9463974.html anaconda常用用法: https://www.cnblogs.com

Python应用基础-根据指定文件生成XML

回眸只為那壹抹淺笑 提交于 2020-08-15 05:32:45
    因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看。其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表原始图片的第几个切图文件 第2~5值:分别对应于ymin, xmin, ymax, xmax 第6个值:代表对应的标签标注     在生成XML文件时,需要对其进行汇总,即将属于同一个原始文件的切图小文件的标注汇总到一起,其实现代码如下所示: import os from Logger import MyLogger from xml.dom.minidom import Document from collections import defaultdict import re class OpeateXML: def __init__(self, srcPath: str, targetPath: str, srcFileName: str): self._srcPath = srcPath self._targetPath = targetPath self._srcFileName = srcFileName def readSrcFileName(self, fileEncoding="utf8") -> dict: data = defaultdict(list)