Сортировка фотографий: плагин временной кластеризации или программа

Вкратце: я хочу сгруппировать каталог, заполненный большим количеством фотографий, чтобы получить группы примерно по три фотографии в каждой. (Каждый кластер помещается на одной странице фотокниги, которая скоро появится.)

Я осмотрелся и нашел несколько ссылок/подходов:

  • В Википедии эта функция указана как "будущее организации изображений".
  • есть несколько старых (2003 г.) статей по этой теме, например. здесь.
  • Я знаю о программном обеспечении для фотоальбомов, оснащенном элементарными версиями. Так что решения уже есть. (Конечно, неясно, используют ли они просто какой-то пороговый метод для разницы во времени между фотографиями.)
  • Вы можете легко сортировать (и перемещать) фотографии по дате: с помощью оболочки или exiftool. (извините, я не могу размещать ссылки здесь, так как я ограничен двумя ссылками. Но простой поиск сделает это.)

Однако они недостаточно удовлетворительны. Итак, мой вопрос:

Существуют ли программные пакеты, плагины или сценарии (предпочтительно с открытым исходным кодом), реализующие временные алгоритмы или алгоритмы кластеризации событий?

ИЗМЕНИТЬ:

Хорошо, давайте сделаем пример. Скажем, вы в поездке в... Венецию. Мы сократили до одного дня (сортировка по дням довольно проста). Мы делаем несколько фотографий здесь и там, а затем посещаем площадь Сан-Марко (часто известную на английском языке как площадь Святого Марка). Базилика Святого Марка - наша первая цель, затем одна фотография башни с часами. Не торопимся за кофе, снова встаем и «расстреливаем» голубей и снова базилику.

Итак, у нас есть несколько похожих фотографий (базилики), но не в хронологическом порядке. И у нас есть несколько других фотографий, близких друг к другу в хронологическом порядке. Теперь было бы неплохо, если бы базилика находилась слева от фотоальбома, а голуби и башня с часами — справа.

И да, это, конечно, можно сделать вручную, но это не было частью вопроса: явно нужен автоматизированный способ.


person whitedwarf    schedule 22.10.2012    source источник


Ответы (1)


Вероятно, вы хотите не кластеризировать данные, а выполнить своего рода разбиение по интервалам.

т.е. вы сохраняете исходный временной порядок и пытаетесь разделить изображения, когда одно изображение недостаточно хорошо соответствует предыдущему. Это значительно упрощает задачу, так как вы, возможно, сможете сравнивать каждое изображение только с предыдущим, вместо того, чтобы сравнивать любые 2 изображения друг с другом.

Попробуйте любой из упомянутых методов для вычисления схожести изображений. Цветные гистограммы, вероятно, являются хорошим началом. Отсортируйте все изображения по времени, вычислите сходство с предыдущим и начертите их. Затем проверьте, видите ли вы визуально хорошие точки разделения в ваших данных. Если вы их не видите, не ожидайте, что программа сможет их найти.

person Has QUIT--Anony-Mousse    schedule 22.10.2012
comment
Хорошо, давайте сделаем пример. Скажем, вы в поездке в... Венецию. Мы сократили до одного дня (сортировка по дням довольно проста). Мы делаем несколько фотографий здесь и там, а затем посещаем площадь Сан-Марко (часто известную на английском языке как площадь Святого Марка). Базилика Святого Марка - наша первая цель, затем одна фотография башни с часами. Не торопимся за кофе, снова встаем и стреляем в голубей и снова базилику. - person whitedwarf; 24.10.2012
comment
(Не могу отредактировать комментарий, извините.) Я сделал несколько дополнений. См. выше. - person whitedwarf; 24.10.2012
comment
Алгоритм кластеризации, скорее всего, не сможет отличить разные церкви без большого количества данных. Поэтому, если вы не хотите, чтобы все ваши церкви были на последовательных страницах, я бы придерживался хронологического порядка. Потому что как алгоритм должен сказать, что вы не занимались церковью1, башней1, церковью2, голубями, церковью3? - person Has QUIT--Anony-Mousse; 24.10.2012
comment
Ну, я не говорил, что это будет легко :) Тем не менее, у меня есть некоторые возможности, чтобы отличить церкви1 и церкви2: (вы уже упоминали) цветные гистограммы, какое-то распознавание образов, может быть, в сочетании с 3D-ремаппингом, ... - person whitedwarf; 24.10.2012
comment
Я работал с этими вещами. Они и вполовину не так надежны, как вы себе представляете. Они работают с огромными наборами данных, но не с коллекциями фотографий размером с альбом. Возьмем, к примеру, Notre Dame Photosynth, они выбросили сотни фотографий (думаю, треть от общего числа или около того). - person Has QUIT--Anony-Mousse; 24.10.2012
comment
Так что в основном Вики права: будущее организации изображений?! - person whitedwarf; 24.10.2012
comment
Есть разница между возможностью группировать изображения, основанные на том, что они показывают различные здания, похожие на церкви, и возможностью отличить две церкви друг от друга. Я могу кластеризовать изображение на основе цветных гистограмм. Оно работает. Я получаю кластеры. Просто кластеры, вероятно, не совсем такие, какими вы хотите их видеть. Скорее всего, вы получите кластер церквей (или даже старые каменные постройки), а не базилику Святого Марка. Для алгоритма это похоже на Париж: upload.wikimedia.org/wikipedia /commons/8/81/ - person Has QUIT--Anony-Mousse; 24.10.2012
comment
В частности, это не будет проблемой (кто сегодня в Вегасе, а на следующий в Париже... И хочет сделать из этого фотоальбом). Но я думаю, что ваш тип кластеризации меня бы вполне удовлетворил (в сочетании с интервальным разделением, как вы это называете). Есть ли проги, делающие именно это? - person whitedwarf; 24.10.2012
comment
Согласно статье в Википедии, должны быть даже существующие менеджеры изображений, которые уже делают это. Но это и вполовину не так полезно, как вам кажется. См. sites.google.com/a/imgseek.net/imgseek. пример. Но это не поможет рассказать историю в фотоальбоме. - person Has QUIT--Anony-Mousse; 24.10.2012