目录

一、拍摄收集

(一)视频拍摄

(二)将MP4文件截取出图片

二、数据集标注

1、打开图片所在的文件夹

2、修改输出文件夹

3、图片标注


这一系列的博客将会帮助我自己(和大家)认识并熟悉——如何使用YOLO训练自定义的数据集,同时如何部署到Windows以及Linux上,下面有请我的检测目标——拉拉猪!

在建立数据集之前,我从网络上收集了一些资料——关于如何建立一个有效的数据集,比如图像数据集的数量,检测目标的位置、大小、方向,甚至是光线、背景等等其他因素的影响,手机出来的资料我总结如下:

  1. 从不同的背景中拍摄不同角度方向的目标图像:图像数据集中,检测的对象必须至少有一个相似的差不多相同的形状、侧面的对象、相对大小、旋转角度、倾斜、照明……
  2. 保证采集的数据的质量,大小最好和使用场景的尺寸接近,尽量在该场景下采集数据的多样性,尽量采集自然场景下的各种各样的照片
  3. 数据集的数量越多越好(1000+/2000+),普遍来说,应该是有2000+,训练迭代2000+或更多
  4. 数据集中既要包括想要检测的物体,也要包括不想检测的物体,但是标注的话只标注想要检测的物体
  5. 如果是多个类检测的话,那么各个目标检测的类在你的数据中出现的次数差不多
  6. 目标所被标记部分是按照你希望如何被检测到的方式去标记(比如只检测一半、可重叠区域、比整个物体大一点……)
  7. 确保要检测的每个对象在训练集中都被标记
  8. 制作数据集你可以通过爬虫的方式来获取图像,也可以拍摄一段视频然后截取包含目标的图像
  9. 可以通过图像增强的方法来提升数据集的数量

感谢在收集资料中遇到的文档:
深度学习目标检测YOLO对于数据集的要求_柠檬树的橘子的博客-CSDN博客_yolo数据集要求文章目录前言一、目标检测对训练数据集的要求前言提示:之前在做深度学习的时候,发现如果想要训练自己的数据集,那么数据集的准备对检测结果有很大的影响。刚好最近看YOLO的帮助文档,发现有一些对数据集的要求和建议,这里就记录一下。一、目标检测对训练数据集的要求YOLO帮助文档确保要检测的每个对象在训练集中都被标记。数据集中的每个对象都应该被标记。在大多数训练问题中,你的数据集中有错误的标签。对于每个你想要检测的对象-在训练数据集中必须至少有一个相似的对象有差不多相同的:形状,侧面的对象,相对大小,https://blog.csdn.net/qq_41308881/article/details/110525477

【YOLO学习笔记——数据集】之一YOLO数据集制作1(含LabelImg工具讲解)_水亦心的博客-CSDN博客_yolo数据集制作前言如果你有什么问题,希望跟我能够一起交流,除了通过博客交流外,欢迎你加入我的QQ群,一起交流有关于机器学习、深度学习、计算机视觉有关内容。目前我并未确定具体的研究方向,所以现在 处于广泛涉猎阶段,希望我们能够一起沟通。下图是我的群二维码:一、综述YOLO有自己训练好的数据集,在YOLO v2 中,数据集可检测的类别达9000种以上,但是9000毕竟不是全部,它能涵盖大部分的物体识...https://blog.csdn.net/shuiyixin/article/details/82623613以及知乎上的相关回答……

一、拍摄收集

(一)视频拍摄

