【知识小结】计算机视觉

来源:互联网 发布:打码刷码软件官方下载 编辑:程序博客网 时间:2024/06/04 19:35


从事无人机的视觉和通信研究多年,人工智能发展趋势的背景下,总结一下,传统算法在无人机视觉方面的应用和案例。

(一)

计算机视觉方面需要拓展知识,个人认为对思维和算法有提升的几个方面:

多视几何:通过二维图像认知三维环境信息的能力;

线性代数:抽象思维能力;

模式识别:交叉学科;

矩阵分析:矩阵名著;

数据结构:算法基础,工程实践的一环;

还有,普遍认同的获取知识渠道,正确的方向,解决问题的方法和思路,阅读文献和大牛交流。

(二)

需要掌握的高效开发工具:

Matlab:矩阵运算工具;

OpenCV:跨平台计算机视觉库;

Eigen:线性代数库;

PCL:3D点云库;

g2o:图优化库;

ceres:数据优化库;

Ceres-Solver库:解决非线性最小二乘法有约束和无约束最优化问题的库;

RoS:机器人操作系统;

FPGA:算法加速处理平台、多接口融合平台;

CUDA:并行计算平台;

TensorFlow:深度学习框架;

(三)

在以下几个领域有相关研究案例:

*三维重建:真实还原三维物体空间坐标关系;消费类有结构光三维扫描仪;

立体视觉:利用双目实现三维深度信息提取;模拟人眼处理景物;

SLAM:自主定位和导航,例如,火星车;

*VIO:Visual-Inertial Odometry,Camera+IMU。 DJI无人机

光流跟踪:经典的KLT算法;

目标检测:经典的Shif特征点匹配;

AR/VR:虚拟和真实的叠加;

*ORB-SLAM:基于ORB特征点提取的SLAM技术;

MSCFK:基于滤波的算法;

OKVIS:


(四)

图像预处理:对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等。

预处理很大程度上决定了摄像机的成像质量(具体根据算法要求进行相应处理)。

具体可以参考该文:

ISP基本框架及算法介绍 http://blog.csdn.net/lz0499/article/details/71156291

imatest教程 https://wenku.baidu.com/view/15298b8033687e21ae45a92b.html


标定:计算机视觉的基础。

相机标定:


立体标定:


总体上,基于单应矩阵(H)和本征矩阵(E)、基本矩阵(F)理论,通过采集特定空间点,进行线性计算。


IMU姿态解算:

四元数:描述空间运动的表示形式;



特征点提取:

SIFT:旋转、尺度、亮度保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;

ORB:FAST+BRIEF,旋转不变性;


匹配:

寻找对应关系;

KLT:特征点跟踪;


优化:

使数据具有鲁棒性,唯一性等;

RANSAC:解决特征点匹配问题;

Bundle Adjustment:优化模型,其目的是最小化重投影误差;

(待续)

DBow2:一种高效的回环检测算法;

Pnp:多对3D与2D匹配点,求相机外参的方法;

fundamental matrix:


随着,深度学习在计算机视觉领域的不断突破,未来这条路会越走越宽广。也许等上面的技能完善的差不多,就抓紧开始AI这条路了。未来有更多的挑战等着我们。


参考博文:


http://blog.csdn.net/mulinb/article/details/53421864