Skip to content

基于YOLO模型的无人机图像自动分析系统,实现从消息队列接收图像数据、执行目标检测、存储推理结果的全流程自动化。

Notifications You must be signed in to change notification settings

wangrui027/DroneImagePredict

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

无人机图像智能分析系统

基于YOLO模型的无人机图像自动分析系统,实现从消息队列接收图像数据、执行目标检测、存储推理结果的全流程自动化。

功能特性

  • ✅ RabbitMQ 消息队列通信
  • ✅ MinIO 分布式存储集成
  • 🚀 YOLOv11 目标检测模型
  • 🔧 Pydantic 配置管理
  • 📊 多维度数据监控日志
  • 🔄 断线自动重连机制

环境要求

  • Python 3.9+
  • RabbitMQ 3.8+
  • MinIO 2023+

快速开始

# 安装依赖
pip install -r requirements.txt

# 启动主程序
python main.py

配置说明

  1. 创建配置文件 config.yml
rabbitmq:
  host: "rabbitmq-server"
  port: 5672
  username: "guest"
  password: "guest"
  queue_name: "mq.drone-image.queue"
  exchange: "mq.drone-image.exchange"
  routing_key: "mq.drone-image.key"

minio:
  endpoint: "minio-server:9000"
  access_key: "your-access-key"
  secret_key: "your-secret-key"
  secure: false
  drone_image_bucket: "drone-images"

env: "dev"
  1. 数据模型说明
class DroneImageData:
    device_id: str    # 设备唯一标识
    bucket: str       # MinIO存储桶名称
    path: str         # 图片存储路径
    latitude: float   # 拍摄纬度
    longitude: float  # 拍摄经度
    create_time: datetime # 拍摄时间

项目结构

.
├── config/               # 配置管理
│   ├── __init__.py
│   ├── models.py        # Pydantic数据模型
│   └── loader.py        # 配置加载器
├── consumers/           # 消息消费者
│   └── rabbitmq_consumer.py  
├── handlers/            # 业务处理器
│   └── message_handler.py
├── model/               # 数据模型
│   └── DroneImageData.py
├── yolo_model/          # YOLO模型文件
│   └── yolo11n.pt
├── config.yml           # 主配置文件
└── requirements.txt     # 依赖清单

数据处理流程

sequenceDiagram
    participant RabbitMQ
    participant Consumer
    participant MinIO
    participant YOLO
    
    RabbitMQ->>Consumer: 接收JSON消息
    Consumer->>MinIO: 下载原始图像
    MinIO-->>Consumer: 返回图像数据
    Consumer->>YOLO: 执行目标检测
    YOLO-->>Consumer: 返回检测结果
    Consumer->>MinIO: 上传预测结果
Loading

日志配置

%(asctime)s - %(name)s - %(levelname)s - %(message)s

日志文件存储路径:logs/app.log

注意事项

  1. 模型文件需放置在 yolo_model/ 目录
  2. 生产环境建议:
    • 启用MinIO HTTPS连接
    • 配置RabbitMQ TLS加密
    • 设置定期日志轮转
  3. 开发环境可通过.env文件覆盖配置

常见问题

Q: 为什么模型会从GitHub下载? A: 请检查模型路径是否正确,确保:

os.path.abspath(os.path.join(os.path.dirname(__file__), "../yolo_model/yolo11n.pt"))

Q: 如何支持多环境配置? A: 通过修改env字段切换环境:

env: "prod"  # 可选值:dev/test/prod

About

基于YOLO模型的无人机图像自动分析系统,实现从消息队列接收图像数据、执行目标检测、存储推理结果的全流程自动化。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages