Кластеризация набора изображений - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть папка с сотнями / тысячами изображений, некоторые из них выглядят одинаково.Я хотел бы создать кластеры, разделяющие эти изображения (те, которые похожи в одном кластере).

Я не могу определить количество кластеров, которые будут необходимы, это зависит от изображений.У кого-нибудь есть идеи, как это сделать с помощью Python, OpenCV и какой алгоритм использовать?

Я провел некоторое исследование и обнаружил, что AffinityPropagation или DBSCAN могут быть полезны для меня, но я не знаю, с чего начать (как кодировать мои изображения, что я должен передать этим алгоритмам и т. Д ...))

1 Ответ

0 голосов
/ 06 февраля 2019

К сожалению, с изображениями все не так просто, поскольку наивная кластеризация приведет к образованию кластеров изображений с одинаковыми цветами, а не с одним и тем же «содержимым».Вы можете использовать нейронную сеть в качестве экстрактора функций для изображений. Я вижу два варианта:

  1. Использование предварительно обученной сети и получение функций из промежуточного слоя
  2. Обучениеавтоматический кодировщик в вашем наборе данных и использование скрытых функцийПредварительно обученная модель в вашем домене.

    Этот учебник (случайно найденный в Интернете) является хорошим введением в метод 2.

...