AI之眼——计算机视觉及其应用
淘立拍相关内容在《第3章 智能搜索技术》一文中已经分享过。皮肤检测利用计算机视觉技术进行皮肤检测是一个跨学科领域的创新应用,它结合了医学、皮肤学、计算机科学、人工智能等多个学科的知识。这种技术能够通过分析用户提供的皮肤照片来识别各种皮肤问题,如干油性、敏感度、色素沉着、衰老迹象、痤疮等。其基本原理是:图像采集:用户通过智能手机或专用设备拍摄皮肤照片。图像预处理:对采集到的图像进行预处理,如调整亮度
这篇文章涵盖了以下内容:
-
第 1 部分:介绍计算机视觉是什么、基本的工作原理、所捕获的特征,并顺带介绍了GPT-4V这样的多模态多模型的视觉能力
-
第 2 部分:分享一些常用的计算机视觉技术,并重点介绍了基于深度学习的方法
-
第3部分:研究计算机视觉在不同行业和场景的应用,包括二维码识别、人脸识别、图片搜索、皮肤检测、高精度地图等
-
第4 部分:简单探讨计算机视觉在实际应用中仍然面临的一些挑战
-
第5部分:从相对通用的角度总结了计算机视觉产品开发的关键阶段,但重点是介绍模型评估指标
-
最后分享了一些补充思考和延伸
高能预警:帖子很长,全文超2万字,我预计95%以上点进来的读者不会有兴趣/耐心看完。请随意滑到你最感兴趣的部分。
引言
你的手机支持刷脸解锁吗?(例如苹果的Face ID)

你有用过百度/谷歌的“以图搜图”吗?

你有用过微信的“扫一扫识物“”吗?

你有关注/体验现在智能汽车的自动驾驶么?

这些不同场景应用的背后,都有着一门共同的AI技术——计算机视觉。
大多数动物都有“眼睛”这个器官,对于AI而言,它的眼睛就是“计算机视觉”,简称CV。计算机视觉是一个涉及图像处理、模式识别、机器学习等多个学科的交叉领域,它在许多行业中都有应用,例如自动驾驶、医疗影像分析、安防监控、零售分析等。
那么,计算机视觉究竟是什么?它的技术原理、能力边界、应用价值大抵如何?请随我从AI产品经理的视角,探索一番吧~
01
—
基本概念与原理
就像人类通过眼睛感知世界一样,计算机视觉的目标是让机器能够理解和解释从图像或视频中获得的视觉信息。

计算机视觉是什么
计算机视觉是人工智能的一个分支,专注于让机器识别、处理和理解视觉数据。这涉及开发能够处理和理解图像和视频的算法、模型和系统,使机器能够从视觉数据中“看到”和提取有用的信息,并应用于从简单的图像识别(计算机视觉领域最为经典的研究问题,莫过于猫狗分类了)到复杂的场景理解(如自动驾驶汽车识别路上的行人和障碍物)的各种任务。

计算机视觉的概念可以追溯到20世纪60年代,当时的研究主要集中在基本的图像处理和模式识别。随着时间的推移,尤其是近十年来,深度学习的兴起极大地推动了计算机视觉技术的发展。深度学习模型,特别是卷积神经网络(CNNs),在图像识别和分类等任务中取得了革命性的进展,这使得计算机视觉应用变得更加广泛和强大。

而随着GPT-4V、Gemini等大模型的惊艳亮相,更是使得计算机视觉的能力表现跃上了新台阶——为了紧跟时代,我们会间歇性穿插关于大模型的内容,但全文仍主要以已经较为成熟的传统计算机视觉技术及其应用为主。
补充说明
GPT-4 Turbo with Vision 是由 OpenAI 开发的大型多模态模型 (Large Multimodal Models即LMMs,注意和我们之前文章所提及的LLMs不同),可以分析图像并对有关它们的问题提供文本回复。它结合了自然语言处理和视觉理解,可以做到:
-
视觉输入:接受照片、屏幕截图和文档等视觉内容,并执行各种任务。


-
物体检测和分析:该模型可以识别并提供图像中物体的信息。


-
数据分析:精通解释和分析以图形、图表和其他数据可视化等可视化格式呈现的数据。


-
文本解密:该模型能够读取和解释手写笔记和图像中的文本(远胜于传统的OCR)

通过以上的示例,我们能了解到LMM的部分能力(当然其能力不止于此)。
不过,类似于GPT-4V这样的LMM与传统的计算机视觉技术相比,主要有以下不同点:
-
多模态理解:LMM能够处理和理解多种类型的数据输入,包括文本、图像、视频等。这与传统的计算机视觉技术不同,后者通常专注于单一模态的图像或视频数据。
-
上下文理解能力:LMM能够在处理图像或视频时,结合上下文信息进行更深层次的理解和推理。例如,在图像标注任务中,LMM可以利用图像旁边的文本描述来提高标注的准确性和相关性。
-
跨模态生成能力:除了理解多种数据类型,LMM还能够跨模态生成内容。例如,它可以根据文本描述生成图像,或者根据图像内容生成描述性文本,这超出了传统计算机视觉技术的范畴。
-
自我学习和适应能力:LMM通过大规模的预训练,掌握了广泛的知识和模式,使它们能够在没有特定任务训练的情况下也能执行多种任务。这种能力使得LMM在处理新的或未见过的数据类型时,能够比传统技术表现得更好。
-
交互能力:LMM如GPT-4V能够与用户进行交互,提供更加自然和人性化的界面。用户可以通过自然语言查询来请求图像识别的结果,或者获取与视觉内容相关的信息,这种交互方式是传统计算机视觉技术难以实现的。
计算机视觉在技术领域占据了举足轻重的地位,它是实现机器自主感知环境(参见第7章 感知与行动)的关键技术之一。
接下来的这部分内容比较偏“技术”,一方面是个人的水平有限,另一方面作为AI产品经理我们通常也不需要掌握到那么深入的细节,只需要有个基本概念即可。因此,可以粗读或跳过。
计算机视觉是怎么工作的
计算机视觉的工作原理是让计算机能够理解和解释来自世界的视觉信息,这一点类似于人类的视觉系统(但也明显不同)。它包括使用算法和模型来处理和分析数字图像和视频。

(1)图像获取:根据实际需要,获取数字图像或视频,它们可能来自不同的采集设备,例如相机、手机、无人机、卫星、传感器、在线网站等。

(2)预处理:一旦获得图像,通常会进行预处理以提高图像质量,并为分析做准备。常见的预处理步骤包括:
-
噪声减少:去除或减少图像中不想要的噪声。
-
图像增强:调整亮度、对比度和锐度。
-
标准化:确保照明条件一致。
-
调整大小和裁剪:使图像大小一致,并专注于感兴趣的区域。
(这些过程有点像用Photoshop处理图片,例如证件照哈哈)

(3)特征提取:计算机视觉算法识别并从图像中提取有意义的特征。这些特征可以是边缘、角落、纹理、颜色、形状或更复杂的模式。特征提取对于理解图像内容至关重要。

