【机器视觉】抢滩人工智能新风口的3D视觉和机器人三维视觉引导系统 2018-09-20

随着近期3D传感器技术的发展,涌现了Kinect、SmartToF、Realsense等一系列低成本3D数据采集设备,这使得3D数据的获取相比以往成本更低且更加容易。越来越多的3D数据使得研究界利用更丰富维度的数据解决计算机视觉领域问题,3D视觉作为智能机器人的眼睛,将真正使机器人智能化成为现实,因而被称为人工智能领域的新热点、新风口。目前,3D数据处理、3D手势识别与人机交互、3D人体姿态检测、3D语义分割与场景理解等课题均得到了学界与产业界的极大关注,本文将基于上述几个方向分别介绍3D深度视觉技术的研究现状与热门问题。

l 3D数据处理

3D相机采集的深度图像能够精确表征所拍摄物体到相机的真实距离。受到拍摄物体材料、温度、反光性等因素影响,深度图像会产生噪声和空洞,因此深度图像的滤波去噪与补洞算法是数据处理的首要工作。

对于深度图像的噪声问题,微软研究院提出双边滤波的方案去噪同时较好保持边缘细节,此外华盛顿大学提出了利用RGB进行引导,先检测边缘再去噪,实现高精度高质量的去噪,但此方法计算量大在CPU上实时性较差。普林斯顿大学提出利用RGB图像辅助计算表面法线,实现填补由于材料反光和过度曝光产生图像空洞的问题,从而实现图像去噪滤波。

未来的深度信息传输会像如今视频图像信息一样应用广泛,3D相机采集的高精度、高帧率深度图像需要通过压缩处理才能高效传输,因此深度数据的压缩成为很关键的一个研究课题。深度图压缩的评判依据包括峰值信噪比以及点云表现物体空间结构的性能。现行的压缩方式有通过将深度图16bit的信息转换为3个8bit的类似与RGB的信息,利用JPEG等适用于RGB图像的压缩算法处理数据,然后再恢复出16bit深度信息。此外,微软研究院提出直接适用于16bit深度图的RVL算法,压缩前后对比平均像素误差为2.5mm。

良好的数据处理结果才能为算法的稳定性和高性能提供基础,下面将针对3D在计算机视觉领域的应用介绍相关技术的研究现状与方案。

l 3D手势识别

利用3D信息获取手部关节点进行手势姿态与动作的识别,可凭借更少的运算资源实现更高的准确度和鲁棒性。

手势是人类最自然的交互语言,基于手势识别的人机交互在自然性和便捷性上都有着较大的优势,这也是它成为目前研究热点的主要原因。而随着3D相机的出现,利用更加丰富的信息实现精准的手势动作跟踪与识别,实现自动(辅助)驾驶、机器人控制等一系列人机交互功能。

目前手势识别系统主要分为手势姿态预测和手势动作识别两大部分,国内外科研机构已对其进行了大量深入研究。

针对手势姿态估测问题,新加坡南洋理工大学提出将深度图像投影至三个正交平面,针对每个投影训练CNN模型并将结果融合。首尔大学提出体素3D CNN网络V2V-PoseNet对3D体素网格预测手部关节位置。此外,南洋理工大学还提出将3D点云和表面法线作为输入,训练3D深度学习网络预测手部关节。

对于手势动作识别问题,现阶段有两大流派,一类是传统的“特征表示+分类”,另一类是目前应用更广的神经网络。“特征表示+分类”的方法是先提取基于外观的特征描述子,再利用大家耳熟能详的支持向量机(SVM)、隐马尔可夫模型(HMM)等方法对手势进行分类。神经网络是现在较为流行的手势识别方式,这种技术具有自组织和自学习能力,具有分布性特点,能有效的抗噪声和处理不完整模式以及具有模式推广能力。

手势识别的困难之处在于手部区域分辨率低、背景杂乱、手与其他物体交互、遮挡、多视角与多自由度等问题。传统基于2D图像的算法会导致手部形状映射透视畸变,此外从2D图像直接回归生成3D手势关节坐标是一种非线性映射,在参数学习过程中收敛的难度较大。3D手势识别目前存在关节定位准确率不高、人工数据采集标定工作量过大等问题,因此仿真数据的模拟生成也是一个新的研究热点。

l 3D重建

