目标检测中region proposal的作用?
ssd,yolo训练网络的时候为什么要用anchor box,图片不是有标ground truth box 吗?为什么不能直接用这个训练呢?
先更正下提问者的描述,yolo本身不含有anchor机制。
以下回答适合对目标检测中anchor的作用和机制比较了解的读者阅读。
首先我们明确一个定义,当前主流的Object Detection框架分为1 stage和2 stage,而2 stage多出来的这个stage就是Regional Proposal过程,明确这一点后,我们继续讲。
Regional Proposal的输出到底是什么?
我们首先看一下以Faster R-CNN为代表的2 stage目标检测方法
图1
可以看到,图中有两个Classification loss和两个Bounding-box regression loss,有什么区别呢?
1、Input Image经过CNN特征提取,首先来到Region Proposal网络。由Regio Proposal Network输出的Classification,这并不是判定物体在COCO数据集上对应的80类中哪一类,而是输出一个Binary的值p,可以理解为 ,人工设定一个threshold=0.5。
RPN网络做的事情就是,如果一个Region的 ,则认为这个Region中可能是80个类别中的某一类,具体是哪一类现在还不清楚。到此为止,Network只需要把这些可能含有物体的区域选取出来就可以了,这些被选取出来的Region又叫做ROI (Region of Interests),即感兴趣的区域。当然了,RPN同时也会在feature map上框定这些ROI感兴趣区域的大致位置,即输出Bounding-box。
----打个比方----
我上午第四节课饿得不行,我就想着中午要吃什么?附近好多西餐厅和中餐厅,餐厅里菜品有很多。但是我生活费不够了。。gg。。不太想吃(吃不起)西餐,所以无论西餐厅里有什么菜品,我都不会考虑;只有路过中餐厅时,我才会进去看看具体吃什么菜。
----------真是尴尬的栗子----------
So, RPN网络做的事情就是,把一张图片中,我不感兴趣的区域——花花草草、大马路、天空之类的区域忽视掉,只留下一些我可能感兴趣的区域——车辆、行人、水杯、闹钟等等,然后我之后只需要关注这些感兴趣的区域,进一步确定它到底是车辆、还是行人、还是水杯(分类问题)。。。。
你可能会看到另一对通俗易懂的词语,前景(车、人、杯)和背景(大马路、天空)。
图2.天空和草地都属于背景
图3.天空和马路也都是背景
啊 好的,到此为止,RPN网络的工作就完成了,即我们现在得到的有:在输入RPN网络的feature map上,所有可能包含80类物体的Region区域的信息,其他Region(非常多)我们可以直接不考虑了(不用输入后续网络)。