文章目录[隐藏]
torchvision
包含众多流行数据集和图像处理方法
Dataset类
PyTorch 读取图片,主要是通过 Dataset 类,所有的 datasets 都需要继承它
要让PyTorch读取自己的数据集,只要两步:
- 制作图片数据的索引
- 构建Dataset子类
所谓数据集,无非就是一组{x:y}的集合吗,你只需要在这个类里说明“有一组{x:y}的集合”就可以了
对于图像分类任务,图像+分类
对于目标检测任务,图像+bbox、分类
DeepLesion数据集
- 4427名独立的匿名患者
- 10594次CT扫描(平均每位患者有3次随访)
- 32735个带标记的病灶实例
- 一共928020张CT横切图像(512×512分辨率)
Skimage
目标检测算法
常见的计算机视觉任务可以归纳为图像分类、目标检测、语义分割等。
在图片数据中找到指定的物体,并能够正确定位位置,这就是典型的目标检测任务。
边界框与锚框
边界框用来描述目标位置,是一个矩形框,由左上角坐标和右下角坐标来共同确定。
在运行目标检测算法时,通常会在图像中采样多个候选区域,不同的目标检测算法所使用的采样算法也不一样,而YOLO系列算法则通过定义锚框来提取,锚框是指以每一个像素为中心,生成多个大小和宽高比不同的边界框集合
交并比(Intersection of Union)
当有多个边界框覆盖了图像中的物体时,如果该物体的真实的边界框已知,那么需要有一个衡量预测边界框好坏的指标。在目标检测领域,我们使用交并比来衡量。
基于候选区域的目标检测算法(二阶段)
第一阶段:先产生所有可能的目标候选区
第二阶段:再对候选区做分类和回归
- R-CNN
- Fast R-CNN
- Faster R-CNN
- FPN
单阶段目标检测
与二阶段不同,它仅仅使用一个卷积神经网络直接预测不同目标的类别与位置,不需要预先选取候选区域,存在正负样本不均衡(正即有目标)问题。因此,在效果上,基于候选区域的算法要比单阶段算法准确度高,但速度较慢;相反,单阶段算法比基于候选区域的算法速度快,但准确率要低。
定义自己的数据集CSV格式
训练自己的数据集需要至少两个CSV文件,一个文件包含标注数据,另一个则包含各个类别名及其对应的ID序号映射。
标注文件格式(Annotations format)
/data/imgs/img_001.jpg,837,346,981,456,cow
目标检测的位置一般有两种格式
1.(xmin,ymin,xmax,ymax)
2.(xcenter,ycenter,width,height)
映射文件格式(class mapping format)
cow,0
cat,1
bird,2
检测的任务:
1.分类:准确率
2.定位:交并比
分类和回归loss
目标检测通常由分类损失和回归损失组成,而图像分割通常有基于分布、基于区域、基于边界的三类loss function。
位置回归采用Smooth公式,用于定位框的回归损失
可视化
在opencv中进行矩形框的绘制
cv2.rectangle(image,start_point,end_point,color,thickness)
add caption
cv2.FONT_HERSHEY_SIMPLEX
cv2.FONT_HERSHEY_PLAIN
Bibliography
版权声明:本文为CSDN博主「铁锅炖笨鸽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67105022/article/details/123028162
暂无评论