一文看懂近年火到不行的CNN图像识别:从R-CNN到Mask R-CNN
作者头像
  • 李翠云
  • 2018-08-09 15:38:34 1

卷积神经网络在图像识别领域的发展历程

近年来,卷积神经网络(Convolutional Neural Networks, CNNs)在图像识别方面取得了显著进展,尤其是在一些重要比赛中的表现甚至超越了人类水平。CNNs 的成功并非一蹴而就,而是经过长期发展和完善的结果。本文将探讨 CNNs 在图像识别领域的发展历程,重点介绍 CNNs 在图像实例分割中的应用。

CNNs 的广泛应用

CNNs 除了用于图像分类,还在许多其他领域得到广泛应用。本文将详细介绍 CNNs 在图像实例分割中的重要作用。

CNNs 的发展历程

2012年,Alex Krizhevsky、Geoff Hinton 和 Ilya Sutskever 在 ImageNet 挑战赛中取得了优异成绩,自此 CNNs 成为了图像分类的标准工具。随后,CNNs 不断改进,如今在 ImageNet 挑战赛中的表现甚至超过了人类水平。

ImageNet 挑战赛中的表现

在 ImageNet 挑战赛中,CNNs 的表现已经超过了人类水平。这些成果令人震惊,但图像分类相对于人类视觉理解的复杂性和多样性来说还显得不足。

复杂场景下的图像识别

现实生活中的场景通常由许多不同的、重叠的物体、背景和动作组成。我们不仅需要识别这些不同的物体,还要识别它们的边界、差异和它们之间的关系。

目标检测与分割

CNNs 能否帮助我们完成如此复杂的任务?即,给出一张复杂的图像,能否利用 CNNs 识别图像中的不同目标及其边界?Ross Girshick 和他的同事们的研究表明,答案是肯定的。

本文目标

本文将介绍目标检测和分割中所用到的主要技术及其演变过程,特别是 R-CNN(区域 CNN)、Fast R-CNN 和 Faster R-CNN,以及 Mask R-CNN。这些技术的论文链接如下:

  1. R-CNN: https://arxiv.org/abs/1311.2524
  2. Fast R-CNN: https://arxiv.org/abs/1504.08083
  3. Faster R-CNN: https://arxiv.org/abs/1506.01497
  4. Mask R-CNN: https://arxiv.org/abs/1703.06870

R-CNN 的发展

2014年,R-CNN 开始应用于目标检测。受多伦多大学 Hinton 实验室的启发,加州大学伯克利分校的 Jitendra Malik 教授团队提出了将 Krizhevsky 的研究成果扩展到目标检测的方法。R-CNN 通过选择性搜索生成边界框,然后使用改进后的 AlexNet 判断这些区域建议是否有效。

R-CNN 的工作原理

  • 输入:图像
  • 输出:图像中每个物体的边界框 + 标签

R-CNN 采用选择性搜索方法生成边界框或区域建议,然后使用 AlexNet 进行分类。在 CNN 的最终层,增加了支持向量机(SVM),用于判断区域中是否包含目标及其类别。最后,通过线性回归调整边界框。

Fast R-CNN 的改进

2015年,Ross Girshick 解决了 R-CNN 的效率问题,提出了 Fast R-CNN。Fast R-CNN 通过引入感兴趣区域池(RoIPool)减少了重复计算,并将所有模型整合到一个网络中,提高了整体效率。

RoIPool 方法

RoIPool 通过一次完整的前向传播,从前向传播结果中提取每个感兴趣区域的特征。这样,我们只需要一次原始图像的 CNN 前向传播,而不是多次。

整合所有模型

Fast R-CNN 将 CNN、分类器和边界框线性回归融合到单一模型中,使用 softmax 层取代 SVM 分类器,增加一个平行的线性回归层,以输出边界框坐标。

Faster R-CNN 的进一步优化

2016年,微软研究团队提出了 Faster R-CNN,进一步优化了区域建议的生成速度。Faster R-CNN 使用一个单独的 CNN 完成区域建议和分类,大大提高了效率。

区域建议网络

Faster R-CNN 在 CNN 的基础上增加了一个区域建议网络(Region Proposal Network),该网络在 CNN 特征图上滑动窗口,输出 k 个潜在的边界框和分数。这些锚点框根据常见物体的长宽比构建,用于指导区域建议。

Mask R-CNN 的突破

2017年,Kaiming He 和 Ross Girshick 在 Facebook AI 上提出了 Mask R-CNN,将 Faster R-CNN 扩展到像素级分割。Mask R-CNN 增加了一个全卷积网络(Fully Convolutional Network,FCN),用于生成 mask(分割输出结果)。

RoIAlign 的改进

Mask R-CNN 通过 RoIAlign 方法解决了 RoIPool 引起的对齐问题,提高了分割精度。RoIAlign 使用双线性插值来精确对齐特征图和原始图像,避免了偏差。

应用案例

Mask R-CNN 能够对图像中的目标进行分割和分类,提供精确的分割结果。

源码资源

如果你想自己试验这些算法,这里有相关的源码库:

  • Faster R-CNN
    • Caffe: rbgirshick/py-faster-rcnn
    • PyTorch: longcw/fasterrcnnpytorch
    • MatLab: ShaoqingRen/faster_rcnn
  • Mask R-CNN
    • PyTorch: felixgwu/maskrcnnpytorch
    • TensorFlow: CharlesShang/FastMaskRCNN

展望未来

短短几年内,从 R-CNN 到 Mask R-CNN 的发展展示了计算机视觉的巨大进步。未来几年,在持续的资金、关注和支持下,计算机视觉技术有望取得更多突破,使我们更接近人类水平的视觉。

亲自上手实战 CNN

如果你对 CNN 感兴趣,不妨跟随拥有十余年数据科学经验的 Stephen 老师,一起在线解析代码,亲自搭建一个属于你的 CNN 应用。本活动完全免费!

项目主题:老板接近就自动切屏的深度学习应用如何实现?

核心技术点:深度学习、CNN、OpenCV

主讲嘉宾:Stephen,Fortinet 高级数据科学家,前 IBM 资深软件研发工程师,拥有十五年在深度学习与数据科学领域的工业界经验。

时间:

  • 美西时间:8月13日 周一 07:00 PM
  • 北京时间:8月14日 周二 10:00 AM

报名方式:

扫码报名或点击阅读原文报名。

希望以上内容能帮助你更好地理解 CNN 在图像识别和分割中的应用。

    本文来源:图灵汇
责任编辑: : 李翠云
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
一文CNN识别图像近年不行Mask
    下一篇