Кластеризация фотографий в R?

У меня есть своего рода вопрос о генерале R здесь:

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

Действительно ли это возможно к кластерным фотографиям с помощью R? Я подразумеваю, что существуют некоторые кластеризирующиеся способности в Matlab для обработки изображений, но действительно ли это - вид доступной функциональности или является там какими-либо предложениями, чтобы сделать это так в R?

Обеспечьте некоторые идеи если любой по этой теме.

8
задан Shreyas Karnik 2 August 2010 в 03:22
поделиться

1 ответ

Если вы посмотрите на CRAN, есть различные (я насчитал около 10) пакетов для чтения данных изображения. И, конечно же, есть различные пакеты для кластеризации. Теоретически вы можете просто вставить необработанные данные изображения в алгоритмы кластеризации, но на практике это не сработает. С точки зрения скорости это было бы очень медленно, и с точки зрения точности, вероятно, тоже было бы очень плохо. Современные методы кластеризации данных изображений основаны на специализированных функциях, извлеченных из изображений, и оперируют ими. Лучшие функции зависят от приложения, но некоторые из самых известных - это SIFT, SURF и HOG. Старые методы полагались на гистограммы цветов изображения как на особенности, и это вполне выполнимо с вышеупомянутыми пакетами R, но это не очень точно - они с трудом могут отличить изображение моря от изображения синей комнаты.

Так что же делать? На самом деле, это зависит от вашей конечной цели. Одним из способов может быть использование одного из различных экстракторов функций с открытым исходным кодом, сохранение данных в текстовом или другом R-читаемом формате, а затем выполнение обработки данных в R как обычно.

Хорошей библиотекой C с открытым исходным кодом для извлечения функций, имеющей интерфейс cli, является vlfeat . Если вы используете это, я рекомендую использовать плотное извлечение SIFT для трех цветовых каналов. Затем представьте каждое изображение связанными векторами SIFT и примените свой любимый метод кластеризации (который может обрабатывать векторы с размерностями в тысячи). Это вряд ли дало бы вам современное исполнение, но это начало.

На этой странице есть различные справочные реализации экстракторов признаков, но только двоичные.

Осторожно: по моему опыту, R не слишком хорошо масштабируется с большими, высокомерными наборами данных (с размерами в диапазоне ГБ). Я до смерти люблю R, но для этого использую C ++.

11
ответ дан 5 December 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: