Mask-RCNN做对象检测和实例分割

作者 | George Seif

译者 | 天道酬勤,责编 | Carol

出品 | AI科技大本营(ID:rgznai100)

Mask-RCNN做对象检测和实例分割:

https://miro.medium.com/max/1200/1*s9raSe9mLeSSuxE3API-ZA.gif

你想做计算机视觉吗?

如今,深度学习是必经之路。大规模数据集以及深层卷积神经网络(CNN)的表征能力可提供超准确和强大的模型。但目前仍然只有一个挑战:如何设计模型?

像计算机视觉这样广泛而复杂的领域,解决方案并不总是清晰明了的。计算机视觉中的许多标准任务都需要特别考虑:分类、检测、分割、姿态估计、增强和恢复以及动作识别。尽管最先进的网络呈现出共同的模式,但它们都需要自己独特的设计。

那么,我们如何为所有这些不同的任务建立模型呢?

作者在这里向你展示如何通过深度学习完成计算机视觉中的所有工作!

分类

计算机视觉中最出名的就是分类。图像分类网络从一个固定大小的输入开始。输入图像可以有任意数量的通道,但对于RGB图像通常为3。在设计网络时,分辨率在技术上可以是任意大小,只要足够大到能够支持在整个网络中将要进行的向下采样量即可。例如,如果你对网络内的4个像素进行向下采样,则你的输入大小至少应为4²= 16 x 16像素。

随着深入网络,当我们尝试压缩所有信息并降至一维矢量表示形式时,空间分辨率将降低。为了确保网络始终有能力将其提取的所有信息进行处理,我们根据深度的比例增加特征图的数量,来适应空间分辨率的降低。也就是说,我们在向下采样过程中损失了空间信息,为了适应这种损失,我们扩展了特征图来增加我们的语义信息。

在选择了一定数量的向下采样后,特征图被矢量化并输入到一系列完全连接的图层中。最后一层的输出与数据集中的类一样多。

目标检测

目标检测器分为两种:一级和二级。他们两个都以锚框开始。这些是默认的边界框。我们的检测器将预测这些框与地面真相之间的差异,而不是直接预测这些框。

在二级检测器中,我们自然有两个网络:框提议网络和分类网络。框提议网络在认为很有可能存在物体的情况下为边界框提供坐标。再次,这些是相对于锚框。然后,分类网络获取每个边界框中的潜在对象进行分类。

在一级检测器中,提议和分类器网络融合为一个单一阶段。网络直接预测边界框坐标和该框内的类。由于两个阶段融合在一起,所以一级检测器往往比二级检测器更快。但是由于两个任务的分离,二级检测器具有更高的精度。

快速RCNN二级目标检测架构

SSD一级目标检测架构

分割

分割是计算机视觉中较独特的任务之一,因为网络既需要学习低级信息,也需要学习高级信息。低级信息可按像素精确分割图像中的每个区域和对象,而高级信息可直接对这些像素进行分类。这导致网络被设计为将来自较早层和高分辨率(低层空间信息)的信息与较深层和低分辨率(高层语义信息)相结合。

如下所示,我们首先通过标准分类网络运行图像。然后,我们从网络的每个阶段提取特征,从而使用从低到高的范围内的信息。每个信息级别在依次组合之前都是独立处理的。当这些信息组合在一起时,我们对特征图进行向上采样,最终得到完整的图像分辨率。

要了解更多关于如何分割与深度学习工作的细节,请查看这篇文章:

https://towardsdatascience.com/semantic-segmentation-with-deep-learning-a-guide-and-code-e52fc8958823        

GCN细分架构

姿态估计

姿态估计模型需要完成两个任务:(1)检测图像中每个身体部位的关键点;(2)找出如何正确连接这些关键点。这分以下三个阶段完成:

  1. 使用标准分类网络从图像中提取特征。

  2. 给定这些特征,就可以训练一个子网络来预测一组2D热图。每个热图都与一个特定的关键点相关联,并包含每个图像像素关于是否可能存在关键点的置信值。

  3. 再次给出分类网络的特征,我们训练一个子网络来预测一组2D向量场,其中每个向量场都与关键点之间的关联度进行编码。然后,具有较高关联性的关键点被称为已连接。

