社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

计算机是如何理解图片的?——基于深度学习的计算机视觉与卷积神经网络

FightingCV • 1 年前 • 160 次点击  

关注“FightingCV”公众号

回复“AI”即可获得超100G人工智能的教程

点击进入→ FightingCV交流群

近年来,人工智能快速发展,让人工智能像人一样的思考,是许多研究者们追求的目标。为此,人们开发出计算机视觉技术,使计算机更好的理解周围的世界。

计算机视觉是指创建数字系统,以与人类相同的方式处理、分析和理解视觉数据(图像或视频)。从技术上讲,机器试图通过特殊的软件算法检索视觉信息、处理信息并解释结果,以便于根据这些信息采取行动或提出建议。它赋予了计算机发现、观察和理解的能力,为后续人工智能的计算与思考提供基础。


目前,计算机视觉已被广泛应用于自动驾驶、目标检测、图像分割、人脸识别、图像分类等多个领域。


理论基础:

计算机视觉技术是一种典型的交叉学科研究领域,包含了生物、心理,物理,工程,数学,计算机科学等领域,存在与其他许多学科或研究方向之间相互渗透、相互支撑的关系。随着生物科学与其他学科的蓬勃发展,计算机视觉也得到了有效的理论支持。

计算机视觉技术倾向于模仿人脑的工作方式。不同的是人眼看到的是彩色图像,而计算机“看到”的是二位数据矩阵。过去,人们认为大脑的神经计算和计算机的数值计算没有本质区别,而从现在神经科学的进展看,“神经计算”与数值计算在有些情况下还是会产生本质区别。

左:人眼看到的 右:计算机看到的

计算机学习对输入的数据进行分析,直到识别出差异并最终识别图像。如果通过模型输入了足够的数据,计算机将“查看”数据并自学如何区分图像。


深度学习:

对计算机视觉进行训练的过程会用到两种关键技术:一种是机器学习中的深度学习,另一种是卷积神经网络 (CNN)。


深度学习来自于传统的机器学习方法-神经网络,即Neural Network。科学家们从生物神经网络的运作机制得到启发,构建了人工神经网络。人工神经网络(ANN)由节点层组成,包括输入层、一个或多个隐藏层和输出层。每个节点连接到另一个节点,并具有相关的权重和阈值。如果任何单个节点的输出高于指定的阈值,则激活该节点,将数据发送到网络的下一层。否则,该节点不会将数据传递到网络的下一层。

深度学习中的“深度”则是指神经网络中的层数。包含输入和输出的三层以上的神经网络可以被认为是深度学习算法或深度神经网络。只有三层的神经网络只是一个基本的神经网络。

神经网络因为训练速度慢、容易过拟合、经常出现梯度消失以及等情况,效果并不比其他算法更优,实际应用的很少。加入更多隐藏层的深度学习网络可以实现更加复杂的运算和逻辑处理,效果也会更好。


深度学习的另一大优势就是,深度学习可进行自监督学习,可成熟地处理大量的未标记数据。如果将人的眼睛比作照相机,那么人眼平均每200ms就会拍摄一张照片,三年的时间就可以积攒上亿张真实世界照片,巨大的数据库使人脑有充足的经验进行图像处理。而使计算机达到这个训练量是十分困难的,而这时自监督学习的优势便得以体现。自监督学习可再无标记的情况下进行训练,相比传统模式效率更更高,投入更少。


卷积神经网络:

在深度学习中,当人们加入更多的隐藏层时,如果对所有层同时训练,计算量太大,根本无法训练。如果每次训练一层,偏差就会逐层传递,最终训练出来的结果会严重欠拟合。因此,需要一个更合理的神经网络结构来有效处理图片数据。随着数值计算效率得到巨大提升,卷积神经网络(CNN)处理数字图像数据的巨大潜能被充分发现挖掘。


动物是视觉处理总是从简单的结构开始,例如硬线条或者边缘,而这一原则成为了计算机视觉背后的核心原则。就像人类辨别远距离的图像一样,CNN构造多层的神经网络,从较低层的识别初级的图像特征开始,以若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类。


CNN网络结构基本是由卷积层、池化层以及全连接层组成。其中,卷积层被认为是提取图像特征的主要部件,卷积层不会一次性解析所有训练数据,而是创建滑动窗口对图片进行扫描。通过卷积核与图像像素矩阵进行卷积运算输入数据被送入卷积层。每个节点只需要处理离自己最近的邻近节点,卷积层也随着扫描的深入而趋于收缩。 

从图中可以看到,输入图像送入卷积神经网络中,通过卷积层进行特征提取,之后通过池化层过滤细节(一般采用最大值池化、平均池化),最后在全连接层进行特征展开,送入相应的分类器得到其分类结果。


结语:

计算机视觉在今年来蓬勃发展,并广泛用于许多行业,是人机交互,人工智能等许多领域的技术基础。但受制于数据库数量,计算量等限制,仍未能达到人眼识别水平。在这一领域,仍有极大的潜力等待技术人员挖掘。


本文参考:

https://www.ibm.com/topics/computer-vision

https://easyai.tech/ai-definition/computer-vision/

https://blog.csdn.net/daliying_/article/details/80165393

https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3

https://www.forbes.com/sites/bernardmarr/2019/04/08/7-amazing-examples-of-computer-and-machine-vision-in-practice/#3e12a0fe1018

https://www.ted.com/talk


往期回顾


基础知识

【CV知识点汇总与解析】|损失函数篇

【CV知识点汇总与解析】|激活函数篇

【CV知识点汇总与解析】| optimizer和学习率篇

【CV知识点汇总与解析】| 正则化篇

【CV知识点汇总与解析】| 参数初始化篇

【CV知识点汇总与解析】| 卷积和池化篇 (超多图警告)

【CV知识点汇总与解析】| 技术发展篇 (超详细!!!)


最新论文解析

NeurIPS2022 Spotlight | TANGO:一种基于光照分解实现逼真稳健的文本驱动3D风格化

ECCV2022 Oral | 微软提出UNICORN,统一文本生成与边框预测任务

NeurIPS 2022 | VideoMAE:南大&腾讯联合提出第一个视频版MAE框架,遮盖率达到90%

NeurIPS 2022 | 清华大学提出OrdinalCLIP,基于序数提示学习的语言引导有序回归

SlowFast Network:用于计算机视觉视频理解的双模CNN

WACV2022 | 一张图片只值五句话吗?UAB提出图像-文本匹配语义的新视角!

CVPR2022 | Attention机制是为了找最相关的item?中科大团队反其道而行之!

ECCV2022 Oral | SeqTR:一个简单而通用的 Visual Grounding网络

如何训练用于图像检索的Vision Transformer?Facebook研究员解决了这个问题!

ICLR22 Workshop | 用两个模型解决一个任务,意大利学者提出维基百科上的高效检索模型

See Finer, See More!腾讯&上交提出IVT,越看越精细,进行精细全面的跨模态对比!

MM2022|兼具低级和高级表征,百度提出利用显式高级语义增强视频文本检索

MM2022 | 用StyleGAN进行数据增强,真的太好用了

MM2022 | 在特征空间中的多模态数据增强方法

ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者

ECCV2022|只能11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT

CVPR2022|比VinVL快一万倍!人大提出交互协同的双流视觉语言预训练模型COTS,又快又好!

CVPR2022 Oral|通过多尺度token聚合分流自注意力,代码已开源

CVPR Oral | 谷歌&斯坦福(李飞飞组)提出TIRG,用组合的文本和图像来进行图像检索


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/151294
 
160 次点击