YOLOV3实战项目
四、标签文件的读取与处理
coco数据集有80个类别,而前面的第一个数代表着类别所对应的序号。
2.
后面表示前面所代表物体在这张图片上的坐标。
3.
但是2中的类别所对应的坐标是指图片还没有pad之前的位置,现在经过pad的处理,物体的相对位置也发生了变化。
4.
5.
6.
7.
此时的target中存放着这张图片所属类别的编号,图片中的物体所处的相对坐标。
8.
9.
五、debug模式的介绍
六、基于配置文件构建网络模型
2.
3.
它不仅仅是单独的一个层,它是一个组合,所以在代码中,也得表现出来
5.
了解一下上采样层的操作。
七、路由层和shortcut层
1.route拼接操作
2.
3.
自己为-1层
4.
5.下图是8中9个不同框h和w的配比。
然后再找到由于这个歌检测大目标的所以这个得是6,7,8号框的h和w的配比(先验框实际的h和w的大小)
八、YOLO层定义解析
2.、在daknet中的yolo层有3个
九、预测结果计算
2.
3.
4.
5.
6.
十、网格偏移计算
. 2.
由于我们最终是要在输入图片上显示我们目标所在的位置,而现在此处的x,y
是相对于黑色点的位置,所以第一步我们要把黑色点的位置换成相对于1313格子的绝对位置,然后,再通过1313的格子位置也是一个相对位置,那我们还需要把这个13*13的位置转换成输入图片的位置。
下面这个代码干的就是这个事儿
3.
下图红色的框分为两种,第一种是我们在原图上框的大小,还有一种就是在我们YOLO网路中处理后的三种目标检测后的特征矩阵图上面框的大小,由于特征矩阵图大小的变化,所以对于下面的9中先验框的大小也会不一样,需要对这些框进行成比例的变化。
4.这计算的相对于13*13格子中的相对位置
5.
从最后一个特征矩阵图中还原到输入图片的位置中去,其中需要还原的只是坐标,confidence值和类别的概率不需要还原。
十一、模型要计算的损失的描述
计算损失值
2.
计算损失的时候,我们需要与target做比较,但是呢,我们的最终的预测结果是相对于最后一个特征矩阵而言的,所以我们需要把这些预测结果映射到输入图片上面去。
3.4中损失函数的类别。
十二、标签值格式修改
目前并不知道到原始图片上那些位置有目标,所以先进初始化,把所有的位置都初试化为0,然后再通过预测结果,把有物体的位置上都设置成为1
2.
实际上有目标考虑的是一个前景,没有目标考虑的是一个背景。在这里能不能使用其他技术,来区分前景和背景。
3.
4.
暂时拿0作为填充,之后会用1做填充
5.
6.
十三、坐标相对位置计算
3.
best_n表示三个候选框中与真实候选框iou值最大的候选框的编号,候选框的编号为:0,1,2
4.
6
7.
十四、完成所有损失函数所需的计算指标
2.
3.
十五、模型的训练和总结
2.
十六、预期要过展示
2.
下面是一个测试图片的文件夹路径
3.
需要测试的文件
4.已经训练好的权重参数
5.
6.