Що таке пошук за зображенням?

Зворотний пошук зображень — це технологія, яка дозволяє користувачам шукати інформацію, використовуючи зображення як запит у пошуку, замість тексту. На відміну від традиційних пошуків на основі ключових слів, зворотний пошук зображень обробляє візуальний контент, щоб знайти збіги, отримати метадані або надати контекст про зображення.

Цей метод став незамінним для завдань, таких як визначення походження зображення, перевірка його автентичності, виявлення подібного контенту та виявлення несанкціонованого використання авторських матеріалів. Зворотній пошук зображень широко використовується в різних сферах, включаючи електронну комерцію, журналістику, цифрову судову експертизу і не тільки.

Як працює зворотний пошук зображень?

В основі зворотного пошуку зображень лежить ключова технологія, що називається перцепційним хешуванням. Цей підхід генерує унікальний “відбиток” для кожного зображення, який потім порівнюється з відбитками інших зображень для визначення схожостей. Ось як перцепційне хешування працює в зворотному пошуку зображень:

  1. Обробка зображень: Перш ніж згенерувати хеш, зображення обробляється для видалення непотрібних деталей та стандартизації його формату. Це, як правило, включає зменшення розміру зображення до меншого фіксованого розміру та перетворення його в градації сірого. Це забезпечує послідовність процесу хешування для всіх зображень.

  2. Екстракція ознак: Замість аналізу кожного окремого пікселя, перцептивний хешинг зосереджується на високих рівнях ознак зображення, таких як його загальна структура, візерунки та розподіл кольорів. Ці ознаки узагальнюються в меншу репрезентацію, яка захоплює суть зображення, ігноруючи незначні варіації, такі як артефакти стиснення або незначне обрізання.

  3. Генерація Хешу: Хеш - це рядок фіксованої довжини або бінарна послідовність, яка представляє характеристики зображення. Перцептивні хеші спеціально розроблені, щоб забезпечити, що візуально подібні зображення створюють майже ідентичні хеші, навіть якщо зображення були трохи змінені (наприклад, змінено розмір, повернуто або стиснуто).

  4. Порівняння хешів: Після генерації хешу для запитуваного зображення, він порівнюється з хешами, збереженими в базі даних. Це порівняння використовує такі техніки, як відстань Геммінга, яка вимірює кількість різних бітів між двома хешами. Менша різниця вказує на вищу схожість між зображеннями.

Зосереджуючи увагу на перцептивних характеристиках, цей метод дозволяє двигунам зворотного пошуку зображень співпадати не тільки ідентичним зображенням, але й тим, які зазнали незначних змін. Перцептивне хешування є легким, ефективним підходом, що робить зворотний пошук зображень практичним навіть для великомасштабних наборів даних.

Реалізація пошуку за зображенням з API GroupDocs.Search

API GroupDocs.Search пропонує універсальне та ефективне рішення для впровадження можливостей зворотного пошуку зображень у ваших застосунках. Використовуючи його функції індексування та пошуку зображень, ви можете створити систему для знаходження зображень, збережених у документах або окремих файлах. Ось покрокова інструкція з налаштування зворотного пошуку зображень за допомогою API GroupDocs.Search.

Крок 1: Налаштуйте середовище

Щоб почати, додайте бібліотеку GroupDocs.Search до вашого проєкту. Ви можете зробити це, встановивши бібліотеку через NuGet для проєктів .NET. Просто виконайте наступну команду в консолі диспетчера пакетів:

Install-Package GroupDocs.Search

Крок 2: Індексація Зображень

Щоб активувати зворотний пошук за зображеннями, вам потрібно проіндексувати зображення з ваших папок документів. GroupDocs.Search дозволяє індексувати самостійні зображення (наприклад, .png, .jpg), а також зображення, вбудовані в документи або формати контейнерів, такі як .zip. Нижче наведено приклад того, як створити індекс і додати документи для індексування зображень:

string indexFolder = @"C:\MyIndex";
string documentFolder = @"C:\MyDocuments";

