计算机视觉

什么是计算机视觉?

你需要知道三件事

计算机视觉是从图像、视频或点云中提取信息的一套技术。计算机视觉包括图像识别、目标检测、活动识别、三维姿态估计、视频跟踪和运动估计。现实世界的应用包括登录智能手机的人脸识别,自动驾驶汽车中的行人和车辆回避,以及医学mri对肿瘤的检测.软件工具,例如MATLAB®而且动态仿真模块®用于开发计算机视觉技术。

它是如何工作的

大多数计算机视觉技术是使用大量的真实世界数据和数据探索、模型训练和算法开发的工作流开发的。计算机视觉工程师经常修改一套现有的技术,以适应所关心的特定问题。下面描述计算机视觉系统中使用的主要方法类型。

基于深度学习技术

计算机视觉的深度学习方法是有用的用于目标检测,目标识别,图像去模糊,场景分割。深度学习方法包括培训复杂的神经网络(CNNs),它们直接从不同尺度的模式中学习数据。CNN训练需要大量的集合标签训练图像或点云。转移学习使用pretrained网络用更少的训练数据加速这个过程。

利用MATLAB中的计算机视觉工具箱对街道进行语义分割。

利用MATLAB中的计算机视觉工具箱对街道进行语义分割。

基于功能的技术

特征检测与提取技术是识别图像和点云中的模式或结构的计算机视觉算法,用于图像对齐、视频稳定、目标检测等。在图像中,有用的特征类型包括边缘、角或密度一致的区域,您可以用探测器例如BRISK、SURF或ORB。在点云中,可以使用基于特征值的方法特征提取器或快速点特征直方图(FPFH)抽取器。

利用特征匹配将移动航天器的图像与参考图像进行比较。

使用特征匹配将移动航天器的图像(右图像)与参考图像(左图像)进行比较。(图片由NASA提供)

图像处理

图像处理技术经常被应用于一种预处理进入计算机视觉工作流程。预处理的类型取决于任务。相关的图像处理技术包括:

利用MATLAB中的rgb2hsv颜色转换进行红锥检测。

红锥检测rgb2hsv颜色转换在MATLAB。

点云处理

点云是3D空间中的一组数据点,它们共同表示一个3D形状或物体。点云处理通常用于对数据进行预处理,为分析数据的计算机视觉算法做准备。点云处理通常包括:

在MATLAB中使用迭代最近点(ICP)进行三维点云配准和拼接。

在MATLAB中使用迭代最近点(ICP)进行三维点云配准和拼接。

3 d视觉处理

3D视觉处理技术利用标定相机拍摄的多幅图像来估计场景的3D结构。这些图像通常由单目相机或立体相机对生成。3D视觉处理技术包括:

在MATLAB中使用运动结构(SfM)进行物体三维重建。

在MATLAB中使用运动结构(SfM)进行物体三维重建。

为什么它很重要

计算机视觉在现实世界的广泛应用中是必不可少的。下面将讨论其中最常见的一些。

自治系统

空中或地面自主系统使用各种传感器从其环境中收集视觉或点云数据。该系统将这些数据与计算机视觉功能结合使用,如同步定位和绘图(SLAM)和跟踪,以绘制环境。自动系统可以使用这些地图来分割道路、人行道或建筑物,并检测和跟踪人和车辆。例如,宝马利用辅助驾驶视图(ADV)的计算机视觉功能来描绘周围的车辆和识别其类型。

MATLAB支持使用真实数据对宝马的辅助驾驶视图进行端到端测试。

MATLAB支持使用真实数据对宝马的辅助驾驶视图进行端到端测试。

工业应用

计算机视觉应用于制造应用,如零件质量监测和基础设施维护。例如,壳牌利用训练过的区域卷积神经网络(R-CNNs)识别机器上的标签。TimkenSteel也使用同样的能力进行质量控制,在制造过程中识别劣质或有缺陷的部件。

基于MATLAB的OCR和深度学习的标签识别。

基于MATLAB的OCR和深度学习的标签识别。

建设和农业

计算机视觉用于建筑和农业,从空中捕获的基础设施或地形数据中提取信息。计算机视觉能力,如光谱特征映射、目标检测和分割应用于分析图像、点云或来自航空平台的高光谱数据。Yachiyo工程在日本使用这些能力检测水坝和桥梁的破坏与语义分割。农民还可以使用获取农场高光谱图像的无人机分析作物健康状况。

