[ad_1]
Giới thiệu
Hãy tưởng tượng một tương lai trong đó tầm nhìn máy tính các mô hình, không cần đào tạo nhiều về một số lớp nhất định, có thể phát hiện các vật thể trong ảnh. Lời chào mừng từ thế giới hấp dẫn của khả năng nhận dạng đối tượng không cần bắn! Chúng ta sẽ xem xét mô hình OWL-ViT cải tiến và cách nó biến đổi khả năng phát hiện đối tượng trong hướng dẫn mở rộng này. Chuẩn bị khám phá các ví dụ mã trong thế giới thực và khám phá các khả năng của công nghệ có khả năng thích ứng này.
Tổng quan
- Hiểu khái niệm phát hiện đối tượng không bắn và tầm quan trọng của nó trong thị giác máy tính.
- Thiết lập và sử dụng mô hình OWL-ViT để phát hiện đối tượng được hướng dẫn bằng văn bản và hướng dẫn bằng hình ảnh.
- Khám phá các kỹ thuật tiên tiến để nâng cao hiệu suất và ứng dụng của OWL-ViT.
Tìm hiểu về phát hiện đối tượng Zero-Shot
Các mô hình phát hiện đối tượng truyền thống giống như những người kén ăn – chúng chỉ nhận ra những gì chúng đã được đào tạo. Tuy nhiên, khả năng phát hiện đối tượng không cần bắn sẽ thoát khỏi những hạn chế này. Giống như có một chuyên gia ẩm thực có thể nhận biết bất kỳ món ăn nào, ngay cả những món họ chưa từng thấy trước đây.
Cốt lõi của sự đổi mới này là Phát hiện đối tượng từ vựng mở với Imaginative and prescient Transformers hoặc mô hình OWL-ViT. Cách tiếp cận sáng tạo này kết hợp các thành phần phân loại và bản địa hóa mục cụ thể với sức mạnh của Đào tạo trước ngôn ngữ-hình ảnh tương phản hoặc CLIP. Kết quả là gì? một mô hình không cần điều chỉnh cho một số lớp vật phẩm nhất định và có thể xác định các đối tượng dựa trên các truy vấn văn bản tự do.
Thiết lập OWL-ViT
Chúng ta hãy bắt đầu bằng cách thiết lập môi trường của chúng ta. Đầu tiên chúng ta cần cài đặt thư viện cần thiết:
pip set up -q transformers #run this command in terminal
Các phương pháp tiếp cận chính để sử dụng OWL-ViT
Khi đã xong, chúng ta đã sẵn sàng khám phá ba cách tiếp cận chính để sử dụng OWL-ViT:
- Phát hiện đối tượng được nhắc bằng văn bản
- Phát hiện đối tượng hướng dẫn bằng hình ảnh
Hãy cùng đi sâu vào từng phương pháp này bằng các ví dụ thực hành.
Phát hiện đối tượng được nhắc bằng văn bản
Hãy tưởng tượng bạn chỉ vào một hình ảnh và hỏi: “Bạn có thể tìm thấy tên lửa trong bức tranh này không?” Về cơ bản đó là những gì chúng tôi đang thực hiện với tính năng phát hiện đối tượng được nhắc bằng văn bản. Hãy xem nó hoạt động:
from transformers import pipeline
import skimage
import numpy as np
from PIL import Picture, ImageDraw
# Initialize the pipeline
checkpoint = "google/owlv2-base-patch16-ensemble"
detector = pipeline(mannequin=checkpoint, process="zero-shot-object-detection")
# Load a picture (let's use the basic astronaut picture)
picture = skimage.information.astronaut()
picture = Picture.fromarray(np.uint8(picture)).convert("RGB")
Picture
# Carry out detection
predictions = detector(
picture,
candidate_labels=("human face", "rocket", "nasa badge", "star-spangled banner"),
)
# Visualize outcomes
draw = ImageDraw.Draw(picture)
for prediction in predictions:
field = prediction("field")
label = prediction("label")
rating = prediction("rating")
xmin, ymin, xmax, ymax = field.values()
draw.rectangle((xmin, ymin, xmax, ymax), define="purple", width=1)
draw.textual content((xmin, ymin), f"{label}: {spherical(rating,2)}", fill="white")
picture.present()
Ở đây, chúng tôi đang hướng dẫn người mẫu tìm kiếm những thứ cụ thể trong hình ảnh. Giống như một phiên bản phức tạp của I Spy! Cùng với việc xác định các mục này, mô hình cũng cung cấp cho chúng tôi ước tính về mức độ tin cậy của nó đối với mỗi lần phát hiện.
Phát hiện đối tượng được hướng dẫn bằng hình ảnh
Đôi khi, lời nói là không đủ. Nếu bạn muốn tìm các đối tượng giống với một hình ảnh cụ thể thì sao? Đó là lúc phát hiện đối tượng được hướng dẫn bằng hình ảnh:
import requests
# Load goal and question photographs
url = "http://photographs.cocodataset.org/val2017/000000039769.jpg"
image_target = Picture.open(requests.get(url, stream=True).uncooked)
query_url = "http://photographs.cocodataset.org/val2017/000000524280.jpg"
query_image = Picture.open(requests.get(query_url, stream=True).uncooked)
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 2)
ax(0).imshow(image_target)
ax(1).imshow(query_image)
# Put together inputs
inputs = processor(photographs=image_target, query_images=query_image, return_tensors="pt")
# Carry out image-guided detection
with torch.no_grad():
outputs = mannequin.image_guided_detection(**inputs)
target_sizes = torch.tensor((image_target.dimension(::-1)))
outcomes = processor.post_process_image_guided_detection(outputs=outputs, target_sizes=target_sizes)(0)
# Visualize outcomes
draw = ImageDraw.Draw(image_target)
for field, rating in zip(outcomes("containers"), outcomes("scores")):
xmin, ymin, xmax, ymax = field.tolist()
draw.rectangle((xmin, ymin, xmax, ymax), define="white", width=4)
image_target.present()
Ở đây, chúng tôi đang sử dụng hình ảnh một con mèo để xác định vị trí các đồ vật có thể so sánh được với những đồ vật trong một hình ảnh khác về hai con mèo đang ngồi trên ghế dài. Nó giống với phiên bản trực quan của trò chơi “Discover My Twin”!
Mẹo và thủ thuật nâng cao
Khi bạn trở nên thoải mái hơn với OWL-ViT, hãy xem xét các kỹ thuật nâng cao này để nâng cấp trò chơi phát hiện đối tượng của bạn:
- Tinh chỉnh: Mặc dù OWL-ViT rất tuyệt vời nhưng bạn có thể tinh chỉnh nó trên dữ liệu theo miền cụ thể để có hiệu suất tốt hơn nữa trong các ứng dụng chuyên biệt.
- Ngưỡng mày mò: Thử nghiệm với các ngưỡng tin cậy khác nhau để tìm ra điểm phù hợp giữa độ chính xác và khả năng thu hồi cho trường hợp sử dụng cụ thể của bạn.
- Sức mạnh của tập thể: Hãy cân nhắc sử dụng nhiều mô hình OWL-ViT hoặc kết hợp nó với các phương pháp phát hiện đối tượng khác để có kết quả chắc chắn hơn. Nó giống như có một nhóm chuyên gia thay vì chỉ một người!
- Kỹ thuật nhanh chóng: Lừa đảo các truy vấn văn bản của bạn có thể ảnh hưởng đáng kể đến hiệu suất. Hãy sáng tạo và thử nghiệm các cách diễn đạt khác nhau để xem cách diễn đạt nào hiệu quả nhất.
- Tối ưu hóa hiệu suất: Đối với các ứng dụng quy mô lớn, hãy tận dụng khả năng tăng tốc GPU và tối ưu hóa kích thước lô để xử lý hình ảnh với tốc độ cực nhanh.
Phần kết luận
Phát hiện đối tượng không bắn bằng OWL-ViT cung cấp một cửa sổ vào tầm nhìn máy tính tương lai không chỉ đơn thuần là một cuộc trình diễn công nghệ gọn gàng. Chúng tôi đang tạo ra những cơ hội mới trong việc hiểu và phân tích hình ảnh bằng cách giải phóng bản thân khỏi những hạn chế của các lớp đối tượng được xác định trước. Đạt được trình độ thành thạo trong việc phát hiện đối tượng không cần chụp có thể mang lại cho bạn lợi thế đáng kể cho dù bạn đang thiết kế công cụ tìm kiếm hình ảnh lớn tiếp theo, hệ thống tự động hay ứng dụng thực tế tăng cường đáng kinh ngạc.
Những điểm chính
- Hiểu các nguyên tắc cơ bản về phát hiện đối tượng không bắn và OWL-ViT.
- Triển khai tính năng phát hiện đối tượng được hướng dẫn bằng văn bản và hướng dẫn bằng hình ảnh bằng các ví dụ thực tế.
- Khám phá các kỹ thuật nâng cao như tinh chỉnh, điều chỉnh ngưỡng tin cậy và kỹ thuật nhanh chóng.
- Nhận biết tiềm năng và ứng dụng trong tương lai của việc phát hiện đối tượng không cần bắn trong các lĩnh vực khác nhau.
Các câu hỏi thường gặp
A. Khả năng của một mô hình trong việc xác định các mục trong ảnh mà không cần được đào tạo về các lớp nhất định được gọi là “phát hiện đối tượng không cần chụp”. Dựa trên mô tả văn bản hoặc điểm tương đồng về mặt hình ảnh, nó có thể xác định các đối tượng mới.
A. OWL-ViT là mô hình kết hợp các thành phần bản địa hóa và phân loại đối tượng chuyên dụng với sức mạnh của Đào tạo trước ngôn ngữ-hình ảnh tương phản, hay CLIP, để đạt được khả năng phát hiện đối tượng không cần bắn.
A. Phát hiện đối tượng được nhắc bằng văn bản cho phép mô hình xác định các đối tượng trong hình ảnh dựa trên truy vấn văn bản. Ví dụ: bạn có thể yêu cầu mô hình tìm “tên lửa” trong một hình ảnh và nó sẽ cố gắng xác định vị trí của nó.
A. Phát hiện đối tượng được hướng dẫn bằng hình ảnh sử dụng một hình ảnh để tìm các đối tượng tương tự trong một hình ảnh khác. Nó rất hữu ích cho việc tìm kiếm các mục tương tự về mặt hình ảnh trong các ngữ cảnh khác nhau.
Đáp. Có, mặc dù OWL-ViT hoạt động tốt ngay từ đầu nhưng nó có thể được tinh chỉnh trên dữ liệu theo miền cụ thể để cải thiện hiệu suất trong các ứng dụng chuyên biệt.
[ad_2]
Source link