Skip to content

hieu-web/multimodal_AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚦 Multimodal AI - Phân tích Vi phạm Giao thông Đường bộ Việt Nam

Hệ thống AI đa phương thức kết hợp LLM, RAGVision-Language Models để phân tích bằng chứng vi phạm giao thông từ ảnh/PDF, tra cứu mức phạt theo Nghị định 168/2024/NĐ-CP.


🏗️ Kiến trúc hệ thống

┌─────────────────────────────────────────────────────────────────┐
│                    👤 Người dùng                                │
│              Upload ảnh/PDF + Hỏi đáp giao thông               │
└──────────────────┬──────────────────┬───────────────────────────┘
                   │                  │
         ┌─────────▼─────────┐ ┌──────▼──────────┐
         │  🎨 Gradio UI     │ │  🔄 Flowise     │
         │  (Port 7860)      │ │  (Port 3000)    │
         └─────────┬─────────┘ └──────┬──────────┘
                   │                  │
           ┌───────▼──────────────────▼───────┐
           │     ⚙️ FastAPI Backend            │
           │     (Port 8080)                  │
           │  ┌──────────┐  ┌──────────────┐  │
           │  │ VLM      │  │ PaddleOCR    │  │
           │  │ Service  │  │ Biển số xe   │  │
           │  └────┬─────┘  └──────────────┘  │
           └───────┼──────────────────────────┘
                   │
         ┌─────────▼─────────┐ ┌──────────────────┐
         │  🧠 Ollama        │ │  🗄️ ChromaDB     │
         │  - llama3.2-vision│ │  Vector Database  │
         │  - llama3.1:8b    │ │  (Port 8000)     │
         │  - nomic-embed    │ │  📚 Luật GTĐB    │
         │  (Port 11434)     │ └──────────────────┘
         └───────────────────┘

✨ Tính năng

Tính năng Mô tả
📸 Phân tích ảnh vi phạm Upload ảnh → VLM nhận diện loại vi phạm, mức độ, phương tiện
🔢 OCR biển số xe PaddleOCR đọc biển số xe Việt Nam từ ảnh
📄 Phân tích PDF Trích xuất và phân tích ảnh từ file PDF bằng chứng
💬 Hỏi đáp ảnh Hỏi bất kỳ câu hỏi nào về hình ảnh giao thông
📚 RAG tra cứu luật Tra cứu mức phạt theo Nghị định 168/2024 qua ChatBot
🔄 Flowise Workflow Orchestrate AI workflow bằng giao diện kéo-thả

🚀 Cài đặt & Chạy

Bước 0: Yêu cầu hệ thống

  • OS: Windows 10/11 hoặc Linux
  • RAM: ≥ 16GB (khuyến nghị 32GB)
  • GPU: NVIDIA với ≥ 8GB VRAM (khuyến nghị, không bắt buộc)
  • Disk: ≥ 20GB trống
  • Docker Desktop đã cài đặt
  • Ollama đã cài đặt (download)

Bước 1: Cài đặt Ollama Models

# Chạy script tự động
.\scripts\setup_ollama.ps1

# Hoặc cài thủ công:
ollama pull llama3.2-vision    # VLM phân tích ảnh (~7.9GB)
ollama pull llama3.1:8b        # LLM chat (~4.7GB)
ollama pull nomic-embed-text   # Embedding cho RAG (~274MB)

Bước 2: Khởi động hệ thống

# Clone và chạy
docker compose up -d

# Kiểm tra services
docker compose ps

Bước 3: Nạp Knowledge Base

# Cài dependencies
pip install chromadb httpx

# Chạy ingestion script
python scripts/ingest_knowledge.py

Bước 4: Cấu hình Flowise

Bước 5: Sử dụng


📖 API Reference

POST /analyze-image

Phân tích ảnh vi phạm giao thông.

curl -X POST -F "file=@violation.jpg" \
  "http://localhost:8080/analyze-image?include_ocr=true&include_vlm=true"

