YOLOV3实战项目

yolov7实例分割部署 yolov3实例_深度学习

四、标签文件的读取与处理


coco数据集有80个类别,而前面的第一个数代表着类别所对应的序号。

yolov7实例分割部署 yolov3实例_深度学习_02


2.

后面表示前面所代表物体在这张图片上的坐标。

yolov7实例分割部署 yolov3实例_python_03


3.

但是2中的类别所对应的坐标是指图片还没有pad之前的位置,现在经过pad的处理,物体的相对位置也发生了变化。

yolov7实例分割部署 yolov3实例_深度学习_04


4.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_05


5.

yolov7实例分割部署 yolov3实例_深度学习_06


6.

yolov7实例分割部署 yolov3实例_python_07


7.

此时的target中存放着这张图片所属类别的编号,图片中的物体所处的相对坐标。

yolov7实例分割部署 yolov3实例_python_08


8.

yolov7实例分割部署 yolov3实例_pytorch_09


9.

yolov7实例分割部署 yolov3实例_损失函数_10

五、debug模式的介绍



yolov7实例分割部署 yolov3实例_pytorch_11


yolov7实例分割部署 yolov3实例_损失函数_12

六、基于配置文件构建网络模型


yolov7实例分割部署 yolov3实例_pytorch_13


2.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_14


3.

yolov7实例分割部署 yolov3实例_python_15

它不仅仅是单独的一个层,它是一个组合,所以在代码中,也得表现出来

yolov7实例分割部署 yolov3实例_pytorch_16


5.

了解一下上采样层的操作。

yolov7实例分割部署 yolov3实例_pytorch_17

七、路由层和shortcut层

1.route拼接操作

yolov7实例分割部署 yolov3实例_损失函数_18


2.

yolov7实例分割部署 yolov3实例_python_19


3.

自己为-1层

yolov7实例分割部署 yolov3实例_python_20


4.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_21


yolov7实例分割部署 yolov3实例_损失函数_22


5.下图是8中9个不同框h和w的配比。

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_23


然后再找到由于这个歌检测大目标的所以这个得是6,7,8号框的h和w的配比(先验框实际的h和w的大小)

yolov7实例分割部署 yolov3实例_损失函数_24

八、YOLO层定义解析


yolov7实例分割部署 yolov3实例_损失函数_25


2.、在daknet中的yolo层有3个

九、预测结果计算


yolov7实例分割部署 yolov3实例_pytorch_26


2.

yolov7实例分割部署 yolov3实例_深度学习_27


3.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_28


4.

yolov7实例分割部署 yolov3实例_损失函数_29


5.

yolov7实例分割部署 yolov3实例_pytorch_30


6.

yolov7实例分割部署 yolov3实例_深度学习_31

十、网格偏移计算


yolov7实例分割部署 yolov3实例_pytorch_32

. 2.

由于我们最终是要在输入图片上显示我们目标所在的位置,而现在此处的x,y

是相对于黑色点的位置,所以第一步我们要把黑色点的位置换成相对于1313格子的绝对位置,然后,再通过1313的格子位置也是一个相对位置,那我们还需要把这个13*13的位置转换成输入图片的位置。

yolov7实例分割部署 yolov3实例_python_33


下面这个代码干的就是这个事儿

yolov7实例分割部署 yolov3实例_python_34


3.

yolov7实例分割部署 yolov3实例_深度学习_35

yolov7实例分割部署 yolov3实例_深度学习_36

yolov7实例分割部署 yolov3实例_深度学习_37

下图红色的框分为两种,第一种是我们在原图上框的大小,还有一种就是在我们YOLO网路中处理后的三种目标检测后的特征矩阵图上面框的大小,由于特征矩阵图大小的变化,所以对于下面的9中先验框的大小也会不一样,需要对这些框进行成比例的变化。

yolov7实例分割部署 yolov3实例_损失函数_38


4.这计算的相对于13*13格子中的相对位置

yolov7实例分割部署 yolov3实例_python_39


5.

从最后一个特征矩阵图中还原到输入图片的位置中去,其中需要还原的只是坐标,confidence值和类别的概率不需要还原。

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_40

十一、模型要计算的损失的描述

计算损失值

yolov7实例分割部署 yolov3实例_损失函数_41


2.

计算损失的时候,我们需要与target做比较,但是呢,我们的最终的预测结果是相对于最后一个特征矩阵而言的,所以我们需要把这些预测结果映射到输入图片上面去。

yolov7实例分割部署 yolov3实例_损失函数_42


3.4中损失函数的类别。

yolov7实例分割部署 yolov3实例_python_43

十二、标签值格式修改

目前并不知道到原始图片上那些位置有目标,所以先进初始化,把所有的位置都初试化为0,然后再通过预测结果,把有物体的位置上都设置成为1

yolov7实例分割部署 yolov3实例_pytorch_44


2.

实际上有目标考虑的是一个前景,没有目标考虑的是一个背景。在这里能不能使用其他技术,来区分前景和背景。

yolov7实例分割部署 yolov3实例_python_45


3.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_46


4.

暂时拿0作为填充,之后会用1做填充

yolov7实例分割部署 yolov3实例_损失函数_47


5.

yolov7实例分割部署 yolov3实例_深度学习_48


6.

yolov7实例分割部署 yolov3实例_python_49

十三、坐标相对位置计算


yolov7实例分割部署 yolov3实例_损失函数_50


yolov7实例分割部署 yolov3实例_pytorch_51


3.

yolov7实例分割部署 yolov3实例_python_52


best_n表示三个候选框中与真实候选框iou值最大的候选框的编号,候选框的编号为:0,1,2

yolov7实例分割部署 yolov3实例_深度学习_53


4.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_54


yolov7实例分割部署 yolov3实例_pytorch_55


6

yolov7实例分割部署 yolov3实例_损失函数_56


7.

yolov7实例分割部署 yolov3实例_python_57

十四、完成所有损失函数所需的计算指标


yolov7实例分割部署 yolov3实例_yolov7实例分割部署_58


2.

yolov7实例分割部署 yolov3实例_损失函数_59


3.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_60

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_61

十五、模型的训练和总结


yolov7实例分割部署 yolov3实例_yolov7实例分割部署_62


2.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_63

十六、预期要过展示


yolov7实例分割部署 yolov3实例_深度学习_64


2.

下面是一个测试图片的文件夹路径

yolov7实例分割部署 yolov3实例_损失函数_65


3.

需要测试的文件

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_66


4.已经训练好的权重参数

yolov7实例分割部署 yolov3实例_python_67


5.

yolov7实例分割部署 yolov3实例_深度学习_68


6.

yolov7实例分割部署 yolov3实例_yolov7实例分割部署_69


yolov7实例分割部署 yolov3实例_深度学习_70


yolov7实例分割部署 yolov3实例_python_71