目录

前言

设计思路

一、课题背景与意义

二、算法理论原理

2.1 药片检测算法

2.2 基于深度学习的OCR算法

2.2 网络模型压缩算法

三、药品外包装检测的实现

3.1 数据集

3.2 实验环境搭建

3.2 实验及结果分析

最后


前言

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

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

         选题指导:

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

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

        🎯基于深度学习的药品包装质量检测系统 

设计思路

一、课题背景与意义

       药品的包装质量是药品卫生和药效的重要保障。目前三期信息打印的方式主要有喷墨、压印和激光打码等,以上方式均存在漏印或者错印等问题。因此研究机器视觉在药品包装质量检测方面的应用,并在经典图像处理算法的基础上引入基于深度学习的目标检测与光学字符识别算法,以解决目前对成品铝塑泡罩板缺粒与纸盒压印三期检识别果较差的问题,提高检测的准确率与速度

二、算法理论原理

2.1 药片检测算法

       药片检测任务需要同时考虑准确率与速度,且任务环境单一,因此选取一阶段目标检测算法中YOLOv5与CenterNet。

       YOLOv5的网络结构分为输入端、Backbone、Neck和Prediction四部分。输入端就是指图片的入口,作用是对图片进行预处理,即缩放到规定大小、归一化操作等。骨干网络又称特征提取网络,用来提取图像上的特征,后续的任务都是基于提取出的特征。Neck网络的作用是对骨干网络提取得到的特征进行加工与合理利用,对提升网络的准确率至关重要。Prediction就是输出端,利用Neck网络传递的信息进行预测并输出结果。

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

       Anchor-free的目标检测算法通过直接回归目标的边界框或关键点,简化了模型框架,具有精确定位、更高的速度和对尺度变化更鲁棒的优点。它不需要预定义锚框,减少了复杂性,适用于小目标和复杂形状目标的检测,同时具备较快的推理速度,适合实时应用和对速度要求高的场景。目前Anchor-free的目标检测算法的最新代表作是CenterNet。CenterNet创新性的将目标检测任务转化为关键点检测任务,即使用目标的中心点代替表达该目标。

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

2.2 基于深度学习的OCR算法

       文本检测的目的就是要在图像中寻找并定位到有文本的区域,文本检测算法的核心就是准确的将文本区域与背景区分。基于分割的文本检测算法的主要思想是通过图像像素值的阈值来区分文本区域与背景区域,从而完成对文本区域的检测。系统选择的文本检测网络是DBNet,DBNet创造性的提出通过网络输出预测每个像素点的阈值,从而达到将文本区域从背景中分离出的目的。DBNet的后期运算量小,速度快,且对任何形状的文本内容都有较好的检测效果。

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

2.3 网络模型压缩算法

       模型压缩方法选择使用的是便于部署以及效果显著的剪枝法。因为选择的网络模型YOLOv5s本身就是非常轻量级的网络,无需进行迁移学习以及张量分解。当前主流的稀疏化方法有层稀疏化、权重稀疏化与通道稀疏化。其中权重稀疏化方法比较灵活,具有较强的泛化性,可以获得较高的剪枝率,但需要特定的硬件平台支持才可以达到加速效果。通道稀疏化方法的灵活性、剪枝率等都比较均衡,且在卷积层与全连接层上都可以应用。

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

相关代码:


image = cv2.imread('your_image.jpg')

# 对图像进行预处理(例如灰度化、二值化等)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
threshold = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

# 使用OCR算法进行文本识别
text = pytesseract.image_to_string(threshold, lang='eng')

# 输出识别结果
print(text)

三、药品外包装检测的实现

3.1 数据集

       深度学习模型要想获得较好的性能,需要相关任务图像组成数据集的支持。由于公开数据集中均没有包含药片检测的数据集,需要自制相关的数据集。使用搭建的图像采集平台拍摄400张图片作为原始数据集,这些药片图片中包含两种大小的药片,且每种药片图片都包含没有缺粒的图片、部分缺粒的图片和全部缺粒的图片。

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

       自制数据集需要对选取图片中的检测目标进行标注,用一个最小矩形框将目标框住并注明目标的类别。使用的标注软件是LableImg,该软件是一款基于Python语言的开源标注工具。深度学习模型需要大量的、多样的数据参与训练才能达到较好的效果,由于原始数据集的数量不足,因此需要使用图像增广的手段来扩充药片的数据集。图像增广的目的是通过改变图像的某些特征以使深度学习模型学习到更多的目标特征,防止模型过拟合,增加模型鲁棒性。

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

3.2 实验环境搭建

       本次网络模型训练的服务器主要配置为I9-9900KCPU、32G内存、GTX2080TIGPU,目标检测的深度学习框架选择的是pytorch,是目前最主流的框架之一。

3.2 实验及结果分析

       网络模型损失函数变化曲线:学习率策略使用的是余弦退火,它可以在网络训练过程中通过使用余弦函数来降低学习率,满足损失函数(loss)降低带来的对较小学习率的需求;

毕业设计选题- 基于深度学习的药品外包装质量检测系统 人工智能 机器视觉 YOLO

       YOLOv5s网络模型剪枝前后的通道裁减后,几乎所有BN层的通道都有被裁减,网络层数越深,裁减的通道数越多。基于深度学习的OCR算法对压印字符内容可以又快又准的检测与识别。在保证高效的同时,可以应对不同的光照条件、不同式样的字符等,具有很好的鲁棒性。

部分代码如下:

odel.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 加载数据集并进行预处理
train_data = load_train_data()
train_labels = load_train_labels()
test_data = load_test_data()
test_labels = load_test_labels()

# 进行数据预处理,如图像增强、归一化等

# 训练模型
model.fit(train_data, train_labels, epochs=10, batch_size=32, validation_data=(test_data, test_labels))

# 使用模型进行预测
predictions = model.predict(test_data)

# 对预测结果进行后处理和可视化
visualize_predictions(predictions, test_labels)

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

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

最后

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