计算机视觉是人工智能领域的一个重要分支,旨在设计能够模拟人类视觉的智能算法。本文将涵盖计算机视觉的三个主要领域:人脸识别、目标检测和目标跟踪。将重点介绍基于Python OpenCV库的人脸识别应用,并在未来的文章中展示实时视频中的目标识别、人脸识别和目标跟踪的应用。
本文的读者将能够理解多种视觉计算应用的工作原理、后台操作和架构,以及实现实际应用所需的必要步骤。将探讨之前讨论过的其他应用领域,例如在检测到人脸时放置一个小方框的人脸识别,以及为这些人命名的人脸识别。将进行类似的实现。有这张来自微软的Kinect图像,它与Xbox视频游戏集成,实现了动作检测。
可以使用计算机视觉来检测控制汽车的人在转动方向盘时的情况。机器人需要计算机视觉技术来进行图像识别,即机器人需要看到前方的情况才能做出决策。另一个例子是自动驾驶汽车。可以注意到这辆车有一系列传感器,例如,它需要检测行人以避免撞到人。需要检测交通标志或交通灯。如果信号是红色的,它必须停止;如果信号是绿色的,它必须继续。为此,使用了计算机视觉技术,包括人脸识别技术。如果在轨道上识别出物体,它必须采取一定的行动。增强现实虚拟现实的概念也使用了计算机视觉技术。有这张SD光束的图像,这些人是不存在的。算法生成了这些人,并使用了一种称为GAN的技术,即对抗性网络,这是深度学习人工神经网络中的一个超级领域。
最后,有这个名为Deep Durin的例子,这是由神经网络生成的图像。这些是幻觉图像,可以看到它具有某些特征,某些动物痕迹在图像的部分,即算法已经具有关于动物的信息,这些动物图像与那个想法非常相似,即进化神经网络,并且有一个算法将结合图像的特征与图像的景观,例如。一个应用示例是深度面孔,由人工智能创建的人脸。
级联分类器是将学习用于对特定对象进行分类以开始训练的算法。需要两组图像,第一组是带有人脸的正样本图像,想要检测的人脸,第二组是称为负样本图像的图像,即除了人脸以外的任何图像。如果想要检测汽车,将有各种型号和类型的车辆作为正样本图像,任何其他类型的图像作为负样本图像。需要这两组图像,以便提交给算法进行训练。
在机器学习领域,有一种名为Ada boost的训练算法。不会详细介绍这个算法的工作原理,但基本上,将这个算法应用于正样本和负样本图像,其理念是进行特征选择。有多个特征,这些小方框带有黑色和白色,其理念是为分类人脸并应用这些特征。这些小方框是针对图像的每个子窗口。窗口概念表示它从左到右,从上到下移动。
将使用Python OpenCV库,这是市场上开发视觉计算应用的主要工具之一。以下是Python代码:
import cv2 # OpenCV导入
img = cv2.imread('/content/imagem-computer-vision.jpg', cv2.IMREAD_UNCHANGED) # 导入带有人物的图像
cv2_imshow(img)
detector_face = cv2.CascadeClassifier('/content/haarcascade_frontalface_default.xml')
imagem_cinza = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2_imshow(imagem_cinza)
deteccoes = detector_face.detectMultiScale(imagem_cinza, scaleFactor=1.3, minSize=(30,30))
deteccoes
array([[1635, 156, 147, 147],
[ 284, 262, 114, 114],
[1149, 260, 129, 129],
[ 928, 491, 171, 171],
[ 222, 507, 151, 151]], dtype=int32)
for (x, y, l, a) in deteccoes:
cv2.rectangle(img, (x, y), (x + l, y + a), (0,255,0), 2)
cv2_imshow(img)
通过Google Colab笔记本可视化了识别人脸的处理过程:逮捕他将返回数字5,表示他检测到了七张脸,有这些点,指示每张脸,以便更好地理解,并让使用最后一张脸。
在选择OpenCV的替代方案时,采用了以下标准:技术的易用性、可用性、可扩展性、鲁棒性和灵活性。以下是根据上述标准列出的替代方案:
在本文中,使用Python OpenCV库作为工具,加快了面部识别的识别速度,使其更加敏捷和高效。借助本文,数据科学家将能够实现其他视觉计算应用,如识别口罩的使用、超市中的体温、社交距离、目标识别、人脸识别、实时目标跟踪等。
本文:Andre