3D重建(3D Reconstruction)技术一直是计算机图形学和计算机视觉领域的一个热点课题。早期的三维重建技术通常以二维图像作为输入,但受限于输入的数据,重建出的三维模型通常不够完整,而且真实感较低。随着消费级3D深度相机的出现,基于深度相机的三维扫描和重建技术得到了飞速发展,使得重建出的三维模型更加完整逼真、模型误差更小。

3D重建算法流程包括深度图像获取、预处理、点云配准、模型生成和表面生成几个步骤。目前,几种主流的3D重建算法包括微软研究院提出的Kinect Fusion,即通过原始深度图获取点云voxel的坐标以及法向量坐标,根据当前帧的点云和上一帧预测出的点云计算当前相机的位置姿态,再根据相机位置姿态更新TSDF值并融合点云,最后根据TSDF值估计出表面。此外,加州大学伯克利分校也提出了一种新的基于体素的分级表面预测实现高分辨率的3D物体重建,支持多种输入图像格式包括RGB、深度图和部分体积模型。

目前,影响3D重建效果的主要因素在于点云细粒度匹配不受各种噪声扰动,以及大场景和手持平台下高性能的3D重建实现。

l 3D人体姿态识别

人体姿态识别(Human Pose Estimation)即在给定的单帧图像或者图像序列中,计算图像中人体各个关节部位的位置,是近几年计算机视觉的研究热点。基于3D的关节定位算法相较于2D RGB图像DNN方法,能够利用3D深度信息以较低计算量检测出人体关节位置。首先回顾一下近几年提出的几种人体关节定位与姿态估计算法。

2014年,谷歌提出了DeepPose以整体的方式来预测人体关节点的方法,将人体姿态估计定为关节点回归的问题,并且给出了如何将DNN用于人体关节点回归的方式,每一关节点的定位使用一整幅图像输入到7层CNN来做回归。

2017年,CMU提出人体姿态估测网络OpenPose,提出了自底向上的多人姿态估计方法,也就是先得到关键点位置再获得骨架,相比自顶向下算法(先检测人,再回归关节点)随着人数增加,计算复杂度不会受人数增加而有明显变化。

2018年CVPR,Facebook研究院提出了DensePose,将2D图像转换成3D模型,对人体表面进行全方位的观察,对每个人超过5000个节点进行UV贴图。

由于基于RGB图像的方法需要训练复杂神经网络,计算复杂度极大,需要通过GPU实现,而基于3D的关节定位算法则可利用3D深度信息以较低计算量检测出人体关节位置。微软研究院提出基于深度图像的人体关节定位算法,并应用于Kinect骨架检测,提出深度探针特征,即对于任意一个像素,计算该像素在两个偏移参数下的深度差。任意单个这样的特征可以提供关于像素属于身体哪一个部位的微弱信号,通过随机森林分类出所有的训练部位。

目前基于3D人体关节定位算法只限于完整肢体识别,基于深度探针的随机森林分类检测算法对于多人重叠、部分遮挡的情况准确率较差。因此,在部分身体遮挡、多人重叠情况下的基于3D的人体关节位置算法是后续的研究热点问题。

l 3D语义分割与目标检测

基于3D信息的语义分割与目标检测可以得到物体间的空间结构与位置关系,此外通过深度点云与RGB图像的融合使得分割与识别的准确率得到显著提升。

语义分割是在像素层面上理解图片,即把图片中的每个像素都分到一个目标类中。图像分割是由图像处理到图像分析的关键步骤,没有正确的分割就不可能有正确的识别。但是,若进行分割的依据仅有图像中像素的亮度及颜色,将会遇到各种困难。例如,光照不均匀、噪声的影响、图像中存在不清晰的部分等,都会导致分割错误。因此,3D数据的使用为图像目标分割与检测技术的发展提供了新的方向与思路。

目前已提出一些经典的图像分割算法,包括阈值分割法、边缘分割法、种子区域生长法、分水岭算法、最小分割算法、最小生成树算法、RANSAC算法等。为了实现更好的语义分割与目标检测效果,将RGB与深度图像结合成为了当前研究的热点方向,在进行目标检测的同时可以获取物体之间的空间结构关系。

2012年,微软研究院提出选择性搜索算法,根据图像的颜色、纹理、尺寸和空间交叠四个参数进行区域合并,实现图像的分割与分类识别。

2015年,普林斯顿大学提出了SUNRGB-D网络与数据集,结合RGB与深度信息进行场景语义分割与理解,达到了很好的效果。

