Машинный анализатор. Часть 3. Память волновых нейронов

в 11:16, , рубрики: #МашинныйАнализатор, #ПамятьНейронов, Алгоритмы, машинное обучение

Машинный анализатор. Часть 3. Память волновых нейронов - 1

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

Для того, чтобы с минимальными потерями и простым образом получить описатель волнового фронта, необходимо увеличить изображение в 3 или 4 раза.

Теория

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

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 2

Если мы будем каждый белый символ, у которого в окрестности более чем один черный пиксель, менять на красный пиксель, то получиться следующая картина:

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 3

Вычислить описатель волнового фронта не получится, контур является забракованным.

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

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 4

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

Мы смогли разобрать цветные изображения на бинарные, а также обрамить их контурами, и получить описатели этих контуров. Что дальше? Можно наращивать контуры, и обходить их. Так, после некоторого распространения контуров, контур объекта пересечется с контуром края изображения. Это даст также возможность приблизительной оценки позиции объекта.

Примеры работы программы

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 5

Изначально программа имеет следующий вид. Из файла можно загрузить изображение(главное чтобы присутствовали черные пиксели), также нажать шаг и сканирование. Откроем файл с цифрой «1»

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 6

Нажимаем на меню Файл → Шаг

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 7

Цвет черных пикселей заменится на синий, а вокруг образуется зеленый контур. Здесь я увеличивал изображение не в 3, а в 4 раза для того, чтобы удалять бракованные контуры. Если программа находит квадрат 2х2 зеленых пикселей, значит контур бракованный и считывать его мы не будем.

Нажмем на меню Файл → шаг еще несколько раз.

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 8

Контур изображения увеличился, а контур рамки уменьшился. Будем продолжать нажимать шаг.

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 9

Сейчас контур изображения пересекся с контуром рамки, образовался один контур. Продолжим нажимать на Файл → шаг дальше.

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 10

Теперь мы получили два контура. Продолжим нажимать на Файл→шаг.

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 11

Теперь мы получили уже целых 3 контура! Если мы продолжим нажимать Файл → шаг, контуры исчезнут. Когда контуры исчезнут, тогда просчет надвигающихся «волн» закончится. Для каждого контура, который можно обойти, создается описатель контура.
Возьмем тот же файл, но на это раз нажмем на меню Файл → сканирование.

Изображение

Машинный анализатор. Часть 3. Память волновых нейронов - 12

Программа будет работать до тех пор, пока не останется ни одного белого пикселя. В правом углу мы получим список различных описателей. Это описатели фронта волны нейронов(которые не повторяются). Зеленая полоска — последний волновой контур.

Спасибо за чтение статьи.

Автор: Владимир Павлов

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js