版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能及Python应用第12章人工智能+工业应用
1项目导入2职业能力目标3知能达标4素养提升5视野拓展6项目评价目录1任务导入
某公司是一家传统铝型材生产企业,在传统的生产过程中依赖人工质检,这种方法不仅效率低,而且容易受到人为因素的影响,导致检测结果的不稳定和不准确。为了实现智能化转型并提升生产线效率,尤其是在铝型材缺陷检测方面,公司决定引入人工智能技术,组建AI团队,借助计算机视觉和深度学习算法来对生产线进行全面升级。假设你是该AI团队成员,你将从哪些方面着手,来提升铝型材缺陷品的检测和剔除效率,最终实现设计铝型材生产线智能化检测系统。2职业能力目标职业技能类别职业能力要求人工智能工程师(HCIA-AI)v理解神经网络、卷积神经网络的基本原理v掌握卷积神经网络实现流程人工智能训练师(四级)v理解图像数据分析与处理过程v掌握图像分类全流程“Python程序开发”技能竞赛v熟悉深度学习模型应用流程3知能达标计算机视觉在工业领域的应用计算机视觉技术利用图像处理和深度学习算法,能够模拟和超越人眼的视觉感知能力,广泛应用于质量检测、生产线监控、物料识别和自动化控制等领域。在传统工业中,尤其是铝型材、钢铁、汽车制造等行业,质量检测一直是重要的环节,传统人工质检不仅效率低且容易出错。借助计算机视觉技术,工业生产过程中的图像可以实时捕捉并处理,自动识别缺陷、测量尺寸、分类物品等,极大地提高了生产效率和产品质量。接下来,让一起结合神经网络和卷积神经网络技术,一起开启人工智能赋能传统工业转型的技术之门。主要知识点神经网络随着神经科学和认知科学的发展,人们逐渐认知到,有关于人的智能行为都和大脑的活动息息相关。人脑是产生思想和情感的复杂器官,同样人类大脑是一个高度复杂的、非线性的和可并行处理的信息系统。受到人脑神经系统的启发,早期的神经科学家构造了一种模仿人脑神经系统的数学模型,称为人工神经网络,简称神经网络。【知能基础】大脑神经网络人类大脑是全身最精密的器官之一,其结构包括神经元、神经胶质细胞、神经干细胞以及血管系统。神经元(Neuron),也叫神经细胞(NerveCell),是负责信息传递的关键细胞,被认为是神经系统的核心构成要素。神经元的典型结构由细胞体及其突起组成。细胞突起是从细胞体延展出的细长结构,可分为树突和轴突。大脑神经网络人类神经元结构
人工神经网络【知能基础】人工神经网络人工神经元基本结构激活函数输入轴突树突突触输出轴突细胞体
感知机(Perceptron)是弗兰克·罗森布拉特(FrankRosenblatt)
在1957年提出的一种线性二分类模型。感知机结构简单,由单一神经元构成,被视为最基础的人工神经网络模型。它的主要思想是对输入特征进行线性组合(计算加权和并加上偏置项),然后将结果输入一个阶跃函数作为激活函数,直接输出最终的分类结果(0或1),其核心局限性在于只能处理线性可分问题。感知机【知能基础】感知机
感知机【知能基础】感知机
前馈神经网络(FeedforwardNeuralNetwork,FNN)是最早发明的简单人工神经网络。在前馈神经网络中,神经元被组织在不同的层中,每一层的神经元接收来自前一层的信号,并将处理后的信号传递给下一层。最初的一层称为输入层,最后一层是输出层,而中间的所有层称为隐藏层。前馈神经网络由输入层、隐藏层、输出层构成。前馈神经网络FNN【知能基础】前馈神经网络前馈神经网络结构
反向传播算法(Back-propagationalgorithm),它是一种与最优化方法(如梯度下降法)结合使用的、用来训练人工神经网络的常见方法。其基本原理是通过计算损失函数相对于权重和偏置的偏导数,从而逐步优化权重和偏置值。反向传播算法【知能基础】反向传播算法反向传播算法机制
卷积神经网络(convolutionalneuralnetwork,CNN),是一种专门用于处理图像和具有空间结构数据的神经网络。卷积神经网络(CNN)是标准神经网络的衍生形式,与传统神经网络使用全连接的隐藏层不同,CNN引入了一种特殊的网络结构(卷积层、池化层等),以解决计算机视觉中的挑战。
一个典型的卷积神经网络结构除了输入层和输出层,主要由卷积层(ConvolutionalLayer)、池化层(PoolingLayer)和全连接层(FullyConnectedLayer)交替堆叠构成。【知能进阶】卷积神经网络卷积神经网络卷积神经网络结构1)卷积层是卷积神经网络的核心部分,利用平移不变性从全局特征图提取局部特征。2)池化层又称为降采样层,对感受域内特征进行筛选,提取区域内最具代表性特征。3)全连接层通常位于网络的最后部分,对卷积神经网络学习提取到的特征进行汇总。【知能进阶】卷积神经网络基于视觉任务的卷积神经网络结构图卷积
卷积(Convolution)
是一种数学运算,用于在信号处理、图像处理等领域中提取局部特征。在卷积神经网络中,卷积操作用来检测图像中的特征,如边缘、角点、纹理等。卷积通过一个滤波器(卷积核)在图像上滑动,使得每一位置的局部像素特征经过滤波器加权求和得到一个输出值,从而得到图像的不同特征,即生成特征图(FeatureMap)。【知能进阶】卷积神经网络卷积输入1张大小为5*5的图像,通过3*3的卷积核进行卷积计算,过程如下所示。【知能进阶】卷积神经网络池化
在卷积神经网络中,卷积层通过多个并行的卷积运算生成一系列线性输出,每个输出通常会经过非线性激活函数处理。接着,一般会在CNN层之间加入池化层。池化操作在卷积神经网络中被广泛用于下采样,通过缩小图像的空间尺寸(宽度和高度)来减少网络的参数量和计算量,并能有效防止过拟合。池化层对输入特征图进行局部区域的降维,保留最关键的特征,同时池化层无需学习权重,是一种无参数的操作。【知能进阶】卷积神经网络池化
最大池化(maxpooling)是一种常用的池化方法,它通过在池化窗口内选取最大值来对特征图进行下采样。最大池化可以帮助保留最显著的特征,同时减少计算量,降低模型的参数数目。下面是最大池化的计算过程,池化窗口大小为2×2,步长为2。【知能进阶】卷积神经网络LeNet-5LeNet-5在1998年由YannLeCun等人提出,虽然提出的时间比较早,但是是一个非常成功的卷积神经网络模型。广泛用于早期的图像分类任务,该架构被多家银行用于识别支票上的手写数字。LeNet-5是一个用于手写数字识别的卷积神经网络架构,包含7个层(不包括输入层)。【知能进阶】典型的卷积神经网络LeNet-5【知能进阶】典型的卷积神经网络LeNet-5的网络结构为:输入为32×32像素的灰度图像,通过2个卷积层提取特征,使用2个池化层下采样,最后通过3个全连接层输出10个类别,进行数字分类。LeNet-5网络结构图卷积层输入层池化层卷积层池化层全连接层×3输入灰度图(大小为32×32×1)输出特征图(大小为16×16×10)全连接层输出(大小为120/84)LeNet-5输出(大小为10)AlexNetAlexNet是第一个现代深度卷积网络模型架构,于2012年由AlexKrizhevsky等人提出。它在ImageNet大规模图像识别竞赛中取得了冠军,标志着深度学习在图像分类任务中的突破。采用了深层卷积架构,包含5个卷积层和3个全连接层,有效提升了图像特征提取能力。网络使用ReLU激活函数加速训练收敛,并引入Dropout正则化来减轻过拟合。AlexNet网络通过GPU并行计算显著加快训练速度,使其适应大规模图像数据处理。【知能进阶】典型的卷积神经网络AlexNetAleNet网络结构由8个主要学习层组成,包括5个卷积层和3个全连接层。输入层接收224×224×3的RGB图像,第一个卷积层使用11×11卷积核进行特征提取,后续卷积层使用5×5和3×3卷积核继续提炼特征。最后,三层全连接层逐层压缩特征至1000个神经元,通过softmax进行分类输出。【知能进阶】典型的卷积神经网络AlexNet网络结构图输入层卷积层2全连接层×3卷积层1卷积层3卷积层4卷积层5池化层2池化层1池化层3VGGVGG(牛津视觉几何组)的研究在2014年ILSVRC竞赛中,VGG虽未赢得分类任务,但其定位任务表现超越GoogLeNet,成功夺冠。VGGNet的主要贡献是证明了网络深度对模型性能提升的关键作用,这一观点引领了深度学习领域对更深层网络的探索和应用。尽管VGG-16模型参数量较大、计算开销较高,但其在图像识别任务中表现优异,在ImageNet等数据集的分类精度上取得了很高的分数。【知能进阶】典型的卷积神经网络VGGVGG-16网络结构主要由多个3×3的小卷积核和2×2的最大池化层组成。与较大的卷积核相比,3×3的小卷积核堆叠不仅可以减少参数量,还可以更细致地捕捉图像特征。VGG-16包含13个卷积层和3个全连接层,总计16个具有权重的层,形成了深度达16层的结构。【知能进阶】典型的卷积神经网络VGG-16网络结构图GoogleNetGoogLeNet由Google团队提出,在ILSVRC2014中以Top-5错误率低于7%夺冠。GoogLeNet网络结构由9个Inceptionv1模块、5个汇聚层以及其他若干卷积层和全连接层构成,总共包含22层。Inception模块是GoogLeNet的核心创新,每个模块通过并行的多个卷积核(如1×1、3×3、5×5)和池化操作,能够在不同尺度上提取图像特征,同时保持计算效率。【知能进阶】典型的卷积神经网络Inception模块图1×1卷积3×3最大池化3×3最大池化5×5卷积通道连接前层输入层ResNet残差网络
残差网络(ResidualNetwork,ResNet)由KaimingHe等人开发,并在ILSVRC2015挑战赛获得冠军。残差网络(ResNet)通过引入残差连接(ResidualConnections)或跳跃连接(SkipConnections)来解决深度神经网络训练中的梯度消失和性能退化问题。残差块是ResNet的核心组成部分。在每个残差块中,输入通过恒等映射(skipconnection)绕过卷积层并与卷积层的输出相加,形成残差,这有助于减轻梯度消失问题,并使得网络更容易训练。【知能进阶】典型的卷积神经网络残差网络结构图4素养提升【任务实践】工业铝型材缺陷分析
在铝型材生产领域,随着工业自动化的不断发展,对铝型材缺陷的实时检测显得尤为重要。铝型材生产过程中常出现多种缺陷,如“桔皮”“横条压凹”“涂层开裂等,这些缺陷不仅影响铝型材的性能,还会影响其外观质量。因此,为了保证产品的合格率,每一批铝型材都必须经过严格的质量控制和检测。然而,由于铝型材表面缺陷的类型和形态复杂,且产量庞大,传统的人工检测方法存在着耗时长、效率低、容易漏检和误判的问题。任务描述【任务实践】工业铝型材缺陷分析任务流程【任务实践】工业铝型材缺陷分析本项目所需环境见表所示:软件名称版本说明Windows操作系统Windows10及以上Anaconda4.10及以上PyCharm集成开发环境Community(社区版)深度学习框架TensorFlow(2.*).深度学习依赖库NumPy、Matplotlib、scikit-learn、Seaborn【任务实践】工业铝型材缺陷分析任务实施(1)创建项目、Python文件及资源文件夹创建项目名为“aluminium”,在该项目中新建Python文件“defect_analysis.py”。还需在该项目下创建”data”文件夹,将配套资源中的的铝型材数据集放到“data”文件夹下。准备就绪就可以在“defect_analysis.py”中编码了。【任务实践】工业铝型材缺陷分析(2)加载铝型材数据集并可视化显示
项目主要用到数据集为铝型材工业生产过程中瑕疵品,在铝型材生产过程中会存在表面瑕疵、尺寸形状、涂层氧化以及内部缺陷等产品问题,通过人工质检、传感器数据等采集了10种不同程度的铝材缺损样本数据和1种无缺损铝材样本数据,原始样本数量总计652张。【任务实践】工业铝型材缺陷分析
代码运行结果显示,
铝型材数据集包含652张11个分类图像数据,每张图片尺寸为2560*1920。11个分类样本类别为:“不导电”“凸粉”“擦花”“无瑕疵”“桔皮”“横条压凹”“涂层开裂”“漏底”“碰伤”“脏点”“起坑”。铝型材11个分类样本['不导电','凸粉','擦花','无瑕疵','桔皮','横条压凹','涂层开裂','漏底','碰伤','脏点','起坑']【任务实践】工业铝型材缺陷分析fromtensorflow.keras.preprocessing.imageimportImageDataGeneratorbatch_size=32#设置批次大小img_height,img_width=224,224datagen=ImageDataGenerator(rescale=1.0/255,rotation_range=20,#随机旋转角度width_shift_range=0.2,#水平平移height_shift_range=0.2,#垂直平移zoom_range=0.2,#随机缩放horizontal_flip=True,#水平翻转validation_split=0.2)#80%用于训练,20%用于验证(3)数据集预处理
为了更好地对数据进行训练,需要进行数据预处理,包括数据增强以及将数据集切分为训练集和验证集等。1)设置数据增强生成器。【任务实践】工业铝型材缺陷分析#训练集(80%)train_data=datagen.flow_from_directory(data_dir,target_size=(img_height,img_width),batch_size=batch_size,class_mode='categorical',subset='training')#使用增强的训练集#验证集(20%)val_data=datagen.flow_from_directory(data_dir,target_size=(img_height,img_width),batch_size=batch_size,class_mode='categorical',subset='validation')#使用增强的验证集2)生成训练集和验证集。【任务实践】工业铝型材缺陷分析#可视化显示数据增强后的样本defvisualize_augmented_images(data_generator,num_images=9):#获取一个增强批次augmented_images,augmented_labels=next(data_generator)#设置图像展示布局fig,axes=plt.subplots(3,3,figsize=(9,9))fig.suptitle("数据增强后的图像样本",fontsize=16)foriinrange(num_images):row,col=divmod(i,3)#将索引分配到3x3布局axes[row,col].imshow(augmented_images[i])#显示增强后的图像axes[row,col].axis('off')#隐藏坐标轴class_idx=augmented_labels[i].argmax()#获取类别索引class_name=train_data.class_indices#训练集类别索引字典class_name={v:kfork,vinclass_name.items()}#翻转字典axes[row,col].set_title(class_name[class_idx])#设置图像标题plt.tight_layout(rect=[0,0,1,0.96])#为标题留出空间plt.savefig(r'augmented_images.jpg')plt.show()#可视化增强后的样本visualize_augmented_images(train_data)3)可视化显示数据增强后的样本。【任务实践】工业铝型材缺陷分析
通过运行代码可以看到,通过几何变换、标准化等方式对数据增强处理,选取增强后的训练集9个样本数据进行可视化显示,可以直观看到数据增强后的样本图像。Found525imagesbelongingto11classes.Found127imagesbelongingto11classes.。【任务实践】工业铝型材缺陷分析(4)构建网络
将样本图像尺寸统一为(224,224,3)作为图像输入,通过构建残差块residual_block,包含两层卷积和跳跃连接(shortcut)。残差网络(ResNet)最开始采用较大卷积核(7X7)计算卷积和最大池化(3x3)进行下采样,逐层提取低级特征;然后多次堆叠残差块,逐步加深网络提取高级特征;最后全局平均池化降维后,通过softmax输出11个分类结果。【任务实践】工业铝型材缺陷分析defresidual_block(input_tensor,filters,stride=1):
#主路径,含两层卷积x=layers.Conv2D(filters,(3,3),strides=stride,padding='same')(input_tensor)x=layers.BatchNormalization()(x)x=layers.ReLU()(x)x=layers.Conv2D(filters,(3,3),padding='same')(x)x=layers.BatchNormalization()(x)#跳跃连接ifstride!=1orinput_tensor.shape[-1]!=filters:shortcut=layers.Conv2D(filters,(1,1),strides=stride,padding='same')(input_tensor)shortcut=layers.BatchNormalization()(shortcut)else:shortcut=input_tensor#合并主路径和跳跃连接x=layers.add([x,shortcut])x=layers.ReLU()(x)returnx1)构建残差模块,主要包含两层卷积和跳跃连接(shortcut)。【任务实践】工业铝型材缺陷分析2)构建resnet网络,通过初始化卷积提取底层信息,从多个堆叠的残差块提取高层特征,完成resnet网络构建。#构建resnet网络defbuild_resnet(input_shape=(224,224,3),num_classes=11):inputs=Input(shape=input_shape)#初始卷积层和池化层x=layers.Conv2D(64,(7,7),strides=2,padding='same')(inputs)x=layers.BatchNormalization()(x)x=layers.ReLU()(x)x=layers.MaxPooling2D((3,3),strides=2,padding='same')(x)#残差块x=residual_block(x,64)x=residual_block(x,64)x=residual_block(x,128,stride=2)x=residual_block(x,128)x=residual_block(x,256,stride=2)x=residual_block(x,256)x=residual_block(x,512,stride=2)x=residual_block(x,512)#全局平均池化和输出分类结果x=layers.GlobalAveragePooling2D()(x)outputs=layers.Dense(num_classes,activation='softmax')(x)model=models.Model(inputs,outputs)returnmodel#构建模型model=build_resnet(input_shape=(224,224,3),num_classes=11)model.summary()#打印模型网络结构【任务实践】工业铝型材缺陷分析Model:"model"__________________________________________________________________________________________________Layer(type)OutputShapeParam#Connectedto==================================================================================================input_1(InputLayer)[(None,224,224,3)0__________________________________________________________________________________________________conv2d(Conv2D)(None,112,112,64)9472input_1[0][0]__________________________________________________________________________________________________batch_normalization(BatchNorma(None,112,112,64)256conv2d[0][0]__________________________________________________________________________________________________re_lu(ReLU)(None,112,112,64)0batch_normalization[0][0]__________________________________________________________________________________________________max_pooling2d(MaxPooling2D)(None,56,56,64)0re_lu[0][0]__________________________________________________________________________________________________conv2d_1(Conv2D)(None,56,56,64)36928max_pooling2d[0][0]__________________________________________________________________________________________________batch_normalization_1(BatchNor(None,56,56,64)256conv2d_1[0][0]__________________________________________________________________________________________________re_lu_1(ReLU)(None,56,56,64)0batch_normalization_1[0][0]__________________________________________________________________________________________________conv2d_2(Conv2D)(None,56,56,64)36928re_lu_1[0][0]__________________________________________________________________________________________________batch_normalization_2(BatchNor(None,56,56,64)256conv2d_2[0][0]__________________________________________________________________________________________________......global_average_pooling2d(Globa(None,512)0re_lu_16[0][0]__________________________________________________________________________________________________dense(Dense)(None,11)5643global_average_pooling2d[0][0]==================================================================================================Totalparams:11,196,555Trainableparams:11,186,955Non-trainableparams:9,600__________________________________________________________________________________________________部分网络结构【任务实践】工业铝型材缺陷分析#模型编译pile(optimizer='adam’,loss='categorical_crossentropy',metrics=['accuracy'])#模型训练epochs=10#可以调整为更大的值
history=model.fit(train_data,validation_data=val_data,epochs=epochs)(5)模型编译和训练,选择Adam优化器来优化权重更新,并采用多分类问题损失函数(CategoricalCrossentropy,分类交叉熵),以衡量模型预测与真实类别之间的差异。【任务实践】工业铝型材缺陷分析#设置绘图布局plt.figure(figsize=(12,6))#绘制准确率曲线plt.subplot(1,2,1)plt.plot(range(epochs),history.history['accuracy'],label='训练准确率')plt.plot(range(epochs),history.history['val_accuracy'],label='验证准确率')plt.xlabel('Epochs')plt.ylabel('Accuracy')plt.title('训练和验证准确率')plt.legend()#绘制损失曲线plt.subplot(1,2,2)plt.plot(range(epochs),history.history['loss'],label='训练损失')plt.plot(range(epochs),history.history['val_loss'],label='验证损失')plt.xlabel('Epochs')plt.ylabel('Loss')plt.title('训练和验证损失')plt.show()#保存模型model.save('models/resnet_gy.h5')模型训练训练过程可视化:【任务实践】工业铝型材缺陷分析
模型训练10轮后,在测试集、验证集的准确率和损失率为:【任务实践】工业铝型材缺陷分析#模型评估val_loss,val_accuracy=model.evaluate(val_data)print(f"验证集损失:{val_loss:.4f},验证集准确率:{val_accuracy:.4f}")#分类报告#获取验证集预测值y_true=val_data.classesy_pred=model.predict(val_data)y_pred_classes=np.argmax(y_pred,axis=1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大连市高校毕业生“三支一扶”计划招募考试真题2025
- 小儿贫血预防与营养补充专项指南
- 公会线下引流活动方案策划(3篇)
- 2026年新疆小升初数学(真题)试卷(含答案)
- 贵州政府采购评审专家试题库及答案
- 2026年青海小升初语文考试真题及参考答案
- 2026年辽宁小升初英语(真题)试卷(含答案)
- 2026年黑龙江中考物理考试真题带答案
- 《功能性消化不良中西医结合诊疗专家共识意见(2025)》解读
- 2026年山东省枣庄市重点学校初一入学语文分班考试试题及答案
- GA/T 1999.3-2025道路交通事故车辆速度鉴定方法第3部分:基于视频图像
- 2026四川凉山州越西县县属国有企业管理人员市场化选聘(第二轮)5人模拟试卷及答案详解(真题汇编)
- 建设电工劳务分包合同
- 2026年联通考试试题及答案
- 衍生金融工具(高教)第十三章 衍生工具的运用和发展
- 2026年河南省网格员招聘考试参考试题及答案解析
- 职工技师工作站工作制度
- AI人工智能在物理教学实践中的应用
- 高教社2023马工程国际私法学
- 间质性肺病教学课件
- 呼吸机管路冷凝水管理方案
评论
0/150
提交评论