纽约大学也建立了一个RGB-D数据集,提出了通过检测三个正交表面法向量并结合RGB进行区域生长算法,实现室内场景的语义分割与物体空间支撑关系推断。

2016年,斯坦福大学提出了一种点云分割与分类深度学习框架PointNet。点云存在空间关系不规则的特点,不能直接将已有的图像分类分割框架套用到点云上,也因此在点云领域产生了许多基于将点云体素化(格网化)的深度学习框架,取得了很好的效果。

此外,斯坦福大学也提出了根据单帧深度图像实现语义分割与分类识别并通过3D voxel的形式表示的算法。

目前基于3D的语义分割与目标检测算法仍需要继续改进,提高分割性能与分类准确率。此外,训练大型深度神经网络引发的庞大计算量也是亟需解决的问题。

l 总结

3D视觉作为人工智能领域的新热点、新风口,在得到各界大量关注的同时,相关研究已经陆续开始开花结果。但仍需要看到,目前在3D数据处理、3D手势识别与人机交互、3D人体姿态检测、3D语义分割与场景理解等方向均有大量课题等待研究人员继续挖掘,从而让作为智能机器人眼睛的3D视觉真正走入人们的生活,共享科技成果,体验全新智能生活方式。

来源:3D感知和智能


机器人三维视觉引导系统

机器视觉前沿

基于结构光测量技术和3D物体识别技术开发的机器人3D视觉引导系统,可对较大测量深度范围内散乱堆放的零件进行全自由的定位和拾取。相比传统的2D视觉定位方式只能对固定深度零件进行识别且只能获取零件的部分自由度的位置信息,具有更高的应用柔性和更大的检测范围。可为机床上下料、零件分拣、码垛堆叠等工业问题提供有效的自动化解决方案。

机器视觉3D引导系统框架

3D重建和识别技术

通过自主开发的3D扫描仪可获准确并且快速地获取场景的点云图像,通过3D识别算法,可实现在对点云图中的多种目标物体进行识别和位姿估计。

3D重建和识别效率

多种材质识别效果测试

得益于健壮的重建算法和识别算法,可对不同材质的零件进行稳定的重建和识别,即便是反光比较严重的铝材料及黑色零件都能获得较好的重建和识别效果,可适用于广泛的工业场景。

机器人路径规划

并不是获得零件的位姿信息后就能马上进行零件的拾取,这仅仅只是第一步,要成功拾取零件还需要完成以下几件事:

自主开发的机器人轨迹规划算法,可轻松完成上述工作,保证机器人拾取零件过程稳定可靠。

快速切换拾取对象

只需要四个简单的操作即可实现拾取对象的快速切换,无需进行复杂的工装、产线的调整。


用神经网络深入研究计算机视觉

摘要: 关于计算机视觉你知道的可能有些少!

计算机视觉是人工智能(AI)中的热门研究课题,它已经存在多年。然而,计算机视觉仍然是人工智能面临的最大挑战之一。在本文中,我们将探讨使用深度神经网络来解决计算机视觉的一些基本挑战。特别是,我们将研究神经网络压缩,细粒度图像分类,纹理合成,图像搜索和对象跟踪等应用。

1、神经网络压缩

尽管深度神经网络具有令人难以置信的性能,但它们对计算能力和存储的需求对其在实际应用中的部署提出了重大挑战。研究表明,神经网络中使用的参数可能非常多余。因此,在提高精度的同时还需要投入大量的工作来降低了网络的复杂性。

低秩近似用于接近原始权重矩阵。例如,SVD可用于获得矩阵的最佳低秩近似,或者Toeplitz矩阵可与Krylov分析结合使用以近似的原始矩阵。

1.1:修剪

一旦训练完成,一些不相关的神经元连接(可以在损失算法中加权值平衡和稀疏约束)或者将所有这些连接过滤掉,然后执行几轮微调。在实际应用中,修剪神经元连接的级别将使结果稀疏,难以缓存,并且难以从存储器访问。有时,我们需要特别设计一个合作运营数据库。

相比之下,过滤级修剪可以直接在已经存在的操作数据库上运行,过滤级修剪的关键是确定如何平衡过滤器的重要性。例如,我们可以使用卷积结果的稀疏性、滤波器对损失算法的影响或者卷积对下一层结果的影响进行平衡。

1.2:量化

