
FastAPI
@lovepythoncn
基于 **FastAPI** 的智能视频识别系统,集成 **Ollama 大模型**,支持实时 RTSP 视频流处理与 AI 内容识别。现代化网页界面,多终端访问,为视频监控与内容分析提供高效解决方案。
🚀 实时视频理解 AI 项目 vision_describe 基于 FastAPI + Ollama + Qwen2.5-VL,能实时读取 RTSP 摄像头画面,并用 AI 自动生成文字描述。无需云端,完全本地运行。 📦 开源地址: github.com/zhangleino1/vi…
为了确保稳定的实时性能,系统在推理层引入了 帧队列缓存机制。 当视频帧流速超过模型处理速度时,多余帧会自动进入异步队列,并根据时间戳动态丢弃过期帧。 这种设计有效防止了延迟累积,使 AI 识别结果始终保持与视频流同步。
系统还利用 Pydantic v2 的动态模型验证机制,在视频帧与识别结果之间建立强类型约束。 这意味着每一帧的输入与输出数据结构都被自动检查与转换,避免了传统 Python 项目中常见的类型不一致与异常崩溃问题。 高效、稳定、可维护——这是 FastAPI 架构设计的真正价值。
系统的异步架构基于 Starlette + Uvicorn,使每个请求都能在事件循环中独立执行。 这种非阻塞式 I/O 模型大幅提升吞吐量与响应速度,特别适合实时视频分析等高并发场景。
系统采用 WebSocket 实现前后端的实时通信。 当视频帧被模型分析完成后,识别结果会通过事件流即时推送到浏览器端,无需刷新页面即可动态更新,实现毫秒级响应的视觉交互体验。
系统采用 OpenCV 对视频帧进行预处理,包括帧提取、降噪与色彩空间转换。 随后通过异步任务队列传入模型推理管线,实现连续帧的高效分析,保证实时性与模型性能的平衡。
Ollama 模型在系统中作为视觉语言核心,通过本地加载 Qwen2.5-VL,实现图像到文字的多模态推理。 视频帧被抽取后编码为像素向量,经模型分析场景语义与物体关系,再以自然语言生成描述,实现端到端视觉理解。
FastAPI 的底层逻辑基于 ASGI (Asynchronous Server Gateway Interface),可同时处理数千并发请求。 它利用 依赖注入系统 自动解析请求上下文、参数与验证模型,结合 类型提示推导路由签名,让代码既具声明性又接近编译级性能。
应用拓展: 系统可广泛应用于无人机视频分析、智能仓储监控、智慧交通、机器人视觉等场景, 为多领域提供高效可靠的视觉 AI 支撑。
开发者友好: 项目结构清晰,前后端分离,便于二次开发与集成。 可自由接入其他视觉模型或外部 API,快速构建自定义智能视觉应用。
界面介绍: 系统提供简洁直观的网页界面,左侧显示实时视频流,右侧呈现 AI 识别结果。 支持多终端访问,布局清晰,交互流畅,方便开发与演示使用。
部署方式: 可使用以下两种方式运行: 命令行启动: uvicorn main:app --reload 容器部署: docker build -t vision-describe . 灵活选择,轻松集成到任意环境。
性能优化: 可根据硬件性能调整参数: frame_skip 控制帧率间隔 recognition_frequency 控制识别频率 同时支持 GPU 加速,实现更快的推理与更稳定的实时识别。
识别效果: 系统会实时分析视频画面,并在右侧生成详细描述,包括场景布局、物体类别、位置关系与动作识别等信息,呈现出智能化的视觉理解能力。
摄像头配置: 在 main. py 中设置 RTSP 地址: rtsp_url = "rtsp://用户名:密码@ ip:端口/路径" 保存后运行项目,打开浏览器访问 http://localhost:8000,即可查看实时识别效果。
快速启动: 克隆仓库:git clone 创建虚拟环境并安装依赖: python -m venv venv && pip install -r requirements.txt 启动 Ollama 并加载模型: ollama serve && ollama pull qwen2.5vl:7b 运行项目:python main. py
功能亮点: 实时 RTSP 视频捕获 自动识别画面内容 WebSocket 实时通信 历史记录与结果回放 简洁直观的网页界面

技术核心: 后端使用 FastAPI 提供服务, 通过 Ollama 调用 Qwen2.5-VL 模型实现图像理解, 前端使用 JavaScript + Markdown 渲染识别结果,实时显示 AI 描述。

United States الاتجاهات
- 1. Columbus 184K posts
- 2. phil 29.2K posts
- 3. President Trump 1.18M posts
- 4. Middle East 290K posts
- 5. PHAN 52.8K posts
- 6. Brian Callahan 11.7K posts
- 7. #IndigenousPeoplesDay 14.2K posts
- 8. Thanksgiving 57.3K posts
- 9. Titans 38.3K posts
- 10. Azzi 9,202 posts
- 11. Vrabel 6,916 posts
- 12. Macron 228K posts
- 13. Cape Verde 21.6K posts
- 14. #UFC323 3,573 posts
- 15. HAZBINTOOZ 6,891 posts
- 16. Marc 52.2K posts
- 17. Cejudo 1,120 posts
- 18. Sabres 4,001 posts
- 19. Native Americans 15.1K posts
- 20. #Isles 1,718 posts
Something went wrong.
Something went wrong.