(4)特征表示:将提取的特征转换成适合进一步处理的格式。这一步涉及创建特征向量或其他表示形式,编码图像中的相关信息。
如下图所示,是亚伯拉罕·林肯图像的灰度图像表示的简单说明。左边是林肯的灰度照片(仅按非常粗粒度的像素示意);中间是用0-255之间的数字标记的像素,表示它们的亮度;右边是这些数字本身

(5)机器学习和深度学习:许多计算机视觉任务涉及机器学习和深度学习模型。这些模型通过标注的数据集进行训练,学习数据中的模式和关系。常见的模型类型包括:
-
卷积神经网络(CNNs):非常适用于图像分类、物体检测和分割。
-
循环神经网络(RNNs):用于涉及视频中序列数据的任务。
-
Transformer:适用于需要注意力机制的任务,如图像字幕。OpenAI的Sora就是将transformer应用于扩散模型来生成图像和视频。

在特定的任务处理上:
-
物体检测:识别并定位图像或视频中的物体。这通常使用区域提议技术和基于CNN的模型。
-
图像分类:根据内容为图像分配标签或类别。CNNs通常用于此任务。
-
图像分割:将图像划分为有意义的区域或片段。语义分割为每个像素分配类标签,而实例分割区分个别物体实例。
-
面部识别:使用像深度神经网络这样的技术,根据面部特征识别和验证个人。
-
运动追踪:涉及追踪视频序列中物体或特征的运动。
(6)后处理:在生成结果后,可能会应用后处理步骤来细化或过滤输出。这可能包括去除小的、不相关的区域,平滑边界,或应用额外的约束。
(7)可视化和解释:最后一步涉及到结果的可视化和解释。这可以包括在原始图像上叠加检测到的物体,生成热图来突出感兴趣的区域,或提供图像内容的文本描述。

(8)反馈循环:在某些应用中,计算机视觉系统可能向外部系统或控制机制提供反馈。例如,在自动驾驶汽车中,计算机视觉系统可以帮助做出关于转向、制动和加速的决策。
根据任务和所分析视觉数据的复杂性,使用的具体算法和技术可能会有所不同。
我们可以用一个例子来简单说明。这是我们人眼所看到的包包:

这是计算机(神经网络)所看到的包包:

为了减少运算量,原始数值将被按照更大的区域(例如3×3)依次提取,再按照特定函数求积、求和,得到一组新的数值。

然后再分组“池化”(例如按2x2),提取每个池子的最大值。这个过程重复一定次数,直到提取出最精华的数据特征。

展平,输入神经网络的全连接隐藏层。于是得到了这个包包的图像特征——一个“高维数组”。
下次有人扫描同样的包包,扫一扫后台就会按照计算“参考答案”的流程,对手机发出的画面进行一轮计算。

如果计算出的“高维数组”和参考答案的“高维数组”高度一致,后台就可以告诉你,这就是某某包包。
当然相比起文字描述,实际的识别过程所需的耗时是很短的。
计算机视觉所要捕获的基本特征
计算机视觉的两个核心问题是重建和识别:
-
重建:reconstruction,从一幅或一组图像中建立一个关于世界的模型,通常指的是三维重建(3D Reconstruction),它的目标是根据一组二维图像,恢复出被拍摄场景或对象的三维结构。这个过程涉及到多个步骤,包括特征提取、特征匹配、摄像机标定、三维点云构建和表面重建等
-
识别:recognition,根据视觉信息和其他信息对所见到的物体进行辨识。这不仅涉及到视觉信息本身,如物体的形状、颜色、纹理等,也可能包括其他辅助信息,如物体的上下文环境、历史数据或与其他物体的相对位置关系等
为了解决这些问题,我们首先需要通过计算机视觉技术,将图像和视频转换为机器可以理解的技术语言,也就是特征数据。颜色、边缘、纹理、光流和区域分割是一些比较基础的视觉特征:
颜色:我们可以通过对每个像素赋予3个数字(即RGB值)来表示彩色图像。对大多数计算机视觉应用而言,将一个表面建模为具有3种不同(RGB)漫反射系数,并将光源建模为具有3种(RGB)强度的模型是足够精确的。

边缘:边缘是图像中亮度变化明显的地方,通常是不同物体或物体与背景之间的分界线。在计算机视觉中,检测边缘是识别物体形状的第一步。

纹理:纹理反映了图像中重复出现的模式或像素排列的规律性,它描述了物体表面的细节特征。例如,树叶、织物或砖墙的表面就有不同的纹理。在计算机视觉中,通过分析纹理,我们可以识别物体或区域的性质和材料。

光流:光流是指图像序列中物体运动所引起的像素点在平面上的运动模式。它通常用于视频或连续图像帧中,通过分析连续帧之间像素点的移动,来估计物体的速度和方向。下图就展示了一个视频序列的两帧,以及与从一帧到另一帧的位移相对应的光流场,注意由箭头方向刻画的网球拍和右腿的动作:

分割:图像分割是将图像细分为多个区域或对象的过程,目的是使得这些区域在某种意义上是同质的,但与其他区域明显不同。例如,将一幅图像分割成多个区域,每个区域代表不同的物体。这就像是将一幅复杂画面的拼图分成几个部分,每个部分代表画面中的一个对象或场景。

