Tìm kiếm hình ảnh bằng Clarifai API

Khi bạn đang tìm kiếm một hình ảnh, từ ngữ thường không đủ để tìm chính xác những gì bạn cần. Bạn hoàn toàn có thể gửi đến máy tính của bạn một bức ảnh và yêu cầu, “Tìm hình ảnh giống như thế này?”. Bằng API của Clarifai, bạn có thể tìm kiếm bất kỳ hình ảnh nào bằng sự tương đồng trong hình ảnh.

API Clarifai Search có nhiều cách khác nhau để bạn truy vấn các input của bạn. Trong bài này, chúng tôi sẽ mô tả lại toàn bộ mọi thứ. Bạn sẽ không cần phải thực hiện bất kỳ điều gì với bộ dữ liệu của mình, chỉ cần tải lên hình ảnh và sau đó bạn có thể tìm kiếm trên những hình ảnh tương tự.

Bắt đầu

Bước đầu tiên, bạn cần phải cài đặt Python (phiên bản 3.6.2) cho hệ điều hành của bạn. Bạn có thể đến terminal và gõ python --version. Nếu bạn tình cờ đã cài một phiên bản của Python 2, bạn có thể gõ thử python3 --version. Bạn sẽ thấy một gợi ý về: Python 3.6.2. Nếu không có những trường hợp này, bạn có thể phải kiểm tra nếu Python đã được bao gồm trong PATH của bạn.

Nhiều người phát triển bằng Python đề nghị có cần một môi trường ảo. Những hỗ trợ này giúp quản lý bất kỳ application-specific dependencies nào. Có một số điều không cần thiết cho hướng dẫn này nhưng nếu bạn tò mò, bạn có thể đọc thêm về chúng trong tài liệu Python.

Và bây giờ, bắt đầu cài đặt Python Clarifai bản chính thức bằng pip install clarifai. Điều cuối cùng bạn cần làm là đăng ký tài khoản Clarifai miễn phí và tạo một ứng dụng.

Thêm input vào

Bạn cần phải có một tập dữ liệu input để tìm kiếm. Những input này được lập index trên ứng dụng của bạn và Clarifai sẽ có thể “nhìn thấy” được hình ảnh đó. Đối với máy tính, một hình ảnh không có gì ngoài các vectơ biểu diễn mỗi pixel trông như thế nào. Khi bạn thực hiện việc tìm kiếm bằng một hình ảnh, Clarifai sẽ xem xét xem các vectơ này có mối quan hệ với nhau như thế nào để xác định xem những hình ảnh này có tương đồng trực quan hay không. Độ tương đồng có thể chính xác hơn nếu tập dữ liệu của bạn bao gồm các đối tượng có liên quan đến những gì bạn muốn tìm kiếm. Nếu bạn thêm một tập dữ liệu đầy đủ nhưng là về thực phẩm, trong khi cố gắng tìm kiếm hình ảnh của một con chó trong tập đó, thì kết quả tìm kiếm của bạn sẽ bằng không.

Đây là một tập dữ liệu các hình ảnh từ ImageNet liên quan đến thực phẩm. Bạn sẽ thấy một file không chứa gì ngoài các đường URL của hình ảnh về thực phẩm. Lưu file tin này là food-data.txt trong cùng thư mục với code của bạn, sau đó chúng tôi sẽ lấy file này và tải lên các hình ảnh theo đợt.
Wow! Hơn một nghìn hình ảnh được tải lên dễ dàng.

Tìm kiếm bằng sử dụng hình ảnh

Phần tuyệt vời mà bạn đang chờ đợi có thể được tìm kiếm dựa trên nét tương đồng của hình ảnh bằng cách sử dụng một hình ảnh khác. Giả sử bạn muốn tìm xem có bất kỳ điều gì tương tự với hình ảnh bánh cookie này. Tất cả những gì bạn cần ở đây là: Hàm search_by_image() trả về một danh sách các đối tượng Image mà chúng ta sẽ in ra score và URL liên quan đến nó. Bạn cũng có thể sử dụng các byte hình ảnh hoặc một tên tập tin để truy vấn.
Response của tìm kiếm sẽ hiển thị giá trị cho điểm số từ 0 đến 1. Điểm số gần bằng 1 có nghĩa là hình ảnh có điểm tương đồng trực quan hơn, một điểm số gần với 0 có nghĩa là hình ảnh ít điểm tương đồng hơn. Response từ Clarifai cũng có thể thất bại tại 20 kết quả hàng đầu. Nếu bạn muốn thay đổi, bạn có thể thêm một giá trị khác cho tham số per_page trong chức năng search_by_image().
Kết luận

Có lẽ bạn đang nghĩ đến bản thân, “Đó là tất cả những gì nó cần?” Và câu trả lời là đúng! Phần tốn nhiều thời gian nhất là thiết lập bộ dữ liệu. Còn nếu không, chức năng thực hiện tìm kiếm của chúng tôi chỉ cần năm dòng code.

xem thêm : học lập trình java ở đâu

Comments

Popular Posts