【深度学习】如何通过深度学习,完成计算机视觉中的所有工作?( 二 )


本文插图

分割
分割是计算机视觉中较独特的任务之一 , 因为网络既需要学习低级信息 , 也需要学习高级信息 。 低级信息可按像素精确分割图像中的每个区域和对象 , 而高级信息可直接对这些像素进行分类 。 这导致网络被设计为将来自较早层和高分辨率(低层空间信息)的信息与较深层和低分辨率(高层语义信息)相结合 。 如下所示 , 我们首先通过标准分类网络运行图像 。 然后 , 我们从网络的每个阶段提取特征 , 从而使用从低到高的范围内的信息 。 每个信息级别在依次组合之前都是独立处理的 。 当这些信息组合在一起时 , 我们对特征图进行向上采样 , 最终得到完整的图像分辨率 。
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维上应用的:宽度、高度和时间 。 因此 , 每个输出像素都是根据其周围像素以及相同位置的前一帧和后一帧中的像素进行计算来预测的 。


推荐阅读