最近在折腾 opencv 和深度学习计算机视觉,然后我就发现无论是 opencv 的主流算法,还是深度学习的计算机视觉,对要寻找的目标的大小,似乎是有要求的。对目标比较细小的场景,效果很不理想。
https://web.inf.ufpr.br/vri/d...
比如这张图里的汽车,非常的小,每个汽车大概只有十几个像素的宽和高。opencv 的主流算法 sift ,orb ,甚至连建立样本特征都做不到。
我不知道是不是我使用方法不太对,但是网上确实也有一些资料,说现有的计算机视觉技术对细小目标似乎不好使
SNIP/SNIPER中的多尺度处理
SNIP是多尺度训练(Multi-Scale Training)的改进版本。MST的思想是使用随机采样的多分辨率图像使检测器具有尺度不变特性。然而作者通过实验发现,在MST中,对于极大目标和过小目标的检测效果并不好,但是MST也有一些优点,比如对一张图片会有几种不同分辨率,每个目标在训练时都会有几个不同的尺寸,那么总有一个尺寸在指定的尺寸范围内。
SNIP的做法是只对size在指定范围内的目标回传损失,即训练过程实际上只是针对某些特定目标进行,这样就能减少domain-shift带来的影响。
已参与 「极客观点」 ,欢迎正在阅读的你也加入。