Dự đoán tốt nhất của bạn về cách Google Image Search hoạt động là gì? Tôi có thể tải lên một bức ảnh và có thể tìm kiếm những hình ảnh tương tự. Thuật toán nào nó sử dụng để xác định hình ảnh tương tự?
Dự đoán tốt nhất của bạn về cách Google Image Search hoạt động là gì? Tôi có thể tải lên một bức ảnh và có thể tìm kiếm những hình ảnh tương tự. Thuật toán nào nó sử dụng để xác định hình ảnh tương tự?
Câu trả lời:
Tôi không biết Google sử dụng thuật toán nào. Nhưng, vì bạn muốn có một phỏng đoán tốt nhất, hãy để tôi đưa ra một số ý tưởng về cách một hệ thống tương tự có thể được xây dựng .
Toàn bộ lĩnh vực liên quan đến tìm kiếm hình ảnh-cơ sở theo hình ảnh được gọi là Truy xuất hình ảnh dựa trên nội dung (CBIR) . Ý tưởng là, bằng cách nào đó, xây dựng một đại diện hình ảnh (không nhất thiết phải hiểu bởi con người) có chứa thông tin về nội dung hình ảnh .
Hai cách tiếp cận cơ bản tồn tại:
Phương pháp địa phương cấp thấp được nghiên cứu rất tốt. Cách tiếp cận tốt nhất hiện nay trích xuất các tính năng cục bộ (có một sự lựa chọn thuật toán trích xuất tính năng liên quan ở đây) và sử dụng các mô tả cục bộ của chúng (một lần nữa, lựa chọn mô tả) để so sánh các hình ảnh.
Trong các tác phẩm mới hơn, các mô tả cục bộ được phân cụm trước và sau đó các cụm được coi là các từ trực quan - kỹ thuật này rất giống với tìm kiếm tài liệu của Google, nhưng sử dụng các từ trực quan thay vì các từ chữ.
Bạn có thể nghĩ các từ trực quan là tương đương với các từ gốc trong ngôn ngữ: ví dụ: các từ: làm việc, làm việc, làm việc đều thuộc về cùng một từ gốc.
Một trong những nhược điểm của các loại phương pháp này là chúng thường hoạt động kém trên các hình ảnh có kết cấu thấp.
Tôi đã đưa ra và thấy rất nhiều câu trả lời chi tiết các cách tiếp cận này, vì vậy tôi sẽ chỉ cung cấp liên kết đến những câu trả lời đó:
Các cách tiếp cận ngữ nghĩa thường dựa trên các biểu diễn phân cấp của toàn bộ hình ảnh. Những cách tiếp cận này vẫn chưa được hoàn thiện, đặc biệt là đối với các loại hình ảnh chung. Có một số thành công trong việc áp dụng các loại kỹ thuật này cho các miền hình ảnh cụ thể.
Vì hiện tại tôi đang ở giữa nghiên cứu các phương pháp này, tôi không thể đưa ra kết luận nào. Bây giờ, điều đó nói rằng, tôi đã giải thích một ý tưởng chung đằng sau những kỹ thuật này trong câu trả lời này .
Một lần nữa, một thời gian ngắn: ý tưởng chung là đại diện cho một hình ảnh với cấu trúc hình cây, trong đó các lá chứa các chi tiết hình ảnh và các đối tượng có thể được tìm thấy trong các nút gần gốc của những cây đó. Sau đó, bằng cách nào đó, bạn so sánh các cây con để xác định các đối tượng có trong các hình ảnh khác nhau.
Dưới đây là một số tài liệu tham khảo cho các đại diện cây khác nhau. Tôi đã không đọc tất cả trong số họ, và một số trong số họ sử dụng loại đại diện này để phân khúc thay vì CBIR, nhưng vẫn ở đây:
Ngoài câu trả lời của penelope, có hai cách tiếp cận, băm nhận thức và mô hình từ ngữ có chức năng cơ bản được thực hiện dễ dàng và có thể chơi hay học hỏi trước khi mạo hiểm vào lãnh thổ tiên tiến hơn.
Băm nhận thức
Các thuật toán băm tri giác nhằm mục đích xây dựng một hàm băm, không giống như băm mật mã, sẽ đưa ra các giá trị băm tương tự hoặc gần tương tự cho các hình ảnh giống hệt nhau, ví dụ như bị biến dạng hoặc nén JPEG. Chúng phục vụ một mục đích hữu ích trong việc phát hiện gần các bản sao trong bộ sưu tập hình ảnh.
Ở dạng cơ bản nhất, bạn có thể thực hiện điều này như sau:
Chuyển đổi hình ảnh sang thang độ xám
Làm cho hình ảnh của bạn bằng không
Kết quả là hàm băm 64 bit đàn hồi, vì nó dựa trên các thành phần tần số thấp của hình ảnh. Một biến thể của chủ đề này sẽ là chia mỗi hình ảnh thành 64 chuỗi con và so sánh giá trị trung bình của hình ảnh chung với giá trị trung bình của khối con cục bộ và viết ra 1 hoặc 0 tương ứng.
Băm tri giác được thực hiện ví dụ bằng phash
Mô hình túi từ
Mô hình bag-of-words nhằm mục đích xác định ngữ nghĩa một hình ảnh, ví dụ như tất cả các hình ảnh có con chó trong đó. Nó thực hiện điều này bằng cách sử dụng các bản vá hình ảnh nhất định theo cùng một tinh thần mà người ta sẽ phân loại một tài liệu văn bản dựa trên sự xuất hiện của một số từ nhất định. Người ta có thể phân loại các từ, nói "chó" và "chó" và lưu trữ chúng dưới dạng định danh trong một tệp đảo ngược trong đó phân loại "chó" hiện trỏ đến tất cả các tài liệu có chứa "chó" hoặc "chó".
Ở dạng đơn giản nhất, đơn giản nhất, người ta có thể làm điều này với hình ảnh như sau:
Bây giờ bạn có một bộ sưu tập lớn các mô tả SIFT. Vấn đề là, ngay cả từ những hình ảnh gần giống nhau, sẽ có một số không khớp giữa các mô tả. Bạn muốn nhóm những từ giống hệt nhau ít nhiều giống như đối xử với một số từ, như "chó" và "chó" giống hệt nhau và bạn cần phải bù lỗi. Đây là nơi phân cụm đến để chơi.
Một truy vấn hình ảnh, ví dụ: tìm cho tôi hình ảnh tương tự với hình ảnh truy vấn, sau đó được giải quyết như sau:
Cách tiếp cận thú vị khác mà dường như bị bỏ qua trong các câu trả lời ở trên là Mạng nơ ron kết hợp sâu. Có vẻ như Google đang sử dụng nó ngay bây giờ cho công cụ tìm kiếm hình ảnh và dịch vụ dịch thuật của mình . Các CNN cực kỳ mạnh mẽ trong các nhiệm vụ nhận thức như tìm kiếm sự tương đồng. Có vẻ như, CNN thực hiện một quy trình tương tự về Bag-of-world được nhúng qua các lớp mạng của nó. Nhược điểm của kỹ thuật này là không có khả năng học hỏi và yêu cầu bộ dữ liệu khổng lồ cho đào tạo và tất nhiên chi phí tính toán nặng nề trên sân khấu đào tạo.
Giấy đề nghị về vấn đề này:
và triển khai truy xuất hình ảnh học tập nguồn mở sâu (bài báo sau): https://github.com/paucarre/tiefvision