计算机视觉包括三个领域(R3),Recognition,Reconstruction ,Reorganization。识别和检测只能是第一个R,SLAM算第二个R。图像处理属于计算机视觉的底层处理。增强现实AR、IBR、计算摄影是计算机视觉和其他领域如图形学、VR、成像学的交集。
计算机视觉目录:图像形成;图像处理;模型拟合与优化;深度学习;深度估计;特征检测与匹配;分割;基于特征的对齐;运动估计;由运动到结构与SLAM;图像拼接;计算摄影学;立体匹配;3D 重建;基于图像的渲染
数字图像处理目录: 图像感知与获取、 图像取样和量化、灰度变换与空间滤波、频率域滤波原理、图像复原与重构、彩色图像处理、小波变换和其他图像变换、图像压缩和水印、形态学图像处理、图像分割、图像特征提取、图像模式分类
1、立体匹配 Stereo correspondence
应用于,立体匹配是从图像生成三维点云的常规手段。
人根据左眼和右眼的外观差异来感知深度。简单的实验,将手指垂直地放在眼睛前面,交替地闭上每只眼睛,能看到手指相对于场景背景左右跳跃。1张图片无法测量物体深度,2张可以。
下图,两个相机拍摄同一场景,两个场景中相同的点就是一个同名点对,立体匹配就是寻找两幅图中所有的同名点对。
下图,一个概念“极线”约束。在这条极线上找同名点对。大大缩短了寻找同名点对的复杂程度。
下图,极线来源于极平面和相机平面的交线。极平面由两个相机和物体P三个点组成。
一个相机无法测距。下图,两个相机O1、Or,通过公式可以求出深度,就是物体P与相机的距离。视差和深度成反比。
2、SLAM
经典的运动重建(SFM,Structure From Motion),也叫做同步定位和制图(simultaneous localization and mapping,SLAM)。是假设场景静态情况下,通过摄像机的运动来获取图像序列,并得到场景3-D结构的估计。是计算机视觉的重要任务;在机器人领域,这个任务还会估计现场摄像头的姿态和位置,即定位任务。
基础知识
分辨率
分辨率的单位:PPI、DPI、LPI和PPD。
- PPI(Pixels Per Inch)。
每英寸像素数,用于描述屏幕或数字图像的分辨率,是衡量像素密度的标准单位。例如,手机屏幕的清晰度常用PPI表示。 - DPI(Dots Per Inch)。
每英寸点数,主要用于印刷领域,表示打印机输出的墨点密度。尽管常与PPI混用,但DPI更强调物理输出精度。 - LPI(Lines Per Inch)。
每英寸线数,用于印刷中的网线数,控制半色调图像的细节疏密,与专业印刷分辨率相关。 - PPD(Pixels Per Degree)。
像素每度,用于头戴显示设备如VR,衡量视场角内像素填充密度,直接影响视觉清晰度。
其他相关概念
- 像素(px):基础单位,表示图像或屏幕的最小显示单元。例如,1920×1080分辨率指水平1920像素、垂直1080像素。
- 位分辨率(BPP):每个像素的位数,决定色彩深度(如24位真彩色),但属于色彩信息单位,与分辨率无直接关联。
X.公开图片数据集
使用matlab进行计算机视觉和图像处理
图像处理
在matlab里有很多app可以直接使用,实现图像处理。比如,image labler图像标注,image segment图像分割。matlab官方视频中介绍了几种app的用法。
完整的例子:摄像机实时检测糖果数量。关键软硬件:图像分割app软件;webcam硬件支持包。
计算机视觉
使用人工智能、机器学习的算法处理图像。
例1:ocr文字识别。
可以使用OCR trainer app,,可以自定义识别的字符,但是我的matlab没有这个app????;还可以使用trainOCR函数,并有例子,用下面语句打开。
openExample('vision/TrainAnOCRModelExample')
例2:实现“你画我猜”。
不用现成的app,而是通过机器学习和已有数据训练一个模型,选择一个最佳模型实现。
模型训练使用机器学习的分类学习器app。
JPEG格式
joint Photographic Experts Group。chroma色度。hue色调。
- Cb(蓝色色度分量):Color-difference of Blue,表示蓝色与亮度的差异。
- Cr(红色色度分量):Color-difference of Red,表示红色与亮度的差异。
利用人眼特点,对亮度敏感、对色差不敏感。大小是普通图片十分之一程度。网络中86%图片是jpeg格式。例,4032 X 3024分辨率为12M,1200万像素,46MB(BMP格式)压缩到4MB。需1.2亿次运算,手机soc如骁龙snapdragon 8 gen3耗时10ms。
主要技术:色彩空间转换、色差下采样、离散余弦变换DCT、量化与编码。
压缩遵循原则:亮度优先;黑白图像保留细节;色差图像模糊可接受。
JPEG压缩过程是一种有损压缩标准,主要用于减少连续色调静态图像的文件大小,平衡视觉质量与存储效率。以下是其核心步骤:
- 颜色空间转换:首先将RGB颜色模型转换为YCbCr模型,因为人眼对亮度分量(Y)更敏感,而对色度分量(Cb和Cr)不敏感,首先压缩色差数据。转换公式包括Y = 0.299R + 0.587G + 0.114B,类似地计算Cb和Cr。
- 图像分块:将转换后的图像划分为8×8像素块,便于后续处理。
- 离散余弦变换(DCT):对每个像素块应用DCT,将空间域图像数据转换为频域系数,其中低频分量(图像平滑区域)占主要信息,高频分量(边缘细节)被舍弃。人眼对高频变化不敏感。
- 量化:使用预设的量化表压缩DCT系数,通过除法操作减少数据精度(特别是高频系数),这是有损压缩的关键,损失部分视觉细节但显著减小文件大小。
- 熵编码:最后对量化后的数据进行无损压缩,如哈夫曼编码,移除统计冗余进一步优化存储。
整个流程中,可调整压缩参数(如量化级别)以控制输出文件大小和质量。
参考文献:
1、《Computer Vision_ Algorithms and Applications-Richard Szeliski 》
2、《Digital Image Processing_3ed_Gonzalez_冈萨雷斯》
3、【3D视觉工坊】第八期公开课:立体视觉之立体匹配理论与实战_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1Uv411q7GU
4、单目视觉深度估计测距的前生今世 - 知乎 https://zhuanlan.zhihu.com/p/56263560
5、使用MATLAB进行计算机视觉和图像处理 -MATLAB&Simulink_哔哩哔哩_bilibili
6、MATLAB深度学习之手写数字识别_哔哩哔哩_bilibili
7、MATLAB利用OCR Trainer识别数字&字母_matlab ocr-CSDN博客
8、一个案例学会用Matlab App Designer设计文字识别工具_matlab 读取文本框-CSDN博客
9、
10、
11、
12、
13、
14、