用这种方法训练子网络的模型,可以联合优化关键点的检测并将它们连接在一起。    

OpenPose姿态估计架构

增强和恢复

增强和恢复网络是它们自己独特的野兽。我们不会对此进行任何向下采样,因为我们真正关心的是高像素/空间精度。向下采样会真正抹杀这些信息,因为它将减少我们为空间精度而拥有的像素数。相反,所有处理都是在全图像分辨率下完成的。 

我们开始以全分辨率将想要增强/恢复的图像传递到我们的网络,而无需进行任何修改。网络仅由许多卷积和激活函数组成。这些块通常是受启发的,并且有时直接复制那些最初为图像分类而开发的块,例如残差块、密集块、挤压激励块等。最后一层没有激活函数,即使是sigmoid或softmax也没有,因为我们想直接预测图像像素,不需要任何概率或分数。 

这就是所有这些类型的网络。在图像的全分辨率上进行了大量的处理,来达到较高的空间精度,使用了与其他任务相同的卷积。

EDSR超分辨率架构

动作识别

动作识别是少数几个需要视频数据才能正常运行的应用程序之一。要对一个动作进行分类,我们需要了解随着时间推移,场景中发生的变化, 这自然导致我们需要视频。我们的网络必须经过训练来学习时空信息,即时空变化。最完美的网络是3D-CNN。 

顾名思义,3D-CNN是使用3D卷积的卷积网络。它们与常规CNN的不同之处在于,卷积是在3维上应用的:宽度、高度和时间。因此,每个输出像素都是根据其周围像素以及相同位置的前一帧和后一帧中的像素进行计算来预测的。

直接大量传递图像

视频帧可以通过几种方式传递:

  1. 直接在大批量中,例如第一个图。由于我们正在传递一系列帧,因此空间和时间信息都是可用的。

单帧+光流(左)            视频+光流(右)

  1. 我们还可以在一个流中传递单个图像帧(数据的空间信息),并从视频中传递其相应的光流表示形式(数据的时间信息)。我们将使用常规2D CNN从这两者中提取特征,然后再将其组合起来传递给我们的3D CNN,后者将两种类型的信息进行合并。

  2. 将帧序列传递给一个3D CNN,并将视频的光流表示传递给另一个3D CNN。这两个数据流都具有可用的空间和时间信息。鉴于我们正在对视频的两种不同表示(均包含我们的所有信息)进行特定处理,因此这是最慢的选择,但也可能是最准确的选择。

所有这些网络都输出视频的动作分类。

原文:https://towardsdatascience.com/how-to-do-everything-in-computer-vision-2b442c469928

推荐阅读

  • 那个分分钟处理 10 亿节点图计算的 Plato,现在怎么样了?

  • 看似毫不相干,哲学与机器学习竟有如此大的交集

  • 黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下

  • “谷歌杀手”发明者,科学天才 Wolfram

  • 数据库激荡 40 年,深入解析 PostgreSQL、NewSQL 演进历程

  • 5分钟!就能学会以太坊 JSON API 基础知识

  • 你点的每个“在看”,我都认真当成了AI

