Хотите несколько идей о том, как разработать систему поиска изображений
Я просто хочу узнать больше о том, как Google может искать изображения. Я знаю, что это слишком сложно для меня, но я хочу попробовать сделать это на моем собственном наборе изображений.
Вот как я предлагаю: для большого набора случайных изображений в папке, я мог бы использовать некоторые ключевые слова (может быть, не подходит, может быть изменено в зависимости от ваших идей), чтобы искать некоторые изображения и сортировать их, так же, как делает изображение Google,
Я говорил с некоторыми графическими людьми о том, как определить сходство между изображениями, они сказали мне что-то вроде:
- Глобальная цветная гистограмма
- Макет изображения и блочная гистограмма (с которой я не очень знаком)
- Описание на основе RAG.
Итак, теперь мне действительно нужна ваша идея, мне не нужен какой-либо код или что-то, просто не могли бы вы поделиться тем, что вы думаете о разработке такой локальной системы поиска изображений, как бы вы определили сходство между изображениями, как бы Вы представляете изображения и т. д.
Я буду продолжать общаться с некоторыми графическими людьми, чтобы учиться, но я также очень хочу, чтобы ваши идеи помогли мне начать.
5 ответов
Google сделал больше, чем просто текстовый поиск изображений, см. Этот пост в официальном блоге Google. Помните, что поиск изображений по визуальным функциям (Content Based Image Retrieval - CBIR) является проблемой открытого исследования.
Глобальная цветовая гистограмма может дезориентировать (например, флаги США и Франции представляют аналогичные глобальные цветовые гистограммы - но они очень разные). Локальные цветовые гистограммы могут дать лучшие результаты для этого примера флагов.
Вы можете взглянуть на работу Нуно Васконселоса в UCSD.
TinEye - единственная поисковая система на основе изображений, которую я видел. FAQ содержит некоторые технические детали, но важные ограничения (которые также немного говорят вам о типе детекторов, которые они используют для построения своей "подписи изображения"):
Может ли TinEye найти похожие изображения? TinEye делает распознавание лица?
TinEye находит точные и измененные копии изображений, которые вы отправляете, включая те, которые были обрезаны, откорректированы, изменены в размере, сильно отредактированы или слегка повернуты. TinEye обычно не возвращает похожие совпадения и не может распознать содержимое любого изображения. Это означает, что TinEye не может найти разные изображения с одинаковыми людьми или вещами в них.
Поиск картинок Google использует различные методы для возврата результатов, которые вы видите, но (неутешительно) самый большой из них - это контекст на другой веб-странице. Как и в обычных результатах поиска Google, слова рядом с изображением помогают определить, что на изображении.
Некоторые изображения помечаются с помощью таких инструментов, как совместная игра от Google, но в остальном все зависит от контекста.
Это, вероятно, не очень поможет вам в вашей цели, но, к сожалению, пока не существует кода, который мог бы надежно отличить белого котенка от белого коня. Распознавание лиц - это другое дело, но это не то, о чем вы спрашивали.
Вместе с другими предложениями вы можете проверить распознавание лица.
Коммерческим примером таких методов является Apple iPhoto.
Я думаю, что изображения Google основаны на ассоциативных текстовых поисках. Большинство попыток сделать распознавание содержимого изображения имеют сегодня низкую точность, чтобы быть полезными. Если вы искренне заинтересованы в разработке таких алгоритмов, сначала нацелитесь на простую задачу, в которой количество возможных объектов и характер фотографий несколько контролируются. Вы хотите посмотреть на:
Computer Vision: как извлечь полезную информацию из цифровых изображений, из первоисточников примитивную информацию, такую как распределение цвета, края, круги и т. Д.
Распознавание объектов: как обнаруживать объекты.
Машинное обучение: подайте заявку на самосовершенствование.
ImageJ, приложение с открытым исходным кодом для компьютерного зрения, может быть хорошим началом.