02
—
关键技术与工具
相比于第11章所研习的知识图谱,计算机视觉涉及到的技术更为庞杂且深奥,我们恐怕无法相对全面&深入,在这里只对一些主流的、常用的作蜻蜓点水式的介绍。
一些常用的计算机视觉技术
想要捕获图像和视频中的特征,就需要使用的专门的计算机视觉技术了。计算机视觉系统利用人工智能(AI)技术模仿负责对象识别和对象分类的人脑能力,其技术方法主要分为两大类:传统算法和基于深度学习的方法。这两类方法各有特点,适用于不同的场景和需求。
(1)传统算法:
传统算法主要依赖于手工设计的特征提取和模式识别技术。这些方法在深度学习出现之前是计算机视觉研究和应用的主流。
-
提取特征:传统方法通过SIFT(尺度不变特征变换)和HOG(方向梯度直方图)等技术来提取图像中的关键特征,例如边缘检测、角点检测、纹理分析。
-
模式识别:在已提取特征的基础上,使用如支持向量机(SVM)或决策树等机器学习算法进行分类或识别。
在深度学习出现之前,计算机视觉所能执行的任务非常有限,需要开发人员和操作员进行大量手动编码和努力。例如,如果我们想进行面部识别,则必须执行以下步骤:
-
创建一个数据库:以特定的格式捕捉所有想要追踪的对象的个人图像。
-
标注图像:然后,对于每个单独的图像,必须输入几个关键数据点,如眼睛之间的距离、鼻梁的宽度、上唇和鼻子之间的距离,以及定义每个人独特特征的数十个其他测量值。
-
捕获新图像:接下来,必须捕获新图像,无论是来自照片还是视频内容。然后必须再次进行测量过程,在图像上标记关键点。我们还需要考虑拍摄图像的角度。
经过所有这些手动操作,应用程序最终能够将新图像中的测量值与其数据库中存储的测量值进行比较,并告诉我们它是否与它正在跟踪的任何配置文件对应。事实上,几乎没有涉及自动化,大部分工作都是手动完成的。而且误差幅度很大。
(2)基于深度学习的方法
随着深度学习技术(机器学习的子集)的发展,基于神经网络的方法在计算机视觉领域取得了巨大的成功,尤其是卷积神经网络(CNN)。
-
自动特征提取:与传统方法手工设计特征不同,深度学习模型能够自动从大量数据中学习复杂的特征表示。有了机器学习,开发人员不再需要将每一条规则手动编码到他们的视觉应用程序中。相反,他们编程了“功能”,即可以检测图像中特定模式的较小应用程序。然后,使用统计学习算法,如线性回归、逻辑回归、决策树或支持向量机(SVM)来检测模式、对图像进行分类并检测其中的对象。这使得深度学习方法在处理高度复杂的视觉任务时更为有效。
-
端到端学习:深度学习模型可以实现端到端的学习,直接从原始图像到最终任务的输出(如分类标签或物体边界框),无需人工介入,这帮助解决了许多传统软件开发工具和方法在历史上具有挑战性的问题。
深度学习为机器学习提供了一种根本不同的方法。深度学习依赖于神经网络,这是一种通用函数,可以解决任何通过示例表示的问题。当你为神经网络提供许多特定类型数据的标记示例时,它将能够提取这些示例之间的常见模式,并将其转换为数学方程,这将有助于对未来的信息进行分类。
例如同样是创建面部识别应用程序,使用深度学习只需要开发或选择一种预构造的算法,并用它能检测到的人的面部样本对其进行训练。给定足够多的样本示例,神经网络就能够在没有关于特征或测量的进一步指令的情况下检测人脸。

深度学习是一种非常有效的计算机视觉方法。在大多数情况下,创建一个好的深度学习算法可以归结为:收集大量标记的训练数据,并调整参数,如神经网络的类型和层数以及训练周期。与传统类型的机器学习相比,深度学习的开发和部署更容易、更快。
当前的大多数计算机视觉应用,如癌症检测、自动驾驶汽车和面部识别,都使用了深度学习。
我整理了一些主流且常用的计算机视觉技术(注意:并不全面):
图像分类和识别>>>
-
卷积神经网络(CNN):是处理图像分类问题最常用的技术之一,通过卷积层自动从图像中提取特征,能够识别图像中的轮廓、形状、颜色和纹理,适用于图像识别、面部识别等场景。

CNN能够自动检测图像中的重要特征,而无需任何手动特征提取,其基本组成为:
-
卷积层(Convolutional Layers):通过滤波器扫描图像来检测特定的特征,如边缘或颜色渐变。
-
激活层(Activation Layers):通常使用ReLU函数来增加非线性,使网络能够捕捉复杂模式。
-
池化层(Pooling Layers):降低特征图的维度,减少计算量,同时保留重要信息。
-
全连接层(Fully Connected Layers):将前面层的输出转化为最终的分类预测。
其工作流程为:
-
输入图像:将图像作为网络的输入。
-
特征提取:卷积层和激活层联合工作,自动从图像中提取重要特征。
-
特征池化:池化层简化了特征,使模型更关注重要的模式。
-
分类决策:通过全连接层对图像进行分类或其他任务的决策。

视频分析>>>
-
循环神经网络(RNN):RNN是和CNN并驾齐驱的另一种深度学习模型,特别设计用来处理序列数据,如时间序列数据或连续的图像帧(视频)。它能够处理变长的输入序列,记住先前的信息,并利用这些信息对当前任务做出决策,适用于视频分析、时间序列预测、语音识别。

以下图为例,在图像描述任务中,CNN的输出被调整并馈送到学习生成描述的RNN:

首先,你可能会注意到垂直层这是递归神经网络产生的。每个垂直层都试图预测给定图像的下一个单词。
-
第一层将获取嵌入的图像并预测“开始”;然后预测“人”,所以RNN将写“一个人”;然后生成其他标签,例如“pizza”。
-
然后我们学习如何说一个男人拿着一片披萨。我们使用了这些功能,并试图将其与我们的字幕相关联。
-
为了获得长期记忆,RNN类型充满了可以保持单词状态的LSTM细胞(长短期记忆)。例如,一个拿着___啤酒的男人可以被理解为一个拿啤酒的男人,所以男性气质的概念在这里被保留了下来。
物体检测>>>
-
区域卷积神经网络(R-CNN):通过先生成候选区域(region proposals),然后对每个区域使用CNN提取特征进行分类,适用于需要精确定位物体的场景。

-
单次多框检测(SSD):在不同尺度的特征图上直接预测物体的边界框和类别,实现快速且准确的物体检测,适合实时应用。
-
You Only Look Once(YOLO):将物体检测视为单个回归问题,直接从图像像素到边界框坐标和类别概率的预测,特点是快速且效率高。

图:YOLO多目标检测与分类
图像分割>>>
-
全卷积网络(FCN):用于语义分割,能够将图像中的每个像素分类到一个特定类别,适用于场景理解、医疗图像分析等。
-
U-Net:具有U形结构的网络,特别设计用于医学图像的分割,强调了从图像中精确分割出结构的能力。
目标跟踪>>>
-
Siamese网络:通过比较目标对象与其他对象的相似度来实现跟踪,适用于视频监控、运动分析等场景。
姿态估计>>>
-
OpenPose:能够从图像中实时检测人体的姿态,包括身体、手和脸部的关键点,适用于交互设计、运动分析等。
3D重建>>>
-
立体匹配(Stereo Matching):通过比较两个视角的图像来估计场景的深度信息,用于3D模型重建、自动驾驶车辆的环境感知等。
图像生成>>>
-
生成对抗网络(GANs):由生成器和判别器组成,能够生成新的、看起来与真实图像相似的图像,适用于图像合成、风格转换等。
而以GPT-4V、Gemini、Sora等为代表的大型多模态模型(LMM),通过其对多模态数据的处理能力、任务灵活性、上下文理解和生成能力等方面,展现了与CNN等传统计算机视觉技术不同的优势。LMM有可能彻底改变计算机视觉,并使其在以前看似不可能的具有挑战性的任务中取得令人印象深刻的结果,例如:视觉问答(VQA)、文本到图像生成(text2Image)和视觉推理自然语言(NLVR)。
对相关技术原理细节感兴趣的,可自行进一步研究。
03
—
应用场景与价值
计算机视觉利用其解释和理解视觉数据的能力,在各个行业有着广泛的应用,例如:
医疗保健:
-
诊断成像:自动分析X射线、CT扫描和MRI,以检测和诊断骨折、肿瘤和神经系统疾病等情况。
-
病理学:协助病理学家分析组织样本,以进行癌症检测和分类。
-
皮肤病学:识别皮肤状况和痣,以早期发现皮肤癌症。
-
手术辅助:计算机视觉通过为外科医生提供实时视觉信息,提高精度并降低风险,从而辅助微创手术。
-
远程患者监测:使用摄像头和传感器监测和分析患者在家中或医院的生命体征、运动和行为。

