大家好,又见面了,我是你们的朋友全栈君。
【提特征】
RPN网络前面是一个提特征的网络,比如VGG,Res等,传给RPN网络的是一个特征图,其实也就是一个tensor
比如用ZF网络(论文里面用的)
输出特征图:13*13*256
【RPN】
拿到模型的特征,RPN网络首先加了一个3*3*256*256的卷积层(其实不是很清楚为什么加,可能是为了扩大感受野)
这样就会得到11*11*256的输出,前面11*11是图形矩阵,其中每一个点在原图中都是一个很大的区域,256表示这个区域的特征,具体的计算不再讨论
厉害的一步来了,之后在这个卷积之后,各自接了两个全连接层,一个输出18,一个输出36
这是为啥呢?
先看下面这个图
上面我说的11*11,其中每一个点,也就是特征图上的每一个点其实在原图中都是一块很大的区域(不太清楚的再看看卷积),也就是上面的黑框,在这个区域内可能有目标,为了能更能逼近目标,我们需要3种尺度,和3种形状。3*3=9,就是图中的那9种物体框。假设原图中有一个物体,那我们通过在原图上平移黑框,就总能找到一个颜色框能正好把物体框在里面(真是厉害这想法),而且尺度啊形状最接近。
那么如何平移的呢?在原图上你一个像素一个像素平移没意义啊,难道要重复提取特征?所以平移必须在特征图上平移,因为特征图最后总能映射回原图。11*11的特征图区域,在原图中就表示11*11个大黑框,每个大黑框里面又有9个小颜色框,这样就会产生11*11*9个不同位置,不同尺度,不同形状的物体框,基本足够框出所有物体了。
【如何训练】
损失函数参考这篇文章,等我代码熟了直接上代码
https://blog.csdn.net/wfei101/article/details/77150573
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152299.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...