图像处理到计算机视觉的这个连续统一体内并没有明确的界限,通常来说它们的区别在于数字图像处理更多的是对图像进行变换,因此输入的是图像,输出也是图像。计算机视觉是对图像的内容进行分析,因此更多的是输入是图像输出是场景的语义表示。
1、数字图像
图像处理是对输入的图像做某种变换,输出仍然是图像,基本不涉及或者很少涉及图像内容的分析。例如我们常用图像美颜磨皮,图片PS,全能扫描王等都用到了数字图像处理的算法。像下图中的美颜技术就用到了图像处理中的平滑和滤波技术来消除皮肤瑕疵、减少噪点,并且增强面部特征的清晰度。

数字图像处理的主要研究方向有以下内容:
(1)图像预处理:图像预处理是为了改善图像质量,使得后续处理或分析更为准确。常见的预处理技术包括: 去噪:通过滤波技术(如中值滤波、高斯滤波)去除图像中的噪声。增强:提高图像的对比度、亮度等,常用的增强方法有直方图均衡化、拉伸变换等。几何变换:包括旋转、缩放、平移、裁剪、透视变换等操作,调整图像的形状或视角。(2)图像增强:图像增强用于改善图像的视觉效果,常见方法有:对比度增强:提升图像的细节,使得图像中的特征更加突出。 锐化:增强图像中的细节,使边缘更加清晰。 滤波:使用不同类型的滤波器(如高通滤波器、低通滤波器)去除不需要的信息。
(3)图像分割:图像分割的目的是将图像分割成多个有意义的区域或对象。常用方法有:阈值分割:通过设定阈值,将图像像素分为不同的区域。边缘检测:如Sobel、Canny算子,用来检测图像中的边缘信息。区域生长:从一个初始点出发,逐步扩展区域,直到满足某些特定条件。图像聚类:例如K均值聚类,可以用于自动分割图像中的不同区域。
(4)特征提取与变换:特征提取是从图像中提取出具有代表性的信息,用于后续分析和识别。常见的特征包括: 纹理特征:用来描述图像表面的纹理,如灰度共生矩阵、LBP(局部二值模式)。形状特征:如轮廓、边界、区域的面积、长宽比等。颜色特征:例如直方图分析、颜色空间转换(RGB、HSV等)。关键点检测与描述:如SIFT(尺度不变特征变换)、SURF(加速稳健特征)、ORB(Oriented FAST and Rotated BRIEF)等方法,用于检测和描述图像中的独特特征点。
(5)图像压缩:图像压缩技术的目标是减少图像的数据量,以便存储或传输。常用的压缩方法有: 无损压缩:如PNG格式,压缩后可以恢复到原始图像。有损压缩:如JPEG格式,采用失真技术来实现压缩,但压缩比高,图像质量损失较小。
(6)图像复原:图像复原指的是从损坏或模糊的图像中恢复原始图像。常见的恢复技术包括:去噪:去除图像中由于传输或其他因素引入的噪声。去模糊:通过反卷积技术来恢复模糊图像。
2、计算机视觉
计算机视觉是对图像的内容进行分析,提取出有意义的特征,再对得到的特征进行分析,提取场景的语义表示。例如人脸识别技术能够通过分析面部特征来识别个体身份,目标检测则能够识别图像中的不同物体并为它们分类。又例如,自动驾驶系统利用计算机视觉技术实时分析道路场景,从中识别行人、交通标志、障碍物等,并做出决策。计算机视觉不仅关心图像中的元素是什么,还要理解它们之间的关系和图像背后的实际意义,进而实现更智能的应用。
计算机视觉在早期有三个大任务:图像分类、目标检测、图像分割。
(1)图像分类是对整张图像进行分类的任务,其输入为图像,输出为图像所属的类别。图像分类算法是计算机视觉发展的起点,也是最早实现超越人类的视觉任务之一。经典的图像分类算法包括VGGNet、ResNet等卷积神经网络(CNN)。
(2)目标检测是对图像中的物体进行识别和定位,它的输出是目标的类别以及目标的位置坐标。其极具代表性的算法有YOLO系列算法,目前已经发展到YOLOv11。
(3)图像分割是对图像中的逐个像素进行分类,它输入是图像,输出是每个图像的类别。其中最为经典的图像分割算法为U-Net算法,特别在医学图像分割中发挥了重大作用。
(4)图像生成是通过计算机模型生成全新的图像,其输入通常是某种形式的随机噪声或条件信息,输出则是具有一定语义和结构的图像。图像生成的经典算法包括生成对抗网络(GAN)和变分自编码器(VAE)。这些算法被广泛应用于图像合成、风格迁移、超分辨率重建等领域。
(5)三维视觉重建是通过从二维图像或视频中恢复出三维场景或物体的结构。其输入通常是多张图像、视频或深度传感器数据,输出是三维模型或场景的重建结果。其中具有代表性的三维重建算法有Nerf、3DGS算法。下图是使用3DGS算法对无人机采集的图片数据进行三维重建。
最后回到开头的那句话数字图像处理到计算机视觉的这个连续统一体内并没有明确的界限,数字图像处理也对图像内容的分析如模板匹配和目标检测只不过其使用的是手工的特征,但现在这些任务主要被计算机视觉所取代,当然计算机视觉还是属于数字图像处理的一部分,因为计算机视觉也是对图像进行处理,但是它使用了神经网络替代了人工提取的特征来对图像进行分析和处理。
上面提到的计算机视觉算法的原文链接如下:
1、VGGNet:
原文:Very Deep Convolutional Networks for Large-Scale Image Recognition代码:VGG GitHub Repository2、ResNet:
原文:Deep Residual Learning for Image Recognition代码:ResNet GitHub Repository3、YOLOv11:
原文:YOLOv11: An Overview of the Key Architectural Enhancements代码:Ultralytics YOLOv11 Documentationdocs.ultralytics.com4、U-Net:
原文:U-Net: Convolutional Networks for Biomedical Image Segmentation代码:PyTorch U-Net ImplementationGitHub5、GAN:
原文:Generative Adversarial Nets代码:PyTorch GAN ImplementationGitHub6、VAE:
原文:Auto-Encoding Variational Bayes代码:PyTorch VAE Implementation7、Nerf:
原文:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis代码:NeRF GitHub Repository8、3DGS:
原文:3D Gaussian Splatting for Real-Time Radiance Field Rendering代码:3DGS GitHub Repository