文章目录
- 前言
- 一、基本思路
- 二、picodet
- 三、yolact
- 三、picodet+yolact
- 总结
前言
在某些工业领域,由于成本问题算力有限,只能实时跑一些超轻量级网络,拿目标检测来说,例如yolo-fast,pp-picodet这些。如果要跑实例分割,目前好像没有什么超轻量级的网络。所以就有想法如何实现一个超轻量级实例分割网络。
一、基本思路
基于超轻量级目标检测pp-picodet,增加一个掩膜分支。参考实现方案有两种,一种是轮廓编码,类似于polarmask,将掩膜进行固定点数编码;另外一种是参考yolact,增加一个全局的原型掩膜预测,目标掩膜由原型掩膜加权得到。yolov5-seg就是采用的第二种方案。第一种方案看似很美好,有个缺点,有一些物体无法表示,例如甜甜圈,“山”字这种,从中心向外作射线与物体有多个交点。因此考虑采用第二种方案:基于picodet,增加一个yolact中的掩码分支。
二、picodet
picodet结构图如上所示,主流的目标检测一般都是这样的结构,骨干网络(backbone)->特征金字塔(neck)->预测分支(head)。
三、yolact
yolact最大的特点就是利用原型掩码组合出每个实例掩码。它在C3特征图上预测k个原型掩码,head预测出实例的掩码系数,然后加权得到实例掩码。实验发现k=32效果最好。
三、picodet+yolact
到这里,显而易见了,只要在picodet的head部分添加一个原型掩码系数预测分支,增加一个protonet原型掩膜预测分支即可。
总结
思考了一个超轻量级实例分割网络思路,将picodet与yolact结合,实际上yolov5-seg就是将yolo与yolact结合。我们将yolo换成picodet将实现超轻量级分割。下面准备按照这个方案写代码实现,可能需要花点时间。