计算机视觉是最强大、最热门的人工智能技术之一,您肯定在生活中体验过相关的落地应用但是没有察觉到背后的计算机视觉技术是如何运作的。那么计算机视觉究竟是什么?它是如何工作的?本文将为您详细介绍。
什么是计算机视觉?
计算机视觉属于计算机科学领域,它专注于模仿人类复杂的视觉系统,并使计算机以和人类相似的方式识别和处理图像或视频。到目前为止,计算机视觉的潜能尚未被完全挖掘出来。
得益于人工智能的进步以及深度学习和神经网络的创新,计算机视觉近年来取得了巨大的飞跃,在检测和识别物体方面的能力已经超越了人类。驱动计算机视觉增长背后的因素是我们生成的海量的数据,这些数据被用来训练和改善计算机视觉技术。
随着计算机视觉领域硬件升级和算法的发展,物体识别的准确率也随之提高。在不到十年的时间里,如今的识别系统从50%的准确率达到了99%,比人类更为精准。计算机视觉最初出现于20世纪50年代,并在70年代首次投入商业使用。如今计算机视觉的应用正呈指数级增长。
计算机视觉工作原理
在神经科学和机器学习领域,我们有一个公认的问题是:我们的大脑是如何工作的,我们如何利用算法让计算机接近人类大脑水平?由于目前关于大脑运作机制的理论较为欠缺,所以关于这一问题充满了未知。
在某种程度上,计算机视觉和模式识别相关。因此,训练计算机理解视觉的方式是将标注过的图像输入到计算机,利用算法识别与标签相关的元素对应的模式。
计算机视觉的演变过程
在深度学习出现之前,计算机视觉能够执行的任务非常有限,需要大量的人工编码和标注。例如,如果您想开发一个人脸识别的相关应用,需要执行以下步骤:
- 创建数据库:您需要以特定的格式捕获所有主题的单个图像。
- 标注图像:然后对于每个图像,您需要输入几个关键数据点,例如眼睛之间的距离、鼻梁的宽度、上唇和鼻子之间的距离,以及定义每个人的其他特定特征。
- 捕获新图像:接下来,您需要从照片或视频中捕获新图像,再次完成测量的过程,在图像上标注关键点。同时要考虑到图像的拍摄角度。
在完成这些人工操作后,应用程序可以将新图像的测量值和数据库中储存的测量值进行比较,并告诉您是否和跟踪的文件相对应。事实上,人脸识别的工作大部分都是人工完成的,还没有发展到自动化的阶段,所以误差仍比较大。
机器学习为解决计算机视觉问题提供了另一种方法。开发人员不需要将每条规则都编码到应用程序中,他们利用线性回归、逻辑回归、决策树或SVM等统计学习算法来检测模式并对图像进行分类。
机器学习帮助传统软件开发工具解决了很多历来具有挑战性的问题,例如机器学习工程师开发了一款可以预测乳腺癌生存期的软件,识别能力比医学专家更为出色。然而构建该程序的功能需要数十名工程师和乳腺癌医学专家付出大量的精力和时间去训练。
关于深度学习
深度学习为机器学习提供了一种更为高效的方法。深度学习依赖于神经网络,当你为神经网络提供许多带有标注有特定类型数据的示例时,它能够提取这些示例之间的共同模式并将其转换为数学方程式,从而有助于信息的分类。例如,使用深度学习构建人脸识别程序只需要开发一种算法,预先输入到程序中,并使用人脸对算法进行训练。
在大多数情况下,创建良好的深度学习算法需要收集大量标注过的训练数据并调整参数,与机器学习相比,深度学习的开发简单且快速。
当前大多数计算机视觉应用程序(例如癌症检测,自动驾驶汽车和人脸识别)都需要利用深度学习。由于计算机硬件和云计算的发展,深度学习和神经网络已从概念领域转向实际应用领域。
计算机视觉的应用场景
计算机视觉是机器学习的领域之一,其核心概念被深植到我们的日常使用的产品中。
自动驾驶
计算机视觉使无人驾驶汽车能感知周围环境,摄像头从汽车的不同角度来捕获视频,并上传到计算机视觉模型。模型会对图像进行实时检测,以发现道路边缘、识别交通标志、检测周围车辆和行人,从而避免撞到障碍物。无人驾驶汽车可以在街道和高速公路上行驶,将乘客安全地送达目的地。
人脸识别
计算机视觉在人脸识别应用中扮演者重要的角色,该技术实现了计算机将人脸和他们的身份相匹配。计算机视觉算法检测图像中的面部特征并于面部轮廓数据库进行比较。人脸识别的应用场景有:电子设备识别消费者身份、社交媒体软件检测和标记用户、执法机构依靠人脸识别追踪嫌疑人。
AR&VR
计算机视觉在AR&VR(增强和混合现实中)也起着重要作用,该技术使手机、电脑、平板、智能眼镜等设备,能够将虚拟对象嵌入到现实世界的图像中。利用计算机视觉,AR设备能够检测到现实世界的物品,从而确定在设备显示器上放置虚拟物品的位置。
医疗保健行业
计算机视觉算法可以完成自动化操作,例如检测皮肤图像中的癌痣或在X射线和MRI扫描中发现症状。
计算机视觉面临的挑战
由于研究生物视觉需要理解人类感知器官对于大脑内部感知的原理,目前我们尚未掌握这些原理,所以还有很长的一段路要走。
结论
尽管计算机视觉已经存在很多年,但它仍然是人工智能面临的最大挑战之一。近年来发现了利用神经网络解决计算机视觉应用于实际问题的方法。随着计算机硬件设施的升级和应用技术的发展,神经网络将在计算机视觉领域发挥更大的作用。