nishant92005/trafic-rules-voilation-detection

GitHub: nishant92005/trafic-rules-voilation-detection

基于 YOLOv8 和 Flask 的 AI 交通违规检测系统,支持未佩戴头盔、三人共骑等违规行为的视频分析与自动化邮件告警。

Stars: 1 | Forks: 0

# AI 交通违规检测系统 基于 Flask 的计算机视觉演示,功能包括: - 未佩戴头盔检测 - 三人共骑检测 - 带有叠加层的处理后视频输出 - SMTP 告警集成,可选 GROQ 生成的电子邮件文本 ## 项目结构 - `app.py` - `detection.py` - `email_alert.py` - `templates/index.html` - `static/css/styles.css` - `static/js/app.js` - `uploads/` - `outputs/` ## 前端技术栈 - HTML - Tailwind CSS (通过 CDN 引入) - Vanilla JavaScript - Three.js (通过 CDN 引入) 用于动画 hero 对象 此演示无需 Tailwind 构建步骤。 ## 在本地运行 1. 激活虚拟环境: ``` .venv\Scripts\Activate.ps1 ``` 2. 启动 Flask 应用: ``` python app.py ``` 3. 打开: ``` http://127.0.0.1:5000 ``` ## 可选环境变量 如果您希望使用电子邮件警报和 GROQ 生成的电子邮件正文,请设置这些变量: ``` $env:SMTP_SERVER="smtp.gmail.com" $env:SMTP_PORT="587" $env:SMTP_USER="your_email@example.com" $env:SMTP_PASSWORD="your_app_password" $env:SENDER_EMAIL="your_email@example.com" $env:RECEIVER_EMAIL="receiver@example.com" $env:GROQ_API_KEY="your_groq_api_key" $env:GROQ_MODEL="llama3-8b-8192" ``` 速度/质量调优: ``` $env:DETECTION_FRAME_SKIP="5" $env:DETECTION_INFERENCE_WIDTH="480" $env:DETECTION_CONFIDENCE="0.35" $env:ENABLE_EMAIL_ALERTS="1" ``` - 增加 `DETECTION_FRAME_SKIP` 以加快分析速度。使用 `3` 可获得更好的准确性,使用 `8` 或 `10` 可实现更快的演示。 - 降低 `DETECTION_INFERENCE_WIDTH` 以加快分析速度。使用 `416` 可提高速度,使用 `640` 可获得更好的检测质量。 - 保持 `ENABLE_EMAIL_ALERTS=1` 以便在检测到违规时发送 SMTP 警报。仅在不需发送邮件的快速演示中将其设置为 `0`。 ## 注意事项 - 首次运行检测时,如果尚未缓存 `yolov8n.pt`,可能会进行下载。 - 头盔检测是基于行人和摩托车检测以及头部区域分析的近似结果。 - 处理后的视频将写入 `outputs/` 目录。 - 上传的源视频将写入 `uploads/` 目录。 ## 在 Render 上部署 此仓库已通过以下配置支持 Render: - `requirements.txt` - `render.yaml` - 位于 `/healthz` 的健康检查端点 ### 推荐部署步骤 1. 将此项目推送到 GitHub。 2. 登录到 Render。 3. 从该仓库创建新的 Blueprint 或 Web Service。 4. Render 应自动检测到: - Build Command: `pip install -r requirements.txt` - Start Command: `gunicorn app:app` 5. 在 Render 中添加以下环境变量: ``` GROQ_API_KEY=your_groq_api_key GROQ_MODEL=llama3-8b-8192 SMTP_SERVER=smtp.gmail.com SMTP_PORT=587 SENDER_EMAIL=your_email@example.com SENDER_PASSWORD=your_gmail_app_password RECEIVER_EMAIL=receiver@example.com FLASK_DEBUG=0 PYTHON_VERSION=3.11.11 ``` ### 重要部署注意事项 - Render 可以使用 `render.yaml` 中的 `PYTHON_VERSION=3.11.11` 值,这是本项目的推荐部署目标。 - 除非挂载持久化磁盘,否则 `uploads/` 和 `outputs/` 在 Render 上是临时存储。 - 如果您希望处理后的视频和快照在重启和重新部署后仍然保留,请在 Render 中添加持久化磁盘。 - 本项目使用 YOLO 和 OpenCV,因此对于视频处理工作负载,付费的 Render 实例比微型的免费实例更为现实。 ## 在 Vercel 上部署 此仓库现已包含 `vercel.json` 和与 Vercel 兼容的 `.python-version` (`3.12`) 文件,以便在 Vercel 上能够正确启动构建。 但仍存在重要的限制: - Vercel 最适合轻量级的 Flask 应用,而不适合长时间运行的视频推理工作负载。 - 大型视频上传、生成的输出文件以及 YOLO/OpenCV 处理仍可能会触及 Vercel 平台的限制。 - 为了实现本项目可靠的全栈部署,Render 仍然是推荐的后端托管平台。
标签:AI应用, DLL 劫持, DNS解析, Flask, LLM, OpenCV, Python, SMTP, Tailwind CSS, Three.js, Unmanaged PE, Web前端, YOLO, YOLOv8, 三人共骑检测, 交通安全, 交通违章检测, 人工智能, 图像识别, 大语言模型, 头盔检测, 开源项目, 数据可视化, 无后门, 智慧交通, 智能监控, 未戴头盔检测, 深度学习, 用户模式Hook绕过, 目标检测, 目标追踪, 自动化告警, 视频分析, 视频处理, 计算机视觉, 计算机视觉项目, 违规载人检测, 逆向工具, 邮件告警, 项目实战