# 猫狗识别系统 **Repository Path**: LTSKF/cat-and-dog-recognition-system ## Basic Information - **Project Name**: 猫狗识别系统 - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-25 - **Last Updated**: 2025-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 猫狗识别系统 #### 介绍 该系统是一个基于yoloV8模型使用Python语言开发的能够通过图片识别图片上的动物是猫还是狗也有可能没有猫和狗。UI使用的是PyQt制作,数据集使用labelImg工具进行数据标注,共400张图片跑了50轮花费13小时进行训练。主要主要涉及到的知识点是机器学习和PyQt开发。 文件结果组成: ![](./Image/PixPin_2025-04-26_10-21-47.png) ![](./Image/PixPin_2025-04-26_09-55-10.png) ![](./Image/PixPin_2025-04-26_09-55-53.png) ![](./Image/PixPin_2025-04-26_09-56-14.png) ![](./Image/PixPin_2025-04-26_09-56-41.png) #### 使用说明 1. fork本仓库 2. 准备Python开发环境、yoloV8开发环境、PyQt5开发环境 3. 直接运行上传图片进行识别即可 4. 开发自己的模型就替换dataset文件夹中的数据集,比例按照8:1:1的方式提供数据,将yoloV8.py里面的模型根据情况换成best.pt进行训练即可。 #### 参与贡献 1. 灵涂山克府 ltskf@qq.com #### 特技 1. 数据标注 本项目使用的是[labelImg](https://github.com/HumanSignal/labelImg)工具进行数据标注的辅助工作,运行该程序需要使用 python labelImg.py 指令,然后对图片进行画框并保存标签结果。 ![](./Image/PixPin_2025-04-26_10-37-29.png) 2. yolo模型训练 我们在下载完yolo之后,文件夹中会存在一个名为yolov8n.pt的基础模型,该模型是训练的标准,当然,如果有其他模型也是可以。 ```python from ultralytics import YOLO import os #模型训练的类 model = OLO("/yolov8n.pt") # 加载预训练模型 if __name__ == '__main__': path = os.getcwd() + "/mydata.yaml" # 路径拼接 results = model.train(data = path, epochs = 2, imgsz = 640) #训练模型,训练的数据路径,训练轮次 ``` 执行上面的代码,OLO里面提供的就是我们想基于哪个基础模型进行模型的训练,path记录的是我们配置的数据集的位置,yolo会根据我们提供的位置进行训练,这里使用我们提供的路径找到数据,然后跑2轮(因为电脑问题,测试太多轮会耗费太多的时间,所以这里使用2轮进行简单的实验,如果想让模型可靠,400张图片至少需要100-150轮才能训练出可靠的模型),后面是提供的图片的尺寸 模型跑出的过程如下所示 ![](./Image/PixPin_2025-04-26_10-49-36.png) 3. Qt界面开发 Qt的界面开发借助了Qt Designer开发工具和PyUIC工具,前者通过图形化界面设计UI后者将我们设计的.ui文件传换成py文件。 4. 逻辑处理 逻辑处理只有简单的点击按钮选择图片,将图片呈现在lab上,使用模型查找图片上的信息,将结果呈现在界面上,并没有什么比较难的逻辑处理。