文章预览:
此笔记根据 小土堆教学视频所作笔记,内容详细,不枯燥,推荐给想学习目标检测的同学们,以下个人笔记供大家参考,若有误,还望指正!
目标检测:位置+类别
人脸检测:人脸-目标
文字检测:文字-目标
主流的目标检测,都是以矩阵框的形式进行输出的
语义分割,如下图所示,可以达到更高的精度
VOC数据集介绍
有VOC 2007、VOC 2012
官网:VOC数据集
For VOC2012 the majority of the annotation effort was put into increasing the size of the segmentation and action classification datasets, and no additional annotation was performed for the classification/detection tasks. The list below summarizes the differences in the data between VOC2012 and VOC2011.
VOC2007为例:
Annotations:包括了xml文件,描述了图片的各种信息,特别是目标的位置坐标
ImaggeSets:主要关注Main文件夹的内容,里面的文件包括了不同类别目标的训练/验证数据集图片名称
例如:1表示图片中有飞机,-1表示无飞机
JPEGImages:原图片
SegmentationClass/Object:用于语义分割
COCO数据集介绍
常用的数据集为COCO2017
官网:COCO2017数据集
制作数据集
- 自己获得数据集–人工标注
- 自己获取数据集–半人工标注(对标注好的数据集进行微调)
- 仿真数据集(GAN,数字图像处理的方式)(效果可能不太好)
使用 Roboflow
Collect Images
- Training on images similar to the ones it will see in the wild is of the utmost importance. collect a wide variety of images from the same configuration as you will ultimately deploy your project.
- start from a public dataset to train your initial model and then sample images from the wild during inference to improve your dataset and model iteratively.
Create Labels
-
Roboflow Annotate is a simple web-based tool for managing and labeling your images with your team and exporting them in YOLOv5’s annotation format.
Whether you label your images with Roboflow or not, you can use it to convert your dataset into YOLO format, create a YOLOv5 YAML configuration file, and host it for importing into your training script.
-
在线网站:数据集制作(makesense)
步骤:
添加标注类别
添加好类别后,在图片上选择需要识别的内容框选,然后在右边选择标签类别,当全部标记好以后,在Actions/Export Annotations导出标注,以下为xml的文件 格式内容,包含了filename、path、以及图片信息,object物体(标签,以及识别物体的坐标矩形框)等
导出的YOLO则为txt格式,内容如下,第一个0/1/2等表示类目,第二第三为物体中心的坐标,第四第五为宽度高度
- One row per object
- Each row is
class x_center y_center width height
format. - Box coordinates must be in normalized xywh format (from 0 - 1)(归一化). If your boxes are in pixels, divide
x_center
andwidth
by image width, andy_center
andheight
by image height. - Class numbers are zero-indexed (start from 0).
可以选择AI标注,会提示你未创建的标签创建,并在图片上自动框选物体,点击即可。
- 多人在线标注
网址:数据集制作(cvat)(需要开VPN使用)
创建好task,添加标签,加载图片后提交。
可以将项目分配给某些人
可以选择自动识别的功能
选择Detectors,模型选择YOLO v3,其中,该模型可以识别许多内容,例如选择cat(3)后将会自动识别框选,如果识别为cat,将会标注为自己的标签类别,即(4)
导出类型多,支持COCO类型
可以看到,当用Pychram打开json文件时,会只出现在一行上,我们可以按两次shift,然后选择Action(操作)输入reformat code,就会把代码调成json数据格式
手动准备数据集
根据后续需要的内容进行修改:
只需要修改数据集的yaml即可,其他不要作修改
the dataset config file that defines
1) the dataset root directory path
and relative paths to train
/ val
/ test
image directories (or *.txt files with image paths),
**3)**a list of class names
#注意标签顺序,不可颠倒
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
nc: 80 # number of classes
names: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',