汽车:
-
自动驾驶:计算机视觉在自动驾驶汽车中发挥着至关重要的作用,协助完成物体检测、车道检测和行人跟踪等任务,以实现安全导航>>>
-
高级驾驶员辅助系统(ADAS):自适应巡航控制、车道保持辅助和防撞系统等ADAS功能依赖于计算机视觉进行实时数据分析。
-
车牌识别(LPR):自动车牌识别系统用于停车管理、收费和执法。

零售和电子商务:
-
图片搜索:使客户能够使用图像而不是文本查询来搜索产品,从而改善购物体验。
-
库存管理:自动化库存跟踪和管理,减少缺货情况,优化供应链流程。
-
无人商店:计算机视觉用于跟踪顾客选择的商品并自动收费,消除了对传统结账队伍的需求。

制造业:
-
质量控制:检测制造过程中的缺陷,例如识别装配线上产品的缺陷。
-
机器人自动化:指导机器人完成拾取和放置物品、组装和质量检查等任务。
-
预测性维护:使用计算机视觉监控机器并预测何时需要维护,从而减少停机时间和维护成本。

农业:
-
精准农业:计算机视觉和无人机用于分析作物健康状况,检测病虫害,优化灌溉和肥料使用,从而提高作物产量并减少对环境的影响。
-
牲畜监测:跟踪牲畜的健康和行为,以便早期发现疾病并进行有效管理。
-
杂草和害虫控制:识别并选择性地针对杂草和害虫,减少化学干预的需要。

但这些只是计算机视觉如何改变不同行业的小部分案例,实际上其能力远不止于此。
接下来,我们将对大家触手可及的一些计算机视觉应用场景/产品进行更进一步的探索。
二维码识别
如今二维码(QR Code)已经被广泛用于我们的日常生活之中(添加好友、扫码支付、推广链接……),但是对于二维码识别的技术本身估计绝大多数人都不会专门去了解。

在研习过程中发现有人表示条形码和二维码的扫描不算是计算机视觉,但我不这么认为。计算机视觉主要是指使计算机能够“看到”并理解图像和视频中的内容的技术和方法。从这个定义出发,条形码和二维码扫描可以被视为计算机视觉的一种应用,尽管它们相对来说比较简单和专一。
尽管所有的二维码在视觉上看起来都很相似,但根据编码数据的量,各种类型的二维码可以具有不同的元素组成。此外,所谓的二维码美化也越来越流行(例如添加logo、使用SD制作艺术二维码),因此在开发二维码定位和识别方法时,必须考虑所有这些二维码的特殊性。


下图展示了二维码的基本结构:

相比于一般的自然图像/照片,二维码的纹理模式比较单一,边界分明。比如在微信环境中,二维码识别的实现方法和过程大致如下:
-
图像预处理:包括图像增强、去噪、二值化、边缘检测等步骤,以提高二维码的识别率。
-
检测定位:使用图像处理技术(扫描像素行/列匹配对应比例)定位二维码在图像中的位置(通常是识别二维码的三个定位符号)。
-
解码算法:对定位后的二维码进行解析,将图像数据转换为数字或字符信息。
-
后处理:解码信息可能会经过一系列的验证,如检查校验位等,以确保数据的准确性。
-
执行操作:根据二维码中的数据,微信可能会打开一个网页、添加一个联系人、连接到一个Wi-Fi网络,或执行其他内置操作。
作为AI产品经理,我们在其中主要负责确定目标用户的需求,决定二维码识别功能的应用场景,并确保有足够的二维码样本进行算法测试,联合研发人员提高扫码算法的识别成功率。毕竟不同环境和条件下(如光线、角度、距离、污损、运动模糊、多二维码混淆等)我们都要有所考虑。

人脸验证(Face ID)
人脸验证即人脸的1:1比对,例如苹果手机用户所熟知的面容ID(Face ID,即刷脸解锁手机)。我们可以简单理解为它本质上是对2张人脸图片(例如实时活体照片、生活照、证件照、身份证芯片照、带网纹照等)进行相似度的对比,返回这两个人脸的矩形框坐标、人脸五点关键点坐标、比对的置信度,以及不同误识率的置信度阈值。

除了大家所熟知的手机刷脸解锁,还可以应用到以下场景中:
-
金融业务:比对用户身份证照片和现场拍摄的已获授权的照片,判断用户信息真实性,可提供快速安全的身份核验流程,适用于互联网远程开户、刷脸支付等金融业务。
-
员工考勤:无接触式刷脸考勤,疫情防控场景下企业考勤首选,且能有效防止代打卡等作弊行为。
-
公共服务:客户直接刷脸办理业务,通过人脸比对识别身份信息,减少身份证查验、复印存档等环节,提高公共服务窗口办理业务的效率。
-
酒店自助入住:住客刷脸自助办理入住,将现场授权获取的照片,与身份证提取的照片进行1:1比对,确保住客身份的真实性的同时,减少人工核查和服务成本,向住客提供便捷的入住体验。
Apple 在 iOS 10 中开始使用深度学习进行人脸检测。Face ID使用我们的人脸作为生物识别登录来解锁iPhone。与早期的面部识别系统不同,Face ID使用深度信息和先进的机器学习算法,使其更值得信赖。根据 OverFeat 论文中的一些见解,苹果的研发团队构建了初始架构,从而形成了一个具有多任务目标的全卷积网络(见下图),其中包括:
-
用于预测输入中是否存在人脸的二元分类,以及
-
用于预测最能定位输入中的脸部的边界框参数的回归。
经过多种尝试和训练,网络能够预测图块中是否包含人脸,如果包含,它还提供图块中人脸的坐标和比例。

总体而言,其构建过程大概率需要经过以下步骤:
-
数据收集与标注:首先,需要收集大量的面部数据,包括不同性别、年龄、种族的人脸图像。数据需要在不同的光照条件下、不同的表情变化下进行收集。面部数据需要由专业人员进行标注,确保数据质量。
-
模型训练:使用收集到的数据训练深度学习模型。训练过程中,模型学习识别和理解面部的关键特征点,如眼睛、鼻子、嘴巴等位置。
-
模型评估与优化:通过测试集评估模型的准确性和鲁棒性,根据评估结果对模型进行优化,提高其在不同条件下的识别能力。
-
集成与部署:将训练好的模型集成到Face ID的系统中,确保模型能够快速响应,实时进行面部识别。
-
用户注册与验证流程设计:设计用户注册Face ID时的面部扫描流程,引导用户完成面部数据的采集。在用户尝试解锁设备时,系统快速捕捉面部数据,与注册时的模型进行比对,实现身份验证。