利用MATLAB中的SegNet检测坝体表面的损伤。

利用MATLAB中的SegNet检测坝体表面的损伤。

摄影

计算机视觉在相机和智能手机上的应用在过去十年中大幅增长。这些设备使用人脸检测与跟踪专注于面部和拼接算法创建全景照片。这些设备还集成了光学字符识别条形码或二维码扫描仪访问存储的信息。

在MATLAB中利用基于特征的图像配准技术创建全景图像。

在MATLAB中利用基于特征的图像配准技术创建全景图像。

基于MATLAB的计算机视觉

图像处理工具箱™计算机视觉工具箱™,以及MATLAB中的Lidar Toolbox™提供应用程序、算法和训练过的网络,您可以使用它们来构建您的计算机视觉能力。您可以导入图像或点云数据,对其进行预处理,并使用内置算法和深度学习网络对数据进行分析。工具箱提供给您例子开始。

基于MATLAB的缺陷检测

您可以使用计算机视觉工具箱检测异常和缺陷在诸如机器零件、电子电路或其他物体中。通过使用图像处理工具箱中的图像预处理算法,可以增加检测到正确特征的机会校正对齐用颜色分割,调整图像强度

缺陷检测步骤通常使用深度学习来实现。为深度学习提供训练数据,可以使用MATLAB图像,视频或激光雷达标签应用程序,它通过创建语义分割或实例分割掩码来帮助您标记数据。然后你可以训练一个深度学习网络,要么从头开始,要么使用转移学习.然后,您可以使用训练过的网络或几种网络中的一种pretrained网络根据异常或缺陷对对象进行分类。

用MATLAB训练的深度学习网络检测坏的和好的坚果。

用MATLAB训练的深度学习网络检测坏的和好的坚果。

基于MATLAB的目标检测与跟踪

目标检测和跟踪是计算机视觉在检测等应用中比较著名的用途之一车辆阅读条形码,在场景中检测物体.您可以使用深层网络设计师在MATLAB中构建深度学习网络,用于以下应用用YOLO v3来检测汽车.你加载标记的训练数据,预处理的数据定义和培训YOLO v3网络,并对其精度而且错过率对照地面真实数据。然后你就可以用这个网络来检测汽车和显示边框周围。

利用MATLAB中深度网络设计器生成的YOLO v3进行汽车检测。

利用MATLAB中深度网络设计器生成的YOLO v3进行汽车检测。

计算机视觉与Simulink在自主系统仿真中的应用

你可以在机器人或自主系统中使用计算机视觉的目标检测和跟踪结果来做出决定。的自动紧急制动(AEB)与传感器融合示例演示了构建集成计算机视觉功能的Simulink模型的简单性。该模型使用两个部分:计算机视觉和传感器融合模型来检测车辆前面的障碍物,和一个向前碰撞警告(FCW)系统警告驾驶员并自动刹车。这向您展示了如何使用动态仿真模块将计算机视觉算法集成到更广泛的系统仿真中。

使用Simulink检测车辆前方的物体。

使用Simulink检测车辆前方的物体。

用计算机视觉工具箱进行定位和制图

您可以在MATLAB中使用计算机视觉来估计相机的位置和映射环境使用视觉同步定位与测绘(vSLAM),以创建物体的3D模型运动结构(SfM),并估计深度

你可以估计a的位置立体相机对同时使用MATLAB中的内置功能来映射环境,例如imageDatastorebagOfFeatures.初始化映射为识别匹配特性在两个图像之间,然后预估相机位置和地图上的特征位置,使用束调整当相机在场景中移动时,细化它的位置和方向。

使用计算机视觉工具箱中的ORB-SLAM2来匹配立体相机对之间的功能。

使用计算机视觉工具箱中的ORB-SLAM2来匹配立体相机对之间的功能。

对象计数

你也可以使用计算机视觉来计数图像或视频中的物体。在细胞计数的例子,你申请形态学运算符要分割细胞,找到细胞中心使用blob分析,并计算找到的中心数量。然后对视频中的每一帧重复这个过程。

在MATLAB中使用形态算子和斑点分析进行细胞计数。

细胞计数在MATLAB中使用形态算子和斑点分析。

MATLAB中的应用程序,比如图像裂殖体而且颜色阈值的应用,提供一个交互式用户界面来分割图像中的对象。图像区域分析器应用程序帮助计数图像中的对象并计算它们的属性,如面积、质心等。

Baidu
map