1 历史简介
2 YOLO算法思想
YOLO算法的基本思想:
(1)将图片划分为S×SS \times SS×S个网格;
(2)计算每个边界框和置信度;
(3)计算每个网格属于某个类别的概率;
(4)根据上述的计算结果来获得最终的目标检测。
(1)计算每个边界框的坐标tx,ty,tw,tht_x, t_y, t_w, t_htx,ty,tw,th;
(2)计算每个边界框的目标性得分;
(3)计算每个边界框的类别得分;
(4)上述计算构成一个边界框的属性;
(5)再将多个BBB边界框的这些属性进行多尺度融合。
3 YOLO家族
3.1 Yolo v1
3.2 Yolo v2
3.3 Yolo v3
3.4 Yolo v4
Yolo v4在Yolo v3的基础上做了如下改进:
- 输入端采用mosaic数据增强
- Backbone上采用了CSPDarknet53、Mish激活函数、Dropblock等方式。(cspnet减少了计算量的同时可以保证准确率)
- Mish函数为
Mish =x∗tanh(ln(1+ex))\text { Mish }=x * \tanh \left(\ln \left(1+e^{x}\right)\right) Mish =x∗tanh(ln(1+ex))
橙色曲线为:ln(1+ex)\ln(1+e^{x})ln(1+ex)
蓝色曲线为:Mish函数
为什么采用mish函数?可能也是最重要的,目前的想法是,平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化。 - Neck中采用了SPP、FPN+PAN的结构
- 输出端采用CIOU_Loss、DIOU_nms操作。
3.5 Yolo v5
算法性能测试图:
Yolov5s网络最小,速度最少,AP精度也最低,训练后的模型十几M大小,速度很快,可用于嵌入式设备。Yolov5m、Yolov5I和Yolov5x在此基础上,不断加深加宽网络,AP精度也不断提升。