苹果的Face ID使用了TrueDepth相机系统,该系统包含点阵投影仪、红外摄像头和照明传感器,能够生成用户面部的精确3D模型。通过这些高精度的面部数据,结合深度学习算法,Face ID能够实现安全且迅速的面部识别功能。而且,Face ID 还会自动适应用户外表的变化,例如化妆、长出面部毛发、剃掉了胡须,Face ID 会在更新用户的面部数据之前请求使用密码确认用户的身份。
图片搜索(物体识别)
图片搜索即以图搜图,是以图像为输入、用图像进行匹配的搜索技术。图像搜索(Image Search)以深度学习和机器视觉技术为核心,提取图片内容特征、建立图像搜索引擎,是一款用于图片间相似性检索的平台型产品。用户输入图片,可以快速在图片库中检索到与输入图片相似的图片集合。结合不同的行业和业务场景,图像搜索可广泛的应用于拍照购物、商品推荐、版权保护、图片相似推荐等场景,例如:
-
商品图像搜索:通过输入商品图片,可以在商品库中准确地找到图片中商品的同款或者相似款,并返回对应的商品信息。

-
通用图像搜索:通过输入具有相同元素或主体内容的图片,在海量图片库中查找相似或相同的图片。

-
布料图像搜索:通过输入布料图片,可以在布料库中准确的找到与输入图片中布料相同或纹理相似的布料,并返回对应的布料信息。

-
商标图像搜索:通过输入商标图片,可以在商标库中准确的找到与输入相同或相似的商标,并返回对应的商标信息。
-
版权图像搜索:通过输入图片,可以在自建有版权的图库中准确找到原图,有效避免图片拼接、Logo、水印、翻转、局部、色彩变换等因素对搜索效果的影响。
-
家具家居图像搜索:通过输入图片,可以在家具家居库中准确的找到与输入相同或相似的家具家居,并返回对应的家具家居信息。
-
工业五金图像搜索:通过输入图片,可以在工业五金库中准确的找到与输入相同或相似的工业五金,并返回对应的工业五金信息。

不止大家有没有留意过,微信扫一扫除了支持条形码/二维码,也支持识物。而这种智能识物的本质其实就是以图搜图,据悉其已能精准识别超过1亿种商品、30多万种名画、10多万个地标、数万种种动物和5000多种热门植物。

这是我某次带娃爬山所识别的一些植物(不过不是微信识物,但同理):

在植物识别方面,其基本的流程框架图如下所示:

为了高效地扩展到其他类别的识物能力,微信团队在此基础上把各个模块进行了解耦+尽可能的并行化,如下图所示:

图:微信扫一扫识物垂类中台并行化
因而构建了一个可以快速拓展至其他垂类的识物中台。微信扫一扫识物的整体框架图如下所示:

后来拓展了更多类别的物体识别,例如:

从软件工程的角度而言,识物工作主要可以分为以下3个模块:

(1)算法模型:算法侧主要是对检测模型和多类目的检索模型等持续炼丹,检测模型需要返回图片中物品的准确位置;检索模型需要保证同款物品的特征表达越近越好。
(2)离线工程:识物是典型的“离线写,在线读”的业务,业务数据的存储和检索库的构建都是在离线环节完成。我们收录了小程序生态下的商品图片,下载后进行检测抠图,提取检索特征,最终构建成检索库交付到线上环境。这篇文章将主要介绍这一部分的工作。
(3)在线部署:算法模型和离线生成的检索库最终完成部署,对外服务。用户识物时,检索库会召回一批相似物品,再经过一系列复杂的精排、过滤逻辑,最终返回用户看到的结果。
微信扫一扫识物的技术实现方案,可以总结为数据构建+算法研发+平台建设三大模块:
-
数据构建:其终极目标是提升AI算法的性能。无论是处理用户上传的图片,还是商家入库的商品图,都必须通过主体检测、类目预测、特征提取等环节,确保检测模型、分类模型和检索模型能够得到高质量的训练数据的支持。简而言之,数据质量直接决定了扫一扫识物的性能上限。

-
算法研发:算法研发是为了充分的利用已有的数据,确保每一个环节,无论是检测、类目预测还是检索特征提取,都能在精度和速度上达到最优的平衡。其目标是让用户在任何情况下扫描商品都能获得精确的结果和相关的信息展示。算法研发的质量直接影响了“扫一扫”识别功能的性能下限。
-
平台建设:无论是数据建设,算法研发,模型上线都离不开一个好的平台支持。微信团队为“扫一扫”识别功能建立了从数据清洗、模型训练到部署上线的一体化平台。可以说,一个高效的平台建设是研发效率的保证,也是“扫一扫”识别功能能否成功上线的关键。下图展示了其数据清洗过程中图片从下载到建库的主要任务流程:

文章开头所提及的百度/谷歌的“以图搜图”从技术和应用原理而言是类似的:

淘宝、京东等电商平台支持拍照或扫一扫搜索商品,可谓是计算机视觉/图片搜索的绝佳商业化应用:

典型的搜索结果如下图所示,左边是用户上传的一张图片,中间首先会做一个主体检测(因为在背景干扰比较大的情况下,如果不做主体检测,这个商品占的面积可能会比较小,增加识别的难度),进行特征提取后,送到检索系统中,进行相似结果的检索和返回:

根据云栖社区的介绍,拍立淘流程主要分为离线流程和在线流程,主要步骤如下:

-
离线流程:主要是指拍立淘每天离线构建索引库的整个流程,涉及选品、离线抠图、离线抽取特征、构建索引等环节。执行完毕之后,每天会在规定时间完成线上图库的更新。
-
在线流程:主要是指用户一张query图上传之后,到最后返回结果的整个中间过程,包含在线类目识别,在线抠图,在线特征提取和在线索引查询等关键步骤。
淘立拍相关内容在《第3章 智能搜索技术》一文中已经分享过。
皮肤检测
利用计算机视觉技术进行皮肤检测是一个跨学科领域的创新应用,它结合了医学、皮肤学、计算机科学、人工智能等多个学科的知识。这种技术能够通过分析用户提供的皮肤照片来识别各种皮肤问题,如干油性、敏感度、色素沉着、衰老迹象、痤疮等。

其基本原理是:
-
图像采集:用户通过智能手机或专用设备拍摄皮肤照片。

-
图像预处理:对采集到的图像进行预处理,如调整亮度、对比度,以及裁剪,以提高后续分析的准确性。

-
特征提取:使用计算机视觉技术从预处理后的图像中提取关键特征,如颜色、纹理、形状等。

-
模型分析:将提取的特征输入到训练好的机器学习模型中,模型根据特征预测皮肤状况。

-
结果呈现:将分析结果以用户友好的方式呈现给用户,包括皮肤状况的诊断和建议。

