0、前言
计算机视觉是人工智能领域的一个重要分支,它是一个跨学科的领域,涉及计算机科学、人工智能、机器学习、图像处理、神经科学等多个学科的知识
计算机视觉使用计算机技术来模拟人类视觉系统的功能,使计算机能够从图像或多维数据中提取信息、识别对象/场景/活动,其目标是使计算机能够像人类一样“看”和“理解”视觉世界
计算机视觉的应用非常广泛,包括:
- 自动驾驶汽车:使用视觉系统来识别道路标志、行人、其他车辆等
- 医疗成像:辅助诊断,如肿瘤检测、骨折识别等
- 安全监控:人脸识别、异常行为检测等
- 工业自动化:质量控制、机器人导航等
- 增强现实和虚拟现实:提供沉浸式体验,通过视觉技术增强现实世界
- 智能手机应用:如面部识别解锁、图像搜索等
计算机视觉通常包括图像分类、目标定位、目标检测和图像分割这四大基本任务,它们是构建更复杂视觉系统的基础,其他的关键任务大多也是在这四大基本任务的基础上延伸开来的
1、图像分类(Image Classification)
1.1 概念
分类任务解决的是“是什么?”的问题,即:给定一张图片或一段视频,判断其中包含什么类别的目标,通过对图像的特征进行提取和分析,然后将图像分配到特定的类别(例如,识别一张图片中的物体是猫还是狗)
1.2 操作过程
Step1:数据预处理:包括图像的缩放、归一化等
Step2:特征提取:使用传统方法(如SIFT、HOG)或深度学习模型自动提取特征
Step3:分类器训练:使用提取的特征训练分类器,如支持向量机(SVM)、随机森林或深度神经网络
Step4:分类预测:将训练好的模型应用于新图像,进行类别预测
1.3 应用场景
包括但不限于以下场景:
- 图像标注和检索
- 内容过滤和版权保护
- 农业中的作物病害识别
1.4 算法模型
- 传统方法:SIFT、HOG、Bag of Visual Words等
- 深度学习方法:CNN(如AlexNet、VGGNet、ResNet等)
【备注】
本质上是一个样本级分类,任务比较粗糙,难度较低
2、目标定位(Object Localization)
2.1 概念
定位任务通过预测目标的边界框(bounding box)来标出对象的具体位置(例如,在一张照片中,定位任务能够识别出行人、动物和其他物体,并给出它们在图像中的具体位置)
2.2 操作过程
Step1:图像预处理:与图像分类类似
Step2:特征提取:提取有助于定位对象的特征
Step3:边界框预测:使用分类器和回归器预测对象的类别和位置
Step4:后处理:如非极大值抑制(NMS)来去除重叠的边界框
2.3 应用场景
包括但不限于以下场景:
- 图像编辑和增强
- 安全监控和交通管理
2.4 算法模型
- 传统方法:AdaBoost、级联分类器等
- 深度学习方法:R-CNN系列(R-CNN、Fast R-CNN、Faster R-CNN)、SSD、YOLO等
3、目标检测(Object Detection)
3.1 概念
检测任务结合了分类和定位的功能,既要识别图像中的对象,又要确定它们的位置,其输出是多个目标
- 是什么?(类别概率 Probability)
- 在哪里?(边界框 Bounding Box)
3.2 操作过程
Step1:图像预处理:与图像分类类似
Step2:特征提取:提取有助于检测对象的特征
Step3:对象识别:使用深度学习模型识别对象并预测边界框和类别
Step4:后处理:使用NMS等技术优化检测结果
3.3 应用场景
包括但不限于以下场景:
- 自动驾驶车辆中的行人和车辆检测
- 视频监控中的异常行为识别
3.4 算法模型
- R-CNN系列(R-CNN、Fast R-CNN、Faster R-CNN)、RetinaNet、SSD、YOLO等
【备注】
本质上是除了做分类之外,还得做定位,而且还是多个目标(同时识别多个类别,每个类别有多个实例,每个实例都要算概率和做定位),因此,其任务比较精细,难度比较大
解决问题的方法:
-
Step1:把图像切成一个一个的片段
-
Step2:做图像分类,看每一个小片段是否有相关的目标
-
Probability:分类概率就是目标的概率
-
Location:片段的边界框就是定位坐标
-
图像分类策略在目标检测中的应用涉及到特征提取和分类这两个主要步骤,根据操作步骤顺序的不同,可分为以下两种方式:
-
先切原图,再针对每个片段抽特征,做分类:
- MTCNN:如上所述,MTCNN通过级联的方式逐步精细化目标检测结果,它首先生成候选窗口(切图),然后对这些窗口进行特征提取和分类
-
先对原图提特征,然后切特征图,再做分类:
-
SSD(Single Shot MultiBox Detector):SSD在不同尺度的特征图上进行检测,能够检测不同大小的目标,它首先对整个图像进行特征提取,然后在这些特征图上生成边界框和类别概率
-
YOLO(You Only Look Once):YOLO将目标检测问题转化为一个回归问题,直接在图像上预测边界框和类别概率,它首先对整个图像进行特征提取,然后在这些特征图上进行目标检测
-
4、图像分割(Image Segmentation)
4.1 概念
分割任务进一步细化了检测任务,不仅识别并定位图像中的对象,还要对每个对象进行像素级的分割,具体可分为语义分割和实例分割这两种类型
语义分割将图像中的每个像素分配给特定的类别,而实例分割则对每个独立对象进行像素级的分割(例如,在一张图片中,语义分割会区分出天空、树木、建筑物等不同类别,而实例分割则会区分出每只猫或每只狗的具体位置和轮廓)
4.2 操作过程
Step1:图像预处理:包括去噪、增强等
Step2:分割网络:使用深度学习模型对每个像素进行分类
Step3:后处理:如形态学操作来改善分割结果
4.3 应用场景
包括但不限于以下场景:
- 医学成像中的组织和病变分割
- 自动驾驶中的路面和障碍物分割
4.4 算法模型
- 传统方法:阈值分割、区域生长、分水岭算法等
- 深度学习方法:FCN、U-Net、Mask R-CNN等
5、版本之子——YOLO
YOLO(You Only Look Once)是一种流行的计算机视觉模型,它最初被设计用于目标检测任务,随着版本的更新,YOLO已经扩展到能够处理包括图像分类、目标定位、目标检测和图像分割在内的多种视觉任务
目前,YOLO以其速度快和准确性高的特性,已经成为目前计算机视觉领域中非常流行和强大的算法,YOLO特别适合于需要实时处理的场景,比如视频监控、自动驾驶等
几乎可以这么说:当今世界,计算机视觉≈YOLO