我们可以将权重值分成组,然后使用组中的中值来替换原始权重,并通过霍夫曼编码运行它。但是,如果我们只考虑权重本身,则可以减少量化过程的误差偏差。随后,分类操作的误差偏差将显着增加。因此,量化CNN的优化目标是重构以最小化误差偏差。此外,我们可以使用哈希编码并投影相同的哈希权重(hash bucket weights)来共享相同的值。

1.3:减少数据值的范围

在默认情况下,数据由单精度浮点组成,占32位。研究人员发现,使用半精度浮点(16位)对性能的影响几乎为零。谷歌的TPU使用8位整数来表示数据,这种情况是值的范围是两个或三个值(0/1或-1/0/1)。仅使用位进行操作可以使我们快速完成各种计算,但是训练两个或三个价值网络是一个至关重要的问题。

传统方法是使用两个或三个值作为前馈过程并在更新过程中传递实数。此外,研究人员认为两个值的表达能力是有限的,因此可以使用额外的浮点缩放二进制卷积结果来改善网络表示。

1.4:简化的结构设计

研究人员一直致力于创建简化的网络结构,例如:

1. 1×1卷积:这种设计理念已经在Inception和ResNet系列网络设计中得到了广泛应用;

2. 分组卷积;

3. 扩展卷积:只要值不变,使用扩展卷积就可以扩展感知域。

知识蒸馏(Knowledge distillation)训练小网络接近广泛的网络。但是,目前还不清楚如何正确地接近庞大的网络。

1.5:硬件-软件协议设计

常用硬件:

1. 常见硬件,如CPU(低延迟,复杂操作)和GPU(高吞吐量,适合并发,简单过程);

2. 专用硬件,包括ASIC(专用集成电路,例如Google的TPU)和FPGA(现场可编程门阵列,灵活但效率较低)。

2、细粒度图像分类

与(普通)图像分类相比,细粒度图像分类在确定图像类别时需要更高的精度。例如,我们可能需要确定目标鸟的确切种类、汽车的品牌和型号、飞机的型号。通常,这些类之间的差异很小。例如,波音737-300和波音737-400之间唯一明显不同的区别就是窗户的数量。因此,细粒度图像分类比标准图像分类更具挑战性。

细粒度图像分类的经典方法是首先在图像上定义不同的位置,例如,鸟的头部、脚部或翅膀。然后我们必须从这些位置提取特征,最后,组合这些特征并使用它们来完成分类。这种方法具有非常高的准确性,但它需要大量的数据集和手动标记位置信息。细粒度分类的一个主要趋势是没有额外监督信息的训练,而不是仅使用图像笔记,该方法由双线性CNN方法表示。

2.1:双线性(Bilinear)CNN

首先计算卷积描述符的外积,以找出不同维度之间的相互关系。因为不同描述符的维度对应于卷积特征的不同通道,并且不同的通道提取不同的语义特征,所以使用双线性操作允许我们捕获输入图像上的不同语义元素之间的关系。

2.2:流线型双线性汇合(Streamlined Bilinear Confluence)

双线性汇合的结果是非常高维的,这需要大量的计算和存储资源,也明显增加了下一个完全连接层上的参数数量。后续研究旨在制定简化双线性汇合的战略,其结果包括以下内容:

1. PCA维数减少:在双线性汇合出现之前,我们会在深度描述符上使用PCA投影维数减少,但这会影响影响性能的每个维度。一个折中的方案是仅将PCA降维应用于一条线。

2. 近似核估计:证明在双线性收敛之后使用线性SVM分类与在描述符上使用多项式核一样有价值。因为两个描述符的向外投影等于两个独立描述符的卷积投影,所以一些研究集中于使用随机矩阵来近似描述符投影。此外,通过近似核估计,我们可以捕获超过二阶信息(见下图)。

3. 低秩近似:使用来自全连接层的参数矩阵进行低秩近似使得不必明确地计算双线性汇合的结果。

3、图像描述

图像描述是生成图像的一个或两个句子描述的过程。这是一项涉及计算机视觉和自然语言处理的跨学科任务。

3.1:编码器-解码器网络

设计图像字幕网络背后的基本思想基于自然语言处理领域中机器翻译的概念。在具有图像CNN编码网络的机器翻译器中替换源语言编码网络并提取图像的特征之后,我们可以使用解码器网络作为目标语言来创建文本描述。

3.2:Show Attend and Tell