根据我的推测,如果从AI产品层面要实现这样的功能,涉及以下工作:
-
数据收集与标注:收集大量皮肤照片,并由皮肤科医生进行标注,作为训练模型的数据集。提供美容和时尚科技业务解决方案SaaS提供商Perfect就表示,其产品Skincare Pro使用超过 70,000 张医疗级图像构建,并已通过皮肤科医生的验证,且研究表明该技术拥有 95% 的重测信度。
-
模型训练:使用标注的数据集训练机器学习模型,例如卷积神经网络(CNN)。
-
模型评估与优化:通过测试数据评估模型性能,根据评估结果进行模型
优化。
-
集成与部署:将训练好的模型集成到应用程序中,并部署到服务器或移动设备上。
地图应用
计算机视觉技术在地图应用领域有很多不同的方式,例如:

而地图应用本身也是非常复杂的一个产品,有很多的细分,以百度地图为例:

导航又可以进一步细分为手机导航、车用导航等不同的产品。百度车用导航系统的产品架构如下图所示:

为了支持这些场景的应用,首先需要构建出色的地图服务。创建一款地图产品,尤其是高精度地图,是一项复杂的任务,涉及多个步骤和技术。以百度Apollo高精地图为例,其实现流程如下:

高精度地图(High-precision maps)是自动驾驶汽车、高级驾驶辅助系统(ADAS)、城市规划和管理等领域的关键资源,包含道路形状、道路标记、交通标志和障碍物等地图元素,其地图精度可以到厘米级。

在已经确定目标用户群体和地图产品的核心功能的基础上,我们就需要通过数据采集,数据处理、元素识别、人工验证、产品编译等步骤来实现高精度地图的生产。
(1)数据采集阶段
地图的数据采集包括卫星图像、航拍图像、地面扫描数据等多种来源,也包括与政府、企业合作获取已有的地理信息数据。
目前的高精地图绝大部分是通过相机和视觉的方式采集信息。例如使用街景采集车、背包采集设备等移动地图系统(MMS)进行数据收集。MMS是一种配备地图传感器的移动设备,包括GNSS(全球导航卫星系统)、IMU、激光雷达(光探测和测距)、相机和雷达,用于收集地理空间数据:

自2013年搭建自采队伍以来,百度地图已组建起中国规模领先、AI技术顶尖的地图数据制作团队。团队拥有300辆专业采集车,与室内图采集背包、全景采集背包、全景采集无人机等专业设备,以适应不同场景的采集需求。
采集车的地图外采工作人员的主要任务就是开着采集车”压马路”,由车上设备自动采集数据。在途经一些难以识别的地标时,用口头语音记录的方式打上标记。比如一些小区入口的铁门,外采员对设备喊一声“大门”即可。

真实世界很大,全国有几百万公里道路,再加上其他信息,人工方式是处理不过来的,很大程度上需要用自动识别,通过算法识别资料。当然有时候算法没办法做到100%,还需要人工修正,从而制作成地图数据库,来支持地图数据服务。

采集信息的时候,有时候图片会有畸变、反光、遮挡等情况,先不说分辨率压缩的问题,成像本身取决于镜头的质量和成本、天气条件、光线等因素,有时候采集回来的图像中差的图很多。这时候就不只是单纯去解决一个理想当中的算法问题,也需要处理很多实际情况。
采集车需要有采集点云数据的激光雷达装置,进行高精定位的RTK装置,获取车辆角度和加速度的惯导系统等,一台车的成本在百万以上。

(2)数据处理
数据分为点云和图像两类,因为高精度要求,所以制图以点云为主。

点云拼接:采集过程中信号可能不稳定(RTK在遮挡情况下会出现不稳定现象),通过SLAM等对pose做优化,优化之后对点云信息做拼接得到完整的点云信息。点云信息被压扁得到定位地图图像、反射地图图像。反射地图可以做一些标注。
点云图像处理后得到一个高精度图像,基于图像可以做精确的车道线识别,获得车道线的形状特征。但仍需要道路虚实线、黄白线、路口标识等信息,这时候需要元素识别。
(3)元素识别
车的自动化程度不够 ,无法解决道路上没有车道线的部分以及无法理解逻辑信息(比如停止线和红绿灯的关联关系)。

这时候,什么AI深度学习、图像识别、三维视觉等技术,直接往采集数据上招呼。提取、归类感兴趣数据,完成2D转3D的模型,从而最终完成线识别、特征点提取、构建车道的网络拓扑以及制作各种地物(人行横道、标线、交通标志)等。
元素识别最能体现高科技了,基本上都是使用深度学习来获取地图的要素识别,包括:
-
是否能基于点云分割,从点云里提取特征
-
尝试从点云中提取车道线、灯杆、红绿灯等
关于元素识别,让我们进一步展开,因为这和本文的主题相关度非常高。
街景理解技术融汇了众多计算机视觉技术,从不同技术的识别结果的表示形式上,可以划分为四个层级:点级、线级、面级、体级,以及每个层级内、不同层级间要素的逻辑关系。其中:
-
点级提取技术:用于解析各种与“点”相关的信息,以提取坐标及特征描述子为主,包括通用特征点、语义关键点等各种点级信息的提取技术,处理对象包括各种要素,用于表征要素的位置、特征等信息。
-
线级提取技术:用于解析各种与“线”相关的信息,以提取线条为主,包括车道线、地平线、各类曲线/直线等各种线级信息的提取技术,处理对象包括各种线条,用于表征要素的位置、矢量、拓扑等信息。
-
面级提取技术:用于解析各种与“面”相关的信息,以提取区域为主。街景视频图像数据由于透视投影的成像方式,所有信息均展示在二维平面上,该平面根据不同语义、不同实例被划分为不同区域,这些区域表征了要素的二维位置、轮廓、语义等信息。本层次能力包括语义分割、实例分割等提取技术。
-
体级技术:用于解析各种与“体”相关的信息,以提取三维结构为主,包括深度估计、视觉显式/隐式三维重建等提取技术,用于表征场景及要素的三维结构信息。
-
逻辑关系提取技术:基于以上技术的提取的要素及场景信息,通过时序信息融合及逻辑推理,提取不同层级或同一层级要素间的逻辑关系,包括点的匹配关系、线的拓扑关系、要素的多帧跟踪及位置关系等。
具体到现实场景,点级、线级、面级提取技术的的识别结果,如下图所示:

图:美团街景解析结果示例
根据高德地图的介绍,常规地图任务通常分为两大类,一类是道路相关,一类是POI挂牌识别。这两类任务都需要较多的视觉技术。例如,在道路标志识别上,算法要做的就是把道路上的标志一个一个全部找出来,同时识别标志的类型和内容。
道路标志有100多种。如果只是处理这些标志,其实并不是那么复杂。现实中,有时候需要用低成本的方式采集数据,这时如何保证图像质量就是需要考虑和解决的问题。

在实际使用时,高德地图将检测框架分为目标检测与精细分类两阶段:

目标检测阶段>>>
通过Faster-RCNN在图片中检测所有的交通标志,并进行粗分类,要求极高的召回率和执行速度。在实际使用时,其采用了多种策略来提升算法能力,例如:
-
效果方面:将检测目标根据外形特征分为N大类(如圆形、三角形、方形,以及高宽比异常的人行横道等),再为每一类配置专属的RPN网络,各个RPN根据对应的尺寸特性设计Anchor的Ratio和Scale;不同RPN根据需要使用不同层的特征图,设计更有针对性
-
效果方面,针对各个类型样本分布不均匀问题,使用多种样本增强手段,并在训练过程中使用OHEM等方式进一步调整样本分布
-
效果方面,还借鉴了IoU-Net、Soft-NMS等方案,进一步提升检测效果
-
性能方面,各个大类之间共享基础卷积层,保证检测时间不会过分增长
-
扩展性方面,对于新增类型,理想情况下只需要新增一个RPN网络单独迭代,可以不对其他类型的效果造成任何影响(如下图,RPN1和RPN2完全独立)

精细分类阶段>>>
精细分类阶段的目的是对目标检测阶段得到候选框进行精细分类并滤除噪声,保证极高的召回率和准确率。在实际实现中,还使用以下策略来提升效果:
-
为每个大类配置独立的精细分类网络,互相之间不干扰;各个大类的迭代完全独立和并行,可以多人并行研发,有效缩短研发周期
-
针对各个大类的难易程度,选择不同计算复杂度的网络来完成精细分类和噪声抑制,避免因为某些类型复杂度过高产生效率瓶颈
-
样本方面,各个大类可以独立收集样本,可以针对特定类型进行收集和标注,训练和测试集合的构建效率大幅提升
如下图,针对圆形标牌,其差异比较明确,可以使用简单网络;针对方牌,需要根据文字布局和内容来区分正负样本,分类难度大,因此必须使用较深的网络:

以下是部分效果图(不同框代表不同检测结果):



图:高德地图交通标志检测效果图
(4)人工验证
这一环节由人工完成,自动化处理的数据还不能百分百准确,需要人工在进行最后一步的确认和完善。按照现在的情况,一名员工修正的数据量在30-50公里左右,对于修正后的数据,需要上传到云端,最终形成的高精度地图也通过云平台进行分发。

例如采集车采回的数据会以数据压缩包的形式给到内业工作人员,由内业工作人员做进一步处理。通过图像以及语音识别技术,可以对摄像机收回的图像数据中的标示牌、店铺名称等自动标记名称。之前语音打下的标记也会由机器自动识别翻译成文字信息。
内业人员的工作只需要校验结果,对内容不准确的部分人工更正。在参观展示时,一些转弯、限速等路牌的修订较少。一些有遮挡、字图配色复杂的店铺名牌,在做POI提取时,修订频次会略高一些。
(5)应用&维护
高精地图落地的完整闭环包括制图、用图和更新三个紧耦合的过程,以保证数据的高频流动和更新。高精度地图动态与静态信息并存的特性决定了后期的更新维护会占据更大的工作量。业内已经形成共识,相比于前期劳动密集型的绘图制图工作,高精度地图后期的维护更新才是核心竞争点。

04
—
能力边界与挑战
从AI产品经理的视角来看,计算机视觉技术虽然在多个领域取得了显著进展,但在实际应用中仍然面临一系列的能力边界和挑战。这些挑战不仅限制了计算机视觉技术的应用范围,也对产品开发和项目管理提出了要求。
例如:
(1)数据质量与数量的限制
数据不足:许多计算机视觉算法,特别是深度学习模型,需要大量且多样化的数据集进行训练。在某些领域,如医学图像分析,获取大量高质量、标注准确的数据可能非常困难和昂贵。因此,数据的限制可能导致模型训练不足,影响系统的准确性和泛化能力。
数据偏差:数据集可能包含偏差,导致在性别、种族或其他人口统计因素方面的预测不公平或不准确。
(2)鲁棒性与对抗性攻击
(注:鲁棒性是指系统或算法在面对输入数据中的扰动或噪声时,仍能保持良好性能的能力)
环境变化:现实世界的环境变化多端,如光照变化、遮挡、视角变化等,这些都可能影响计算机视觉系统的性能。模型可能难以在所有情况下都保持高水平的性能,特别是在那些它未曾见过的新场景或条件下。
对抗性攻击:计算机视觉系统容易受到攻击,精心设计的小改动可能导致错误的预测或误分类。保护计算机视觉系统免受攻击、数据泄露或未经授权访问至关重要,特别是在自动驾驶汽车和安全系统等关键应用中。
(3)AI的可解释性
缺乏可解释性:许多深度学习模型被视为“黑盒”,难以理解它们做出特定预测的原因。在需要透明度和问责制的应用中,这是一个重大问题。
(4)实时处理
实时处理:对于需要实时或近实时反应的应用(如自动驾驶车辆、机器人,不过现在也越来越成熟了),计算机视觉系统必须在极短的时间内处理大量图像数据,并做出准确的决策。这要求有高性能的硬件支持,并可能导致成本增加和能耗问题。
硬件限制:开发和部署计算机视觉系统通常需要高计算资源,这在资源受限的环境中限制了它们的可访问性和效率。
(5)规模与复杂性:
可扩展性:高效地处理和分析大规模视觉数据是一个挑战,特别是对于视频监控和内容推荐等应用。
复杂场景:处理包含多个对象、遮挡和交互的复杂场景仍是一个持续的挑战。
(6)泛化能力和过拟合
如何确保计算机视觉模型具有良好的泛化能力,即在未见过的新数据上也能表现良好,而不是仅仅在训练数据上过度拟合。因为过拟合会导致模型在实际应用中表现不佳,影响用户体验和产品可靠性。
(7)隐私、伦理和法律问题
隐私问题:计算机视觉系统可能无意中侵犯个人隐私,例如通过未经授权的监控或未经同意的面部识别。因此,我们需要确保产品遵守相关法律法规,并妥善处理用户数据,以维护用户信任和公司声誉。
偏见与公平性:确保计算机视觉系统公平且不基于种族、性别或其他受保护属性进行歧视是一个关键的伦理问题。
法规与合规性:计算机视觉系统的伦理使用是一个争论话题,这导致了对法规和标准的需求。
比如最近就有网友曝出,谷歌的Gemini在文生图的时候,好像刻意在拒绝生成白人的形象,取而代之的,是强行把图中的人物变成黑人、女性,以及弱势群体。比如让它生成马斯克的图片:

05
—
实施方法
计算机视觉技术在不同行业、场景下的应用差异较大,但是如果从相对通用的角度来考虑,计算机视觉产品开发的关键阶段还是可以概括如下:
1. 市场和用户研究:进行市场调研,用户访谈,竞品分析等,明确产品要解决的问题、目标用户群体和市场需求。

