Faster RCNN详解 概念加源码集合全解学习心得

https://blog.csdn.net/weixin_43198141/article/details/90178512?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.edu_weight
这个只看了概念 里面有原文和代码 没下载 给出优缺点
Tensorflow-faster r-cnn github:Tensorflow Faster RCNN for Object Detection
paper:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
https://blog.csdn.net/qq_17448289/article/details/52871461?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.edu_weight
给出了一些基本物体检测的一些名词,然后后面讲了一些faster rcnn
https://blog.csdn.net/v_JULY_v/article/details/80170182?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.edu_weight
讲解了yolo 和ssd
目前最好的模型是 mask r-cnn yolo ssd 就看这三个的代码。

https://blog.csdn.net/jiongnima/article/details/79094159?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.edu_weight
详细讲了mask rcnn和其他经典的物体检测算法
在这里插入图片描述
这种取整操作(在Mask R-CNN中被称为quantization)对RoI分类影响不大,可是对逐像素的预测目标是有害的,因为对每个RoI取得的特征并没有与RoI对齐。因此,Mask R-CNN对RoI Pooling做了改进并提出了RoI Align。
RoI Align的主要创新点是,针对问题1,不再进行取整操作。针对问题2,使用双线性插值来更精确地找到每个块对应的特征。总的来说,RoI Align的作用主要就是剔除了RoI Pooling的取整操作,并且使得为每个RoI取得的特征能够更好地对齐原图上的RoI区域。
在Mask R-CNN中的RoI Align之后有一个"head"部分,主要作用是将RoI Align的输出维度扩大,这样在预测Mask时会更加精确。在Mask Branch的训练环节,作者没有采用FCN式的SoftmaxLoss,反而是输出了K个Mask预测图(为每一个类都输出一张),并采用average binary cross-entropy loss训练,当然在训练Mask branch的时候,输出的K个特征图中,也只是对应ground truth类别的那一个特征图对Mask loss有贡献。
三. Mask-RCNN 技术要点

● 技术要点1 - 强化的基础网络

 通过 ResNeXt-101+FPN 用作特征提取网络,达到 state-of-the-art 的效果。

● 技术要点2 - ROIAlign

 采用 ROIAlign 替代 RoiPooling(改进池化操作)。引入了一个插值过程,先通过双线性插值到14*14,再 pooling到7*7,很大程度上解决了仅通过 Pooling 直接采样带来的 Misalignment 对齐问题。

 PS: 虽然 Misalignment 在分类问题上影响并不大,但在 Pixel 级别的 Mask 上会存在较大误差。

 后面我们把结果对比贴出来(Table2 c & d),能够看到 ROIAlign 带来较大的改进,可以看到,Stride 越大改进越明显。 

● 技术要点3 - Loss Function

 每个 ROIAlign 对应 K * m^2 维度的输出。K 对应类别个数,即输出 K 个mask,m对应 池化分辨率(7*7)。Loss 函数定义:

        Lmask(Cls_k) = Sigmoid (Cls_k),    平均二值交叉熵 (average binary cross-entropy)Loss,通过逐像素的 Sigmoid 计算得到。

问题一:为什么基于faster-RCNN的网络可以用来做实例分割?

目标检测=类别+位置(faster-RCNN)

语义分割=物体轮廓(FCN)

实例分割=类别+位置+物体轮廓(Mask-RCNN)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这两次误差操作讲的真好啊
来自:https://blog.csdn.net/qq_27825451/article/details/89677068?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-1&spm=1001.2101.3001.4242
3)关键点总结:

总的损失由三部分组成,添加了一个mask损失
相较于经典的FCN,使用sigmoid代替softmax,只对与ROI对应的那个类别上使用sigmoid损失,避免不同的mask之间的竞争。

https://blog.csdn.net/yangdashi888/article/details/80902177
keras版本的mask rcnn 有代码 自己没测试全 (有机会用到在接着补充!!!)本来想用自己的虹膜库试试,一想 虹膜瞳孔和外圆就是那种想重合的感觉这能分开吗,心里嘀咕了 就没敢试试。。。
https://blog.csdn.net/heiheiya/article/details/81532914?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.edu_weight

扫描二维码关注公众号,回复: 13291398 查看本文章

http://www.doc88.com/p-67516651328822.html
发现一个mask rcnn的虹膜分割的专利 先看看专利咋弄的,,,然后再试试

Yolo采用一个CNN网络来实现检测,是单管道策略,其训练与预测都是end-to-end,所以Yolo算法比较简洁且速度快。第二点由于Yolo是对整张图片做卷积,所以其在检测目标有更大的视野,它不容易对背景误判。其实我觉得全连接层也是对这个有贡献的,因为全连接起到了attention的作用。另外,Yolo的泛化能力强,在做迁移时,模型鲁棒性高。
最后不得不谈一下Yolo的缺点,首先Yolo各个单元格仅仅预测两个边界框,而且属于一个类别。对于小物体,Yolo的表现会不如人意。这方面的改进可以看SSD,其采用多尺度单元格。也可以看Faster R-CNN,其采用了anchor boxes。Yolo对于在物体的宽高比方面泛化率低,就是无法定位不寻常比例的物体。当然Yolo的定位不准确也是很大的问题。
来自:https://zhuanlan.zhihu.com/p/32525231
代码可以运行 yolo的 一次一张

在YOLOv2中,每个卷积层后面都添加了Batch Normalization层,并且不再使用droput。使用Batch Normalization后,YOLOv2的mAP提升了2.4%。

猜你喜欢

转载自blog.csdn.net/zqx951102/article/details/107875010