Hướng dẫn này sẽ giúp bạn xây dựng một công cụ tìm kiếm hình ảnh ngữ nghĩa sử dụng OpenAI CLIP và Flask. Bằng cách kết hợp các embeddings ngôn ngữ-hình ảnh của CLIP với tính năng tìm kiếm độ tương đồng cosine tốc độ cao được cung cấp bởi NumPy, bạn có thể xây dựng một giao diện web cho phép truy xuất các hình ảnh liên quan từ các truy vấn ngôn ngữ tự nhiên mà không cần nhãn hay danh mục.

Gói Python của Ultralytics bao bọc toàn bộ pipeline này đằng sau hai class, giúp bạn có thể khởi chạy một ứng dụng tìm kiếm hoạt động tốt hoặc chạy các truy vấn theo lập trình chỉ với vài dòng code. Hướng dẫn này bao gồm lý do tại sao tìm kiếm ngữ nghĩa hữu ích, cách thức hoạt động, chạy ứng dụng web, tìm kiếm theo lập trình, và cấu hình tham số.
Việc xây dựng hệ thống tìm kiếm hình ảnh ngữ nghĩa của riêng bạn với CLIP mang lại một số lợi thế hấp dẫn:
Pipeline này kết hợp ba thành phần, mỗi thành phần xử lý một giai đoạn chuyển đổi hình ảnh và văn bản thành các kết quả có thứ hạng:

Vì cả hình ảnh và văn bản đều nằm trong cùng một không gian vector, việc truy xuất là zero-shot: bạn không cần nhãn hay danh mục, chỉ cần dữ liệu ảnh và một câu lệnh (prompt) tốt.
Lớp SearchApp khởi chạy giao diện Flask hoàn chỉnh. Trong lần chạy đầu tiên, nó sẽ tải xuống một bộ hình ảnh mẫu, xây dựng chỉ mục embedding và phục vụ một trang web nơi bạn có thể nhập truy vấn và xem kết quả đã được xếp hạng.
Cảnh báo về đường dẫn ảnhClass VisualAISearch thực hiện tất cả các thao tác backend mà không cần lớp web:
Gọi trình tìm kiếm với truy vấn ngôn ngữ tự nhiên để nhận lại danh sách các tên tệp hình ảnh khớp, được xếp hạng theo độ tương đồng:
Bảng dưới đây phác thảo các tham số có sẵn cho VisualAISearch:
Với CLIP và gói Python Ultralytics, bạn có thể thiết lập một công cụ tìm kiếm hình ảnh ngữ nghĩa zero-shot chỉ trong vài dòng code, dưới dạng ứng dụng web Flask hoặc backend tìm kiếm theo chương trình. Từ đây, hãy trỏ data vào thư mục hình ảnh của riêng bạn để đánh chỉ mục, sau đó khám phá các Ultralytics Solutions khác để xây dựng trên các workflow thị giác máy tính của bạn.
CLIP (Contrastive Language Image Pretraining) là một model được phát triển bởi OpenAI giúp kết nối thông tin thị giác và ngôn ngữ. Nó được huấn luyện trên một tập dữ liệu khổng lồ gồm hình ảnh đi kèm với chú thích ngôn ngữ tự nhiên. Quá trình huấn luyện này cho phép nó ánh xạ cả hình ảnh và văn bản vào một không gian embedding chung, giúp bạn có thể so sánh chúng trực tiếp bằng độ tương đồng vector.
Điều làm nên sự nổi bật của CLIP là khả năng tổng quát hóa. Thay vì chỉ được huấn luyện cho các nhãn hoặc tác vụ cụ thể, nó học từ chính ngôn ngữ tự nhiên. Điều này cho phép nó xử lý các truy vấn linh hoạt như "một người đàn ông đang lái mô tô nước" hoặc "một khung cảnh giấc mơ siêu thực", giúp nó hữu ích cho mọi thứ từ phân loại đến tìm kiếm ngữ nghĩa sáng tạo mà không cần huấn luyện lại.
Khi CLIP chuyển đổi hình ảnh của bạn thành các embedding, gói Ultralytics sẽ thực hiện L2-normalize và lưu trữ chúng trong một mảng NumPy duy nhất. Một truy vấn được xếp hạng bằng một phép nhân ma trận tính toán độ tương đồng cosine giữa embedding truy vấn và mọi embedding hình ảnh, sau đó sắp xếp các điểm số. Tìm kiếm brute-force này rất chính xác và nhanh chóng đối với các bộ sưu tập hình ảnh thông thường, không cần thêm phụ thuộc cơ sở dữ liệu vector để cài đặt hoặc quản lý.
Mặc dù CLIP được phát triển bởi OpenAI, Ultralytics Python package bao bọc việc tạo embedding, đánh chỉ mục và tìm kiếm độ tương đồng cosine thành một pipeline tìm kiếm hình ảnh ngữ nghĩa hoàn chỉnh phía sau một vài dòng code hoạt động ngay lập tức:
Việc triển khai cấp cao này xử lý:
Có. Thiết lập hiện tại sử dụng Flask với một frontend HTML cơ bản, nhưng bạn có thể thay thế nó bằng HTML của riêng bạn hoặc xây dựng một giao diện người dùng (UI) động hơn với React, Vue hoặc các framework frontend khác. Flask có thể đóng vai trò là REST API backend cho giao diện tùy chỉnh của bạn.
Không trực tiếp. Một giải pháp thay thế đơn giản là trích xuất các khung hình riêng lẻ từ video của bạn (ví dụ: một khung hình mỗi giây), coi chúng như các hình ảnh độc lập và đưa chúng vào hệ thống. Bằng cách này, công cụ tìm kiếm có thể index các khoảnh khắc thị giác từ video của bạn một cách ngữ nghĩa.
Link nội dung: https://www.sachhayonline.com/hinh-anh-ngu-a74325.html