- 作者:老汪软件技巧
- 发表时间:2024-12-24 11:24
- 浏览量:
本文为合集/专栏收录,欢迎你订阅合集/专栏学习。
完整版本请查看这里.
在本专栏最开始的2-3篇文章,我会描述一下计算机视觉的背景概念之类的内容,方面后面阅读和理解。
你肯定听说过计算机视觉(compute vision, CV)这个词,在未来它可能会是一种生活方式,也可能是很多行业的发展方向。
计算机
这里的计算机,其实早已不是传统意义上的个人PC机,而是指所有“有计算能力”的机器,通俗点讲,带计算芯片的机器。
视觉
利用摄像头拍摄成像,然后把成像数据送给计算芯片完成计算的能力。
计算机视觉的生活场景生活中有很多应用计算机视觉的场景:比如你会经常使用的人脸身份验证、小区门禁的人脸识别、汽车感知成像等等。
很多新能源车,比如特斯拉,都配置了中控显示屏,上面会实时显示汽车周围的环境和行人,像是一个人从汽车顶上方看到的视角一样,这种图像被称为“鸟瞰图”。
不少汽车都会采用类似的方案来感知周围环境,由此而来的 BEV(Bird's-Eye View) 神经网络,便是计算机视觉在汽车领域的自动驾驶或辅助驾驶中典型的应用场景。
目前智驾赛道,大多会采用雷达+视觉的方案。雷达像是人的耳朵,姑且称之为计算机听觉,采用雷达和视觉方案,也会最大限度的确保汽车行车安全。
当然有不少人也在争论,采用纯视觉方案,也就是抛弃雷达,整车全部使用摄像头,不让汽车雷达去听,到底行不行。
我个人感觉这种方案可能还有待计算机视觉算法的进一步成熟。
因为一个典型场景便是:汽车从黑暗的隧道中突然使出,或者逆光而行时,这种白色大光斑呈现在摄像头感光元件上时,是很容易造成计算机误判从而出现危险的。
算法
计算机视觉处理的数据,就是各种各样的图像。所以在计算机视觉领域,可以认为,图像是原材料,算法是菜谱。
计算机视觉中有很多经典的算法,包括传统的图像处理方法,如高斯滤波、墨西哥草帽滤波等,他们其实和深度学习中的卷积算法有些相似,还有一些做图像分割、图像二值化的经典算法。比如大津算法,也都在传统图像处理中有很不错的应用。
无论是草帽滤波还是大津算法,都是经过了科学家们巧妙的设计,为了处理某一类特定任务的图像而生的。
而到了深度学习领域,和传统图像处理方法一个很明显的区别就是,我们不再需要花费心思去设计各种滤波器、设计各种复杂算法了,取而代之是让神经网络自己去学习这些算法。
在深度学习中,多个卷积层的非线性叠加,理论上可以拟合任意的非线性函数。这是基于深度学习的计算机视觉的灵魂。
因此,如果你想单纯做一个草帽滤波,那么你只需要设定好输出标签,设计一些神经网络,然后直接用训练数据去做训练就好,等到神经网络训练完成,你会发现,卷积核拟合出来的数值和草帽滤波器竟然非常相似。
这也是深度学习的魅力:人们不需要刻意去设计某些算法,而是全部交给神经网络去学习。
我们只需要将神经网络基础的算法学好,比如卷积、全连接,然后设计好的网络结构,它就可以学到你希望它学的东西。
现在大模型这么火,如果让人们去设计这么复杂的算法,我估计几百年也设计不出来,但是设计好神经网络之后,然后喂给它大量的数据做训练,大力出奇迹,GPU的表现(拟合出来的超级复杂的模拟人脑的算法)竟然惊艳了很多人。
性能神经网络为什么要做性能优化?
你能想象门禁识别人脸好几秒才能识别出来的场景吗?能想象自动驾驶汽车识别到前方有障碍物,但是反应了好几秒才做出反应吗?
虽然有些夸张,但这种在真实生活中是绝对不允许发生的。
最近又看到Meta在训练自己的LLaMa3时,总共花费了 770万 GPU小时,共排放了2290吨CO2。
对于这种复杂的预训练大模型(Pre-Trained LLM) 而言,算法优化的重要性会体现的更加重要,因为模型在训练时,一个算法会重复运行很多次。
极致性能也是判断一个产品好坏的标志,国内无论是云上训练,还是端侧(手机、监控这属于端侧)实时推理,很多都是采用了GPU或者其他加速芯片来加速计算的。
做性能优化其实是不分视觉模型还是语音模型的,很多技术都是通用的,除了模型本身和算法本身的优化之外,更多的优化手段会集中在软硬件协同以及硬件指令调度这方面。
所以,本专栏在最后搭建完神经网络,完成一张图片的推理之后,也会涉及一些性能优化方面的内容。
如果你想学习 AI ,欢迎来添加我的微信 (vx: ddcsggcs),会有很多好玩的AI技术分享,可以咨询、也可以围观朋友圈呀!欢迎查看我的专栏 >> ,