Понимание алгоритма FAST с использованием машинного обучения - PullRequest
0 голосов
/ 25 марта 2019

Я читал этот вопрос , эту статью opencv и, конечно, оригинальную статью об алгоритме FAST с использованием машинного обучения.

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

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

            +------------+
            |   +    +   |
            |   |    |   |
            | +--------+ |
            |   |    |   |
            | +--------+ |
            |   +    +   |
            |            |
            +------------+
    
  2. Запускайте алгоритм FAST для каждого изображения, чтобы найти характерные точки. Как указано в предыдущем шаге, у него есть 4 функции (угловые).

  3. Для каждой характерной точки сохраните 16 пикселей вокруг нее как вектор. Сделайте это для всех изображений, чтобы получить вектор признаков P. Представьте, что это значения пикселей, и в каждом из них имеется 16 из них. enter image description here

  4. Каждый пиксель (скажем, x) в этих 16 пикселях может иметь одно из следующих трех состояний:

enter image description here

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

Вектор P

b s d b s d b s b b s d d d d d | b b b b d d s d b s d b s d b s | д д д д д д д д б б д д д д д д д | д с б д с б д с б д с б д д б с

  1. В зависимости от этих состояний вектор признаков P подразделяется на 3 подмножества: P_d, P_s, P_b.

Я не понимаю эту часть. Я делю каждый элемент в нем на P_s, P_b и P_d?

b b b b s s s s d d d d d d d d | b b b b s s s s s s d d d d d d d | b b b b b b s s s s s s s d d d d | b b b b b s s s s s s s d d d d d

или мне взять целый вектор P и разделить его на эти 3 подмножества?

b b b b b b b b b b b b b b b s b s s s s s s s s s s s s s s s s s s d d d d d d d d d ...

или поскольку я могу вычислить, какие из b, d и s являются самыми высокими, я могу сказать, что feature1 - это b, feature2 - это d, feature3 - это s, feature4 - это b?

Как мы можем использовать это для создания ID3? Я думаю, что это основная часть, которую я не понимаю.

  1. Определите новую логическую переменную K_p, которая истинна, если p является углом, и ложь в противном случае.

  2. Используйте алгоритм ID3 (классификатор дерева решений) для запроса каждого подмножества, используя переменную K_p для получения информации об истинном классе. Он выбирает x, который дает наибольшую информацию о том, является ли пиксель-кандидат углом, измеренным энтропией K_p.

  3. Это рекурсивно применяется ко всем подмножествам, пока его энтропия не станет равной нулю.

  4. Созданное таким образом дерево решений используется для быстрого обнаружения в других изображениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...