如何通过深度学习,完成计算机视觉中的所有工作?相关推荐

  1. 深度学习在计算机视觉中的应用长篇综述

    深度学习在计算机视觉中的应用长篇综述 前言 2012年ImageNet比赛,使深度学习在计算机视觉领域在全世界名声大震,由此人工智能的全球大爆发.第一个研究CNN的专家使Yann LeCun,现就职于 ...

  2. 深度学习在计算机视觉中的应用

    计算机视觉领域正在从统计方法转向深度学习神经网络方法. 计算机视觉中仍有许多具有挑战性的问题需要解决.然而,深度学习方法正在针对某些特定问题取得最新成果. 在最基本的问题上,最有趣的不仅仅是深度学习模 ...

  3. 【百家稷学】深度学习与计算机视觉核心理论与实践(中国地质大学实训)

    继续咱们百家稷学专题,本次是有三AI在中国地质大学进行的暑期课程教学.百家稷学专题的目标,是走进100所高校和企业进行学习与分享. 分享主题 本次分享是在中国地质大学机械与电子信息学院进行,主题是&l ...

  4. 【AI in 美团】深度学习在OCR中的应用

    背景 计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测.识别.理解.跟踪.判别决策的功能.以美团业务为例,在商家上单.团单展示.消费评价等多个环节都会涉及计算机视觉的应用 ...

  5. 【AI in 美团】 深度学习在OCR中的应用

    2019独角兽企业重金招聘Python工程师标准>>> 背景 计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测.识别.理解.跟踪.判别决策的功能.以美团 ...

  6. 深度学习在OC中的应用

    背景 计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测.识别.理解.跟踪.判别决策的功能.以美团业务为例,在商家上单.团单展示.消费评价等多个环节都会涉及计算机视觉的应用 ...

  7. 深度学习与计算机视觉

    目录 1 深度学习 1.1 人工智能 1.2 机器学习 1.3 深度学习 1.3.1 深度学习发展历程 1.3.2 深度学习中的核心因素 1.3.3 深度学习模型分类 1.3.4 深度学习框架 2 计 ...

  8. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较

    作者: 寒小阳  时间:2015年11月.  出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299  声明:版权所有,转载请注明出 ...

  9. 基于深度学习的计算机视觉技术在无人驾驶中的应用

    基于深度学习的计算机视觉技术在无人驾驶中的应用 背景 当前,人工智能是下一代信息技术的核心和焦点,而无人配送则是人工智能典型的落地场景,因为完成无人配送需要自动驾驶技术.机器人技术.视觉分析.自然语言 ...

最新文章

  1. 学单片机需要多少C语言基础,C语言单片机编程教程
  2. delphi self 的使用
  3. centos 设置双网卡,双网关
  4. T T[] toArray(T[] a);
  5. 怎样去掉桌面图标和字的蓝色阴影
  6. 【bzoj】 1412: [ZJOI2009]狼和羊的故事
  7. javascript中的字符串编码、字符串方法详解
  8. 网页图表控件Highcharts如何详细设置参数
  9. Python筛选Excel文件中超过一定年龄的人员信息
  10. 实施和开发哪个前景好_现在学习苹果ios开发还有发展前景吗?学android和ios哪个更好?...
  11. mi5splus android9,小米5SPlus 安卓9.0 原生体验 LineageOS16.0 ROOT
  12. 驱动英特尔核显,让黑苹果流畅运行「OpenCore专门篇」
  13. vue实现签名和两张图片合成一张
  14. Android会议室管理app
  15. 天翼云80/8080/443端口访问不通问题
  16. 调用Runtime.getRuntime().exec()执行Linux脚本导致程序挂住的问题分析
  17. Python_np.sum()函数
  18. 出生年月日的html语句,出生年月日五行查询表
  19. 2020年数学建模国赛C题Demo【准确率只有61%,仅供参考】
  20. SQA,SQC是什么意思,有什么区别?

热门文章

  1. 《算法技术手册》一2.4.6 二次方的算法性能
  2. httpd服务相关实验
  3. Swift解读专题四——字符串与字符
  4. Java面向对象学习笔记 -- 6(内部类、Timer)
  5. 如何将Android带入互联网数字家庭? 第一篇转载
  6. [转载] sql server 2000系统表解释
  7. ASP.NET Web页面(.aspx)添加用户控件(.ascx)无显示的问题
  8. Using Regular Expression to validate a Guid
  9. oracle 判断11位数字,45个非常有用的 Oracle 查询语句小结
  10. 2018-3-14(论文-优化问题的智能算法及其哲学内涵)笔记二(智能算法与人类智能以及遗传算法与生物进化对比)