版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章计算机视觉实验方法搭建实验环境:在Anaconda中建立实验环境,在VSCode中选择配置搭建LeNet5卷积神经网络,完成手写体数字分类实验方式1:加载预训练模型,进行测试方式2:训练模型,进行测试加载ResNet模型,基于Cifar10数据集,与LeNet5模型进行图像分类识别效果对比实验准备—创建编程环境下载Anaconda安装Anaconda清华镜像:/help/anaconda/实验准备—创建编程环境配置环境变量Path
此电脑
属性
高级系统设置
环境变量
在系统变量中选择Path,进行编辑Anaconda安装主目录管理Anaconda环境和包的脚本conda.exepip.exe等实验准备—创建编程环境创建计算机视觉实验环境:使用AnacondaNavigator创建conda环境1234创建conda环境为conda环境安装第三方库右键单击实验准备—创建编程环境
打开终端(OpenTerminal)
在终端中,切换当前目录为第三方库所在文件夹执行安装指令D:\AI_CV第三方库pipinstall-rrequirements.txt--no-index--no-deps--find-links.\包名-版本号-Python版本-ABI标签-平台标签.whl
实验准备—VSCode配置
选择工作文件夹。选择Python解释器实验1:手写体数字识别MINIST手写体数字数据集:该数据集主要包含70,000张手写数字图像,其中60,000张用于训练,10,000张用于测试实验1:手写体数字识别(1)数据集转换
训练集测试集灰度图实验1:手写体数字识别(2)数据预处理
图像预处理transform=transforms.Compose([transforms.Resize((32,32)),#调整尺寸为32x32transforms.ToTensor(),#将图像转换为张量(1,高度,宽度)transforms.Normalize((0.1307,),(0.3081,))#标准化])
img=Image.open("./data/mnist/mnist_test/3/112.png")input_tensor=transform(img)#进行数据预处理input_batch=input_tensor.unsqueeze(0)#(1,1,高度,宽度)fromtorchvisionimporttransformsfromPILimportImage实验1:手写体数字识别(3)搭建LeNet5模型张量(batch_size,channels,height,width)(1,1,32,32)6个5×5(1,6,28,28)2×2(1,6,14,14)16个5×5(1,16,10,10)2×2(1,16,5,5)(400,)fromtorchimportnnimporttorch.nn.functionalasFclassMyLeNet5(nn.Module):def__init__(self):#定义网络的层次结构
super().__init__()
self.conv1=nn.Conv2d(in_channels=1,out_channels=6,kernel_size=5)
self.maxpool1=nn.MaxPool2d(kernel_size=2,stride=2)
self.conv2=nn.Conv2d(in_channels=6,out_channels=16,kernel_size=5)
self.maxpool2=nn.MaxPool2d(kernel_size=2,stride=2)
self.fc1=nn.Linear(16*5*5,120)
self.fc2=nn.Linear(120,84)
self.fc3=nn.Linear(84,10)defforward(self,x):#定义前向传播过程,描述各层之间的连接关系
x=self.conv1(x)
x=F.relu(x)#ReLu激活函数计算
x=self.maxpool1(x)
x=self.conv2(x)x=F.relu(x)#ReLu激活函数计算
x=self.maxpool2(x)
x=x.view(-1,16*5*5)#将数据转换为全连接层所需的二维结构
x=F.relu(self.fc1(x))#ReLu激活函数计算
x=F.relu(self.fc2(x))#ReLu激活函数计算
x=self.fc3(x)
returnnn.functional.log_softmax(x,dim=1)#Softmax激活函数多分类结果实验1:手写体数字识别(4)加载预训练模型,进行预测model=MyLeNet5()model.load_state_dict(torch.load('./save_model/best_mnist_model.pth'))model.eval()#把模型转为测试模式fromPILimportImageimg=Image.open("./data/mnist/mnist_test/3/112.png")plt.figure(figsize=(2,2))#控制显示比例为2x2英寸plt.imshow(img,cmap="gray")实验1:手写体数字识别(4)加载预训练模型,进行预测#数据预处理(需与训练时一致)transform=transforms.Compose([transforms.Resize((32,32)),#调整尺寸为32x32transforms.ToTensor(),#将图像转换为张量(1,高度,宽度)transforms.Normalize((0.1307,),(0.3081,))#标准化])input_tensor=transform(img)input_batch=input_tensor.unsqueeze(0)实验1:手写体数字识别(4)加载预训练模型,进行预测output=model(input_batch)print(output)tensor([[-1.6325e+01,-7.5702e+00,-6.7908e+00,-4.1183e-03,-1.3112e+01,-6.4574e+00,-1.0354e+01,-7.0975e+00,-1.1709e+01,-1.0357e+01]],grad_fn=<LogSoftmaxBackward0>)
predict=output.argmax(dim=1)print("预测类别:",predict.item())预测类别:3实验1:手写体数字识别(5)使用测试集评估模型卷积层:局部感知,特征提取,每个卷积产生一个特征图,随着网络深度增加,后续卷积层提取更高级的特征池化层:降低特征图尺寸,保留特征图最显著特征,提升特征的抽象程度全连接层:整合所有特征,进行更高层次的抽象,最终实现决策练习
在D盘建立文件夹,拷贝如下文件至文件夹数据集(C:/AI通识课/MNIST)源代码(学习通上机作业附件源代码.zip解压缩)
启动VSCode,打开文件夹选择AnacondaAI_CV编程环境
运行test.py,查看识别结果(注意图像路径表达正确)
更换test.py中加载的数字图像,检测识别结果图像分类拓展练习任务:根据给出的代码框架,搭建LeNet5网络模型,使用Cifar10数据集进行预测;加载预训练ResNet模型,进行预测效果对比。32×32像素RGB图像实验报告1、记录实验过程及实验结果(实验结果截图展示)。2、思考并回答以下问题。问题1:对于MNIST数据集的数据预处理过程中,哪些步骤对模型的训练效果影响最大?问题2:对卷积神经网络(CNN)及LeNet5模型的认识。(1)LeNet模型中各层(卷积层、池化层、全连接层)的功能分别是什么?(2)每层计算后的维度如何计算?问题3:应用场景。(1)手写体数字识别技术在实际应用中有哪些重要的场景?(2)LeNet网络可以应用在哪些场景?【任务1】数据准备。细胞分割实验基于BroadBioimageBenchmarkCollection(BBBC)数据集进行训练和测试。BBBC是一个广泛使用的生物图像数据集,支持生物医学图像分析算法的开发和评估。该数据集由美国麻省理工学院的BroadInstitute创建,包含多种类型的生物图像数据,主要用于细胞图像分析、细胞分割、特征提取和分类等任务。【任务2】数据预处理。读取数据集中医学样本的图像和掩码信息,将它们转换为灰度图像,并保存为PNG格式步骤1:准备读取文件步骤2:读取和转换原始图像步骤3:读取和转换掩码文件【任务3】U-Net网络搭建。U-Net具有U形结构,主体包含编码器和解码器两个部分。U-Net网络(1)编码器(下采样路径)。编码器由一系列卷积层和池化层构成,负责逐步提取图像的特征并降低其空间维度。每个卷积层通常使用两个3×3的卷积核,后接ReLU激活函数,随后通过2×2的最大池化层进行下采样。通过这一过程,网络逐渐减少特征图的空间维度,同时增加特征通道的数量,从而提取出更高级的特征。在编码器的最后,U-Net包含一个瓶颈层,进一步增强特征提取能力。(2)解码器(上采样路径)。解码器则通过上采样操作逐步恢复特征图的空间分辨率。每个上采样后通常接有卷积层,以进一步处理上采样后的特征。在上采样过程中,U-Net采用跳跃连接将编码器中对应层的特征图与解码器中的特征图进行拼接。这一设计使高分辨率的特征得以保留,从而有效改善分割的准确性。(3)输出层。最后,U-Net通过一个1×1的卷积层将特征图映射到所需的数字类别上,通常使用Softmax或Sigmoid激活函数进行像素级分类。【任务4】训练模型。(1)配置训练所需的各种参数,如学习率、批量大小和损失函数等。(2)检测当前可用的设备(GPU或CPU),将创建的U-Net模型迁移至目标设备上运行。(3)使用metadata.zip中training.txt、validation.txt文件指定的图像和标签数据,加载训练和验证数据集。(4)定义优化器和损失函数,在每个epochs中执行训练过程,计算训练损失,并在损失改善时保存模型权重。(5)记录训练历史并输出训练所需的时间。【任务5】推理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上海市大数据中心招聘10名备考题库及答案详解参考
- 2026安徽合肥国家实验室技术支撑岗位招聘备考题库及答案详解一套
- 2026江苏淮安市洪泽区中医院招聘合同制专业技术人员6人备考题库(长期)及一套完整答案详解
- 2026年陕西师大附中国际部招聘备考题库(3人)附答案详解(典型题)
- 2026新疆阿拉尔新鑫铁路货运有限公司招聘5人备考题库含答案详解(考试直接用)
- 2026江西赣州市南康区鑫泉资产运营管理有限公司招聘1人备考题库附答案详解(考试直接用)
- 2026四川乐山市市中区国有企业社会招聘员工10人备考题库及完整答案详解一套
- 2026年6月黑龙江齐齐哈尔市碾子山区招聘公益性岗位人员3人备考题库附答案详解(巩固)
- 2026浙江省对外服务公司嘉兴分公司招聘1人备考题库及答案详解参考
- 2026北京大学餐饮中心招聘2名劳动合同制人员备考题库及答案详解(典优)
- 语文●全国Ⅰ卷丨2024年普通高等学校招生全国统一考试语文试卷及答案
- CJ/T 192-2017内衬不锈钢复合钢管
- 2025年电工三级(高级工)理论100题及答案
- 车库金刚砂地坪施工的防滑措施
- 油田钻井工程技术操作规范
- 2025年《家校共育共话成长》一年级下册家长会课件
- 第二单元第1课《观照自然》教学设计 2025人美版美术七年级下册
- 车间装配知识培训课件
- 王海明新伦理学课后答案及复习资料
- 高血压患者围手术期的护理
- DBJ50-T-303-2018 玻璃幕墙安全性检测鉴定技术标准
评论
0/150
提交评论