// Creating an index
Index index = new Index(indexFolder);

// Setting the image indexing options
IndexingOptions indexingOptions = new IndexingOptions();
indexingOptions.ImageIndexingOptions.EnabledForContainerItemImages = true;
indexingOptions.ImageIndexingOptions.EnabledForEmbeddedImages = true;
indexingOptions.ImageIndexingOptions.EnabledForSeparateImages = true;

// Indexing documents in a document folder
index.Add(documentFolder, indexingOptions);

Тут параметри ImageIndexingOptions увімкнені, щоб переконатися, що всі зображення (незалежно від того, чи є вони самостійними, вбудованими чи з контейнерів) індексуються. Це робить зворотний пошук зображень всеосяжним.

Крок 3: Пошук пов’язаних зображень

Після індексації зображень ви можете шукати подібні зображення, надаючи зображення посилання як запит. Налаштуйте пошук за допомогою ImageSearchOptions, щоб контролювати такі аспекти, як прийнятний рівень схожості (HashDifferences), максимальна кількість результатів для повернення та конкретні типи файлів для пошуку. Ось як виглядає процес пошуку:

// Setting the image search options
ImageSearchOptions imageSearchOptions = new ImageSearchOptions();
imageSearchOptions.HashDifferences = 10;
imageSearchOptions.MaxResultCount = 100;
imageSearchOptions.SearchDocumentFilter =
    SearchDocumentFilter.CreateFileExtension(".zip", ".png", ".jpg");

// Creating a reference image for search
SearchImage searchImage = SearchImage.Create(@"C:\MyDocuments\image0.png");

// Searching in the index
ImageSearchResult result = index.Search(searchImage, imageSearchOptions);

Процес пошуку генерує хеш для референсного зображення та порівнює його з проіндексованими зображеннями. Параметр HashDifferences визначає поріг для подібності – чим менше значення, тим суворішим є збіг.

Крок 4: Обробка результатів пошуку

Об’єкт ImageSearchResult містить всі зображення, які відповідають критеріям пошуку. Ви можете проходити через результати, щоб отримати інформацію про знайдені зображення, зокрема їх місця розташування або метадані.

Console.WriteLine("Images found: " + result.ImageCount);
for (int i = 0; i < result.ImageCount; i++)
{
    FoundImageFrame image = result.GetFoundImage(i);
    Console.WriteLine(image.DocumentInfo.ToString());
}

Sample Output

Наприклад, якщо пошук зворотного зображення виконується з запитом зображення, можуть бути отримані такі результати:

Images found: 2
C:\MyDocuments\image0.png
C:\MyDocuments\image193.png

Це означає, що в індексованих документах знайдено два схожі або однакові зображення: оригінальне зображення запиту (image0.png) та інший результат (image193.png).

Крок 5: Тонка налаштування системи

Щоб оптимізувати пошук за зображенням, ви можете налаштувати такі параметри:

  • Різниці хешу: Нижчі значення підвищують точність, але можуть пропустити трохи змінені версії зображення.
  • Пошукові фільтри: Обмежте пошуки до конкретних типів файлів або форматів документів.
  • Index Structure: Періодично оновлюйте індекс, щоб включати нові зображення або видаляти застарілі файли.

Висновок

Зворотний пошук зображень — це потужна технологія з широкими застосуваннями в сучасних галузях, від електронної комерції до цифрової криміналістики. Використовуючи інструменти, такі як GroupDocs.Search API, розробники можуть легко реалізувати надійні системи пошуку зображень, які ефективно знаходять і порівнюють візуальні дані. Завдяки таким можливостям, як індексація зображень, регульовані пороги подібності та підтримка вбудованих або окремих зображень, цей API спрощує процес створення гнучких і точних рішень для зворотного пошуку зображень. Чи то для виявлення дублікатів зображень, перевірки автентичності чи виявлення пов’язаного конт

Перевірте ці корисні посилання для отримання додаткової інформації та ресурсів:


Дивіться також