YOLOv8+PyQT5 打造安全帽检测预警应用

应用说明

YOLOv8 对象检测模型基于自定义数据集训工地安全帽检测模型,然后通过工具导出模型为 ONNX,基于 OpenVINO 实现模型推理,完成工人是否佩戴安全帽检测识别,根据检测到的结果统计佩戴与未佩戴人数,在 PyQT5 打造的界面上显示输出检测结果。

模型介绍

YOLOv8 自定义安全帽检测模型

模型的输入与输出信息如下:

image.png

输入格式:

NCHW = 1x3x640x640

输出格式:

1x6x8400, xyhw+类别2 = 6,20x20+40x40+80x80=8400

模型推理基于 OpenVINO 框架,CPU 即可运行。

界面设计

界面支持模型相关得参数设置、输入图像路径选择与设置,相关界面设计如下:

Image

代码实现与演示

代码实现与演示,设计两个类,一个界面类实现参数化界面输入与推理结果显示,另外一个模型推理类线程,负责调用模型实现模型推理,返回推理结果。推理类与界面类之间通过信号与槽机制实现数据交换。主界面调用界面类实例化与初始化,实现程序启动,在子线程种实现推理,主线程种刷新界面。完整的主程序调用代码实现如下:

# 初始化APP实例
import platform
app = QtWidgets.QApplication(sys.argv)
if 'Windows' == platform.system():
    app.setStyle('Windows')
# 初始化桌面容器
main_win = QtWidgets.QMainWindow()
# 设置APP窗口名称
main_win.setWindowTitle("安全帽测检测 - 演示版本")
# 初始化内容面板
content_panel = YOLOv8InferPanel()
# 设置窗口大小
main_win.setMinimumSize(1340, 910)
main_win.setCentralWidget(content_panel)


# 请求显示
main_win.show()
# 加载窗口并启动App
app.exec()

Image

Image

Image

END

作者:2号高手
来源:OpenCV学堂

推荐阅读

欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式 AI 专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
18835
内容数
1369
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息