Hỏi đáp trực quan (VQA)

Mô hình đa phương thức với Hugging Face

James Chapman

Curriculum Manager, DataCamp

Nhiệm vụ QA đa phương thức

Sơ đồ xử lý ảnh và văn bản trong mô hình VQA

  1. Mã hóa riêng câu hỏi và mô thức khác
Mô hình đa phương thức với Hugging Face

Nhiệm vụ QA đa phương thức

Sơ đồ xử lý ảnh và văn bản trong mô hình VQA

  1. Mã hóa riêng câu hỏi và mô thức khác
  2. Kết hợp các đặc trưng đã mã hóa
Mô hình đa phương thức với Hugging Face

Nhiệm vụ QA đa phương thức

Sơ đồ xử lý ảnh và văn bản trong mô hình VQA

  1. Mã hóa riêng câu hỏi và mô thức khác
  2. Kết hợp các đặc trưng đã mã hóa
  3. Thêm các tầng để dự đoán token câu trả lời
Mô hình đa phương thức với Hugging Face

VQA

import requests
from PIL import Image

url = "https://www.worldanimalprotection
.org/cdn-cgi/image/width=1920,format=
auto/globalassets/images/elephants/1
033551-elephant.jpg"


image = Image.open(requests.get(url, stream=True).raw)
text = "What animal is in this photo?"

Ảnh con voi trong tự nhiên

Mô hình đa phương thức với Hugging Face

VQA

 

  • Mô hình biết đặc trưng ảnh và văn bản của nhiều đối tượng
  • Mô hình dùng lại, không cần tinh chỉnh thêm

Sơ đồ cho thấy tập trung vào một con vật và nhận diện

Mô hình đa phương thức với Hugging Face

VQA

from transformers import ViltProcessor, ViltForQuestionAnswering


processor = ViltProcessor.from_pretrained("dandelin/vilt-b32-finetuned-vqa") model = ViltForQuestionAnswering.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
encoding = processor(image, text, return_tensors="pt")
outputs = model(**encoding)
idx = outputs.logits.argmax(-1).item()
print("Predicted answer:", model.config.id2label[idx])
Predicted answer: elephant
Mô hình đa phương thức với Hugging Face

VQA cho tài liệu

  • Mở rộng VQA để nhận diện biểu đồ, bảng và văn bản (OCR) trong ảnh
from datasets import load_dataset
from transformers import pipeline

dataset = load_dataset("lmms-lab/DocVQA")


import matplotlib.pyplot as plt plt.imshow(dataset["test"][2]["image"]) plt.show()

Hình tài liệu có biểu đồ và biểu đồ cột

Mô hình đa phương thức với Hugging Face

VQA cho tài liệu

Logo Google Tesseract

  • Cần thêm phụ thuộc để chạy OCR
  • Cài pytesseract qua pip
  • Cài Tesseract OCR qua trình cài đặt (vd. apt-get, exe hoặc homebrew/macports)

Ảnh biển hiệu cà phê với OCR

Mô hình đa phương thức với Hugging Face

VQA cho tài liệu

  • LayoutLM: Huấn luyện với ảnh và Hỏi/Đáp từ bộ DocVQA
from transformers import pipeline
pipe = pipeline("document-question-answering", "impira/layoutlm-document-qa")

result = pipe( dataset["test"][2]["image"], "What was the gross income in 2011-2012?" )
Mô hình đa phương thức với Hugging Face

VQA cho tài liệu

print(result)
[{'score': 0.05149758607149124,
  'answer': '3 36073 Crores', ...}]

Hình tài liệu có biểu đồ và biểu đồ cột

Mô hình đa phương thức với Hugging Face

Ayo berlatih!

Mô hình đa phương thức với Hugging Face

Preparing Video For Download...