注意力机制是机器翻译器用来捕获远程依赖关系的标准技术,也可以用于图像字幕。在解码器网络中,除了预测下一个单词之外,在每个时刻,我们还需要输出二维注意力图像并将其用于深度卷积特征的加权收敛。使用注意力机制的另一个好处是网络可以被可视化,这样我们就可以轻松地看到网络在生成每个单词时所看到的图像部分。

3.3:Adaptive Attention(自适应注意力机制)

先前的注意力机制将为每个预测的单词产生二维注意图像(图像(a))。但是,对于一些停止词,我们不需要使用图像中的线索。相反,某些单词可以根据上下文生成,完全独立于图像本身。这项工作在LSTM上进行了扩展,并产生了“视觉哨兵”机制,该机制确定是否应根据上下文或图像信息(图像(b))预测当前单词。

此外,与先前在根据隐藏层的状态计算注意图像的先前方法不同,该方法根据隐藏层的当前状态执行计算。

4、视觉问答

给定图像和与该图像相关的问题,视觉问答旨在从选择的候选答案中回答该问题。从本质上讲,这是一个分类任务,有时它使用递归神经网络解码来产生文本答案。视觉问答也是一项涉及视觉和自然语言处理的跨学科任务。

4.1:基本思想过程

问题概念是使用CNN从图像中提取特征,RNN从文本问题中提取文本特征,然后组合视觉和文本特征,最后使用完全连接后进行分类。这项任务的关键是弄清楚如何连接这两种类型的功能。直接组合这些特征的方法将它们转换为矢量,或者通过添加或乘以元素来添加或生成视觉和文本矢量。

注意使用注意力机制的图像字幕系统可提高视觉问答的性能。注意力机制包括视觉注意(“我在哪里看”)和文本注意力(“我在看哪个词?”)HieCoAtten可以同时或依次创建视觉和文本注意力。DAN在同一空间内投射视觉和文本注意力的结果; 然后它同时产生视觉和文本注意力的下一步。

4.2:双线性整合

该方法使用视觉特征向量和文本特征向量的外积来捕获每个维度上这些状态的特征之间的关系。为了避免明确地计算双线性汇合的高维度结果,我们可以将在细粒度识别中发现的流线型双线性汇合背后的思想应用于视觉问题回答。例如,MFB使用低速率近似背后的概念以及视觉和文本注意机制。

5、神经网络可视化与神经网络理解

下文提供了许多可视化方法,以帮助理解卷积和神经网络。

5.1:直接可视化第一个过滤器

由于第一个卷积层上的滤镜在输入图像上滑动,我们可以直接在第一层上显示滤镜。我们可以看到第一层权重集中在特定方向的边缘和指定的颜色组合,这类似于视觉生物学机制。但是,由于高级过滤器不直接用于输入图像,因此直接可视化只能应用于第一层上的过滤器。

5.2:T-SNE

此方法在图像的fc7和pool5特征上使用低维嵌入。例如,将它们缩小到2维并允许它们在2维平面上绘制,具有类似语义信息的图像应该产生与t-SNE类似的结果。该方法与PCA之间的区别在于t-SNE是一种非线性减少方法,可以保留地点之间的距离。我们得到以下图像,该图像是将t-SNE应用于原始MNIST图像的结果。我们可以看到MNIST是一个相对简单的数据集,其中不同分类的图像之间的差异是显而易见的。

5.3:可视化中间层激活值

我们可以看到,即使ImageNet没有人脸类别,网络仍将学会区分这种语义信息并捕获未来的分类。

5.4:最大化响应图像区域

为了阻止这种情况,在中间层选择一个指定的神经元,然后将多个不同的图像输入网络,以找到导致神经元最大响应的图像区域。这允许我们观察神经元对应的语义特征,我们使用“图像区域”而不是“完整图像”的原因是中间层神经元的感受野受限并且不能覆盖整个图像。

5.5:梯度上升优化

该方法选择特定的神经元,然后计算该神经元对输入图像的反应产生的偏导数,然后使用梯度上升优化图像直到收敛。此外,我们需要一些标准化的项目来使生成的图像更接近自然模型。除了优化输入图像,我们还可以优化fc6功能并创建所需的图像。

6、对抗性的例子

选择图像和不正确的分类。然后,系统计算该分类对图像的偏导数,然后对图像应用梯度上升优化。实验表明,在使用小的,几乎察觉不到的变化之后,我们可以使网络以高可信度对模型实现不正确的类。

