以下都是知乎和csdn上讲解比较详细的文章
1.opticalFlow
光流反映了是每个像素的运动状况
MV是以块为单位的运动情况,
在视频编码过程中,动作矢量的空间分辨率得到了大幅度的减少(即16x),而对动作识别非常重要的精细动作永久的丢失
但是光流的计算量比较大 目前有通过 MV/I帧图像/残差和CNN卷积神经网络学习来计算光流的算法 计算量比传统光流小两个数量级
有个DMC-Net的系统,包括发生器和分类器,号称它的精度接近于使用流的精度,在推理时比使用光流快两个数量级。可参考
2.stitcher(图像拼接)
一共有4个步骤
a.Feature Extraction 特征提取
b.Image Registration图像配准
c.wraping 图像变形
d.Blending 图像融合
硬件只实现了 Blending,图像配准通过各个CAM摄像头的角度来保证。采用α/β融合的方式。α、β参数可DDR读取也可根据配置在线计算
上面的流程其实适合很多的CV处理过程,只是不同的CV处理比如去抖动,stitch在选用特征提取过程使用了不同的算法
- Harris角点检测方法具有鲁棒性和旋转不变性。然而,它是尺度变化的。
- FAST算法具有旋转不变性和尺度不变性,且具有较好的执行时间。但是当有噪声存在时,它的性能很差。
- SIFT算法具有旋转不变性和尺度不变性,并且在有噪声情况下更有效。它具有非常明显的特征。然而,它受到光照变化的影响。该算法在执行时间和光照不变性方面具有较好的性能。
以上说明,给出了几种角点检测的特性,比如对于Fast角点检测,它具有尺度不变性,那么就可以在多层金字塔图像上进行检测,一方面用缩小的图像不用原图可以减少硬件设计的成本;另一方面在多层上检测的特征点之间还可以用来筛选更可靠的特征点。
OpenCV探索之路(二十三):特征检测和特征匹配方法汇总-CSDN博客
不同的特征点检测对应的特征点匹配可能也不相同,即使是同一种特征点检测也可使用不同的匹配方法。有用质心+角度然后旋转,取旋转后点和旋转前的点产生描述子,最后用当前图和参考图的描述子计算汉明距离来匹配;有用归一化互相关信息来匹配等等。
有了多个匹配点就可以计算待处理两张图之间的透视变换参数或者说单应矩阵。单应矩阵根据不同的应用场景又分为4,6,8个自由度的参数【也就是要计算4/6/8个未知数】。
计算未知数也可以有很多算法,常用的是RANSAC。
相机标定包括单目相机和双目相机的标定肯定也是图像处理比不可少的过程。
畸变矫正是进行透视变换的过程,防抖,stitch等CV过程都少不了。
金字塔也是图像处理常用手段。
上面基本涵盖了常见的CV处理。
3.pyrimid
硬件上只有双线性和高斯两种 downscale使用了两种方法 upscale只用了双线性