以前设计过对于倾斜角度的目标检测算法。经过对YOLOv3的稍加修改可以对倾斜目标进行检测。对于YOLO架构的详细原理,在此不予赘述。网上大家可以找到相关的解释。我以后也可能写一篇文章对YOLO进行一些描述。此文章只讲述如何对YOLO进行修改,才能适用于对倾斜目标的检测。
其实很简单,只需要在原先的边界框参数里加上“角度”参数来进行训练,最终推理时,也同样会输出角度。
传统YOLO的边界框参数包括中心坐标(x, y)、宽度(w)、高度(h)、置信度(边界框预测的准确性)、预测 C 个类别概率。即:xywh+object_confidence+[class0_conf, class1_conf, class2_conf...]
修改后的输出变为xywh+angle+object_confidence+[class0_conf, class1_conf, class2_conf...]。当然angle参数放哪个位置都可以,如:xywh+object_confidence+angle+[class0_conf, class1_conf, class2_conf...]。这只需要你稍加调整一下YOLO架构的最后的输出层即可。
因为当时我做的项目的时候更关心角度,所以后面的[class0_conf, class1_conf, class2_conf...]这部分都忽略了。而且对YOLO做了比较大的精简。原来的层数太多,参数也多,我把层数也减少了一些,这样训练起来也快了许多。Geforce RTX 3060的显卡跑个4,5个小时就差不多了。类别只需要检