yolo标签没有字 windows_【品览AI论技】mAP提升40%,更快更精准的Poly-YOLO来了!还支持实例分割?!...

b3d8e82487cede9d94e2d3ebf15e908f.png
欢迎关注品览Pinlan 学习最新AI学术进展

不久前给大家详细介绍了经典的目标检测算法yolov3,最近基于yolov3的改进版本poly-yolo来了,模型参数量仅为yolov3的60%,但是map却提升了40%,还能应用于实例分割,一起来看看细节和其惊人的效果吧!

本文由品览高级算法研究员Cecilia,为大家解读YOLOv3改进版: Poly-YOLO的详解与应用。

Cecilia

品览高级算法研究员

毕业于南昌大学

• 3年国企研发中心经验

YOLOv3的缺点

1.重写标签

由于YOLO系列都是基于图像cell栅格作为单元进行检测,以416*416大小的图像为例,在图像分辨率随着卷积下降到13*13的特征图大小时,特征图一个像素点的感受也是32*32大小的图像patch。如果将两个相同尺度的框分配给同一个cell,则其中一个将被重写。

结果,训练网络忽略一些目标,这导致正样本数量非常少。特别是存在于分辨率比较低的特征图中。如下图所示,红色目标为因为重写而没有加入到训练中的目标,可以看到,在这样一个特征图上,重写的目标数量还不少,27个目标里有10个都被重写,特别是比较稠密的地方。

8e87ebc3d30e9e688a947ecef0522fc7.png

2.无效的anchor分配

YOLOv3使用九个anchor,每个输出尺度三个纵横比。特定的gt与最佳匹配的anchor匹配,该anchor将其分配给特定的输出特征层。这种分配方式只适用于以下的理想分布:

ccaf2363e28688d2bece99e19d2b0598.png

然而在实际问题中,目标框大小不会分布的这么理想化,就会造成某些尺度的特征层未被充分利用。

Poly-YOLO的改进

1. 高分辨率的单一尺度输出层

标签重写的问题可以通过较高的特征分辨率来缓解。当特征分辨率=输入图像大小,将不可能会发生标签重写的问题。出于速度考虑,最终选取1/4输入分辨率大小作为单一输出层的尺度。

进行改进后的标签重写率对比如下图1所示:

0b2f7613a24252828250996696abe9ff.png
图1 改进后的poly-yolo标签重写率在多数据集对比

2. 解决anchor分布问题

第一种方式是:为三个输出尺度定义感受野,并定义将其拆分的两个阈值。然后,k均值将根据这些阈值计算质心三元组(用作锚点)。这会将数据驱动的锚更改为问题驱动的(感受野)锚。例如,当数据集中目标较小的时候,仅在检测小物体的比例尺上检测到,而不是在YOLOv3中当前实现的所有比例尺上检测到。这种方式的缺点是我们将无法使用网络的全部容量。总结来说,这种方式就是人工的hard调参。

第二种方式是:创建具有单个输出的架构,该架构将汇总各种规模的信息。这样的聚合输出还将一次处理所有锚点。因此,与第一种方式相反,锚点大小的估计将再次由数据驱动。

Poly-yolo采用第二种方式进行改进,如下图2所示为yolov3体系结构与poly-yolo体系结构的对比:

7d692a2e2947d2cf62417f4fa222620e.png

图2 原始体系结构和新体系结构对比

Poly-YOLO在特征提取器部分每层使用较少的卷积滤波器,并通过squeeze-and-excitation模块扩展它。较重的neck block被使用stairstep进行上采样、带有hypercolmn的轻量block所取代。head使用一个而不是三个输出,具有更高的分辨率。

综上所述,Poly-YOLO的参数比YOLOv3少40%,但可以产生更精确的预测。对多个尺度的特征融合策略,采用阶梯式聚合方式,输出结果更加平滑。在提升效果的同时,保证参数量不增加。

ac4ad17a1da7f28f4538c2becbefa17f.png
图3 展示了HC方案(左)和带有阶梯的HC(右)对比

942a1c86c47594fcf6b31cdeb7f63e6b.png
图4展示了阶梯式聚合带来的训练提升

此外,polo-yolo对主干网络进行了修改,在其中添加了SE注意力模块。通过添加SE模块并以更高的输出分辨率工作,会降低计算速度。

Poly-YOLO实例分割

引入一个多边形表示物体,它能够检测具有不同数量顶点的目标,而不需要使用会降低处理速度的递归神经网络。

1. 多边形原则

在一个公共数据集中,许多对象都被类似的形状所覆盖,不同之处在于对象的大小。例如,汽车牌照、手势、人类或汽车都有几乎相同的形状。

一般的形状可以很容易地用极坐标来描述,图5说明了YOLOv3中使用矩形网格,一个对象的边界框位于其中心的单元格将预测其边界框的坐标,而Poly-YOLO中基于圆形扇区的网格,用于检测多边形的顶点。网格的中心与对象边界框的中心重合。然后,每个圆形扇区负责检测特定顶点的极坐标,没有顶点的扇区应该产生等于零的置信度。

9b28625baebf98997c440aca7c44e533.png
图5

4435f930cbd6789bfb18744c6160dd1d.png
图6 bbox检测(上)和极坐标检测(下)对比

2.与poly-yolo集成

检测边界多边形的思想是通用的,可以很容易地集成到任意的神经网络中,通常,必须修改三个部分:数据准备的方式、体系结构和损失函数。从语义分割标签中提取边界多边形,所提取的边界多边形必须以与边界框数据相同的方式进行扩充。在Poly-YOLO中更新了输出层中卷积滤波器的数量。

当仅检测到边界框时,最后一层由n = na(nc + 5)个卷积滤波器表示,na=9(anchor个数),nc为类别数,对基于多边形的目标检测进行集成,得到n=na(nc+ 5+ 3nv),nv为每个多边形检测到的顶点数的最大值。

Poly-yolo的损失函数:

d8d98b682d7bf0d85128074ea2d5d2aa.png

其中

903aee9c8f6c068fafa12ce449cbde90.png

0702ba8b3f68336cae0e97e0ef9fdbd5.png

385ee5367ecc51b55995933a84b7553b.png

391e0e28716caa2e04b65b723db8fcf6.png

c5597772b364452a5bab34a055965d5f.png

实际应用效果展示

总体来讲,polo-yolo的改进是良心之作了,模型参数量相对于yolov3减少了60%,还展示了具有更少参数和更低输出分辨率的Poly-YOLO lite。其改进了yolov3,解决了标签重写与anchor分布问题,实际模型精度相当能打,最大的创新应该是采用极坐标的方式进行多边形预测,可以应用在实例分割上,并且实际模型训练速度非常快,608*608的输入尺度的话,前向预测速度在v100上可达到25fps!

7ebe5357688dbdea2bc994bea6e6ac0f.png

26b538654852296faf8c9c4eceabe56b.png

976b156b4656a0246bd184dab73969df.png

更多技术干货,请持续关注品览!

09c076229f78964b740835f03b7c31bc.png

品览Pinlan是AI物品识别专家,我们的产品结合了AI的认知识别能力,Cloud的强劲算力,IoT的边缘支持。我们的使命是让物品识别能力无处不在,赋能星球上的每一个企业与个体。

在AI应用领域,团队服务过顶新集团、欣和集团、上汽集团、自如等客户。我们同全球顶级合作伙伴微软,企业微信,百度AI大脑等一起为企业客户提供AI巡店通,AI亿览通,小览机器人以及品识-AI商品识别平台产品服务。

进入品览官网,即可申请免费试用AI亿览通。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值