下午突然接到王老板的电话,提议整理一下工作内容,合作写专著。估计是为了准备参评 “伯爵”。
从读博士,到现在,一直做一线开发工作。做计算机视觉,也有8年的时间了了。是时候该整理一下了。本文的写作目的,有三个:
- 介绍我在CV方面的工作经历,希望能找到更有趣的项目和团队;
- 总结CV学习和工作经验,反思过往;
- 整理CV学习资源,培养自己的团队;
计算机视觉是机器智能的重要信息窗口,当前最热的CV应用:车牌、人脸、人流、车流、医学病理影像分析、工业质检、(中高速)移动目标跟踪、远距离探测,都再过去一年里,取得了重要的进步。
一、关于代码和文档
优秀代码,之于程序员,就如同研究员读文献一样,非常重要。
本人的GitHub主页,提供了本文所述的部分代码。当然,更多源代码,以及源代码的部署安装,需要付费,才能取得,包含下方图示中所有标识【黄色小旗】的项目,均有源代码。
Ruogu7/CV_practicegithub.com![d50ff3aad78e092ce0945e4273bc08d2.png](https://i-blog.csdnimg.cn/blog_migrate/b52c8ce4005b8becb9e6c1e6f5c34dc1.png)
二、总体框架图
![173e1053ee62e0de507b12ec5752f6a2.png](https://i-blog.csdnimg.cn/blog_migrate/d5ee5b037cd9b37b725ca41bb7e3b339.jpeg)
上图中,橙色标签的项目,均有源代码与相应数据。 请联系 ruogu_autodriving 购买
三、CV算法的意义
从哲学角度去思考,相比矢量图,栅格图像作为信息载体,能够最大程度展示窗口中的所有物体表面信息。图像处理算法,是人类面向自然世界信息处理的,重要门槛。
![2c4c1d0397e3d9a95f0541968bc20d2d.png](https://i-blog.csdnimg.cn/blog_migrate/c4448f8b53b7d3843b5fd1ca08531b97.jpeg)
根据以往的工作经历,我把CV实践工作,分为以下几个方面,方便CV新人学习。
四、CV实践方法
- 多阅读优秀的Demo代码
看万卷不如行万里路。 工程师的目标是解决现实问题,不只是指出解决问题的办法。
- 从单一功能的算法开始入手
在单一功能的算法项目上,做到大数据量、高精度,展示对某一个领域的深刻洞察,对于推广算法设计至其他领域,至关重要。具体内容,详见第六部分。
- 读文献,重视理论,增强逻辑思维
直到现在,CV领域,最重要的一个数学方式卷积神经网络CNN。而CNN又源自NN。
不巧,大多数神经网络的研究,都得益于30 年前的一篇阐述多层神经网络训练方法的论文。那就是 Geoffrey Hinton 在 1986 年写下的《Learning representations by back-propagation errors》。
这篇论文具有重要的意义,可以说是代表着反向传播算法(Backpropagation algorithm)首次被引入到多层神经网络训练,为后来该算法的推广埋下伏笔,尤其是为人工智能在最近 10 年的发展奠定了基础。
![623fbc182d1eb83bca271360523fb8e0.png](https://i-blog.csdnimg.cn/blog_migrate/7859ecb4f30b1bc5dfb69ff83b80c3a4.jpeg)
从 Hinton 本人的实践看来,解谜人的大脑将被包含在这种路径之中,近年来,这位 “人工神经网络之父” 频频表现出了其对脑科学研究的浓厚兴趣,并发表了一定数量的有关脑神经科学的论文。
可见,投身CV做研究,有着非凡的意义。CV与数学结合非常紧密,数学的发展,甚至基础科学的发展,相比历史,可能要慢得多。
对CV及相关科学的理论的掌握,有助于取得非常特殊的相对优势。
- 深入底层,设计CV应用框架
CV最终还是应用于工程、系统中,因此,CV应用框架也非常重要。
五、数学物理基础
- 卡尔曼滤波
- HMM
- CNN
- ANN
六、单目标的算法
![33721a0885855e05ea5872de63fdd710.png](https://i-blog.csdnimg.cn/blog_migrate/10054f7ed0c90bd4cbb0261db0043d56.png)
![d8f7fe20cc768f56ff516a1cc3904afe.png](https://i-blog.csdnimg.cn/blog_migrate/d55357f11d71b04dc9b81dcf0432164e.png)
七、基于仿真平台的算法实践
我主要基于ROS、CarLA做视觉应用。
- ROS
- CarLA
![f943b17979198d2df0d594f9028a478f.png](https://i-blog.csdnimg.cn/blog_migrate/b1d4fa4f5e83daa73a124b7de56a8252.png)
基于CarLA的车道线检测和交通标识识别与理解。
另一个例子,就是车牌识别。虽然是比较成熟的应用,但是要想做到产品级别,还是有大量的工作。
若谷:深入车牌识别的图像处理过程(含源码)zhuanlan.zhihu.com![3001cd6b073a63786f538bf596740bb9.png](https://i-blog.csdnimg.cn/blog_migrate/5f9164889932295e66417a14c2eb1505.jpeg)
八、工程实践
算法离不开工程实践平台。工程实践与算法不匹配的时候,人工智能就立即变成人工智障。
![88e4a31a30b32c6005931ff155918cf3.png](https://i-blog.csdnimg.cn/blog_migrate/4555833b08f9cc0ed9cf6c73b5399920.png)
从数据采集(串口开发)、传输(加密与通信)、存储,到数据分析(标注、泛化、建模),到系统部署(硬件加速、迁移),工程实践,比算法的难度,只增不减。
以上各个部分,将会陆陆续续,在《自动驾驶工程技术》专栏,一一介绍。
更多信息,请参考:本人的GitHub主页。
https://github.com/Ruogu7/CV_practicegithub.com分享一个《自动驾驶行业》交流微信群
若谷:自动驾驶行业交流群及公约zhuanlan.zhihu.com![c518fa0bcec55605077b946cbe061562.png](https://i-blog.csdnimg.cn/blog_migrate/f4cf4b2557756bf68b9031f291efab5e.jpeg)