在实际应用中,对抗性示例在金融和安全领域非常有用。研究人员发现,这是因为图像空间的维度非常高。即使有大量的训练数据,我们也只能覆盖该空间的一小部分。如果输入图像从该不同空间稍微变化,那么网络将难以做出合理的决定。

7、纹理生成(Texture Synthesis)与风格迁移(Style Transform)

纹理生成用于生成包含相同纹理的较大图像。给定正常图像和包含特定风格的图像,然后通过风格迁移不仅保留图像的原始内容,而且将该图像转换为指定的风格。

7.1:特征反演(Feature Inversion)

特征反演是纹理生成和风格迁移背后的核心概念。给定一个中间层特征,我们希望迭代来创建与给定特征类似图像。特征反演还可以告诉我们在中间层特征中包含多少图像信息。

给定DxHxW的深度卷积特征,我们将它们转换为Dx(HW)矩阵X,因此我们可以将对应Gram矩阵定义为:G = XX ^ T

通过外积,Gram矩阵捕获不同特征之间的关系。

7.2:纹理生成的概念

它对给定纹理图案的Gram矩阵进行特征逆向工程。使生成图像的各层特征的Gram矩阵接近给定纹理图像的各层Gram。低层特征倾向于捕获细节信息,而高层特征可以捕获更大面积的特征。

7.3:风格迁移的概念

此优化有两个主要目标:第一个是使生成的图像的内容更接近原始图像的内容,而第二个是使生成的图像的风格与指定的风格匹配。风格由Gram矩阵体现,而内容直接由神经元的激活值体现。

7.4:直接生成风格迁移的图像

上面直接生成风格迁移的图像的方法的缺点是需要多次迭代才能收敛。解决该问题的方案是训练一个神经网络来直接生成风格迁移的图像。一旦训练结束,进行风格迁移只需前馈网络一次,十分高效。在训练时,将生成图像、原始图像、风格图像三者前馈一固定网络以提取不同层特征用于计算损失函数。

实验证明,通过使用实例归一化,风格变换网络可以移除与图像相关的比较信息以简化生成过程。

7.5:条件示例规范化

上述方法的一个问题是我们必须为每种不同的风格训练一个单独的模型。由于不同的风格有时包含相似性,因此可以通过在不同风格的风格变换网络之间共享参数来完成这项工作。具体来说,它更改了风格转换网络的示例规范化,使其具有N组缩放和平移参数,每个组对应于特定风格。这样我们就可以从单个前馈过程中获得N个风格的变换图像。

8、面部验证/识别

人脸验证/识别可以认为是一种更加精细的细粒度图像识别任务。人脸验证是给定两张图像、判断其是否属于同一个人,而人脸识别是回答图像中的人是谁。一个人脸验证/识别系统通常包括三大步:检测图像中的人脸,特征点定位、及对人脸进行验证/识别。人脸验证/识别的难题在于需要进行小样本学习。通常情况下,数据集中每人只有对应的一张图像,这称为一次性学习(one-shot learning)。

8.1:面部识别系统背后的概念

作为分类问题(非常多的类别数),或作为度量学习的问题。如果两个图像属于同一个人,那么我们希望它们的深层特征非常相似。否则,它们的特征应该不同。之后,根据深度特征之间的距离进行验证或识别(k最近邻居分类)。

8.2:DeepFace

第一个成功将深度神经网络应用于面部验证/识别模型的系统。DeepFace使用非共享参数局部性连接。这是因为人脸的不同部分具有不同的特征(例如眼睛和嘴唇具有不同的特征),因此传统卷积层的经典“共享参数”不适用于面部验证。因此,面部识别网络使用非共享参数局部性连接。它使用的孪生(Siamese network)网络用于面部验证。当两个图像的深度特征小于给定阈值时,它们被认为是同一个人。

8.3:FaceNet

FaceNet通过三因子输入,希望负样本之间的距离大于正样本之间的距离给定量。此外,三个输入因子并不是随机的,否则,因为负样本的差异样本太大,网络将无法学习。选择最具挑战性的三个元素组(例如最远的正样本和最接近的负样本)会使该网络陷入局部最优。FaceNet使用半困难策略,选择比正样本更远的负样本。

8.4:大区间交叉熵损失

近年来,这一直是一个热门的研究课题。由于类内波动大而类间相似度高,有研究工作旨在提升经典的交叉熵损失对深度特征的判断能力。例如,L-Softmax加强优化目标,使对应类别的参数向量和深度特征夹角增大。

