Faster RCNN理论合集
他的视频总结的非常好!在CSDN也有博客。用户名:太阳花的小绿豆
这篇博客基本是在他的视频里面进行总结的。具体论文还没有看。
RCNN算法流程可分为4个步骤
R-CNN存在的问题:
Fast R-CNN算法流程可分为3个步骤
边界框回归器输出候选边界框的回归参数 ( d x , d y , d w , d h ) (d_x, d_y, d_w, d_h) (dx,dy,dw,dh)
P x , P y , P w , P h P_x,P_y,P_w,P_h Px,Py,Pw,Ph分别为候选框的中心x,y坐标,以及宽高
G ^ x , G ^ y , G ^ w , G ^ h \hat{G}_x,\hat{G}_y,\hat{G}_w,\hat{G}_h G^x,G^y,G^w,G^h分别为最终预测的边界框中心x,y坐标,以及宽高
G x , G y , G w , G h G_x,G_y,G_w,G_h Gx,Gy,Gw,Gh分别为ground truth的中心x,y坐标,以及宽高
G ^ x = P w d x + P x G ^ y = P h d x + P y G ^ w = P w exp ( d w ) G ^ h = P h exp ( d h ) \hat{G}_x=P_wd_x+P_x\\ \hat{G}_y=P_hd_x+P_y\\ \hat{G}_w=P_w\exp(d_w)\\ \hat{G}_h=P_h\exp(d_h)\\ G^x=Pwdx+PxG^y=Phdx+PyG^w=Pwexp(dw)G^h=Phexp(dh)
L ( p , u , t u , v ) = 分 类 损 失 + 边 界 框 回 归 损 失 = L c l s ( p , u ) + λ [ u ⩾ 1 ] L l o c ( t u , v ) L(p,u,t^u,v)=分类损失+边界框回归损失=L_{cls}(p,u)+\lambda[u\geqslant1]L_{loc}(t^u,v) L(p,u,tu,v)=分类损失+边界框回归损失=Lcls(p,u)+λ[u⩾1]Lloc(tu,v)
p p p是分类器预测的softmax概率分布 p = ( p 0 . . . p k ) p=(p_0...p_k) p=(p0...pk)
u u u对应真实类别标签(采用one-hot编码)
t u t^u tu对应边界框回归器预测的回归参数 ( t x u , t y u , t w u , t h u ) (t^u_x, t^u_y, t^u_w, t^u_h) (txu,tyu,twu,thu)
v v v对应真实目标的边界框回归参数 ( v x , v y , v w , v h ) (v_x, v_y, v_w, v_h) (vx,vy,vw,vh),可以通过下面的公式逆推
G x = P w v x + P x G y = P h v x + P y G w = P w exp ( v w ) G h = P h exp ( v h ) G_x=P_wv_x+P_x\\ G_y=P_hv_x+P_y\\ G_w=P_w\exp(v_w)\\ G_h=P_h\exp(v_h)\\ Gx=Pwvx+PxGy=Phvx+PyGw=Pwexp(vw)Gh=Phexp(vh)
修正分类。
L c l s ( p , u ) = − log ( p u ) L_{cls}(p,u)=-\log(p_u) Lcls(p,u)=−log(pu)
p p p是分类器预测的softmax概率分布 p = ( p 0 . . . p k ) p=(p_0...p_k) p=(p0...pk)
u u u对应真实类别标签(采用one-hot编码)
由于采用的是one-hot编码,非对应类别的标签都为0,化简即可得上述公式
修正边界框。
L l o c ( t u , v ) = ∑ i ∈ { x , y , w , h } s m o o t h L 1 ( t i u − v i ) L_{loc}(t^u,v)=\sum_{i\in\{x,y,w,h\}}smooth_{L_1}(t^u_i-v_i) Lloc(tu,v)=i∈{
x,y,w,h}∑smoothL1(tiu−vi)
s m o o t h L 1 ( x ) = { 0.5 x 2 , i f ∣ x ∣ < 1 ∣ x ∣ − 0.5 , o t h e r w i s e smooth_{L_1}(x)=\left\{ \begin{array}{lr} 0.5x^2,& if |x| <1\\ |x|-0.5,& otherwise\\ \end{array}{} \right. smoothL1(x)={
0.5x2,∣x∣−0.5,if∣x∣<1otherwise
Faster R-CNN算法流程可分为3个步骤
RPN生成的候选框会等比例放缩回输入图像,RPN结构如图所示
有几点需要知道:
三种尺度(面积) { 12 8 2 , 25 6 2 , 51 2 2 } \{128^2,256^2,512^2\} {
1282,2562,5122},由经验所得
三种比例 { 1 : 1 , 1 : 2 , 2 : 1 } \{ 1:1, 1:2, 2:1 \} {
1:1,1:2,2:1}
每个位置在原图上都对应有 3 × 3 = 9 3\times3=9 3×3=9个anchor
对于一张1000x600x3的图像,大约有60x40x9(20k)个anchor,忽略跨越边界的anchor以后,剩下约6k个anchor。对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩2k个候选框。
L ( { p i } , { t i } ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ ) L(\{p_i\},\{t_i\})=\frac{1}{N_{cls}}\sum_iL_{cls}(p_i,p_i^*)+\lambda\frac{1}{N_{reg}}\sum_ip_i^*L_{reg}(t_i,t_i^*) L({
pi},{
ti})=Ncls1i∑Lcls(pi,pi∗)+λNreg1i∑pi∗Lreg(ti,ti∗)
p i p_i pi表示第i个anchor预测为真实标签的概率
p i ∗ p_i^* pi∗当为正样本时为1,当为负样本时为0
t i t_i ti表示第i个anchor的边界框回归参数
t i ∗ t_i^* ti∗表示第i个anchor对应的ground truth bbox的边界框回归参数
N c l s N_{cls} Ncls表示一个mini-batch中所有样本数量,论文为256
N r e g N_{reg} Nreg表示中心点的个数,约2400
λ \lambda λ为超参数,论文为10
感觉和FAST R-CNN的loss差不多,都是分类损失+边界框回归损失。
这部分和fast r-cnn一致
L ( p , u , t u , v ) = 分 类 损 失 + 边 界 框 回 归 损 失 = L c l s ( p , u ) + λ [ u ⩾ 1 ] L l o c ( t u , v ) L(p,u,t^u,v)=分类损失+边界框回归损失=L_{cls}(p,u)+\lambda[u\geqslant1]L_{loc}(t^u,v) L(p,u,tu,v)=分类损失+边界框回归损失=Lcls(p,u)+λ[u⩾1]Lloc(tu,v)
文章浏览阅读1k次,点赞3次,收藏17次。本文主要对PyTorch的tutorial之一,Advanced: Making Dynamic Decisions and the Bi-LSTM CRF,进行详细解读,行文顺序上,首先说明一下前面几个辅助函数的作用,然后主体按照Run training的运行顺序进行。(以下删除了原代码注释,可回tutorial中查看)def argmax(vec): _, idx = torch.m..._bilstm-crf代码解读
文章浏览阅读1.8k次,点赞8次,收藏6次。五年多以前,我进入了全国重点名牌大学:武汉大学读书。我抱着最理想的热情,以为从此走上了一条报效祖国,报效父母的人生坦途,以为我的人生即将要大展宏图! 三年以前,抱着对“我的大学”最大的疑惑和不解,我辞去了分团委副书记的职务,开始认真地大量阅读和思考我的人生,我的大学,我的未来。试图找到对周围一切我无法理解问题的解决方案。这一次的决定,也意味着我放弃了原来一直抱有的,通过“从政”来为_武汉大学程枫
文章浏览阅读562次。一运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。 C# 有丰富的内置运算符,分类如下:1. 算术运算符下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:运算符描述实例+把两个操作数相加A + B 将得到 30-从第一个操作数中减去第二个操作数A - B 将得到 -10*把两个操作数相乘..._.net 算术运算取值
文章浏览阅读2.5w次,点赞38次,收藏129次。那些所谓的华为硬件笔试对华为结构工程师都不靠谱都是假的!!假的!!作为正在准备秋招并且投了心心念念的华为的答主(材控大三本科),就在刚刚做了华为的结构工程师笔试虽然感觉已经凉了,仅此为其他投华为结构工程师的提个醒。首先我做的都是选择题,其中单选40道占80分,不定向选择5道占20分。真题,据我的记忆,涉及材料力学、理论力学、机械设计、工程制图,还有一些关于材料和量子力学的,其次没有微机原..._华为结构工程师笔试题目及答案
文章浏览阅读414次。简单拼凑的,选择发送文件所在文件夹,选择发送文件名与邮箱对应目录,校验所含文件是否存在,批量给对应邮箱发送邮件。import sysfrom PyQt5 import QtWidgets, QtCore, QtGuifrom PyQt5.QtWidgets import *import osimport reimport timeimport pygameimport xlrdimport smtplib #发送邮件模块_python 读取excel 邮件群发、多附件
文章浏览阅读2.6k次。我已经是Spring Framework框架的忠实粉丝。对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题。但是,它构建的J2EE项目变得比较臃肿,需要被一种新的解决方案替代。我最大的抱怨就是最开始使用spring Framework构建项目十分缓慢和复杂,比如构建一个包含JPA的MVC应用。为改变这种情况,Spring Boot应运而生了。Spring_spring mvc 修改whitelabel error page
文章浏览阅读382次。vue的基础学习_如作业视频所示,本次训练目标是 todolist 的删除和添加功能 任务过程: 静态页面准
文章浏览阅读811次,点赞19次,收藏17次。2.本实验中的jiazao.m为语音加噪实验,xiaozao.m为语音消噪实验,musicadd.m为语音全成实验,musicfilter.m为语音滤波实验,dlaymusic.m为语音混响实验.(注意:在运行lei2.m之前必须将work中名为lei3的.wav音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。1.本实验提供的beiguo.wav,lei1.wav,music.wav,shao.wav,wang.wav均为原始语音信号._matlab 语音滤波实验
文章浏览阅读69次。说明:本系列基本上是《WPF揭秘》的读书笔记。在结构安排与文章内容上参照《WPF揭秘》的编排,对内容进行了总结并加入一些个人理解。不同于内容控件与Items控件显示范围随着内部内容而变化,Range控件的显示范围是固定的。Range控件继承自RangeBase类,这个类提供了Range控件的核心功能 – 存储并显示数值。这个类的成员有如下:属性:Value..._wpf range特性
文章浏览阅读554次。我们接着看GCD,下面我们来看GCD中的一些方法dispatch_suspend(queue)暂停某个队列上的操作,如果某个跟这个队列相关的block已经开始执行,则会在这个block执行完毕之后再进行暂停dispatch_resume(queue)恢复某个队列上的操作dispatch_set_target_queue(NSObject,queue)指定一个dispatch_swift dispatch_barrier_sync
文章浏览阅读1.5w次,点赞5次,收藏21次。elementUI的el-upload组件使用http-request自定义上传_el-upload http-request
文章浏览阅读284次。MATLAB是美国MathWorks公司出品的商业数学软件,MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程..._支持arm的matlab替代软件