全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2023-08-06_一文带你理解图像识别的全过程!

您的位置:首页 >> 新闻 >> 行业资讯

一文带你理解图像识别的全过程! 点击关注公众号,技术干货及时送达 一、前言图像识别方法有很多,包括传统的逻辑回归、Adaboost、卷积神经网络、Transformer等。现代图像识别算法的准确率已经超过人类的水平了,但是关于这些算法如何完成图像识别却仍是一个问题。关于如何解释一个算法的研究被称为可解释的机器学习,本文将选取逻辑回归和卷积神经网络两个算法,来研究图像识别的原理。 二、逻辑回归首先来聊聊逻辑回归算法,逻辑回归是一个非常简单的线性模型,在某些简单任务中非常高效。而且可解释性也非常强,因此先讨论逻辑回归图像识别的原理。 2.1 逻辑回归原理逻辑回归是线性回归加上sigmoid函数,其表达式如下: 其中X、W是向量。其中y的取值会在0-1之间,当y大于等于0.5时,X会被判断为类别1,否则判断为类别0。逻辑回归的训练就是要找到最优的W和b。 对于图片分类来说,X就是图片,并且要求是一维向量(不考虑mini batch)。但是图片本身是二维或者三维的,因此逻辑回归在进行图片分类时,会把图片转换成一维向量。这么做有个明显问题,就是没有考虑图片的空间信息。这点会在卷积神经网络中改进。 2.2 逻辑回归的实现在sklearn中提供了逻辑回归的实现,使用下面代码可以完成逻辑回归。 from sklearn.linear_model import LogisticRegressionfrom sklearn.datasets import load_digits X, y = load_digits(n_class=2, return_X_y=True)lr = LogisticRegression()lr.fit(X, y)这里使用8×8的数字0和数字1的图片作为训练集,训练逻辑回归模型。在训练完成后,可以通过下面的属性获取W和b: print(lr.coef_.shape)print(lr.intercept_.shape)# 输出# (1, 64)# (1,)W的数量和图片像素数量是一样的。 2.3 逻辑回归图片分类原理在逻辑回归中,起至关重要的是权重W。它与像素一一对应,表示了某个像素在分类时起何种作用。数字1对应类别1,数字0对应类别0。 如果想正确分类,那么0对应区域应该会有负权重,这样才能保证遇到0时输出结果会偏小。而1对应区域应该会有较大的权重,这样才能保证遇到1时输出较大的结果。 这里以一个比数字识别更简单的问题来举例,两类数据如下: 两类数据有个明显区别,及类别0的白色区域(物体)集中在右上角,而类别1的白色区域集中在左下角。如果下给你正确分类,那么权重的大致分布如下: 即右上角权重偏大,左下角权重偏小。权重本身是一维的,但是我们可以把它reshape成和图片一样的形状,上面的图片就是这么得到的。 现在我们对lr.coef_来reshape并展示,代码如下: img = lr.coef_.reshape((8, 8))plt.imshow(img)plt.show()展示结果如下: 从结果来看外面有一圈暗色,即低权重,这部分是数字0的分布区域。而中间有一束亮色,即高权重,这部分是数字1的分布区域。当1和0分布区域重合时,会得到接近0的权重。 三、卷积神经网络3.1 卷积神经网络相比逻辑回归,卷积神经网络要复杂得多。解释起来也要更麻烦,但是还是有办法解释的。首先来看看卷积神经网络的原理。 卷积神经网络的原理就是提取特征,然后分类。后面的分类与逻辑回归是非常像的,这里着重解释特征提取。 一次卷积操作可以分为下面几个步骤: Padding卷积Pooling下面详细解释每一步。 3.1.1 Padding因为卷积会导致图片缩小,因此需要在图片外圈填充一圈0,这一操作叫做padding。其操作为: 原图形状为5×5,填充后形状为7×7。 3.1.2 卷积第二步则是卷积操作,也是卷积神经网络的关键。卷积操作需要有一个卷积核,卷积核是一个数字矩阵。在数字图像处理中,卷积核是人为设计的,而在卷积神经网络中,卷积核是学习而来的。 卷积的具体操作为将卷积核与图片左上角区域做点积,得到第一个结果。操作如下图: 而后将区域往右移动一(由stride参数决定)个像素,同样计算点积,得到第二个结果: 后续则是移动区域,重复上述操作,最后得到卷积结果,即特征图。结果如下: 特征图时一个十字,观察原图(Padding前的图)可以发现以(3,2)和(4,3)为中心的区域是十字形,而特征图中这两处正好是5(最大值)。 其实这就是卷积的作用,卷积结果越大,说明在某个区域与卷积核越像。在图片中,包含大量特征,因此实际情况中会使用大量的卷积核。 3.1.3 PoolingPooling有许多种,这里以MaxPooling为例。其操作就是选取指定区域,然后把区域最大值作为结果。Pooling并非必要操作,而是一种节约资源的举措。下面是具体操作: 对比Pooling前后的特征图,Pooling前可以找到某一特征的准确位置,而Pooling后可以找到某一特征的大致位置。 3.2 感受野卷积核的大小通常为3×3、5×5、7×7这种小尺寸,能够提取的特征也是非常小的。那么卷积神经网络是如何知道图片中是否存在一个复杂物体的呢?这就要通过卷积层的堆叠了。 我们在原图上进行卷积时,提取的是微小的特征,也就是纹理、边缘等特征。这些特征无法获取图像的宏观信息,因此需要站在更广的范围观察图片。即对Pooling后的图片进行卷积。 以3×3的卷积、2×2的Pooling为例,第一次卷积只能捕抓3×3范围的特征,而Pooling后的特征图一个像素代表原图2×2的区域,因此第二次卷积能捕抓6×6范围的特征。也就是说第二次卷积有更大的感受野。 3.3 卷积识别数字下面用一个简单的例子来解释卷积神经网络如何识别数字。这里以数字1和2为例,下面是两个图片: 首先我们设计第一层卷积的卷积核,下面是根据图片设计的几个卷积核: 使用上面5个卷积核对原图进行卷积,各自可以得到5个特征图。下面是数字1卷积后的结果: 然后我们观察数字1图片中各个特征的位置,比如特征1(第一个卷积核对应的特征)出现在靠近左上角位置。特征二则出现在靠近中间位置,依次往后推到,由此我们可以设计第二层卷积的卷积核。第二层卷积核的通道数需要与特征图数量一致,为了简单,第二层我们先设计一个卷积核。具体如下: 这里是一个由5通道的卷积核。每个通道表示图片中某个位置有何种特征,多种特征组合起来就成了一个数字了。 对于数字2来说,情况也是类似的。首先使用第一层卷积对图片进行卷积操作,得到与图片1不同的特征图。结果如下: 由此设计出第二层的第二个卷积核: 通过同样的方式就可以知道图片中是否有数字二了。 那么网络如何区分数字1和数字二呢?这个非常简单,第二层我们设计了两个卷积核,如果不做padding,那么第二层会输出两个向量。比如输入图片1,会得到下面的结果: [[2, 6, 3, 4, 4],[4, 0, 3, 3, 4]]而输入图片2,则会得到: [[2, 4, 3, 3, 4],[4, 0, 3, 4, 4]]其中第一个向量是为数字1设计的,粗略来看,第一个向量的元素和越大则图片越像数字1,第二个向量的元素和越大则图片越像数字2。不过这并非绝对的。在实作时,我们会在后面拼接全连接。而逻辑回归可以看作是一个简单的全连接,因此网络后面部分可以用逻辑回归的方式进行解读。 通过上面的例子,我们详细剖析了多层卷积是如何工作的。在上面的基础上我们可以继续扩展,当卷积层数更高时,我们可以识别猫狗这种更为复杂的特征。 往期精彩回顾: 一文读懂十二大深度神经网络 前端也能玩AI,今天给大家讲姿势预测 如何实现文字搜图 十种图像去雾算法——原理+对比效果图 阅读原文

上一篇:2021-06-30_百年风华|百位摄影师联袂巨献中国共产党成立100周年! 下一篇:2024-01-01_2024 , 如何战胜“挑战的一年“

TAG标签:

15
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价