A-Softmax进一步约束L-Softmax的参数向量长度为1,使训练更集中到优化深度特征和夹角上。实际中,L-Softmax和A-Softmax都很难收敛,训练时采用了退火方法,从标准softmax逐渐退火至L-Softmax或A-Softmax。

8.5:实时检测

该系统确定面部图像是来自真人还是来自照片,这是面部验证/识别任务的关键障碍。目前在业界流行的一些方法是读取人的面部表情,纹理信息,眨眼或要求用户完成一系列动作的变化。

9、图像搜索和检索

给定一个包含特定实例(例如特定目标,场景或建筑物)的图像,图像搜索用于在数据库中查找包含与给定实例类似的元素的图像。然而,由于两个图像中的角度,光照和障碍物通常不相同,因此创建能够处理图像类别中的这些差异的搜索算法的问题对研究人员构成了重大挑战。

9.1:经典图像搜索的过程

首先,我们必须从图像中提取适当的代表性矢量。其次,将欧氏距离或余弦距离应用于这些矢量以执行最近邻居搜索并找到最相似的图像。最后,我们使用特定的处理技术对搜索结果进行小幅调整。我们可以看到图像搜索引擎性能的限制因素是图像的表示:

9.2:无监督的图像搜索

无监督图像搜索使用预先训练的ImageNet模型,没有外部信息作为特征提取引擎来提取图像的表示。

  1. 直观的思路:因为深度全连接特征提供了图像的高级描述,并且是一个“自然”矢量,直观的思维过程是直接提取深度全连接特征作为图像的代表矢量。但是,由于图像分类中使用完全连接的特征缺乏对图像的详细描述,因此该思维过程仅产生平均准确度。

  2. 使用深度卷积特征:因为深度卷积具有更好的详细信息,并且可以用于处理任何大小的图像,目前流行的方法是提取深度卷积特征,然后使用加权全局搜索和求和池来获得图像的代表向量。权重表示不同位置的特征的必要性,并且可以采用空间矢量权重或信道矢量权重的形式。

  3. CroW:深度卷积特征是一种分布式表示。尽管来自神经元的响应值在确定区域是否有目标方面不是非常有用,但如果多个神经元同时具有大量反应,那么该区域很可能包含目标。因此,CroW沿着通道添加了特征图以获得二维合成图,对其进行标准化,并根据数量标准化的结果将其用作空间权重。CroW的通道权重由特征图的稀疏性决定,类似于TF-IDF中的IDF特征,自然语言处理中的特征可用于提升不常见但具有高度确定性的特征。

  4. 类加权特征:该方法尝试利用图像集成网络的类别预测信息使空间权重更具确定性。具体地,它使用CAM来获得预训练网络中每个类别的最具代表性的区域的语义信息;然后它使用标准化的CAM结果作为空间权重。

  5. PWA:PWA发现,深度卷积特征的不同通道对应于目标上不同区域的响应。因此,PWA可以选择一系列确定性特征映射,并将其标准化结果用作收敛的空间权重。然后系统级联结果以形成最终图像的表示。

9.3:有监督图像搜索

有监督图像搜索首先采用预先训练的ImageNet模型并将其调整到另一个训练数据集上。然后,它从这个调整的模型中提取图像表示。为了获得更好的结果,用于优化模型的训练数据集通常类似于搜索数据集。此外,我们可以使用候选区域网络从可能包含目标的图像中提取前景区域。

孪生网络:类似于人脸识别的思想,该系统使用两个元素或三个元素输入(++ -)来训练模型,以最小化两个样本之间的距离,并最大化两个不同样本之间的距离。

9.4:对象跟踪

对象跟踪的目标是跟踪视频中目标的移动。通常,目标位于视频的第一帧中并由框标记。我们需要预测框在下一帧中的位置。对象跟踪与目标测试类似。然而,对象跟踪的难点在于我们不知道我们跟踪哪个目标。因此,我们无法在任务之前收集足够的训练数据并训练专门的测试。

9.5:孪生网络

类似于面部验证的概念,利用孪生网络可以在一条线上的目标框内输入图像,并且在另一条线上输入候选图像区域,然后输出两个图像之间的相似度。我们不需要遍历不同帧中的所有其他候选区域;相反,我们可以使用卷积网络,只需要将每个图像前馈一次,通过卷积,我们可以获得二维的响应图,其中最重要的响应位置确定了框的位置。基于孪生网络的方法非常快并且能够处理任何大小的图像。