从以上的方面中考虑,我希望制作一个数据集:(由于是一个比较简单的目标——图像的数据量在600张左右

  • 背景一(桌面上):光线不太强、拍摄较近、拍摄各个角度(60s-60张)
  • 背景二(拿手上):光纤适合、拍摄各个角度(60s-60张)
  • 背景三(被子上):光纤不太强(有阴影)、拍摄各个角度、远近结合(60s-60张)
  • 背景四(有一个差不多的物体在旁边):拍摄各个角度(60s-60张)
  • 背景五:强光照射、拍摄各个角度(60s-60张)
  • 背景六:弱光微射、拍摄各个角度(60s-60张)
  • 背景七(稍微变形):拍摄各个角度(60s-60张)
  • 背景八(粉色背景):拍摄各个角度(60s-60张)
  • 背景九(键盘上):拍摄较远、拍摄各个角度(60s-60张)

于是,我用手机拍摄了拉拉猪的一系列的视频:

(二)将MP4文件截取出图片

需要注意的是:名字要从1开始一直往后,如果不是自己截取的图片,那么可以通过看图软件对文件名批量修改名称(网上说:2345看图王可以)

import cv2
import os# 视频的帧数为30,那么60s的视频一共有1800帧,选择60张照片,则选择每隔30帧选一张path_video = "E:/work/VOC2021/videos/拉拉猪 ("
form = ").mp4"
save_pictures = "E:/work/VOC2021/JPEGImages/"count = 0
for num in range(1,10):# 视频数量一共是9个path_cv = path_video + str(num) + formvc = cv2.VideoCapture(path_cv)i = 0while vc.isOpened():rval, img = vc.read()frame_count = vc.get(cv2.CAP_PROP_FRAME_COUNT)  # 视频文件的帧数frame_fps = vc.get(cv2.CAP_PROP_FPS)  # 视频文件的帧率if i==frame_count:  breakelse:i=i+1if i % int(frame_count/60) == 0:  #选取60照片count = count + 1# 图片命名及保存路径filename=str(count)+".jpg"cv2.imwrite(save_pictures+filename,img)print("第{}个视频截取图片完毕!".format(num))# 释放资源vc.release()cv2.destroyAllWindows()        

注意:图片保存的位置不能有中文字符,否则生成的图片将找不到!!!

最后的结果如下:

然后建立如下所示的文件目录结构:

VOC:Visual Object Classes

二、数据集标注

接下来就是对541张照片进行图片标注了,这一步一张图片都不能少,我们所用的软件是LabelImg

软件分享:

链接:https://pan.baidu.com/s/1jrWfEACNLSHfscCAU6KgXw 
提取码:8888 
--来自百度网盘超级会员V2的分享

界面:

1、打开图片所在的文件夹

2、修改输出文件夹

3、图片标注

输入法切换为英文,按下“W”,会出现如下的十字

 然后按住鼠标左键拖动,直到将目标包括在内(选取的区域尽可能包含),然后输入目标的类别:lalazhu

这个时候右上角将会产生一个类别:

然后点击:Save  (保存该图片)—— Next Image  (开始下一张图片的标注)

然后重复操作:按下“W”,鼠标选择,save,next image

 直到标注完成!

文件夹显示如下:

其中的第一张的图片标注:

<annotation><folder>JPEGImages</folder><filename>1.jpg</filename><path>E:\work\VOC2021\JPEGImages\1.jpg</path><source><database>Unknown</database></source><size><width>1920</width><height>1080</height><depth>3</depth></size><segmented>0</segmented><object><name>lalazhu</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>334</xmin><ymin>326</ymin><xmax>1623</xmax><ymax>855</ymax></bndbox></object>
</annotation>

(目标检测)①数据集的建立(拍摄收集、数据集标注)相关推荐

  1. 目标检测,目标识别的SAR数据集构建和标注

    目标检测,目标识别的SAR数据集构建和标注 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2 ...

  2. 深度学习目标检测---使用yolov5训练自己的数据集模型(Windows系统)

    目录 0    前言 1.从githab上克隆yolov5代码 1.1 yolov5网络project克隆 1.2 项目代码结构的整体介绍 1.3 深度学习环境的配置和安装yolov5所需要的库 2. ...

  3. 视频教程-Windows版YOLOv4目标检测实战:训练自己的数据集-计算机视觉

    Windows版YOLOv4目标检测实战:训练自己的数据集 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多 ...

  4. 目标检测3维/点云/遥感数据集

    希望有包含建筑物的数据集这是我在找寻带框标注的三维点云建筑物数据集过程中发现的一些数据集,我是奔着找建筑物去的,还有很多关于室内场景和自动驾驶车前场景的数据集在此就不列出了. 欢迎补充和交流!!! 数 ...

  5. 超详细目标检测,yolo3训练自己的数据集

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 本文介绍如何制作数据集.修改代码.不加载预权重从头跑自己的训练数据. 本文相关代码 项目获取方 ...

  6. 3D点云目标检测:MPPNet网络训练waymo数据集

    MPPNet网络训练waymo数据集 一.waymo数据预处理 1.1.waymo数据简介 1.2. waymo数据集预处理 二.训练centerpoint网络 三.训练mppnet网络 四.训练结果 ...

  7. 目标检测算法——YOLOv7训练自己的数据集(保姆级教程)

    >>>深度学习Tricks,第一时间送达<<< 目录 YOLOv7训练自己的数据集(保姆级教程): 一.YOLOv7源代码下载 二.安装深度学习环境 三.准备自己的 ...

  8. 深度学习和目标检测系列教程 11-300:小麦数据集训练Faster-RCNN模型

    @Author:Runsen 上次训练的Faster-RCNN的数据格式是xml和jpg图片提供,在很多Object-Detection中,数据有的是csv格式, 数据集来源:https://www. ...

  9. 【目标检测】YOLOX训练王者荣耀数据集

    前言 最近想跑一下旷世开源的YOLOX,本想着属于YOLO系列,代码大致都和YOLOv5差不多,没想到代码整体差异还是挺大的,跑通的过程中踩了不少坑,这篇就来记录一下整个流程. 官方源码:https: ...

  10. 【目标检测】YOLOv5/6/7/8格式标注目标框可视化

    YOLOv5/6/7/8格式标注目标框可视化 修改图片.标注.输出路径: # -- coding: utf-8 -- import os import shutil from pathlib impo ...

最新文章

  1. artdialog 异步加载页面 生成验证码
  2. 【计算理论】计算复杂性 ( 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 )
  3. 省市县联动javascript版..
  4. 【Java】常见的异常和Throwable类
  5. Redis-集合(Set)基础
  6. 【Vue】全局过滤器和局部过滤器
  7. 设置View的四个角为圆角
  8. SpringCloud工作笔记082---自动化部署Jenkins_Windows下安装使用Jekins
  9. docker php7 mysql分开,Docker nginx+php74+mysql57, 并安装gd和mysql扩展
  10. 朱松纯:三读《赤壁赋》,并从人工智能的角度解读“心”与“理”的平衡
  11. Python科学计算(一)
  12. PDFbox-PDF解析(坐标定位,分页读取)
  13. 手机图片怎么做成笔记 手机照片笔记怎么制作
  14. ABR与ASBR是什么?区别又是什么?
  15. FFmpeg视频剪辑常用命令
  16. Project-符合人类习惯的多元多项式计算器
  17. Cloudera Manager —— 端到端的企业数据中心管理工具
  18. 淘宝API接口:item_get_app - 获得淘宝app商品详情原数据
  19. 我国火箭回收历程介绍
  20. 小a与星际探索vector向量

热门文章

  1. 服务器电池维修,服务器电池电量低判断方法
  2. NLP面试宝典:38个最常见NLP问题答案一文get
  3. 双线macd指标参数最佳设置_mt5怎么添加双线macd?mt5中macd怎么设置快慢线?
  4. 自动控制原理专业词汇中英文对照(三)
  5. 某奏云资源网址打不开的N种处理方法(亲测好用)
  6. HTML5第9节课堂笔记(初探mui,制作手机归属地查询)
  7. miui7 usb计算机连接网络,miui7怎么打开usb调试功能?小米miui7 usb调试模式开启方法图解...
  8. lanmp centOS7 一键式 搭建配置
  9. 理解实时操作系统与裸机的区别
  10. Redis 3.0集群搭建/配置/FAQ