как кластеризация данных помогает в распознавании изображений или распознавании образов

Rico Mariani обрисовывает в общих чертах проблемы относительно производительности в его блог Лакомых кусочков Производительности, где он заявил:

Виртуальные Методы: Вы использующий виртуальные методы, когда прямые вызовы сделали бы? Много раз люди идут с виртуальными методами для обеспечения будущей расширяемости. Расширяемость является хорошей вещью, но она действительно прибывает в цену †“, удостоверяются, что Ваша полная история расширяемости разработана и что Ваше использование виртуальных функций на самом деле собирается получить Вас туда, где необходимо быть. Например, иногда люди продумывают проблемы сайта вызова, но затем don’t рассматривают, как объекты “extended” будут созданными. Позже они понимают, что (большая часть) виртуальные функции didn’t помогают вообще, и им была нужна совершенно другая модель для получения объектов “extended” в систему.

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

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

В статье MSDN, Улучшающей Производительность приложения.NET и Масштабируемость , это далее разъяснено:

Полагают, что Компромиссы Виртуальных участников

Использование виртуальные участники обеспечивают расширяемость. Если Вы не должны расширять свой дизайн класса, избежать виртуальных участников, потому что они являются более дорогими для вызова из-за виртуального поиска по таблице, и они побеждают определенную оптимизацию производительности во время выполнения. Например, виртуальные участники не могут быть встроены компилятором. Кроме того, когда Вы позволяете выделять подтипы, Вы на самом деле представляете очень сложный контракт потребителям, и Вы неизбежно заканчиваете с проблемами управления версиями, когда Вы пытаетесь обновить свой класс в будущем.

критика А вышеупомянутого, однако, прибывает из лагеря TDD/BDD (кто хочет методы, принимающие значение по умолчанию к виртуальному), утверждающий, что влияние производительности незначительно так или иначе, тем более, что мы получаем доступ к намного более быстрым машинам.

7
задан hannson 6 April 2010 в 07:29
поделиться

1 ответ

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

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

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

Одно [из многих] случаев использования [s] такого инструмента связано с обучением с учителем , когда набор элементов, выбранных человеком (например, изображений), вводится в кластерная логика вместе с меткой, связанной с конкретным элементом («это яблоко», «это другое яблоко», «это лимон» ...), логика кластеризации затем определяет, насколько каждое измерение входные данные важны для того, чтобы помочь каждой группе элементов (яблоки, лимоны ...) вписаться в отдельный кластер (например, цвет может иметь относительно небольшое значение, но форма или наличие точек, или что-то еще может иметь большое значение). После этого этапа обучения характеризующие различные «элементы» исходных данных (по сути, набор векторов относительно высокой размерности, мало чем отличающиеся от тех, которые можно было встретить в других других примерах кластеризации данных) и созданных на предыдущих этапах процесса. Например, важным элементом распознавания лиц, вероятно, является точное расстояние между центрами глаз. На предыдущих этапах изображение обрабатывается таким образом, чтобы определить, где находятся глаза (возможно, полагаясь на другую логику, основанную на кластеризации). Затем расстояние между глазами, наряду со многими другими элементами, передается в окончательную логику кластеризации.

Предыдущее описание является только одним примером использования кластеризации для распознавания изображений. Действительно, в этой области очень успешно использовались различные формы нейронных сетей, и можно утверждать, что в некотором смысле эти нейронные сети объединяют информацию в кластеры. Одна из причин успеха нейронных сетей может заключаться в их способности более уважительно относиться к измерению локальности , обнаруженному в исходных входных данных, а также их способности работать в иерархической манере .

Хорошим завершением этой статьи будет краткий список онлайн-ресурсов, но в данный момент у меня мало времени ... "продолжение следует"; -)

Редактировать на следующий день : (неудачная попытка предоставить вводную онлайн-библиографию по этому вопросу)

Мой поиск литературы по теме кластеризации применительно к искусственному зрению и обработке изображений выявил два различных ... кластера; -)

  • Книги, такие как Алгоритмы для обработки изображений и компьютерного зрения Дж. Парки, паб Уайли или Машинное зрение: теория, алгоритмы, практика M Seul et. Эл Кембридж UP. Такие книги обычно охватывают все важные методы, связанные с шумоподавлением, обнаружением краев, преобразованием цвета или интенсивности и многими другими элементами цепочки обработки изображений, большинство из которых не включают кластеризацию или даже статистические методы, и в них отведена только глава или два или даже незначительные упоминания о кластеризации применительно к распознаванию образов или другим задачам.
  • Научные статьи и справочники конференций, в которых конкретно рассматриваются методы кластеризации, применяемые к искусственному зрению и тому подобное, но в самом узком и самом глубоком смысле (например, : Варианты алгоритма Фукунаги и Нарендры, для приложений в распознавании символов или быстрых методов для выбора кандидатов ближайшего соседа в любом контексте.)

Короче говоря, я чувствую себя плохо подготовленным, чтобы предложить какую-либо конкретную книгу или статью.

Вы можете найти полезным просмотреть заголовки в скажем, книги Google, введя "Искусственное зрение" или "Распознавание изображений" или некоторые из названий, упомянутых выше. С помощью функции предварительного просмотра, а также облака тегов (кстати, другого приложения кластеризации), которые можно найти по ссылке «об этой книге», можно получить хорошее представление о содержании различных книг и, возможно, решить приобрести некоторые из них. К сожалению, ограниченная аудитория и потенциально прибыльные приложения в этой области делают эти книги относительно дорогими. На другом конце спектра вы можете скачать, иногда бесплатно, исследовательские работы, посвященные передовым темам в данной области. Они также будут отображаться в обычном (веб-сайте) Google или в специализированных репозиториях, таких как CiteSeer .

Удачи вам в исследованиях в этой области!

12
ответ дан 6 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

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