9.6:CFNet

相关滤波器训练线性模板以区分图像区域和它们周围的区域,然后使用傅立叶变换。CFNet与离线训练的孪生网络和相关的在线滤波模板相结合,能够提高加权网络的跟踪性能。

10、生成式模型(generative models)

这种类型的模型用于学习数据(图像)的分布或从其分布中采样新图像。生成模型可用于超分辨率重建、图像着色、图像转换、从文本生成图像、学习隐藏的图像表示、半监督学习等。此外,生成式模型可以与强化学习相结合,用于模拟和逆强化学习。

10.1:显式建模

使用条件概率的公式来对图像的分布进行最大似然估计并从中学习。该方法的缺点在于,由于每个图像中的像素取决于先前的像素,因此必须在一个角开始并以有序的方式进行,所以生成图像的过程将稍微缓慢。例如,WaveNet可以产生类似于人类创建的语音,但由于它不能同时产生,一秒钟的语音需要2分钟来计算,并且实时生成是不可能的。

10.2:变分自编码器

为了避免显式建模的缺陷,变分自编码器对数据分布进行了隐式建模。它认为生成图像受隐藏变量控制的影响,并假设隐藏变量受到对角高斯分布的影响。

变分自编码器使用解码网络根据隐藏变量生成图像。由于我们无法直接应用最大似然估计,因此在训练时,类似于EM算法,变分自编码器构造似然函数的下界函数,然后使用该下界函数进行优化。变分自编码器的好处是因为每个维度的独立性;我们可以通过控制隐藏变量来控制影响输出图像变化的因素。

10.3:生成对抗式网络(GAN)

由于学习数据分布极其困难,生成对抗式网络完全避免了这一步骤并立即生成图像。生成对抗式网络使用生成网络G从随机噪声创建图像,并使用判别网络D来确定输入图像是真实的还是伪造的。

在训练期间,判别网络D的目标是确定图像是真实的还是伪造的,并且生成式网络G的目的是使判别网络D倾向于确定其输出图像是真实的。在实践中,训练生成式对抗网络会带来模型崩溃的问题,其中生成对抗式网络无法学习完整的数据分布。这在LS-GAN和W-GAN中产生了改进,与变分自编码器一样,生成对抗式网络提供更好的详细信息。

11、视频分类

上述大多数任务都可以用于视频分类,这里我们将以视频分类为例来说明处理视频数据的一些基本方法。

11.1:多帧图像特征汇合

这类方法将视频视为一系列帧图像,网络接收属于视频的一组多帧图像(例如15帧),然后从这些图像中提取深度特征,并最终集成这些图像特征以获得视频的该部分的特征以对其进行分类。实验表明,使用“慢速融合(slow fusion)”效果最佳。此外,独立组织单个帧也可以得到非常有竞争力的结果,这意味着来自单个帧的图像包含大量相关信息。

11.2:三维卷积

将标准的二维卷积扩展为三维卷积,以在时间维度上连接局部。例如,系统可以采用VGG 3×3卷积并将其扩展为3x3x3卷积或2×2收敛扩展为2x2x2收敛。

11.3:图像+序列两个分支结构

这种类型的方法使用两个独立的网络来区分从视频捕获的图像信息和时间信息。图像信息可以从单帧中的静止图像获得,并且是图像分类的经典问题。然后通过光流获得运动信息,跟踪目标在相邻帧上的运动。

11.4:CNN + RNN捕获远程依赖关系

先前的方法仅能够捕获几帧图像之间的依赖关系。此方法使用CNN从单个帧中提取图像特征,然后使用RNN捕获帧之间的依赖关系。

此外,研究人员已尝试将CNN和RNN结合起来,以便每个卷积层能够捕获远距离依赖性。

以上为译文。本文由阿里云云栖社区组织翻译。

工业互联网




产业智能官  AI-CPS


加入知识星球“产业智能研究院”:先进产业OT(工艺+自动化+机器人+新能源+精益)技术和新一代信息IT技术(云计算+大数据+物联网+区块链+人工智能)深度融合,在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的机器智能认知计算系统实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链




版权声明产业智能官(ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。涉权烦请联系协商解决。联系、投稿邮箱:erp_vip@hotmail.com



标签: