1.cornerpooling的设计,个人觉得解释有些牵强。
这里的两个特征图如何解释,corner点为何是横向与纵向响应最强的点。如果仅仅当成一种奇特的池化方式,恰好也有着不错的效果,那倒是可以接受,论文中的解释实在难以接受。
看了CSDN AI之路的博客https://blog.csdn.net/u014380165/article/details/83032273,似乎有些理解了。特此摘抄下来。
如图Figure2所示。因此CornerNet是预测左上角和右下角两个角点,但是这两个角点在不同目标上没有相同规律可循,如果采用普通池化操作,那么在训练预测角点支路时会比较困难。考虑到左上角角点的右边有目标顶端的特征信息(第一张图的头顶),左上角角点的下边有目标左侧的特征信息(第一张图的手),因此如果左上角角点经过池化操作后能有这两个信息,那么就有利于该点的预测,这就有了corner pooling。
2.heapmap的损失函数,角点周围的像素按照高斯分布处理可以理解,毕竟离角点比较近的点形成的bbox与gt相交面积应该不小,与较远的点不可相同而论。然而这个损失函数我有点疑惑,y=1的时候尚可理解,此时要想损失接近零,p应该接近1,可是其它情况就有问题了。
且看这个函数(1-y)(p)log(1-p),只要p为0,不管y等于什么,表达式都等于0啊。