PyTorch实现联邦学习目标检测 单阶段retinanet-csv自定义数据集 DeepLesion

torchvision

包含众多流行数据集和图像处理方法

Dataset类

PyTorch 读取图片,主要是通过 Dataset 类,所有的 datasets 都需要继承它

要让PyTorch读取自己的数据集,只要两步

  1. 制作图片数据的索引
  2. 构建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

铁锅炖笨鸽

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLO-V3-SPP详细解析

YOLO-V3-SPP 继前两篇简单的YOLO博文 YOLO-V1 论文理解《You Only Look Once: Unified, Real-Time Object Detection》YOLO-V2论文理解《YOLO9000: Bet