|
|
4 years ago | |
|---|---|---|
| imgs | 4 years ago | |
| models | 4 years ago | |
| tools | 4 years ago | |
| utils | 4 years ago | |
| .gitignore | 4 years ago | |
| MainWindow.py | 4 years ago | |
| autosave.jpg | 4 years ago | |
| best.pt | 4 years ago | |
| buffer.jpg | 4 years ago | |
| cam.py | 4 years ago | |
| detect_ecnu.py | 4 years ago | |
| export.py | 4 years ago | |
| flower.png | 4 years ago | |
| main.py | 4 years ago | |
| maskhelper.yaml | 4 years ago | |
| noise.py | 4 years ago | |
| operation.py | 4 years ago | |
| readme.md | 4 years ago | |
| requirements.txt | 4 years ago | |
| sharp.py | 4 years ago | |
| simhei.ttf | 4 years ago | |
| smooth.py | 4 years ago | |
| train.py | 4 years ago | |
readme.md
Author:方逸寒 孙仲业 (按姓氏排名)
功能介绍
| 图像基本操作 | 图像平滑 | 边缘处理 | 进阶处理 |
|---|---|---|---|
| 亮度调整 平移操作 旋转 翻转 缩放 对比度调整 色度直方图 |
均值滤波 高斯滤波 中值滤波 双边滤波 |
Prewitt算子 Sobel算子 Laplacian算子 Log算子 Canny算子 |
基于摄像头的拍照功能 基于深度学习的口罩分类识别 口罩贴印花功能 |
使用说明:
界面简介:软件的UI分为三大部分,顶部的工具栏以大图标按钮的形式列举了多个常用功能,分别是
打开文件保存文件开启/关闭摄像头拍照开启/关闭口罩识别口罩印花暂存文件
右侧的属性栏包括了基本的图像属性和处理操作
中间的主组件显示当前的图片预览
0.0 使用该软件需根据requirements文件中的需求安装相关依赖,其中torch版本取决于电脑硬件
0.1 打开软件后,需要等待一段时间,此时后台会加载赋能口罩识别的神经网络模型,过程需要几秒
①打开文件:点击工具栏的第一个图标为文件夹的按钮,即可在资源管理器中选取图片打开
②图像基本操作:打开图片后在属性栏可以进行各种操作,每次操作完成后需单击工具栏偏右侧的暂存按钮,否则接下来的操作将在原图基础上操作
③摄像头相关功能:打开摄像头后可以激活拍照和口罩识别的按钮,在摄像头开启状态下开启口罩识别,软件会自动识别图像中的医用外科口罩和N95口罩并分类标注,在开启识别的状态下进行拍照,可对照片进行贴印花操作,点击贴印花按钮即可贴印花
④自动保存功能:当打开摄像头或开启新文件时,若原先的操作尚未保存至硬盘,系统会自动保存至根目录下的autosave.jpg
技术栈
| UI界面 | 图像处理 | 人工智能 | 辅助库 |
|---|---|---|---|
| PyQT | OpenCV PIL |
CUDA (训练环境) Pytorch YOLOv5算法 |
matplotlib>=3.2.2 numpy>=1.18.5 Pillow>=7.1.2 PyYAML>=5.3.1 requests>=2.23.0 scipy>=1.4.1 tqdmprotobuf |
目录架构
项目根目录
ROOT │ best.pt 训练完的模型 │ cam.py 前期调试图像识别函数的脚本 │ detect_ecnu.py 改良后的实时目标检测函数 │ export.py YOLO依赖 │ flower.png 印花原图 │ main.py 程序入口 │ main.spec YOLO依赖 │ MainWindow.py 主窗口UI和事件函数 │ maskhelper.yaml 自定义数据集的定义 │ noise.py 加噪声函数库 │ operation.py 基本操作函数 │ requirements.txt 项目依赖库 │ sharp.py 锐化函数 │ simhei.ttf 字体 │ smooth.py 平滑函数 │ train.py 模型训练函数 │ ├─imgs 图标文件 │ ├─models YOLO模型 │ ├─tools 手写的用于数据集批处理的脚本 │ convertTxt.py │ resize.py │ split.py │ └─utils
功能实现
图像的基本操作使用openCV库和课程知识完成
图形界面依靠PyQT强大的组件库和信号、槽等功能
口罩分类识别功能选取YOLOv5算法,前期一共拍摄353张不同人物、不同品牌颜色的医用外科口罩和N95口罩,收集完成后使用脚本(resize.py)将其缩小为600*800的较小尺寸并以序列号格式重命名,接下来使用LabelImg添加标签并导出为VOC格式数据集,使用脚本导出YOLO需要的txt标签文件,进行训练。
YOLO的detect功能经过改良,实现了返回标签名称和识别框坐标的功能,不会在图片本身进行操作,此外使用面向对象方法将模型的导入和使用功能分开,确保只需导入一次模型即可实时识别图像,提高效率
分工
UI界面和神经网络的训练及调用由方逸寒完成
图像处理的全部功能函数实现由孙仲业完成
