🖼️ Mô hình sinh mô tả cho hình ảnh
📝 Giới thiệu
Mô hình BLIP (Bootstrapping Language–Image Pre‑training) sử dụng Vision Transformer (ViT) để tạo ra mô hình hiểu và mô tả hình ảnh một cách linh hoạt, bao gồm cả các tác vụ như image captioning, image–text retrieval và visual question answering. Phiên bản base được fine‑tune trên tập dữ liệu COCO cho nhiệm vụ generate caption, hỗ trợ cả hai chế độ:
- Conditional: cung cấp prompt văn bản để điều hướng kết quả.
- Unconditional: tự động mô tả theo ngữ cảnh hình ảnh.
📌 Tính năng
Sinh caption chất lượng cao theo ngữ cảnh hoặc không cần prompt. Chỉ cần ViT + Q‑Former + Text decoder (BLIP 0. Similarly BLIP‑2 use LLM) — hiệu quả mà vẫn mạnh mẽ. Chạy trên CPU hoặc GPU, hỗ trợ chế độ half‑precision (FP16) để tối ưu tốc độ.
📥 Đầu vào
Hình ảnh: RGB
Kích thước đầu vào: bất kỳ, vì BlipProcessor sẽ tự resize và crop center về 224×224
Prompt (tuỳ chọn): ví dụ "a photo of" cho image-to-text có định hướng
📤 Đầu ra
Caption ở dạng chuỗi văn bản (string), đã được decode qua tokenizer
Có thể lấy logits của từng token nếu cần
🛠 Cài đặt
pip install torch torchvision transformers pillow
🧪 Ví dụ sử dụng
import requests
from PIL import Image
from transformers import BlipProcessor, BlipForConditionalGeneration
processor = BlipProcessor.from_pretrained("zhaospei/Model_14")
model = BlipForConditionalGeneration.from_pretrained("zhaospei/Model_14")
url = "https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg"
raw_image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
# -- Conditional captioning --
inputs = processor(raw_image, "a photography of", return_tensors="pt")
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
# → "a photography of a woman and her dog"
# -- Unconditional captioning --
inputs = processor(raw_image, return_tensors="pt")
out = model.generate(**inputs)
print(processor.decode(out[0], skip_special_tokens=True))
# → "a woman sitting on the beach with her dog"
📊 Hiệu năng & Ứng dụng
Tăng ~2.8 điểm CIDEr cho task captioning so với các baseline trước đó.
Mô hình cũng thể hiện khả năng zero-shot tốt trên video (inference có thể dùng chế độ freeze) .
Ứng dụng thực tế gồm: trợ năng dành cho người khiếm thị, caption sản phẩm/E‑commerce, social media metadata, v.v.
- Downloads last month
- 4