这篇躺在印象笔记里面很久了,最近业余稍微空闲了些,拿出来拍拍灰,整理一下。 没有跟进目前的目标检测的进展,不过其实没关系,工业界 Faster-RCNN 还是用的比较多的。
本来写着自己之前 Two Stage 和 One Stage 的技术选择的历史问题(其实,两者本相通,后面等我整理印象笔记里面更早的一篇…),而双阶段的最大优势就是来源于 ROI Align 带来的训练多样性。
自己对 ROI Align 是这么看的:
ROI Align 是一种特征共享的途径,提供了在目标检测中进行多任务训练的通用框架。 而且可以非常方便的直接让检测的整个 feature extractor 参与训练。
ROI Align提取的结果就是图片局部特征插值后的结果,而且是可以backward的(这是最重要的)。
这样的一个框架提供了非常便捷的多任务学习能力:只需要将这些局部插值特征继续塞在特定任务的网络中就可以。
具体什么可以结合自己的业务场景,以及训练时的任何脑洞(完全不局限,因为infer的时候,这些脑洞的部分都可以去掉)。
只要有训练数据,只要有脑洞,就可以通过 ROI Align 针对图像的特定局部特征进行训练(虽然是局部特征,但是由于是CNN,基本上训练的就是整个feature extractor)。
虽然多任务的训练难度更大,但是如果能够熟悉训练方法和超参,一般来说,最终的网络会在主要任务上获得更好的效果。所以,如果可以的话,尽量用上MTL。
多任务学习的带来的优势:
有关多任务的简单资料,可以参考下这些内容: