毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

本文介绍了基于深度学习的钢印字符检测算法系统,使用YOLOv5算法进行字符检测,通过数据集训练和优化输出排序,实现了钢印字符的快速识别和序列化。实验结果显示,模型性能良好,字符识别准确率高达97.4%。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 目录

 前言

设计思路

一、课题背景与意义

二、算法理论原理

2.1 YOLOv5算法

2.2 输出改进

三、检测的实现

3.1 数据集

3.2 实验环境搭建

3.3 实验及结果分析

实现效果图样例

最后


前言

       📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

        🚀对毕设有任何疑问都可以问学长哦!

         选题指导:

        最新最全计算机专业毕设选题精选推荐汇总

        大家好,这里是海浪学长毕设专题,本次分享的课题是

        🎯基于深度学习的钢印字符检测算法系统

设计思路

一、课题背景与意义

压印字符通过字符模具对钢板压印所产生,具有不易磨损,可长期保存的优点,因此在工业制作上得到广泛使用。传统的人工记录方法需要大量的劳动力,不但耗时耗力,而且容易出现记录错误等问题。因此,研究钢印字符智能识别方法对于提高压印字符的实时识别速率有着积极的意义。

二、算法理论原理

2.1 YOLOv5算法

YOLOv5算法使用参数depth_multiple和width_multiple来调整主干网络的宽度和深度,从而得到4个版本的模型,分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。YOLOv5s是最简单的版本。它具有最小的模型参数和最快的检测速度。由以下部分组成: focus、Conv-Bn-Leakyrelu(CBL)和CSP1_x、CSP2_x和空间金字塔池化(SPP)模块。Focus模块主要包含4个平行切片层来处理输入图像。CBL模块包含一个卷积层、批量归一化层和hard-wish激活函数。CSP1_x块包含CBL块和x个剩余连接单元。CSP2_x块包含x个CBL块。SPP块主要包含3个maxpool层。

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

2.2 输出改进

虽然经过算法检测,可以得到钢印字符的种类,但是所得到的结果是乱序的,只有种类而无序列。因此,为了得到与钢印一致的生产编号,需要对检测到的字符位置信息进行排序,本研究采用冒泡排序法,对位置信息按从小到大顺序进行排序,从而把相对应的字符从左到右排列,从而得到准确的生产标号。

三、检测的实现

3.1 数据集

由于没有公开的钢印字符数据集,根据编码的编制要求,制作了相应的带有字符编号的试验部件,并用相机对整块部件拍摄图片。通过对已经打上字符编号的钢材部件进行拍摄,得到422张图像。

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

为了保证样本的多样性,使其符合现实生产过程中采集到的图像,对现有的数据集进行扩充。采用图像模糊化,图像加亮,图像变暗,图像加噪等方法对已有图像进行处理,从而得到2,110张图像,并将其作为数据集,其中1,855张作为训练集,255张作为测试集。

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

3.2 实验环境搭建

实验平台为PC端,PC配置为AMD Ryzen 7 3700X 8-Core Processor,显卡/GPU为NVIDIA GeForce RTX 3060,16GB运行内存。cuda版本是11.2,集成开发环境是Pycharm,编程语言是Anaconda Python 3.9。

YOLOv5x模型训练参数的设置,批处理大小(batch Size)设为8,迭代次数(epochs)设为100次,学习率(learning_rate)设为0.001。

3.3 实验及结果分析

在字符识别前需要对YOLOv5网络进行训练,而经过训练获得的网络模型的优劣程度将直接影响到识别的效果是否达到满意的程度。在对训练集进行训练时,YOLOv5网络通过计算损失函数CIOU_Loss来判断训练的效果。为了得到较好的训练效果,所需求的CIOU_Loss值越小越好。

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

使用YOLOv5网络进行训练得到的loss函数曲线如下图。在训练结束后,可得到包括最佳训练权重、字符识别混淆矩阵、各类标签个数等信息数据。

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

混淆矩阵元素:

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

训练结束后的P-R曲线如下图所示:曲线围起的面积即为AP值,可看到0~9每个类别的AP值均达到90%以上,mAP为所有类别AP均值,且达到97.4%,这表明采用YOLOv5网络分类得到的效果很好。

毕业设计-基于深度学习的钢印字符检测算法系统 YOLO python 卷积神经网络 人工智能

部分代码如下:

import cv2
import numpy as np
import tensorflow as tf

# 加载预训练的字符检测模型
model = tf.keras.models.load_model('character_detection_model.h5')

# 设置字符类别标签
class_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

# 打开钢印图像
image = cv2.imread('steel_stamp_image.jpg')

# 对图像进行预处理,如调整大小、归一化等
preprocessed_image = preprocess_image(image)

# 使用字符检测模型进行预测
predictions = model.predict(np.expand_dims(preprocessed_image, axis=0))

# 提取预测结果
character_class_ids = np.argmax(predictions, axis=1)
predicted_characters = [class_labels[class_id] for class_id in character_class_ids]

# 在图像上绘制识别结果
image = draw_characters(image, predicted_characters)

# 显示图像
cv2.imshow('Steel Stamp Character Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

创作不易,欢迎点赞、关注、收藏。

毕设帮助,疑难解答,欢迎打扰!

最后

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值