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

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




































Главная

Программирование, компьютеры и кибернетика
Программа обнаружения и выделения текста

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


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Распознавание текста на изображениях -- это очень важная задача, имеющая множество практических приложений: индексирование фотографий и видео, мобильное распознавание текста, навигация роботов и многие другие.
Рисунок 1.1. Демонстрация работы приложения “Word Lens”
Помимо этого существует множество приложений, в которых необходимо автоматически распознавать текст на изображении: сканирование автомобильных номеров при автоматической фиксации нарушений или нанесение на карту различных организаций, используя панорамные снимки улиц.
Рисунок 1.2 Архитектура интегрированной системы получения текстовой информации из изображений
1. Обнаружение. На этом этапе определяется, есть ли на изображении текст или нет.
2. Локализация. На втором этапе определяется местоположение текста. Обычно результатом работы этого этапа является описывающий прямоугольник, в котором содержится текст.
3. Извлечение. Выделенные текстовые области очищаются от всего постороннего, убирается фон. Текст группируется на слова и символы.
4. Распознавание. На последнем этапе происходит непосредственно само преобразование графической информации в текст.
Из всех этапов обнаружение и локализация текста, наиболее критичны для общей производительности системы. Кроме того, эти два этапа можно рассматривать совместно. Ведь если текст обнаружен, то известно его местоположение.
В последние годы было предложено значительное количество методов для решения этих задач, но быстрое и точное выделение текста на фотографиях до сих пор остается достаточно сложной проблемой из-за большого разнообразия шрифтов, размеров, цветов, способов ориентирования в пространстве. Часто эту проблему усугубляют изменения освещения, сложный фон, препятствия, искажения изображения и потеря качества при сжатии.
В 2003, 2005 и 2011 годах в рамках конференции ICDAR были проведены соревнования на лучший алгоритм автоматического выделения и распознавания текста. Результаты, продемонстрированные там, ясно показывают, что проблема не решена до конца. Так результат победителя 2011 года [22], Кима Чугуун: полнота 62,47% и точность 82.98%.
Полнота и точность -- величины характеризующие качество работы алгоритмов поиска и классификации. В рамках данной предметной области точность -- отношение площади выделенных текстовых областей к общей площади выделенных областей. Полнота -- отношение площади выделенных текстовых областей к общей площади текстовых областей.
В этой работе, была поставлена задача, исследовать некоторые из существующих на сегодняшний день методов обнаружения и выделения текста, и на их основе построить систему обнаружения и выделения текста на изображениях.
1. Применяется алгоритм обучения без учителя для получения набора рассчитанных признаков из фрагментов изображений, полученных из обучающего множества.
2. Уменьшается количество признаков путем использования пространственного объединения [2].
3. Обучается классификатор для выделения текста.
На первом этапе системы они собирают коллекцию фрагментов изображений 8 на 8 пикселей в градациях серого. Все фрагменты предварительно обрабатывают. Для этого сначала нормализуют значения интенсивности и градиента каждого фрагмента, вычитая из значений этих величин в каждой точке их математическое ожидание и умножая полученную разность на среднеквадратичное отклонение. Потом применяют забеливание [14] [18] на основе анализа нулевых компонент. Забеливание используется для предварительной обработки вектора признаков. Оно нормирует значения векторов таким образом, что коэффициенты вариации отдельных величин становятся равны.
Затем, из нормализованных и забеленных данных, при помощи алгоритма К-средних, получают набор признаков.
Пространственное объединение применяется для сокращения количества информации представляющей каждый фрагмент изображения. Авторы статьи используют квадратные фрагменты стороной 32 пикселя. Для каждой области 8 на 8 пикселей в этом фрагменте рассчитывается вектор признаков. Далее используется усредняющее объединение, то есть просто рассчитывается новый вектор как среднее арифметическое всех векторов, описывающих восьмипиксельные области. Если этого не сделать, то количество информации возрастет многократно.
В качестве классификатора используется метод опорных векторов [26]. Свое обучающее множество Коатс и его коллеги строят на основе обучающего набора данных ICDAR 2003 [23], получая из него фрагменты 32 на 32 пикселя. Для определения, является ли фрагмент текстом или нет, используется уже готовая разметка исходного набора. Общий размер полученного множества составил 60000 фрагментов.
При детектировании используется метод скользящего окна. Вычисляется вектор признаков для каждого тридцатидвухпиксельного фрагмента изображения. Данные вычисления проводятся несколько раз, для разного масштаба изображения, для того чтобы детектировать текст разного размера. Затем каждому пикселю исходного изображения ставится в соответствие максимальный результат классификатора, полученный для всех фрагментов его содержащих, при разных масштабах. Полученные значения бинаризуются с некоторым порогом и в результате получается маска указывающая наличие текста на изображении. Варьируя порог бинаризации, можно получать различные значения точности и полноты. Точность рассчитывается как отношения количества правильно маркированных пикселей к общему числу маркированных пикселей. Полнота -- как отношение количества правильно маркированных пикселей к общему числу пикселей, которые следовало маркировать.
Этот подход показывает далеко не самые высокие результаты (точность 61% при полноте 69%), но он интересен тем, что не использует каких-то логически обоснованных признаков, а получает их сам.
Система, описанная в работе [6], является очень хорошим примером системы основанной на анализе регионов. Ее создатели решили использовать не абстрактные признаки, такие как собственные числа, рассчитанные для фрагмента изображения (такой признак использовался в [7]), или вейвлеты Хаара. Вместо этого они искали более информативные признаки, а именно такие, которые будут давать схожие результаты для различных текстовых регионов.
Первый набор признаков основан на наблюдении за поведением производных по и в пределах текстового региона. Авторы выбрали из обучающего множества все текстовые области, растянули или сжали их до фиксированного размера, и посчитали для них значения производных. Средние величины производных формируют определенный шаблон.
Рисунок 1.3. Наверху: математические ожидания значений производных по (слева) и по (справа). Внизу: их дисперсия.
Из рисунка 1.3 видно, что значения производных на заднем фоне (выше и ниже текста) достаточно низкие. Производная по имеет большие значения в центральной области, где и находится непосредственно текст. А производная по принимает большие значения на границе текста и фона, а в центральной части она мала. Также дисперсия производной по имеет большие значения в центре, из-за того, что символы имеют разнообразную форму и размер. А у производной по значения дисперсии отличаются слабо.
Исходя из данного наблюдения, рассчитываются признаки в различных областях фрагмента изображения (сверху, снизу, в центре). Границы областей взяты из анализа рисунка 1.1. Следующей группой признаков являются признаки, основанные на гистограммах интенсивности, направления и модуля градиента. В искусственных изображениях часто бывает резкая граница между текстом и фоном, поэтому можно легко разделить их по наличию двух пиков на гистограмме. В реальных изображениях, которые рассматриваются в этой работе, границы, как правило, смазаны, и гистограмма имеет только один пик. Поэтому используются кроме уже перечисленных гистограмм еще и совмещенные гистограммы интенсивности и градиента.
Третьей группой признаков являются признаки, основанные на выделении границ, такие как количество граней, их размеры.
По заявлению авторов их алгоритм детектирует 97% текста на изображениях( точность детектирования не называется). Из-за выбора первых признаков, алгоритм не детектирует негоризонтальный текст и, по заявлению авторов, плохо работает с одиночными символами.
Надежда Рубцова и ее коллеги в работе [19] представили интегрированную систему для распознавания текста, реализующую все этапы подобной системы: от обнаружения до распознавания. Главная идея их работы состоит в интеграции отдельных этапов и использовании результатов одних этапов на других.
Для выделения текста они используют следующий подход: как и во всех остальных работах, использующих анализ регионов, происходит построение пирамиды изображений с различными масштабами. Далее, каждое изображение разбивается на фрагменты размером 20 на 20 пикселей, которые называют нодами. Первый этап называется анализом нод. На данном этапе, похожие ноды объединяются в более крупные формации - регионы. Для определения степени схожести используется несколько признаков. Первый из них это гистограмма интенсивности из десяти интервалов.
Кроме того ноды характеризуются гранями. Гранью, в терминологии данной работы, является переходная область, выделенная высокими значениями градиента, между областями с разной интенсивностью. Авторы используют грани, как локальную характеристику, и не рассчитывают их для всего изображения, так как значения градиента могут сильно отличаться между его различными областями. Этот локальный анализ состоит в разделении всех величин градиента на существенные и не существенные, при помощи EM-алгоритма [1] [8]. Области, которым соответствуют существенные величины градиента, помечаются на маске локальных граней. На этой маске указаны широкие области перехода и игнорируются узкие, однопиксельные, грани.
Третий признак, характеризующий ноды, рассчитывается на основе преобразования ширины штриха [9]. Рассчитывается преобразование для изображения в каждом из масштабов, штрихи шириной более пяти пикселей при этом отбрасываются. Далее, чтобы заполнить незначительные пустоты на стыках фрагментов символов оставшихся после преобразования или убрать случайный шумы, результат преобразования складывается с результатом детектора границ Кэнни [5] и размывается. Так как после размытия маска перестает быть бинарной, то полученный результат называют уже содержимым ширины штриха. Характеристикой нода является сумма значений содержимого: если оно находится ниже определенного порога, то это значит, что фрагмент изображения в ноде однороден и не будет сливаться с другими нодами.
После объединения соседних схожих нод в регионы наступает этап анализа регионов. Регионы классифицируются на текстовые и нетекстовые, при помощи классификатора, на основе метода опорных векторов [25] [26]. Для классификации используются семь признаков, почти все из которых основаны на построении, так называемой, ЕМ-модели. Авторы предлагают при помощи EM-алгоритма разложить распределение интенсивности в небольшой области вокруг граней, в пределах региона на два класса: ”текст” и ”фон”. А в качестве признаков использовать разницу между математическими ожиданиями полученных распределений: отношению между количеством пикселей региона относящихся к одной из моделей к общему количеству пикселей и отношению разницы бинаризованного EM-моделью региона и маски локальных граней, от всех нод входящих в регион к бинаризованному региону. Также продемонстрирована попытка смоделировать то же распределение интенсивности, только одним распределением, и отношение ошибок показывает, на сколько точнее модель при помощи одного распределения чем при помощи двух распределений. Признаки Тамуры [27], отношение размера областей перехода к размеру региона и сам размер региона являются единственными признаками не основанными на ЕМ-модели. Полученный классификатор обучался на наборе данных ICDAR 2003.
Далее следует дополнительная обработка регионов и распознавание текста, но это выходит за рамки данной работы.
В самой работе приведены только результаты работы всей системы и не вполне ясно насколько хорошо работает выделение текста. Несмотря на это, в ней используются интересные признаки, которые можно использовать в дальнейшем.
1.2 Методы , основанные на анализе компонент связности
В работе [9] Б. Эпштейна, Э. Офека и Е. Векслера представлен способ выделения независимых компонент на основе оператора ширины штриха. Оператор ширины штриха -- это оператор, ставящий в соответствие каждому пикселю исходного изображений ширину штриха, к которому он наиболее вероятно относится. Сначала, выделяются грани при помощи оператора Собеля. Затем, начиная от точки на выделенной грани, в сторону увеличения градиента, для светлого текста на темном фоне, или уменьшения, для темного на светлом, помечаются все пиксели до следующей грани. Для всех помеченных пикселей, указывается ширина их штриха, равная их количеству. Если пиксель был помечен ранее, то значение его ширины штриха меняется только на меньшее.
Соседние пиксели, значения ширины штриха для которых отличаются не более чем в три раза, группируются вместе, формируя компоненты связности. Далее ко всем отдельным компонентам применяются правила, которые позволяют отбросить те из них, которые скорее всего не являются буквами. Все пороговые параметры для правил получены из набора данных ICDAR 2003. Авторы делают умозаключение, что дисперсия ширины штриха в пределах одной компоненты не должна быть слишком большой. Отношение высоты к ширине должно находится в пределах от 0:1 до 10, также отношение диаметра компоненты к медиане ширины штриха должно быть меньше чем 10. Это правило позволяет отфильтровать слишком длинные и узкие компоненты. Так же, отфильтровываются слишком большие или слишком малые компоненты, то есть те, которые не входят в диапазон от 10 до 300 пикселей. И, в заключение, чтобы не учитывать рамки вокруг текста, удаляются из рассмотрения те компоненты, прямоугольник описывающий которых, содержит более двух других компонент.
Далее, прошедшие фильтрацию компоненты группируются в строки. На этом этапе компоненты дополнительно отфильтровываются. Так, например, не рассматриваются отдельные компоненты. Текст внутри одной строки должен иметь примерно одинаковые ширину штриха, расстояние между символами, размер символов. Также сравнивается средний цвет соседних символов.
Результаты, заявленные в статье, достаточно высоки: точность 71% при полноте 60%. Так же этот алгоритм относительно быстрый, в 15 раз быстрее ближайшего аналога. Правда неизвестно, как и на каких машинах тестировалась его производительность. Еще благодаря тому, что компоненты связности уже выделены, то не требуется дополнительное извлечение текста. Из недостатков следует отметить то, что при фильтрации отбрасываются все отдельно стоящие символы и негоризонтальные строки, что сильно снижает полноту.
В работе [13] представлен интересный метод выделения текста, в основе которого лежит бинаризация исходного изображения. Из исходного изображения получается изображение в оттенках серого (монохромное), называемое в работе , и инвертированное монохромное,. Далее, при помощи адаптивной бинаризации, вычисляются два бинаризованных изображения, и соответственно. Из этих двух выбирают одно, которое содержит текстовую информацию. Для этого оба бинаризованных изображения разбиваются на компоненты связности и эти компоненты проверяют на текстовость. То изображение, в котором больше компонент похожих на символы, считается содержащим текстовую информацию. Из него убирают компоненты не прошедшие проверку. Для фильтрации регионов используют такие признаки как размер компоненты, расстояние между соседними компонентами по горизонтали. Кроме признаков, используются проверки, такие как имеют ли компоненты схожую высоту и принадлежат ли они одной строке.
По заявлению разработчиков им удалось выделить “почти все” текстовые области в наборе данных ICDAR 2003. Несмотря на это, недостатки данного метода видны из самого его описания. Как и все методы, на основе анализа компонент связности, данный отфильтровывает одиночные символы, кроме того, разработчиками установлены искусственные ограничения на количество символов в строке: от 3 до 100. Как и в большинстве методов, невозможно выделить рукописный текст, текст со сливающимися символами, из-за того что он будет выделятся как одна компонента и отбрасываться при фильтрации.
Гибридные методы представляют собой попытку объединить в себе анализ независимых компонент и анализ регионов для выделения текста. Так в работе [17] предложена система, состоящая из трех этапов.
На первом этапе, предварительной обработки, используется анализ регионов для поиска областей, которые могут содержать текст. В качестве признака, используется гистограмма направленных градиентов, а в качестве классификатора - каскадный классификатор WaldBoost [24]. Следует отметить, что целью этого этапа является не точное выделение текста, а определение вероятности того, что в данной области может быть текстом. Для этого, для каждого фрагмента изображения, не зависимо от того принят он или отклонен, выходные значения классификатора переводятся в апостериорную вероятность, используя метод калибровки классификатора. Апостериорная вероятность установки значения , зависящего от результата работы классификатора , на стадии , может быть получена с использованием формулы Байеса:
Все вероятности рассчитываются заранее, на этапе обучения. Таким образом, строятся карты вероятностей для каждого изображения в пирамиде, затем они проецируются на исходное изображение и получается карта вероятностей для исходного изображения. Эта карта используется для того, чтобы провести адаптивную бинаризацию по адаптированному алгоритму Ниблака. Новое значение интенсивности вычисляется по формуле:
где и -- значения математического ожидания и дисперсии для значений интенсивности внутри круга радиуса вокруг пикселя . Сглаживающий коэффициент подобран эмпирическим путем. Значение радиуса рассчитываетсяна основе значения вероятности текста из полученной карты вероятностей. Дальше следует переход к анализу независимых компонент. Для этого выделяются компоненты со значениями интенсивности 0 или 255, а те, чьи значения интенсивности равны 100 - не рассматриваются.
Для анализа компонент используется модель условных случайных полей (CRF, conditional random field) со следующими признаками:
o Отношение количества пикселей принадлежащих компоненте к количеству пикселей принадлежащих минимальному описывающему прямоугольнику;
o Среднее значение вероятности того что пиксели внутри компоненты являются частью текста. Для этого признака используется карта вероятностей, полученная на этапе анализа регионов;
o Компактность -- отношение между площадью описывающего прямоугольника и квадратом периметра компоненты. Она позволяет отфильтровать компоненты слишком сложной формы;
o Среднее значение градиента на границе компоненты.
· Признаки пары компонент, вычисляемые для пар соседних независимых компонент:
o Отношения между минимальными и максимальными шириной и высотой двух компонент. Текстовые компоненты обычно не отличаются слишком сильно друг от друга по размерам;
o Расстояние между центрами компонент;
o Перекрытие рассчитывается как отношение между площадью пересечения компонент с площадями самих компонент;
o Модуль разности средних значений интенсивности компонент.
Уже из анализа самих признаков видно, что данный подход позволяет находить строки любой формы, но отфильтровывает отдельностоящие символы. Результаты же тестирования описанной системы на наборе данных ICDAR 2003: точность 67:4%, полнота 69:7%. По скорости этот метод сильно превосходит методы, основанные на анализе регионов, но уступает методам на основе анализа компонент.
Метод, предложенный в статье [16], использует обратный порядок. Сначала выделяются компоненты связности из бинаризованного изображения. Из них строится дерево компонент, в каждой вершине которого находится компонента связности, если одна из компонент лежит в другой, то она становится ее поддеревом. Это дерево обходится в ширину и каждая из его вершин проверяется на текстовость с использованием методов на основе анализа регионов. Для этого используется трехступенчатый каскадный классификатор. В каждом каскаде используется только один признак. В первом -- размер.
Слишком мелкие компоненты, которые невозможно распознать, даже если они являются символами, и слишком крупные компоненты, занимающие более половины изображения, отбрасываются. Стоит отметить, что система, описанная в статье, рассчитана на выделение текста в видео потоке, и ее авторы считают, что на других кадрах слишком крупный текст может быть показан с другого расстояния в более читаемом виде. Во втором каскаде -- энергия границы. Для этого рассчитываются значения градиента из исходного изображения вдоль границы компоненты, а затем считается энергия полученных значений по формуле:
- количество пикселей вдоль границы, а - значения градиента, полученные с использованием оператора Собеля. Этот признак показывает контраст между регионом и фоном. В третьем каскаде используется самый затратный по вычислительной мощности признак, названный авторами текстурностью. Для этого рассчитываются собственные числа для интенсивностей внутри, описывающий области вокруг компоненты. Их среднее значение используется в качестве признака. Высокие значения текстурности соответствуют высоким изменениям частот в пределах региона.
Затем все отфильтрованные компоненты-символы объединяются в текст. Для этого используются только расстояния между компонентами и отношение их размеров. На этом, последнем, шаге не учитывается их положение, что позволяет выделять строки любой длины: единственное, что отфильтровывается - отдельностоящие символы. Численных результатов в работе не приводится, но не следует ожидать, что они будут очень высокими, так как даже сами разработчики указывают на то, что выделение проводится довольно грубо, чтобы увеличить количество кадров в секунду.
При разработке сложных приложений для работы с изображениями крайне важно правильно выбрать библиотеку, которая позволяет выполнять все необходимые задачи. В настоящее время существует всего несколько альтернатив: OpenCV Официальный сайт проекта OpenCV URL:http://opencv.org/ Дата обращения: 27.04.2014 , SimpleCV Официальный сайт проекта SimpleCV URL:http://www.simplecv.org/ Дата обращения: 27.04.14 , Intel Integrated Perfomance Primitives Intel, Intel Developer Zone URL:http://software.intel.com/en-us/intel-ipp
Дата обращения: 27.04.14 , Java Advanced Images APIOracle, Java Advanced Imaging API URL:http://www.oracle.com/technetwork/ java/javase/tech/jai-142803.html Дата обращения: 27.04.14 , Python Imaging Library Pythonware, Python Imaging Library (PIL) URL:http://www.pythonware.com/ products/pil/ Дата обращения: 27.04.14 .
OpenCV - библиотека с открытым исходным кодом, распространяемая под лицензией BSD. В этой библиотеке реализованы функции компьютерного зрения, обработки изображений, машинного обучения и математических алгоритмов. Библиотека написана на C++, но может быть использована в проектах на языках Java, Python, Ruby, Matlab и других. Существуют реализации библиотеки для различных операционных систем, в том числе и для Android. Однако, для некоторых задач библиотека может быть слишком универсальной и включать в себя много лишнего.
Intel Integrated Perfomance Primitives - коммерческая библиотека разработанная компанией Intel. Реализует множество математических функций, функций обработки сигналов и изображений. Библиотека очень высоко оптимизирована и использует все расширенные наборы инструкций современных процессоров, как Intel так и AMD. Работает под операционными системами Linux, Windows и Max OS. Из недостатков следует отметить высокую стоимость: 199$ за однопользовательскую лицензию.
SimpleCV - библиотека является попыткой сделать компьютерное зрение доступным людям без специальной подготовки. Все реализованные функции максимально упрощены, чтобы не вводить пользователя в смущение. Реализована на Python и предназначена для работы с ним. Так как проект еще молодой, то его документация не слишком полная и состоит в основном из примеров использования тех или иных функций.
Java Advanced Images API - библиотека является частью Java SE. Она содержит лишь несколько основных функций для работы с изображениями, какие-то более или менее сложные функции (поворот изображения, например) приходится писать самостоятельно.
Python Imaging Library - библиотека распространяется в двух версиях: свободной и проприетарной. Под свободной лицензией выпускаются старые проприеритарные версии. Как видно из названия может использоваться только в проектах на языке Python. У библиотеки почти полностью отсутствует документация, в расчете на то, что люди будут покупать коммерческую поддержку. Функции реализовано мало и они рассчитаны в первую очередь на дизайнерскую обработку изображений и практически отсутствуют возможности для их анализа.
Среди всех рассмотренных альтернатив, было решено, что наиболее подходящей, в условиях моей задачи, является библиотека OpenCV. В ней реализовано множество функций, в том числе и для машинного обучения. У нее имеется достаточно подробная документация. Библиотека распространяется под свободной лицензией, что позволяет бесплатно использовать ее, в том числе и в коммерческих приложениях. Кроме того, следует отметить разнообразие платформ и языков программирования, которые работают с данной библиотекой.
Список альтернатив определяется возможностями выбранной библиотеки. Так как библиотека написана на C++, то и ее интерфейс в первую очередь предназначен для работы с C++, но также существует полная поддержка интерфейсов для языков Java и Python. Интерфейсы для других языков реализованы частично или не стабильно, поэтому рассмотрены только уже перечисленные четыре языка.
Главным критерием для выбора языка программирования является скорость работы и объем потребляемой памяти программами, написанными на том или ином языке, так как количество данных, которые предстоит обработать, достаточно велико.
Для сравнения использовался сервис The Computer Language Benchmarks Game Brent Fulgham, The Computer Language Benchmarks Game URL:http://benchmarksgame. alioth.debian.org/ Дата обращения: 27.04.2014 . Данный сервис позволяет сравнивать скорость программ, количество потребляемой памяти и даже объем кода у аналогичных программ на различных языках программирования.
Для сравнения, используются одиннадцать различных тестов, с исходными кодами можно ознакомится на веб-сайте проекта. Так же можно выбрать платформу для тестирования приложения: одноядерный или четырехядерный процессор и 32х или 64х битная система.
Рисунок 2.1. Сравнение производительности программ на языках C++ и Java.
Рисунок 2.2. Сравнение производительности программ на языках C++ и Python.
Из графика 2.1 видно, программы написанные на языке С++, выполняются быстрее до трех раз, а памяти занимают более чем в тридцать раз меньше. Преимущество С++ над Python (см. рис. 2.2) еще более очевидно. Конечно в обоих случаях программы на С++ проигрывают по такому показателю как количество строк кода. Это значит что процесс разработки идет дольше.
Из недостатков языка С++ следует отметить то, что в нем отсутствуют сборщики мусора и другие инструменты, которые делают разработку на Java и Python более удобной и безопасной, хотя при этом и замедляют выполнение программ. Но с не удобствами можно мириться, а для контроля утечек памяти существуют специальные инструменты.
Существует множество различных классификаторов. В библиотеке OpenCV реализованы следующие:
Нормальный байесовский классификатор
Эта простая модель подразумевает, что вектора признаков из каждого класса имеют нормальное распределение, и распределены независимо. Поэтому распределение всех данных можно представить как смесь гауссианов, по одной компоненте на класс. Используя обучающее множество, алгоритм получает вектор математических ожиданий и матрицы ковариации для каждого класса, а затем использует их для предсказания.
Достоинством метода является то, что не требуется много данных для обучения. Но требуется выполнения условия независимости переменных, хотя и при зависимых он может работать успешно.
Алгоритмы на основе метода опорных векторов.
Основная идея метода опорных векторов -- перевод исходных векторов в пространство более высокой размерности и поиск разделяющей гиперплоскости с максимальным зазором в этом пространстве. Две параллельных гиперплоскости строятся по обеим сторонам гиперплоскости, разделяющей наши классы. Оптимальным решением считается то, которое максимизирует расстояние от разделяющей гиперплоскости, до ближайших векторов признаков из обоих классов (в случае двух классов). Ближайшие к гиперплоскости вектора называются опорными векторами, это значит, что положение остальных векторов не влияет на гиперплоскость.
Это бинарные деревья, которые могут использоваться для классификации или для регрессии. При решении задач классификации, каждая листовая вершина помечается меткой класса, несколько вершин могут иметь одну метку. При решении задач регрессии в листовые вершины помещаются константы, поэтому задача регрессии сводится к выбору константы. А во всех остальных вершинах находятся пороговые значения, полученные в результате обучения классификатора, и номер переменной в векторе признаков, значение которой должно проверяться в этой вершине. Начиная из корня, и до достижения листовой вершины, классификатор выбирает левое поддерево, если значение признака меньше порога, или правое, если значение больше порога.
Бустинг это мощный подход к машинному обучению, который позволяет объединять несколько слабых классификаторов в один мощный. Даже если каждый из составляющих классификаторов работает чуть лучше чем генератор случайных чисел, то результирующий может быть сравним по точности работы с методом опорных векторов или с нейронными сетями.
Самым популярным слабым классификатором, использующимся в бустинге, является дерево принятия решений. Можно использовать даже деревья, в которых есть только одна не листовая вершина, так называемые пеньки. Реализация бустинга в библиоте
Программа обнаружения и выделения текста курсовая работа. Программирование, компьютеры и кибернетика.
Курсовая работа по теме Проектирование технологического процесса изготовления детали 'Рычаг КЗК-10-0115301'
Зачем Учить Русский Язык Сочинение
Фармация Дневник Практика
Итоговое Сочинение Добро Аргументы
Курсовая работа по теме Расчет и проектирование холодильника-конденсатора для конденсации перегретого водяного пара
Сочинение По Рассказу А И Куприна Поединок
Контрольная Работа На Тему Игра Дошкольника
Защитное Слово К Дипломной Работе Образец
Дипломная работа: Ледниковые морфоструктуры Северного Тянь-Шаня - Заилийский Алатау. Скачать бесплатно и без регистрации
Реферат: Тувалу
Онр Дипломная Работа
Реферат: Утопия и антиутопия в научной фантастике. Скачать бесплатно и без регистрации
Контрольная Работа На Тему Редакторские Принципы В. Короленко
Контрольная Работа На Тему Страхование В Сфере Недвижимости
Реферат по теме Microsoft Office
Курсовая работа по теме История развития понятия мотивация
Курсовая работа: Экономическая эффективность производства овощей
Статья На Тему "Закавказский Треугольник" Вчера, Сегодня, Завтра
Менеджер В Организации Реферат
Курсовая работа по теме Анализ бонитировочных данных и оценка генетического процесса животных костромской породы крупного рогатого скота в стаде хозяйства
Исследования системы автоматического управления в среде LabVIEW - Программирование, компьютеры и кибернетика курсовая работа
Цитология. Реакция клетки на повреждающее воздействие. Старение и смерть клетки - Биология и естествознание презентация
Характеристика внешнеполитического деятеля. Конрад Аденауэр - Политология реферат


Report Page