百科问答小站 logo
百科问答小站 font logo



目标检测算法中Two-stage算法速度慢,到底在哪里? 第1页

  

user avatar   baiyangharen 网友的相关建议: 
      

这么讲吧,two-stage比one-stage真正的损耗在于two-stage必须保证input image的resolution,拿以前的Pascal来说,two-stage的FRCN默认setting最短边缩放到600,最长边不超过1000,COCO的默认setting最短边缩放到800,最长边不超过1333,;而one-stage的SSD包括yolo,512*512甚至416*416就可以达到相近的performance,你们算算这里差多少。用低resolution我也跑过two-stage,直接血崩,但是速度和one-stage差距很小。

很多答案说two-stage有RPN,有ROI Pooling,还有后面region-wise的head计算所以慢,其实在RPN提出之后这些计算损耗相比backbone而言我认为是可以忽略不计的了(以前SS的时候2000个proposal确实是很高的损耗,RPN之后300个proposal计算非常小。还有RFCN的PSROI Pooling并没有比ROI Pooling快到哪里去),关键在于(i) input resolution; (ii)特别设计过的那些轻量但是performance不错的darknet 系列。

我个人认为,two-stage由于需要显式的计算region中的feature,所以对于resolution的要求更高,同样对于不同问题的robust更强;而one-stage是非常隐式的用统一的卷积去学习feature进行预测,所以对于resolution的需求不高,同样的robust相比也弱一些,反正我是很讨厌yolo那套东西,放在不同问题上需要精细调参才可以work。

我记得大概19年除了好多bridging one-stage & two-stage的文章,不知道有没有做过那low resolution input的实验。不过意义也不大了,现在的重点不纠结于这一块。


user avatar   bu-zhi-zhe-17-95 网友的相关建议: 
      

刚一只脚入门,一点愚见。

Two-stage方法是先生成region proposal再将其喂给detect head。detect head 只是一个将二维图的部分区域对应的region feature通过Fully-connected layers 输出softmax结果(分类)和box regressor结果(位置)。这一部分的速度基本上和图像检测这一细分类别没有直接关系,而是由FC layers 处理feature向量的速度所影响的。

那么主要的问题就出现在生成region proposal的过程中。在R-CNN中使用的是selective search 算法,非常耗时。到了Fast R-CNN中不再直接根据图片选择region,而是先让图片经过CNN得到一个convolutional feature map,再利用RoI pooling对feature map筛选region proposals。这相对于R-CNN已经快很多了,单张图片的检测处理速度达到了2.3s(相比较于R-CNN的49s)。但是,Fast R-CNN花费了大约2s的平均时间在生成region proposals这一步。因此,Faster R-CNN正是为了优化这一部分的时间,也就是生成region proposal的过程。Faster 提出了一个新的网络模型Region Proposal Networks(RPN)来选择regions,再将其投影到原本的feature map上,从而进行feature-related proposal的筛选。至此单张图片的检测时间降至198ms(0.2s)。

不得不提的是,这三篇开山之作都是出自Facebook的FAIR组,Ross Grishick & Kaiming He大佬等人。不知道什么时候才可以望其项背:-I




更/

眼一花才看清问题是进一步问faster rcnn的速度慢在哪,权当我的梳理文吧见笑了。关于原问题的回答以后有余力再补充




  

相关话题

  把某人的 DNA 序列作为输入,正面照片作为输出,丢到深度神经网络里面学习,可行吗? 
  ICLR 2019 有什么值得关注的亮点? 
  在实际工程系统中,MPC太复杂,难以做到realtime。因此都利用数据,MPC对比RL还有优势么? 
  怎样实现浮点数除以一个数再乘以这个数结果等于原值? 
  了解/从事机器学习/深度学习系统相关的研究需要什么样的知识结构? 
  行为识别常用哪种特征提取? 
  现在的人工智能是否走上了数学的极端? 
  多模态训练,怎么解决不同模态之间差异的问题? 
  算法工程师如何应对做算法策略的不确定性;比如没效果,这时绩效怎么保证? 
  一道程序员面试题? 

前一个讨论
基于对比学习(Contrastive Learning)的文本表示模型【为什么】能学到语义【相似】度?
下一个讨论
2020年,多标签学习(multi-label)有了哪些新的进展?





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利