2. 定义产品愿景和目标:确定产品愿景、关键功能和目标,制定产品路线图,确定优先级和关键里程碑
3. 技术可行性研究:研究现有的计算机视觉技术、算法和工具,评估所需技术的可行性和可用性。比如在行业的视觉诊断方面:



4. 数据收集与准备:收集和准备用于训练和测试模型的数据,包括数据采集、清洗、标注和增强。
数据增强是一种通过对原始图像应用各种变换来生成新的训练样本的技术。该过程通过增加训练数据的多样性,使模型对输入数据的变化更具鲁棒性,从而有助于提高模型的泛化能力。常见的数据增强技术包括旋转、缩放、翻转和颜色抖动。所有这些技术都引入了可变性,而不会改变图像的基本内容。

5. 原型设计与迭代:设计用户界面和体验,开发技术原型,进行用户测试,快速验证概念和设计。
6. 模型开发与训练:开发和训练计算机视觉模型,选择合适的算法和架构,训练模型,进行性能评估。
关于模型评估,相关的概念我们在《如何评估AI产品的好坏?——关于评估模型和指标》一文中有提及,但这里我们结合计算机视觉这个领域再详细展开下,加深理解。
在对象检测、图像分割或面部识别等计算机视觉任务中,精确率 (Precision)为模型正确识别和定位目标对象或特征的能力提供了宝贵的见解,同时最大限度地减少了错误检测。

图:计算机视觉交通分析中的目标物体检测
而在安全系统的上下文中,召回率(Recall)表示系统检测到的实际入侵者的比例。较高的召回率值是可取的,因为它表明系统在识别潜在安全威胁方面是有效的,从而将未被检测到的入侵风险降至最低。

图:具有人员检测功能的入侵检测应用程序
在医学成像系统中,F1分数(F1 Score)有助于确定模型在检测和诊断特定条件方面的总体有效性。高F1分数表明该模型成功地准确识别了相关特征,同时最大限度地减少了假阳性(例如,被错误标记为异常的健康组织)和假阴性(例如,未被检测到的情况)

图:医学影像学中肺炎分类的计算机视觉模型
在图像分类系统中,准确率 (Accuracy)指示模型已正确分类的图像的比例。高精度值表明该模型在为所有类别的图像分配正确标签方面是有效的。

图:一种用于自动化制造质量检测的缺陷分类模型
在自动驾驶汽车的物体检测系统中,IoU测量机器学习模型准确检测和定位汽车环境中其他车辆、行人和障碍物的能力。 IoU测量模型的预测和实际目标之间的重叠程度,表示为0和1之间的值,0表示没有重叠,1表示完全匹配。

图:YOLOS模型用于实时交通目标检测
IoU的重要性在于它能够评估模型的定位精度,捕捉图像中对象的检测和定位方面。高IoU值表明该模型成功地识别了物体并准确估计了它们在场景中的位置,这对于安全高效的自主导航至关重要。这就是为什么IoU性能指标适用于评估和提高计算机视觉模型的准确性以及现实世界应用中对象检测任务的性能。
在现实世界的例子中,例如交通标志识别系统,混淆矩阵可以帮助识别哪些标志和情况会导致错误分类。通过分析矩阵,开发人员可以了解模型的优势和劣势,以便针对特定的标志类和具有挑战性的情况重新训练模型。

图:路标识别计算机视觉模型的挑战
如癌症检测系统,ROC曲线可以帮助确定用于分类肿瘤是恶性还是良性的最佳阈值。该曲线有助于确定最佳阈值,以平衡正确识别恶性肿瘤(高灵敏度)的需要,同时最大限度地减少假阳性和假阴性。

图:皮肤癌症分类模型示例
需要考虑使用多个指标进行综合评估,因为不同的指标涵盖了模型性能的各个方面,而依赖于单个指标可能会导致对模型有效性的理解有偏差或不完整。
用于计算机视觉模型测试的一些流行的公共数据集涵盖了各种任务,如图像分类、对象检测和分割,例如:
-
ImageNet:一个大型数据集,包含数千个类的数百万张标记图像,主要用于图像分类和迁移学习任务。
-
COCO :一个流行的数据集,具有不同的图像,每个图像具有多个对象,用于对象检测、分割和字幕任务。
-
Pascal VOC:包含属于20个类的带有注释对象的图像,用于对象分类和检测任务。
7. 集成与测试:将计算机视觉模型集成到产品中,行详尽的测试(包括单元测试、集成测试和用户验收测试),确保系统的稳定性和性能。
8. 部署与优化:部署产品到生产环境,根据用户反馈进行优化;根据市场和技术的发展,持续更新产品功能和性能
06
—
思考与延伸
尽管我们的讨论涵盖了计算机视觉的多个方面,包括技术原理、实现挑战、应用案例以及特定技术的详细介绍。但是计算机视觉的相关知识和应用之浩瀚,让我深深地感到力不从心,还有很多相关的子领域(例如视频监控与分析、人体动作捕捉、机器人视觉)未来得及探讨。
正如前面所说,计算机视觉技术的应用范围非常广泛,从改善用户体验(如面部识别解锁)到推动行业创新(如医疗影像分析、自动驾驶),计算机视觉正成为推动社会前进的重要力量。希望后续我还有时间和精力,能针对特定的应用场景和产品做更加深入的研究、学习和整理。
例如在美团,计算机视觉技术就有着非常丰富的落地场景(远比没有进行了解之前想象的要多):




而阿里巴巴同样基于多年的实践(阿里的许多内部业务,如淘宝、天猫、优酷等诸多明星产品都有视觉能力在背后的支持有着海量的用户规模,对这些视觉智能技术能力进行了千锤百炼),推出了视觉智能开放平台,围绕多个视觉领域,提供多种视觉AI能力,包括:生成专区、人脸人体、文字识别、商品理解、内容审核、图像识别、图像生产、分割抠图、视觉搜索、图像分析处理、目标检测、视频理解、视频生产、视频分割等。

不过,计算机视觉(即图像和视频)也不见得是单独应用的。人类智能本质上是多模态的——我们在日常生活中处理和理解无数的输入,包括文本、图像和声音。这就是为什么人工智能正在逐渐转向集成了多种感官输入的LMM,以期最终打造出更接近自然智能的人工智能。
GPT-4V代表着这一方向的重大飞跃。这是一个可以从文本和视觉输入中理解和生成信息的模型,预示着人工智能有可能更直观地回答有关图像的问题,生成字幕,甚至根据自然语言提示编辑图像。
在计算机视觉领域,将前沿的AI技术与深刻的市场洞察相结合,可以为用户提供创新且高效的解决方案,进而彻底改变我们与数字世界的互动方式。
最后
如果你真的想学习人工智能,请不要去网上找那些零零碎碎的教程,真的很难学懂!你可以根据我这个学习路线和系统资料,制定一套学习计划,只要你肯花时间沉下心去学习,它们一定能帮到你!
这里也给大家准备了人工智能各个方向的资料,大家可以微信扫码找我领取哈~
也可以微信搜索gupao66回复32无偿获取哦~

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)