作者|kaye 编辑|3D视觉开发者社区
作为一个刚入门计算机视觉的小白,简单记录一下这几天看的论文和博客的收获,算是一篇小笔记。
计算机视觉技术是指通过计算机来模拟人类视觉观察和分析图像的视觉过程。它要求计算机在人工智能的过程中能够拥有利用图像对周边环境进行感知的能力,并模拟人类视觉功能的具体过程,然后对相关的图像实现智能化的处理。说得简单一点,计算机视觉就是让机器能和人一样看得懂图片。
在计算机视觉技术出现之前,图片对于机器来说,只是一个文件,如下图,它只能知道图片的名称,格式、尺寸等图像属性,但不懂这张图图片的内容。
而计算机视觉出现之后,机器也能认识图片中的内容:一个穿着黑色上衣白色背带裤的人在打篮球。结合人脸识别等技术,机器甚至能认出这个人是谁,这身衣服是来自哪个品牌,衣服的材质是什么等等。
目前的计算机视觉技术原理和人类的视觉成像原理比较相似。
人类的视觉原理是从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。
计算机视觉原理是通过传感器和计算机的软硬件去模拟仿真人类视觉系统,再现真实三维场景,比如对三维环境图像的采集、分析、处理和学习能力,并将该能力植入到计算机中,让计算机和机器人系统具有智能化的视觉功能。这里我们简单了解一下计算机视觉系统框架。
计算机视觉系统主要由图像采集、图像处理及分析、图像显示输出等组成。因此,计算机视觉理论实现结构可以被划分成图像数据处理层、图像特征描述层及图像知识获取层,具体如下图所示. 这3个层次形成了目前正普遍使用的计算机视觉系统框架。
图像数据处理层中,对要处理的对象即一些像素级的数字信号进行处理与操作,如图像获取、传输、压缩、降噪、转换、存贮、增强和复原等,将原始图像转变成为具有所需的某些特性的图像;
图像特征描述层是将这些带有特性的图像进行检测识别,若干底层特征组成更上一层的特征,这样经过多个层级的组合后,在顶层做出分类。
图像知识获取层则是在计算机不断进行机器学习的前提下,结合图像匹配和已获特征,最终输出图像描述,达到解释图片场景语义的目的。
不同的作者对于计算机视觉的主要任务的理解有所不同,有些认为是五个,也有人认为是六个,八个,但基本上都是在四个主要任务上再进行细分的。
分类(Clas-sification):对一幅图片进行一个整体的划分,研究者关注在一个图片中占主要部分的物体的类别。分类的范围是图片的粒度,常见的公开数据集比如 ImageNet,MNIST 都是以这样的方式进行分类,再用于后续的训练和测试。
检测(Detection):利用相关的图像处理技术,对不同图像选定不同的目标对象,确定该目标对象的位置,对该目标对象确定明显的边界,以包围框(BoundingBox)的形式,把它框定出来,迅速地帮助研究人员确定其要找到的目标的信息,有利于很好的进行下一步的目标跟踪工作则是对图像中物体进行几何定位,用于后续的识别。
识别(Identification):识别是准确地判断出这个物体是什么或者是什么意思,最典型的比如人脸的重识别(Re-Identification),行人的重识别等。
分割(Segmentation):分割的目的比检测更进一步,在像素级别对图像本身进行区分,划分出像素来自于不同的物体,从而实现对图像不同内容或对象的类别再分割,这也称之为语义分割,更进一步的还有实例分割,每个实例进行较明显的分割,确定复杂背景下不同实例的边界,同时确定不同实例之间存在的差异和关系。
要让计算机能够完成以上任务不是一件容易的事情,以早期的人脸识别为例,相关研究者通过提取出人脸上一些关键的部位和比例构成一个特征向量,并以此来训练一组或者多组分类器,最终可以得到一个比较理想的人脸识别。但是在寻找合适的特征,组合合适的分类器过程当中需要大量的试错,也需要实验的人有很丰富的经验,因此这种做法很难推广到其他各个领域,每个领域都需要很多专业知识来对特征进行选取,这无疑需要很高的人力成本和时间成本。而CNN的出现很好的解决了上面的问题。
CNN是卷积神经网络(convolutional neural network)的简称。是一种深度学习模型或类似于人工神经网络的多层感知器,它的数据表示方式高层特征表示依赖于底层特征,由浅入深抽象地提取高级语义特征。它可以有效的提取图像中的特征,还可以将海量的数据(不影响特征提取的前提下)进行有效的降维,大大减少了对算力的要求。因此,CNN也成为计算机视觉领域中最典型的应用。
但是卷积这种操作缺乏对图像本身的全局理解,无法建模特征之间的依赖关系,从而不能充分地利用上下文信息。此外,卷积的权重是固定的,并不能动态地适应输入的变化。因此,自然语言处理领域中的Transformer模型迁移到计算机视觉任务中。
2021年,谷歌将之前自然语言处理领域(Natural Language Processing,NLP)比较火热的 Transformer(变形模型)引入到计算机视觉领域,在该领域,研究者们致力于寻找词与词之间的联系,给定一组输入的词汇,可以找到与其有强关联的词汇输出,使得机器可以更好地理解人类的语义。相比 CNN,Transformer 的自注意力机制不受局部相互作用的限制,既能挖掘长距离的依赖关系又能并行计算,可以根据不同的任务目标学习最合适的归纳偏置,在诸多视觉任务中取得了不亚于甚至超过CNN框架的准确率,Transformer目前大有取代CNN成为新的行业标杆的趋势。
在计算机视觉技术蓬勃发展的近十年间,其业务应用领域和市场规模也与日俱增。在2020年,中国计算机视觉领域的核心产品市场规模为862亿,预计到2025年将突破1500亿(数据来源:前瞻产业研究院)。
在世界范围内,计算机视觉技术的发展也算得上一日千里,基于此,美国福布斯双周刊列出了计算机视觉技术最有可能大显身手的五个行业。
计算机视觉在医疗保健中的一个主要应用是分析扫描图像,这样既可以检测个体的异常情 况,也可以识别数千次扫描的模式,为医生和研究员提供有关某种疾病的信息。同时计算机视觉通常能够注意到人眼无法识别的地方,比如,有些癌细胞外观的细微差异只能通过计算机视觉和人工智能分析检测到。
例如,去年英国和欧盟批准名为 PANProfiler 的乳腺癌诊断技术在卫生服务机构临床使用, 其可以在 15 分钟内提供初始图像的诊断读数,准确性可与需要数周才能完成的实验室检测方法相媲美,这为乳腺癌诊断提供了一种比传统检测更快、更便宜的替代方案。
计算机视觉可以显著提升库存管理的效率,因为这项技术能够识别图像或视频中的物品以 及板条箱数量,无需工人手动盘点。这些自动库存周期盘点为零售工人提供了实时更新,使他们能够就库存水平做出明智的决策。据悉,64%的零售商计划在未来几年部署计算机视觉等数据驱动的解决方案,以优化库存管理。除此之外,零售商可以创建热图并分析顾客行动轨迹,从而深入了解顾客在商店中的行为,以便尝试不同的营销策略增加销售额。
在汽车生产过程中,计算机视觉可以检测产品的缺陷,有助于确保产品符合质量标准。放置在生产线上的摄像头可以检测这些缺陷,并实时提醒制造工人。事实上,在一项研究中,计算机视觉算法能够检测出制动器零件的故障,准确率高达95.6%。
计算机视觉是也是当今自动驾驶汽车不可或缺的组成部分。该技术可用于识别道路上的物体、创建三维地图、检测车道线以及帮助司机在昏暗的光线下驾驶。电动汽车制造商特斯拉于 2021 年宣布,其新车将完全依赖计算机视觉,而非激光雷达。
餐饮业是受新冠疫情打击最严重的行业之一,许多企业被迫进行数字化和创新以维持生存。 计算机视觉技术能帮助快餐厅将错误订单减至最少,并提升运营效率,另外计算机视觉相关产品的使用也使餐厅能够减少顾客的长时间等待,优化其占地面积的使用,甚至监控顾客是否合规佩戴口罩,对安保系统的升级能带来极大的帮助。
在能源和公用事业行业,计算机视觉正在帮助提升运营效率,提高安全性,预防事故的发生。 例如,工作人员可以利用计算机视觉对电线杆图像进行分析,从而检测出电线杆中可能引发 火灾的缺陷,公用事业公司可以据此决定是否需要立即注意这些异常,并预防极端事件的发生。 除检测异常外,计算机视觉在能源和公用事业行业的应用还包括保障工作场所的安全。再比如,深度学习算法可以通过实时分析视频并提醒员工注意危险,发现违反安全协议或入侵工作区的行为。
[1]王道累,陈军,吴懋亮.计算机视觉原理分析及其应用[J].上海电力学院学报,2016,32(03):283-287.
[2]王锦凯,宋锡瑾.计算机视觉技术应用研究综述[J].计算机时代,2022(10):1-4+8.DOI:10.16644/j.cnki.cn33-1094/tp.2022.10.001.
[3]赵敏清.人工智能领域下计算机视觉发展与应用[J].计算机产品与流通,2020(11):57.
[4]王铁胜.计算机视觉技术的发展及应用[J].信息系统工程,2022(04):63-66.
[5]刘霞. 计算机视觉技术赋能五大行业[N]. 科技日报,2022-07-04(004).DOI:10.28502/n.cnki.nkjrb.2022.003436.
[6]刘文婷,卢新明.基于计算机视觉的Transformer研究进展[J].计算机工程与应用,2022,58(06):1-16.
[7]easyai.tech:一文看懂计算机视觉CV(一文看懂计算机视觉-CV(基本原理+2大挑战+8大任务+4个应用))
[8]知乎王方浩:CNN(卷积神经网络)介绍
版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文。
3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。点击加入[3D视觉开发者社区],和开发者们一起讨论分享吧~