CoolFace
Apppublic

quan030106/ZSC-w-SAM-ContrastiveLoss

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
App README

AI Zero-Shot Object Counting (ZSC) with SAM & Contrastive Loss

Ứng dụng đếm số lượng vật thể bất kỳ bằng cách khoanh vùng các vật thể mẫu (1-3 exemplars). Hệ thống sử dụng Segment Anything Model (SAM) để tách nền tự động, trích xuất mẫu vật thể tinh khiết (Pure Exemplar), sau đó đưa qua mạng Masked Autoencoder (MAE) với cơ chế Cross-Attention để đếm và trực quan hóa bản đồ phân bố (density map).

🚀 Hướng dẫn chạy thử nghiệm tại Local:

  1. 1.Đảm bảo bạn đã cài đặt đủ các thư viện trong requirements.txt:
bash
   pip install -r requirements.txt
  1. 1.Chuẩn bị file trọng số mô hình:
  2. 2.Trọng số mô hình SAM: Đặt file sam_vit_b_01ec64.pth vào cùng thư mục.
  3. 3.Trọng số mô hình đếm: Đặt file checkpoint__finetuning_minMAE.pth hoặc best_model.pth vào cùng thư mục.
  4. 4.Chạy ứng dụng:
bash
   python app.py

🌐 Hướng dẫn Deploy lên Hugging Face Space:

  1. 1.Truy cập Hugging Face và tạo một Space mới.
  2. 2.Chọn SDK là Gradio và cấu hình phần cứng phù hợp.
  3. 3.Clone Space của bạn về máy, sao chép toàn bộ các file trong thư mục Deploy ZSC này vào Space repository của bạn.
  4. 4.Do file trọng số mô hình rất nặng (>100MB), hãy chắc chắn rằng bạn đã kích hoạt Git LFS trước khi push:
bash
   git lfs install
   git lfs track "*.pth"
   git add .gitattributes
  1. 1.Commit và Push toàn bộ code cùng các file trọng số .pth lên Space. Hugging Face sẽ tự động build và chạy app của bạn!

⚡ Hướng dẫn Deploy lên Vercel:

Vercel là nền tảng chuyên biệt cho ứng dụng Frontend tĩnh (React, Next.js, HTML/JS) và Serverless Functions. Vì các mô hình PyTorch & SAM rất nặng (~1GB) và cần bộ nhớ RAM/GPU lớn để xử lý deep learning liên tục, việc chạy trực tiếp mô hình trên Serverless của Vercel không được khuyến khích (bị giới hạn 50MB code size và 10-50s timeout).

Giải pháp đề xuất khi muốn dùng Vercel:

  1. 1.Backend: Đóng gói mã nguồn Python này thành một API sử dụng FastAPI/Flask và deploy lên Hugging Face Space (dưới dạng API) hoặc các nền tảng Container như Render/Railway/AWS.
  2. 2.Frontend: Xây dựng giao diện web React/Next.js tuyệt đẹp trên Vercel và call API đến backend để xử lý kết quả đếm.