# meetingrecong **Repository Path**: techwolf/meetingrecong ## Basic Information - **Project Name**: meetingrecong - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-08 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 会议视频文字自动记录系统 基于YOLOv8和PaddleOCR的会议视频文字自动记录系统,支持实时文本区域检测、OCR识别、语义分段和多格式导出。 ## 功能特性 - **实时文本检测**: 使用YOLOv8-small模型进行文本区域检测 - **高精度OCR**: 集成PaddleOCR支持中英文混合文本识别 - **智能分类**: 自动区分幻灯片、板书、讨论等内容类型 - **异步处理**: 支持多路视频流并发处理 - **多格式导出**: 支持Markdown、Word、JSON格式导出 - **RESTful API**: 提供完整的API接口 - **容器化部署**: 支持Docker容器化部署 ## 系统架构 ``` ┌─────────────────────┐ │ 客户端 (GUI/CLI/API) │ └──────────┬──────────┘ │ v ┌──────────┴──────────┐ │ 视频输入管理模块 │ └──────────┬──────────┘ │ v ┌──────────┴──────────┐ ┌──────────────────┐ │ YOLOv8文本检测 ├────►│ 区域裁剪与队列调度 │ └─────────────────────┘ └─────────┬────────┘ │ v ┌─────────┴────────┐ │ PaddleOCR识别服务 │ └─────────┬────────┘ │ v ┌─────────┴────────┐ │ 后处理与语义分段 │ └─────────┬────────┘ │ v ┌─────────┴────────┐ │ 存储与导出模块 │ └──────────────────┘ ``` ## 快速开始 ### 环境要求 - Python 3.9+ - OpenVINO 2023.2+ - Redis (用于队列管理) - 4GB+ 内存 - 支持OpenVINO的CPU/GPU ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 配置文件 复制并修改配置文件: ```bash cp config/config.yaml.example config/config.yaml ``` ### 模型文件 下载并放置模型文件到 `models/` 目录: - YOLOv8模型: `models/yolov8s.onnx` - PaddleOCR模型: `models/ch_PP-OCRv4_*` ### 启动服务 ```bash python -m src.main ``` 服务将在 `http://localhost:8000` 启动。 ## Docker部署 ### 构建镜像 ```bash docker build -t meeting-recognition . ``` ### 使用docker-compose ```bash docker-compose up -d ``` 这将启动以下服务: - 主应用服务 (端口8000) - Redis服务 (端口6379) - Nginx反向代理 (端口80/443) - Prometheus监控 (端口9090) - Grafana仪表板 (端口3000) ## API使用 ### 创建会议 ```bash curl -X POST "http://localhost:8000/api/v1/meetings" \ -H "Content-Type: application/json" \ -d '{ "meeting_id": "meeting_001", "title": "项目讨论会议", "description": "讨论项目进展和下一步计划" }' ``` ### 获取会议列表 ```bash curl "http://localhost:8000/api/v1/meetings" ``` ### 搜索文本记录 ```bash curl "http://localhost:8000/api/v1/search/texts?keyword=项目&meeting_id=meeting_001" ``` ### 导出会议数据 ```bash curl -X POST "http://localhost:8000/api/v1/meetings/meeting_001/export" \ -H "Content-Type: application/json" \ -d '{ "formats": ["markdown", "docx", "json"] }' ``` ## 配置说明 主要配置项: ```yaml # 系统配置 system: name: "MeetingRecognition" version: "1.0.0" debug: false log_level: "INFO" # YOLO检测配置 yolo_detection: model_path: "models/yolov8s.onnx" confidence_threshold: 0.5 iou_threshold: 0.7 device: "CPU" # OCR配置 ocr: use_gpu: false lang: "ch" batch_size: 8 confidence_threshold: 0.6 # 队列配置 queue: redis_url: "redis://localhost:6379/0" max_queue_size: 1000 worker_concurrency: 4 ``` ## 性能优化 ### OpenVINO优化 1. 使用OpenVINO优化的ONNX模型 2. 根据硬件选择合适的设备 (CPU/GPU) 3. 调整批处理大小 ### 内存优化 1. 调整视频采样率 2. 限制队列大小 3. 定期清理临时文件 ### 并发优化 1. 调整工作线程数 2. 使用异步处理 3. 合理设置超时时间 ## 测试 运行单元测试: ```bash pytest tests/ -v ``` 运行性能测试: ```bash pytest tests/ -m performance ``` ## 监控 系统提供多种监控方式: 1. **健康检查**: `GET /health` 2. **统计信息**: `GET /api/v1/statistics` 3. **Prometheus指标**: 端口9090 4. **Grafana仪表板**: 端口3000 ## 故障排除 ### 常见问题 1. **模型加载失败** - 检查模型文件路径 - 确认OpenVINO安装正确 2. **OCR识别效果差** - 调整置信度阈值 - 检查图像预处理参数 3. **内存不足** - 减少批处理大小 - 调整队列大小 4. **Redis连接失败** - 检查Redis服务状态 - 确认连接配置 ### 日志查看 ```bash # 查看应用日志 tail -f logs/app.log # 查看错误日志 tail -f logs/error.log # 查看性能日志 tail -f logs/performance.log ``` ## 开发指南 ### 项目结构 ``` src/ ├── core/ # 核心模块 (配置、日志) ├── video/ # 视频输入管理 ├── detection/ # YOLO检测 ├── processing/ # 队列处理 ├── ocr/ # OCR识别 ├── postprocessing/ # 后处理 ├── storage/ # 存储导出 ├── api/ # API接口 └── main.py # 主程序 ``` ### 添加新功能 1. 在相应模块下创建新文件 2. 实现功能逻辑 3. 添加单元测试 4. 更新API接口 5. 更新文档 ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request! ## 联系方式 - 项目地址: https://github.com/your-org/meeting-recognition - 文档地址: https://docs.meeting-recognition.com - 邮箱: support@meeting-recognition.com