水到绝境是风景
人到绝境是重生
一、什么是目标检测
目标检测是计算机视觉领域的一个重要任务,旨在识别和定位图像或视频中的多个目标对象。与图像分类只关注图像属于哪个类别不同,目标检测不仅要确定目标所属的类别,还要准确地标记目标在图像中的位置。
目标检测的主要目标是在图像中找到一个或多个感兴趣的目标,并为每个目标提供一个边界框(Bounding Box),用于指示目标的位置和大小。通常,目标检测任务可以分为以下几个方面:
-
目标类别识别:确定目标所属的类别。这与图像分类任务类似,但目标检测需要在图像中找到多个目标并为每个目标分配类别标签。
-
目标定位:准确地标记目标在图像中的位置。这通过绘制边界框(Bounding Box)来完成,边界框通常由矩形框表示,其中包含目标的位置和大小信息。
-
目标数量:确定图像中存在的目标数量。目标检测可以处理单个目标、多个目标或未知数量的目标。
目标检测可以应用于许多领域,包括自动驾驶、视频监控、物体识别、人脸识别、医学图像分析等。它在实际应用中具有广泛的用途,例如车辆检测、人脸检测、物体跟踪等。
为了实现目标检测,通常使用各种算法和技术,包括传统的基于特征的方法(如Haar特征、HOG特征)和基于深度学习的方法(如Faster R-CNN、YOLO、SSD等)。这些方法利用了图像中的视觉特征和机器学习技术,以实现准确和高效的目标检测。
二、目标检测数据集
VOC数据集
官网地址
经典数据集从05年到12年
VOC 2007
VOC 2012
数据集下载
在官网找到你想要的数据集,建议使用迅雷下载
下载完解压之后
介绍
- Annotations: 图片标注
- ImageSets
不同竞赛使用的图片训练数据集与测试数据集
- JPEGImages: 图片
- SegmentationClass与SegmentationObject
前者是图中的物品属于同一个类别,后者是图中标注出单个物体,一般是用来做语义分割的
COCO数据集
官网
经典数据集2017
三、标注自己的数据集
在线标注数据集工具
MakeSense
官网地址
cvat
官网地址
四、用Pytorch加载COCO数据集
read_cocodata.py
import torchvision
from PIL import ImageDraw
# 加载数据集
coco_dataset = torchvision.datasets.CocoDetection(root=r"/Users/lihui/Documents/ai/数据集/COCO数据集/val2017",
annFile="/Users/lihui/Documents/ai/数据集/COCO数据集/annotations"
"/instances_val2017.json")
image, info = coco_dataset[0]
image.show()
# 进行标注
image_handler = ImageDraw.ImageDraw(image)
for annotation in info:
x_min, y_min, width, height = annotation['bbox']
image_handler.rectangle(((x_min, y_min), (x_min + width, y_min + height)))
image.show()
输出
四、用Pytorch加载自己标准的数据集
与加载COCO数据集的方式一样,只需要在标注工具中把标注好的图像与对应的标注文件的加载路径修改一下即可。