基于 YOLOv8 和 Llama 模型的智能检测与问答系统。此项目结合了计算机视觉和自然语言处理技术,支持实时目标检测、智能问答、猜谜等功能。
- 目标检测:
- 使用 YOLOv8 模型进行实时目标检测。
- 支持视频和摄像头流的检测。
- 智能问答:
- 基于自然语言处理模型实现用户问答功能。
- 支持记录历史问答。
- 猜谜游戏:
- 支持用户与 AI 猜谜互动。
- 数据面板:
- 提供实时数据统计和分析。
- 使用 WebSocket 推送统计信息。
yolov8-llama-app/
├── backend/ # 后端代码
│ ├── app/ # FastAPI 应用代码
│ │ ├── routes/ # API 路由
│ │ ├── models/ # 存储模型相关文件
│ │ ├── websocket.py # WebSocket 逻辑
├── db_ultils.py # 链接数据池配置
│ │ ├── model_manager.py # 模型管理器
│ │ ├── llm_guess.py # AI 猜谜逻辑
│ │ └── user_guess.py # 用户猜谜逻辑
│ ├── test_model.py # 模型测试脚本
├── models/ # 各模型文件
├── stats.db # 数据池文件
│ ├── requirements.txt # 项目依赖
├── frontend/ # 前端代码
│ ├── public/ # 静态资源
│ ├── src/ # React 组件
│ │ ├── components/ # 前端模块化组件
│ │ ├── App.jsx # 应用入口
│ │ └── index.js # 前端入口文件
└── README.md # 项目文档
- 框架:FastAPI
- 模型:YOLOv8、Llama
- 依赖:
torch(PyTorch)transformersopencv-pythonsqlite3(用于存储历史记录)
- 框架:React + Material-UI
- 图表:Chart.js
- WebSocket:支持实时数据更新
-
安装依赖: 在
backend目录下运行以下命令:pip install -r requirements.txt
-
运行后端:
python app/main.py // uvicorn app.main:app --reload
-
测试模型接口: 运行
test_model.py以测试模型是否正常加载:python test_model.py
-
数据库初始化: 数据库会在首次运行时自动初始化。在初始化一些值会更美观。
5.模型地址: 微调模型仓库https://huggingface.co/chenyu1232/deepseek-rps-lora。为导入 yolo 模型可运行
pip install ultralytics在配置好训练集yaml文件后,在终端输入
yolo train data=coco8.yaml model=yolo11n.pt epochs=10 lr0=0.01更多操作可查看官方文档 https://docs.ultralytics.com/zh/quickstart/
- 访问地址: 后端服务将运行在http://localhost:8000。
-
安装依赖: 在
frontend目录下运行以下命令:npm install react chatjs
-
运行前端:
npm start
-
访问地址: 前端服务将运行在 http://localhost:3000。
-
目标检测:
- 上传视频文件或通过摄像头进行实时检测。
- 检测结果将以 JSON 格式返回并展示在前端。
-
智能问答:
- 在问答界面输入问题,AI 会返回答案。
- 历史记录可以在“历史”页面查看。
-
猜谜游戏:
- 选择“我来猜题”或“AI猜谜”模式,与系统互动。
-
数据面板:
- 实时查看系统的统计数据,包括检测数量、问答记录等。
- URL:
/api/qa - 请求方法:
POST - 请求示例:
{ "question": "红色水果?" } - 响应示例:
{ "answer": "苹果 🍎" }
- URL:
/api/detection - 请求方法:
POST - 请求示例: 上传视频文件进行检测。
- URL:
/ws/rps - 功能: 实时帧数据与检测结果推送。
- 后端优化:
- 使用 GPU 加速 YOLOv8 推理。
- 限制 WebSocket 的帧率以降低带宽占用。
- 前端优化:
- 使用虚拟化列表(如
react-window)优化长列表渲染。 - 减少不必要的组件重渲染。
- 使用虚拟化列表(如
- 日志和存储:
- 控制日志输出级别,定期清理视频结果文件。 4.数据库优化:
- 使用数据库连接池来管理数据库连接,减少连接建立和关闭的开销。
- 增加多语言支持。
- 支持更多模型(如 Whisper、CLIP)。
- 优化前端交互体验。
欢迎贡献代码和提出建议!请遵循以下步骤:
- Fork 本仓库。
- 创建新分支:
git checkout -b feature-your-feature-name - 提交更改:
git commit -m "Add some feature" - 推送分支:
git push origin feature-your-feature-name - 创建 Pull Request。
- 作者: scodemay
- 邮箱: [3502018048@qq.com]
本项目采用 MIT License 许可证。