网站建设公司专业公司哪家好wordpress 缓存加速
2026/4/18 11:15:17 网站建设 项目流程
网站建设公司专业公司哪家好,wordpress 缓存加速,手机网站建设的影响,长春网站优化策略前期准备 这篇博客记录神经网络方法与应用的实验项目#xff0c;项目开源链接#xff1a;【免费】神经网络课程设计项目.zip资源-CSDN下载 数据集 数据集是我本人在百度飞桨网站上找到的#xff0c;这个数据集整理的很全面详细#xff0c;数据集信息包含10w张训练照片项目开源链接【免费】神经网络课程设计项目.zip资源-CSDN下载数据集数据集是我本人在百度飞桨网站上找到的这个数据集整理的很全面详细数据集信息包含10w张训练照片1w张测试照片并且分别使用train.txt和test.txt两个文本文件记录下每张图片的真实车牌号码同时图片的命名也采取编号车牌号的命名方法图片信息统一为130*32像素值大小且包含不同光照条件下、拍摄角度、以及各种不同车牌颜色很好的涵盖了目前大陆的车牌组成因此比较适合。我使用标准且合理的机器学习数据划分方法把10w张图片中9w用于训练模型实际更新参数剩下1w张图片用于验证这一训练轮次模型的识别准确率。另外1w张图片额外编写脚本文件和GUI项目单独验证保存的最佳模型效果如何。数据集地址车牌数据_数据集-飞桨AI Studio星河社区训练设备与环境配置# check_env_versions.py import sys import subprocess import platform def get_python_info(): 获取Python信息 print(fPython: {sys.version.split()[0]}) print(fPlatform: {platform.platform()}) print(fArchitecture: {platform.machine()}) print() def get_package_version(package_name): 获取包版本信息 try: # 特殊处理一些包 if package_name.lower() pillow: import PIL return PIL.__version__ elif package_name.lower() torch: import torch return torch.__version__ elif package_name.lower() torchvision: import torchvision return torchvision.__version__ else: module __import__(package_name.lower()) return getattr(module, __version__, unknown) except ImportError: # 尝试通过pip获取 try: result subprocess.run( [sys.executable, -m, pip, show, package_name], capture_outputTrue, textTrue, encodingutf-8 ) if result.returncode 0: for line in result.stdout.split(\n): if line.startswith(Version:): return line.split(:)[1].strip() return not installed except: return not installed def check_gpu_info(): 检查GPU信息 try: import torch print(CUDA available:, torch.cuda.is_available()) if torch.cuda.is_available(): print(fCUDA version: {torch.version.cuda}) print(fGPU count: {torch.cuda.device_count()}) for i in range(torch.cuda.device_count()): print(f GPU {i}: {torch.cuda.get_device_name(i)}) print() except ImportError: print(torch not installed, cannot check GPU) print() def main(): 主函数 print( * 50) print(环境版本检查) print( * 50) # Python信息 get_python_info() # 检查的包列表 packages [ torch, torchvision, Pillow, numpy, pandas, opencv-python # 虽然代码没导入但常用来处理图像 ] # 获取每个包的版本 print(Package versions:) print(- * 30) for pkg in packages: version get_package_version(pkg) print(f{pkg:20} : {version}) print() # GPU信息 print(GPU/CUDA info:) print(- * 30) check_gpu_info() # 标准库版本部分 print(Other info:) print(- * 30) print(fPIL (Pillow) installed: {Yes if Pillow in packages else No}) # 检查代码中导入的标准库 standard_libs [json, csv, os, re, warnings, time, datetime, pickle, string] print(fRequired stdlibs: all available ✓) if __name__ __main__: try: main() except Exception as e: print(fError: {e}) 环境版本检查 Python: 3.9.7 Platform: Windows-10-10.0.17763-SP0 Architecture: AMD64 Package versions: ------------------------------ torch : 2.7.1cu118 torchvision : 0.22.1cu118 Pillow : 8.4.0 numpy : 1.21.5 pandas : 1.3.4 opencv-python : 4.5.5.64 GPU/CUDA info: ------------------------------ CUDA available: True CUDA version: 11.8 GPU count: 2 GPU 0: NVIDIA RTX A6000 GPU 1: NVIDIA RTX A6000 Other info: ------------------------------ PIL (Pillow) installed: Yes Required stdlibs: all available ✓ 进程已结束,退出代码0网络结构我参考Le-Net设计结构简单搭建了一个CNN网络主要实现了三层卷积卷积核大小都是3x3区别在于通道数不一样添加了一个自适应池化层两个全连接层准确来说应该是八个最后输出字符。因为大陆车牌统一编码规则为7位我使用的端到端识别方案没有做视觉识别裁剪分割而是直接输入图片输出字符串这很大一部分原因是训练集图片都为固定大小且以车牌为中心换做其他的数据集肯定就不行了。对于全连接层最后一个全连接层实际上是七对256-67的输出在这之前每个字符共享网络参数但是这一层每个字符之间的网络的权重并不一致所以属于独立参数或许有助于提升准确性。这个网络的设计实际上硬生生把一个字符串识别任务变成了7个单字符分类任务。流程图作者第一次用Visio有点没对齐日志为什么我看的大部分神经网络的项目都没有花时间提一嘴日志的事情。本人小白一开始写代码根本就不知道要写日志保存训练过程结果一个小时训练完了除了一个模型文件啥也没有连正确率曲线都画不出来只好重新改代码让它生成日志文件json格式当然也有读者友好的txt总结文件。在日志里面可以看到整个网络的训练过程每个epoch的batch结果非常详细。文档还保存了每轮epoch输出的模型文件方便之后在已有模型上继续训练。实验结果图这么一看感觉还行第一次折腾神经网络就有这种效果86%的准确率真不赖。训练准确率曲线明显低于验证准确率曲线大概率是因为训练的时候我对数据又进行了一些处理调了调亮度啥的但是验证的时候是没有对数据处理的相对来说比较干净所以验证准确率会大于训练准确率。我的学习率采用了OneCycleLR调度器简单来说就是前面增长的很快方便收敛后面慢慢减小方便微调模型参数。后面两位的准确率明显低于前面五位很大原因和训练集有关系。有的训练集照片拍摄角度太刁钻车牌都没拍全导致后两位准确率偏低。GUI验证让AI写了个界面从test文件夹里面“随机”挑了几张看效果我真没造假还是很不错的。结果显示第一张车牌和第三张车牌都正确预测第二张最后一位预测错误。且第一张置信度低于第二张第三张置信度最高。我分析认为最可能的原因是红底车牌在训练集内并不多见所以网络学到的关于这类车牌信息较少置信度较低。浅蓝底和深蓝底车牌较多但第二张车牌末尾严重丢失所以模型把最后一位认成Q而不是0属于正常现象且有力证明了为什么之前关于字符预测准确率最后两位会显著低于前几位就是因为训练集图片末尾残缺导致。第三张车牌置信度为1是因为照片为车牌正对视角且无模糊车牌主体占据照片中心属于某种意义上的最佳训练图因此置信度毫无疑问最高。写在最后这是我学习神经网络自己跑的第一个例子虽然学术性没那么强但是至少是让我体会了一下关于数据集、网络设计、训练过程、结果验证方方面面的流程对我本人以后相关的学习也有很大帮助。这个项目是我在AI的辅助下完成的所以代码部分没有参考任何现有论文只是网络结构上参考了一下Le-Net因为我觉得本地训练的话10w张图片应该需要的参数量和Le-Net相当考虑到车牌识别实际上是字符串识别任务或者说是7个字符的独立分类任务复杂度明显高于手写数字体识别因此准确率远不及LeNet-5也是在我的预料范围内。后续如果有糕手打算改进这个项目的话我的建议是可以利用车牌的构造特征简化参数这样有可能会性能更好。比如车牌首位一定是汉字后六位字母不含I与O所以网络结构可以继续优化。同时当我们确定了汉字之后第二位字母是由固定范围的以湖南为例湘A是长沙湘B是株洲但是没有湘P、湘Q、湘Z等等车牌这也是利用先验知识优化网络设计。同时端到端的输入很受训练集的影响后续如果想要拓展成实际项目的话应该考虑训练如果在图片之框出车牌位置固定像素大小裁取再输入到模型中应该会有不错的效果这样可以搭配摄像头和传感器使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询