计算机视觉是最强大和引人注目的AI之一,你几乎肯定会以各种方式体验过它,当时却不知道。今天我们来好好研究一下它,包括它的工作原理以及它如此出色的原因(而且只会变得越来越好)。
计算机视觉属于计算机科学领域,其重点是复制一部分人类视觉系统的复杂性,并使计算机能够以与人类相同的方式识别和处理图像和视频中的对象。 直到目前,计算机视觉仍然以有限的能力发挥着作用。得益于人工智能的进步以及深度学习和神经网络的创新,该领域近年来取得了长足的飞跃,并且在与检测和标记物体有关的某些任务中已经超越人类。
计算机视觉增长背后的驱动因素之一是我们今天生成的数据量,这些数据随后被用来训练和改善计算机视觉。伴随着大量的可视数据(每天在线共享30亿张图像),现在可以访问分析数据所需的计算能力。随着计算机视觉领域的发展、新硬件和算法的进步,物体识别的准确率也随之提高。在不到十年的时间里,当今的系统已从50%的精度达到了99%的精度,使它们在对视觉输入做出快速反应时比人类更准确。
早期的计算机视觉实验始于1950年代,到1970年代首次在商业上用于区分打字文本和手写文本,如今计算机视觉的应用呈指数增长。到2022年,计算机视觉和硬件市场预计将达到486亿美元。
一、计算机视觉如何工作?
神经科学和机器学习中的主要开放问题之一是:我们的大脑究竟如何工作,如何用我们自己的算法更加接近它? 现实情况是,目前缺少全面有效的大脑计算理论。 因此,尽管事实上神经网络应该“模仿大脑的运作方式”,但没人能确定这是否真的成立。同样的悖论在计算机视觉中也适用。由于我们尚未决定大脑和眼睛如何处理图像,因此很难说生产中使用的算法能很好地逼近我们内部的心理过程。
在某种程度上,计算机视觉与模式识别有关。因此,训练计算机如何理解视觉数据的一种方法是,将大量的图像-成千上万个图像(如果可能的话)、已标记的图像馈送给它,然后使它们经受各种允许计算机追踪的软件技术或算法,找到与这些标签相关的所有元素中的图案。
因此,如果你向计算机喂入一百万张猫的图像,它将使它们全部受算法影响,从而使它们能够分析照片中的颜色,形状,形状之间的距离,物体彼此相邻的位置等等,以便可以识别“猫”的含义。完成后,如果再投放其他未标记的图像来查找属于猫的图像,则计算机(理论上)将能够利用其经验。
一幅图像需要大量内存,而算法要迭代需要很多像素。但是,要以有意义的精度训练模型,尤其是在你谈论深度学习时,通常需要成千上万张图像,并且更多。
二、计算机视觉的演变
在深度学习出现之前,计算机视觉可以执行的任务非常有限,并且需要开发人员和人工操作人员进行大量的手工编码和工作。例如,如果要执行面部识别,则必须执行以下步骤:
创建数据库:你必须以特定格式捕获要跟踪的所有主题的单个图像。
注释图像:然后,对于每个单独的图像,你都必须输入几个关键数据点,例如眼睛之间的距离,鼻梁的宽度,上唇和鼻子之间的距离以及数十种定义独特特征的其他度量每个人。
捕获新图像:接下来,你必须捕获新图像,无论是照片还是视频内容。然后,你必须再次执行测量过程,在图像上标记关键点。你还必须考虑拍摄图像的角度。
经过所有这些手动工作,应用程序最终将能够将新图像中的测量结果与数据库中存储的测量结果进行比较,并告诉你它是否与它正在跟踪的任何配置文件相对应。实际上,涉及的自动化很少,大部分工作都是手动完成的。而且误差幅度仍然很大。
机器学习提供了解决计算机视觉问题的另一种方法。通过机器学习,开发人员不再需要将每个规则手动编码到他们的视觉应用程序中。相反,他们编写了“功能”,这些较小的应用程序可以检测图像中的特定图案。然后,他们使用统计学习算法(例如线性回归,逻辑回归,决策树或支持向量机(SVM))来检测模式,对图像进行分类并检测其中的对象。
机器学习帮助解决了许多传统软件开发工具和方法历来具有挑战性的问题。例如,几年前,机器学习工程师能够创建一种可以比人类专家更好地预测乳腺癌生存期的软件。但是,构建软件的功能需要数十名工程师和乳腺癌专家的努力,并且花费了大量的时间进行开发。
深度学习为进行机器学习提供了根本不同的方法。深度学习依赖于神经网络,这是一种通用功能,可以解决通过示例表示的任何问题。当你为神经网络提供特定类型数据的许多带标签的示例时,它将能够提取这些示例之间的常见模式并将其转换为数学方程式,从而有助于对将来的信息进行分类。
例如,使用深度学习创建面部识别应用程序只需要你开发或选择一种预先构建的算法,然后使用必须检测的人脸示例对其进行训练。给定足够的示例(大量示例),神经网络将能够检测面部,而无需进一步说明特征或测量。
深度学习是进行计算机视觉的一种非常有效的方法。在大多数情况下,创建良好的深度学习算法归结为收集大量带标签的训练数据并调整参数,例如神经网络和训练时期的类型和层数。与以前的机器学习类型相比,深度学习的开发和部署既简单又快速。
当前大多数计算机视觉应用程序(例如癌症检测,自动驾驶汽车和面部识别)都利用深度学习。由于可用性以及硬件和云计算资源的进步,深度学习和深度神经网络已从概念领域转变为实际应用。
三、解密图像需要多长时间
总之,耗费的时间不多。这就是为什么计算机视觉如此令人兴奋的关键:在过去,即使是超级计算机也可能需要数天、数周甚至数月的时间才能完成所有所需的计算,而当今的超高速芯片和相关硬件以及快速可靠的互联网和云网络,使计算过程如闪电般快速。许多从事AI研究的大公司愿意共享他们的工作,比如Google,IBM和Microsoft,特别是通过开源一些他们的机器学习。
这样一来,其他人就可以继续工作,而不是从头开始。因此人工智能行业正在不断发展,不久前进行的实验需要花费数周的时间才能运行,而今天的实验可能需要15分钟。对于计算机视觉的许多实际应用,此过程都在几微秒内连续发生,因此当今的计算机能够成为科学家所谓的“情境感知”。
四、计算机视觉的应用
计算机视觉是机器学习的领域之一,核心概念已被集成到我们每天使用的主要产品中。
1)无人驾驶汽车
并非只有科技公司在图像应用中利用机器学习。计算机视觉使无人驾驶汽车能够感知周围环境。摄像头从汽车周围的不同角度捕获视频,并将其提供给计算机视觉软件,然后该软件会实时处理图像,以查找道路的末端,读取交通标志,检测其他汽车,物体和行人。然后,自动驾驶汽车可以在街道和高速公路上驾驶,避免撞到障碍物,并(希望)安全地将其乘客送至目的地。
2)面部识别
计算机视觉在面部识别应用程序中也起着重要作用,该技术使计算机能够将人们的面部图像与他们的身份进行匹配。计算机视觉算法检测图像中的面部特征并将其与面部轮廓数据库进行比较。消费类设备使用面部识别来验证其所有者的身份。社交媒体应用程序使用面部识别来检测和标记用户。执法机构还依靠面部识别技术来识别视频源中的罪犯。
3)增强现实和混合现实
计算机视觉在增强和混合现实中也起着重要作用,该技术使智能手机,平板电脑和智能眼镜等计算设备能够将虚拟对象叠加并嵌入到现实世界的图像中。利用计算机视觉,AR设备可以检测现实世界中的物体,从而确定设备显示屏上放置虚拟物体的位置。例如,计算机视觉算法可以帮助AR应用程序检测诸如桌面,墙壁和地板之类的平面,这是确定深度和尺寸并将虚拟对象放置在物理世界中的重要组成部分。
4)医疗健康
计算机视觉也是健康技术进步的重要组成部分。计算机视觉算法可以帮助自动化任务,例如检测皮肤图像中的癌痣或在X射线和MRI扫描中发现症状。
五、计算机视觉的挑战
帮助计算机去“看”非常困难。发明一台看起来像我们一样的机器是一项看似困难的任务,这不仅是因为很难使计算机做到这一点,而且还因为我们不能完全确定人类视觉的工作原理。
研究生物视觉需要理解诸如眼睛的感知器官,以及对大脑内部感知的解释。在绘制流程图和发现系统使用的技巧和捷径方面都取得了很大的进步,尽管与涉及大脑的任何研究一样,还有很长的路要走。
六、计算机视觉的一些专业术语。
例如:
Object Classification 物体分类 :这张照片中物体的大致类别是什么?
Object Identification 物体辨别 :照片中给定物体的类型是什么?
Object Verification 物体验证 :照片中是否有物体?
Object Detection 物体检测 :照片中的物体在哪里?
Object Landmark Detection 物体位置检测 :照片中物体的关键点是什么?
Object Segmentation 对象分割 :图像中的对象属于哪些像素?
Object Recognition 物体识别 :这张照片中有哪些物体,它们在哪里?
除了公正的认识之外,其他分析方法还包括:
视频运动分析使用计算机视觉来估计视频中对象或摄像机本身的速度。
在图像分割中,算法将图像划分为多组视图。
场景重建可创建通过图像或视频输入的场景的3D模型。
在图像还原中,使用基于机器学习的滤镜从照片中消除了诸如模糊之类的噪点。
任何其他通过软件了解像素的应用程序都可以安全地标记为计算机视觉。
小结
尽管最近取得了令人印象深刻的进步,但我们甚至还没有解决计算机视觉问题。
在人工智能愈发热门的大背景下,学习、体验新技术的需求也日渐增多。学以致用才能真正掌握一门技术。
本文转自 | 新机器视觉