POST /analyze-pdf

Phân tích PDF bằng chứng vi phạm.

curl -X POST -F "file=@evidence.pdf" \
  "http://localhost:8080/analyze-pdf?max_pages=5"

POST /ask-about-image

Hỏi đáp về hình ảnh giao thông.

curl -X POST -F "file=@traffic.jpg" \
  -F "question=Xe này phạm luật gì?" \
  "http://localhost:8080/ask-about-image"

POST /ocr-only

Chỉ trích xuất biển số xe (nhanh, không dùng VLM).

curl -X POST -F "file=@plate.jpg" \
  "http://localhost:8080/ocr-only"

📂 Cấu trúc dự án

.
├── docker-compose.yml          # Docker Compose orchestration
├── README.md                   # Documentation
│
├── backend/                    # FastAPI Backend Service
│   ├── Dockerfile
│   ├── requirements.txt
│   ├── main.py                 # API endpoints
│   ├── vlm_service.py          # Vision Language Model service
│   ├── ocr_service.py          # License plate OCR service
│   └── pdf_service.py          # PDF processing service
│
├── frontend/                   # Gradio Frontend
│   ├── Dockerfile
│   ├── requirements.txt
│   └── app.py                  # Gradio UI application
│
├── knowledge_base/             # RAG Knowledge Base
│   ├── nghi_dinh_168_2024.md   # Nghị định 168/2024 - Mức phạt
│   ├── luat_giao_thong.md      # Luật GTĐB 2024 - Quy tắc
│   └── cac_loi_vi_pham.md      # Danh mục lỗi vi phạm
│
├── docs/                       # Documentation
│   └── flowise_setup_guide.md  # Hướng dẫn cấu hình Flowise
│
└── scripts/                    # Utility Scripts
    ├── setup_ollama.ps1        # Cài đặt Ollama models
    └── ingest_knowledge.py     # Nạp knowledge base vào ChromaDB

🛠️ Công nghệ sử dụng

Component Technology Vai trò
Orchestration Flowise AI Kết nối LLM + RAG + Tools bằng workflow
LLM Llama 3.1 (8B) via Ollama Reasoning, hỏi đáp tiếng Việt
VLM Llama 3.2 Vision (11B) via Ollama Phân tích hình ảnh vi phạm
Embedding nomic-embed-text via Ollama Vector embedding cho RAG
Vector DB ChromaDB Lưu trữ và truy vấn knowledge base
OCR PaddleOCR Nhận diện biển số xe Việt Nam
Backend FastAPI (Python) REST API xử lý ảnh/PDF
Frontend Gradio Giao diện web tương tác
Container Docker Compose Orchestrate microservices

📝 Báo cáo kỹ thuật

1. Kiến trúc Multimodal RAG

Hệ thống sử dụng kiến trúc Multimodal RAG (Retrieval-Augmented Generation) kết hợp:

  • Vision branch: VLM phân tích ảnh → trích xuất thông tin vi phạm (loại xe, hành vi, bối cảnh)
  • Text branch: OCR đọc biển số xe + text trong ảnh
  • RAG branch: Tra cứu mức phạt từ knowledge base (Nghị định 168/2024) qua vector search
  • Reasoning: LLM tổng hợp kết quả từ 3 nhánh → trả lời hoàn chỉnh

2. Workflow Flowise

Sử dụng Flowise để tạo 2 workflow:

  • Chatflow RAG: Hỏi đáp luật giao thông dựa trên knowledge base
  • Agentflow: Agent sử dụng tools (VLM + OCR + RAG) để phân tích multimodal

3. Open-source Models

Toàn bộ hệ thống sử dụng mô hình mã nguồn mở, chạy hoàn toàn local:

  • Không phụ thuộc API bên thứ 3 (OpenAI, Google, etc.)
  • Bảo mật dữ liệu vi phạm (không gửi ảnh ra ngoài)
  • Có thể chạy offline sau khi setup

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors