《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读

《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读_第1张图片

《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读_第2张图片
《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读_第3张图片Backbone输出两个模块:Top—left Corner模块和Bottom—right Corner模块。以Top—left Corner模块为例,Backbone先输出三个特征图,其中两个分别是:用来做水平corner pooling的特征图;用来做竖直cornerpooling的特征图。这两张特征图经过corner pooling之后相互结合,就得到了左上角关键点的预测特征图(右下角预测特征图同理可得)。


《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读_第4张图片
《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读_第5张图片
Corner pooling的目的是预测左上角和右下角的关键点。

具体原理:

以图1(红衣女滑雪图)为例,先看水平corner pooling的图,女人的帽子顶端的像素点肯定比背景大,所以按照上图就假设帽子顶端处的值为3,那么从左往右看,最大的值就是3了,那么左边的值就得全部变成3,从3的位置再往右看,最大值为2,那后面的网格的值就变成2。这个算法的关键是找到值最大的网格然后确保该网格左边的网格全部都能变成该值,也就是把水平方向最明显的特征向左延续,然后再把竖直方向最明显的特征向上延续,这样当两幅热图相加时,就能让两者最明显特征的路线相重叠,这样加出来的值肯定也是最大的,因此就能推测出左上角关键点的位置了(右下角同理可求得)。

《CornerNet: Detecting Objects as Paired Keypoints》之 corner pooling 解读_第6张图片
这张图是corner pooling算法的具体运算过程。H,W为热图的长宽;fl,ft分别代表两张热图;ij代表坐标,tij,lij代表该点的值。

你可能感兴趣的:(python,计算机视觉,算法,机器学习,人工智能)