返回市场
铁眼

铁眼

作者:CubeStar12 星标更新:2025-07-26

项目介绍

IronEye - 基于AI的EO/IR视觉系统

  • IronEye 是一个基于AI的空对地分类系统,使用RGB-IR融合进行军事目标检测和分类。

  • 系统处理同步的RGB和IR视频流,并对RGB流应用边缘检测,然后在IR流上执行轻量级融合。这增强了对象对比度和细节,为准确分类准备数据。

  • 使用War Thunder模拟收集的自定义数据集训练YOLOv8模型,该数据集包含超过1500张标注图像,包括坦克、船只、车辆和人员。

  • YOLOv8分类系统与MCP服务器集成,以控制War Thunder模拟环境,从而实现实时目标检测和分类。

IronEye仪表板

IronEye聊天界面

IronEye分析

IronEye人物

功能

  • 双流数据摄入:同步处理RGB和IR视频流
  • 边缘增强融合:将RGB边缘细节轻量级融合到IR图像中
  • 实时目标检测:使用YOLOv8对融合图像进行分类
  • MCP控制模拟:与War Thunder集成,实现逼真的模拟
  • 实时仪表板:实时监控视频流和分析
  • AI驱动控制:使用Windows MCP服务器通过LLM辅助控制模拟环境
  • 实时聊天:具有工具调用功能的聊天接口,用于查询视频流中检测到的对象的详细信息

技术栈

前端

  • Next.js 15
  • Tailwind CSS
  • TypeScript
  • WebSockets
  • shadcn/ui

后端

  • FastAPI
  • OpenCV
  • YOLOv8
  • WebSockets

数据库

MCP服务器

  • Windows MCP服务器用于控制War Thunder

模拟

  • War Thunder

数据集

  • 使用War Thunder进行模拟收集的自定义数据集 数据集链接
  • 包含约1.7K张图片,分为3类:1. 坦克,2. 烟雾,3. 船只 我们计划增加更多类别并扩展我们的数据集(由于是在24小时黑客马拉松期间收集的,质量有点差)

项目结构

iron-eye/
├── frontend/          # Next.js前端应用程序
├── backend/           # FastAPI后端服务
├── mcp-server/        # 用于模拟控制的MCP服务器
├── model-training/    # 模型训练

开始使用

先决条件

  • Node.js 18+ 和 npm
  • Python 3.12+
  • War Thunder(用于模拟)

安装

  1. 克隆仓库

    git clone https://github.com/CubeStar1/iron-eye.git
    cd iron-eye
    
  2. 设置虚拟环境

    python -m venv venv
    source venv/bin/activate  # 在Windows上:.\venv\Scripts\activate
    
  3. 设置后端

    cd backend
    pip install -r requirements.txt
    
  4. 设置前端

    cd frontend
    npm install
    
  5. 设置MCP服务器

    cd mcp-server
    pip install uv
    uv run main.py
    
  6. 设置Supabase

    • 创建一个Supabase账户并创建一个新的项目
    • 将frontend/lib/supabase/migrations/中的迁移复制到Supabase的SQL编辑器中并运行它
    • 获取Supabase URL和Supabase管理员密钥

运行应用程序

  1. 启动后端
  • 设置环境变量:

    SUPABASE_URL=<你的supabase url>
    SUPABASE_ADMIN=<你的supabase管理员密钥>
    
  • 运行后端:

    
    uvicorn backend.main:app --reload
    
  1. 启动前端
  • 设置环境变量:

    NEXT_PUBLIC_SUPABASE_URL=<你的supabase url>
    NEXT_PUBLIC_SUPABASE_ANON_KEY=<你的supabase匿名密钥>
    SUPABASE_ADMIN=<你的supabase管理员密钥>
    
    RESEND_API_KEY=<你的resend api密钥>
    RESEND_DOMAIN=<你的resend域名>
    
    NEXT_PUBLIC_APP_NAME=IronEye
    NEXT_PUBLIC_APP_ICON='/logos/aerothon-logo.webp'
    
    # AI提供商
    
    OPENAI_API_KEY=<你的openai api密钥>
    GOOGLE_GENERATIVE_AI_API_KEY=<你的google生成式ai api密钥>
    XAI_API_KEY=<你的xai api密钥>
    GROQ_API_KEY=<你的groq api密钥>
    
    # AI工具
    TAVILY_API_KEY=<你的tavily api密钥>
    RAGIE_API_KEY=<你的ragie api密钥>
    
    BROWSERBASE_API_KEY=<你的browserbase api密钥>
    BROWSERBASE_PROJECT_ID=<你的browserbase项目id>
    
    NEXT_PUBLIC_BACKEND_URL="http://127.0.0.1:8000"
    NEXT_PUBLIC_MCP_URL="http://127.0.0.1:8001/mcp"
    
    
  • 启动前端

    cd frontend
    npm run dev
    
  1. 启动MCP服务器
    cd mcp-server
    uv run main.py
    

使用方法

  1. 启动War Thunder并确保MCP服务器正在运行
  2. 访问Web仪表板 http://localhost:3000
  3. 查看同步的RGB和IR视频流
  4. 使用聊天界面通过自然语言控制模拟
  5. 监控实时目标检测和分类

工作原理

  1. 双流处理:系统摄入同步的RGB和IR视频流
  2. 边缘检测:应用Sobel滤波提取RGB流的边缘细节
  3. 图像融合:结合RGB边缘信息与IR数据
  4. 目标检测:使用YOLOv8检测和分类融合图像中的对象
  5. 实时控制:启用LLM辅助的Windows MCP服务器控制模拟环境。允许用户使用自然语言执行模拟环境中的操作,如“向左移动,锁定目标,开火”

模型训练

  • 模型使用War Thunder模拟收集的自定义数据集进行训练。数据集使用YOLOv8工具进行标注。

  • 要训练模型,请在model-training目录中运行训练脚本:

    cd model-training
    python training.py
    
  • 模型将保存在model-training目录下的runs目录中,文件名为yolov8n-custom-run.pt

引用