Русский
Русский
English
Статистика
Реклама

Машинныйанализатор

Из песочницы Машинный анализатор. Часть 1. Волновые нейроны

12.08.2020 14:11:32 | Автор: admin


Вступление


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


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


Нейрон состоит из тела, дендритов и аксона. Дендриты подают входные сигналы в тело нейрона, аксон подает выход для сигналов нейрона. Само тело(ядро) нейрона накапливает входящие с дендритов(входов) сигналы, и в случае накопления какого-либо критического значения подает сигнал на аксон(выход).


Предположение


Предположим, что у нас есть холст, на котором, мы может отмечать пиксели только трех типов. К примеру это могут быть пиксели черного, белого и красного цветов. Предположим, что пиксели черного цвета представляют собой нейроны, бывшие активными, на данный момент неактивные. Красные пиксели представляют собой пиксели, которые на данный момент активны(активные нейроны). И черные пиксели нейроны неактивные.


Мы сканируем весь холст в целях поиска активных нейронов(красных пикселов).Нужно написать условие активации этих нейронов. Предположим, что вокруг неактивных(белых) нейронов имеется 8 клеток(нейронов), к которым подключены дендриты- входные сигналы.
Если вокруг белой клетки образуется какое либо количество черных нейронов, и это количество черных нейронов больше установленного нами порогового значения, того мы окрашивает белую клетку в красный цвет.


Нужно выбрать условие окрашивания клетки в красный цвет. Поскольку вокруг белой клетки 8 нейронов, то и выбирать мы может также от 0 до 7.Если выберем 0 ничего не произойдет. Нужно выбирать от 1 до 7.Если выбрать 1, то вокруг черного изображения возникнет красный сплошной контур. Если выбрать 2 или 3 то также будет получаться контур, однако не сплошной, эти значения активации не интeресны. Если выбрать значение 4, то получим интересный результат. Программа будет любые вогнутые изображения превращать в выпуклые.


Результаты


Нейроны активируются, если рядом один или более неактивных нейронов


Изображение


Нейроны активируются, если рядом четыре или более неактивных нейронов


Изображение


Разрушение изображения


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


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


Результаты


Людям с эпилепсией не смотреть


Уничтожение изображения


Создание черно-белого изображения


Зачем я рассказал про уничтожение изображения? При описании изображения можно описать цветное изображение последовательностью черно-белых(бинарных) изображения, и их позже подробно описать.


Спасибо за чтение публикации

Подробнее..

Машинный анализатор. Часть 2. Описатель волнового фронта

13.08.2020 14:10:01 | Автор: admin


Вступление


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


Теория


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


Задача данной статьи дать краткое описание набору красных пикселей.


Рассмотрим простое трехцветное изображение


Изображение


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


Изображение


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


Изображение


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


Изображение


Теперь важный момент. Мы добрались то того места, когда предыдущее значение зеленого пикселя по у меньше текущего значения зеленого пикселя по y. Поскольку значение текущего пикселя больше предыдущего, то мы добавляем в массив описателя волнового фронта единичку.


Изображение


Продолжаем обходить контур и ставить единички в массив описателя.


Изображение


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


Изображение


Здесь значение текущего пикселя по y меньше предыдущего. Следовательно запишем в массив -1.


Изображение


Здесь состояние пикселей по y также не изменилось, следовательно, также ничего не заносим в массив.


Изображение


Мои Поздравления! Мы обошли контур.Если есть аналогичные контуры, мы также их обходим.


Изображение


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


Работа программы.


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


Изображение


Так выглядит программа при старте


Изображение


Нажмем кнопку открыть файл


Изображение


При загрузке файл отобразиться в двух окнах


Изображение


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


Изображение


Будем продолжать нажимать на кнопку вперед до тех пор, пока не получим другое значение контура. Сейчас значение контура 1, -1, 1, -1. Почему так. Если присмотреться, то мы увидим углубление на контуре. Сначала контур идет сверху вниз, мы получаем положительные значения, потом идем снизу вверх, получаем отрицательные значения, потом опять идем сверху вниз, получаем положительные значения, и опять, получаем снизу вверх и опять получаем отрицательные значения. Поэтому получаем значения 1, -1, 1, -1
Продолжим нажимать кнопку вперед.


Изображение


Увы, значения контура не изменяется. Однако все верно. Контур высчитывается верно.
Продолжаем нажимать на кнопку вперед


Изображение


Изменений не происходит. Все нормально.


Изображение


Мы дошли до конца. Значения контуров также не изменилось. Все правильно.
Нажмем на кнопку сканирование.


Изображение


Программа подумает и выдаст следующий результат
В данном случае мы получим несколько другой результат. Программа сканирует изображение и записывает отличные друг от друга контуры. Сначала мы получали значение 1, -1 и мы записываем его. Потом мы записываем значение 1, -1, 1, -1 некоторое количество раз. Повторяющиеся элементы мы удаляем. Получаем соответствующий результат. {{1,-1}}{{1,-1,1,-1}}


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

Подробнее..

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

15.08.2020 14:04:40 | Автор: admin


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


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


Теория.


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


Изображение


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


Изображение


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


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


Изображение


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


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


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


Изображение


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


Изображение


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


Изображение


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


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


Изображение


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


Изображение


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


Изображение


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


Изображение


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


Изображение


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


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

Подробнее..

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

15.08.2020 16:07:21 | Автор: admin


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


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


Теория


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


Изображение


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


Изображение


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


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


Изображение


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


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


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


Изображение


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


Изображение


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


Изображение


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


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


Изображение


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


Изображение


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


Изображение


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


Изображение


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


Изображение


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


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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru