社区所有版块导航
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学习  »  机器学习算法

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

苇草智酷 • 2 年前 • 414 次点击  


转自 | 技术饭
近年来,人工智能快速发展,让人工智能像人一样的思考,是许多研究者们追求的目标。为此,人们开发出计算机视觉技术,使计算机更好的理解周围的世界。
计算机视觉是指创建数字系统,以与人类相同的方式处理、分析和理解视觉数据(图像或视频)。从技术上讲,机器试图通过特殊的软件算法检索视觉信息、处理信息并解释结果,以便于根据这些信息采取行动或提出建议。它赋予了计算机发现、观察和理解的能力,为后续人工智能的计算与思考提供基础。

目前,计算机视觉已被广泛应用于自动驾驶、目标检测、图像分割、人脸识别、图像分类等多个领域。
理论基础:
计算机视觉技术是一种典型的交叉学科研究领域,包含了生物、心理,物理,工程,数学,计算机科学等领域,存在与其他许多学科或研究方向之间相互渗透、相互支撑的关系。随着生物科学与其他学科的蓬勃发展,计算机视觉也得到了有效的理论支持。

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


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

对计算机视觉进行训练的过程会用到两种关键技术:一种是机器学习中的深度学习,另一种是卷积神经网络(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

——END——

苇草智酷简介——


苇草智酷(全称:北京苇草智酷科技文化有限公司)是一家思想者社群组织。通过各种形式的沙龙、对话、培训、丛书编撰、论坛合作、专题咨询、音视频内容生产、国内外学术交流活动,以及每年一度的互联网思想者大会,苇草智酷致力于广泛联系和连接科技前沿、应用实践、艺术人文等领域的学术团体和个人,促成更多有意愿、有能力、有造诣的同道成为智酷社区的成员,共同交流思想,启迪智慧,重塑认知。

苇草智酷好文推荐
计算机的本质到底是什么?
朱松纯 | 初探计算机视觉三个源头兼谈人工智能
用计算机真正模拟生命还要多久
计算机起源的数学思想
斯蒂格勒:计算机化的资本主义时代中对生态学问题的思考

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