что означает символ по фото
Распознавание символов
Работа с изображениями — одна из самых распространенных задач в машинном обучении. Мы покажем пример обработки изображения, получение матриц (тензоров) чисел, подготовку данных обучающего множества, пример архитектуры нейронной сети.
Работа с изображениями является одной из самых распространенных задач в машинном обучении. Обычная картинка, воспринимаемая человеком однозначно, для компьютера не имеет никакого смысла и интерпретации, только если нет предварительно обученной нейронной сети, которая способна отнести изображение к одному определенному классу. Для работы такой нейронной сети необходимо ее обучение на тренировочных данных, изображениях предварительно обработанных и поданных на вход нейронной сети в виде матрицы чисел, характеризующих определенный тон (цвет) на определенной позиции в изображении. В этой статье приводится пример обработки изображения, получение матриц (тензоров) чисел, подготовка данных обучающего множества, пример архитектуры нейронной сети.
Постановка задачи: имеются цветные изображения букв и цифр (CAPTCHA). Необходимо распознать буквы и цифры, находящиеся на изображениях. Последовательность решения задачи:
тренировка нейронной сети, предсказание ответов.
Рис.1 пример изображений (CAPTCHA)
Рис. 2 пример определение диапазона символа
Так же для вывода удобно использовать matplotlib, особенность библиотеки в работе с моделью RGB: передав данные модели BGR вывод будет отличаться, интенсивный красный станет интенсивным синим и наоборот, зеленый не изменится. Для корректного вывода в matplotlib (если цвета имеют значения) необходимо поменять местами матрицы цветов синего и красного.
Перебором изображений с расстановкой разделяющих линий, определим место положение символов. На изображениях каждый символ находится в своем диапазоне. Для всех символов верхняя граница находится на 3 строке, нижняя на 47. Вертикальные границы (за которые символы не выходят): для первого символа 14–44 колонка, для второго символа: 32–62 колонка, для третьего символа: 48 –72. Изображение при чтении библиотекой opencv представляется в виде тензора numpy array, размерностью (50, 100, 3). Изображение представлено в 3 массивах, состоящих из 50 строк и 100 столбцов. Каждый из трех массивов отвечает за свой цвет BGR (blue синий, green зеленый, red красный), каждый из 3-х массивов находится в диапазоне от 0-255.
Рис.3 Цветовая модель RGB
Данные такого вида не совсем удобны для дальнейшей обработки цветов. Так как символ имеет не четкий цвет, а сумму цветов, к краям более светлый тон, сумма цветов меняет свои значения. Для выделения символа определенного цвета необходимо будет указывать диапазоны для трех цветов B(n-m) G(k-l) R(y-z). Вместо этого проще представить изображение в другой цветовой модели HSV (Hue, Saturation, Value — тон, насыщенность, яркость). В библиотеке opencv единицы измерения Heu 0 – 179, S 0 – 255, V 0 –255. При данной цветовой модели достаточно указать сектор цвета Heu и для всех символов указать постоянные значения S 10 – 255, V 0 – 234, отсекая тем самым фон и шумовые изображения, представленные в более светлых тонах.
Рис.4 Цветовые модели RGB (BGR) и HSV
HSV представляет собой тензор (50, 100, 3) (3 матрицы numpy array размерностью (50, 100), 50 одномерных массивов, содержащие 100 значений). Индексы матриц — [:, :, 0] Hue, [:, :, 1] Saturation, [:, :, 2] Value.
Исходное изображение
Отобразим матрицы в градиентах серого (0 – черный 255 – белый).
[. 0] Тон, отсутствует белый т.к. диапазон до 179, приблизительный разброс цветов 160 – 179 и 0
30 красный цвет, 60
150 синий. На первом изображении цифра 9 более светлая т.к. оттенок красного попал в диапазон от 160, на втором изображении буква «м» черная т.к. оттенок попал в диапазон 0
[. 1] Насыщенность, фон и шум на изображении представлен в светлых, пастельных тонах значения 0
10, символы имеют более выраженный цвет >10
[. 2] Яркость, изображение светлое следовательно яркость фона 240
255, символы более темнее имеют значения Рис.5 Результат фон и часть шума имеют значения 255
Следующий этап — отделение символов друг от друга. Задаем диапазон, в котором находится символ.
Рис.6 Разделение символов по определенном диапазонам
Рис.7 Определение областей 1 и 3 символа, где нет данных 2-го символа
Оставляем часть 1 и 3 символа не попадающее в область 2 символа. Получаем матрицы, отвечающие за тон.
На матрицы Hue для символов 1, 3 накладываем фильтр, значения где тон попадает в указанный диапазон равны 0, иначе 255.
Рис.8 Отображение результата в виде pandas dataframe
Необходимо привести значения к 0 и 1 и инвертировать матрицу.
Из 2-го символа, находящегося в центре изображения, удаляем части 1 и 3 символа путем определения частей матриц, пересекающих 2-й символ и приравнивании к 255 тех значений матрицы 2, где матрицы 1 и 3 не равны нулю.
Рис.9 Удаление из 2-го символа данных 1 и 3-го символов
Проводим аналогичные преобразования матрицы символа 2. Результат матрицы символов 1, 2, 3 – со значениями 0, 1. При выводе изображения имеют пропуски, остатки шума. Проводим фильтрацию, дополнительное преобразование инструментами opencv, указываем ядро (окно матрицы) которое проходит по матрице символов и при нахождении рядом заполненных пикселей и пропусков, заполняет пропуски
Рис.10 Корректировка данных, заполнение пропусков
Определяем центры символов, перемещаем символы в центр массива добавляя и удаляя строки, столбцы, заполненные нулями.
Рис.11 Расположение символов в средине матрицы
Разработан алгоритм выделения символов из изображения. Для дальнейшего определения значения символа построим и обучим нейронную сеть. Для обучения нейронной сети скачиваем
100 экземпляров картинок выделяем из них символы, размечаем картинки вручную. Получаем 300 экземпляров размеченных данных (массивы 44×30 содержащие числа 0 и 1). Этого количества данных недостаточно. Определяем и скачиваем шрифт, которым отображаются символы на картинках. Воспользовавшись библиотекой pillow языка python, размещаем символы шрифта на изображении 44×30, задаем смещение и поворот символов случайным выбором из заданных значений, преобразуем в массив nympy array. Формируем выборку данных из сгенерированных данных и данных размеченных вручную.
Рис.13 Пример подобранного текста и размещение символов в матрицах
Тренировочный набор данных представляет собой тензор размерностью (50000, 44, 30, 1), дополнительная размерность (1) для нейронной сети.
Каждому экземпляру тренировочной выборки соответствует экземпляр из массива ответов: char_y = [0, 4, …, 29] – 50_000 (цифры 0-29 ключи словаря символов
Приведем данные предсказания к виду унитарный код (one-hot encoding). Преобразуем численные значения в массив, имеющий длину 29. Массив состоит из нулей и одной единицы. Позиция единицы соответствует кодируемому символу. Например, буква «а» будет иметь вид ‘000000000100000000000000000000’.
Разбиваем полученные данные на тренировочный набор и тестовый.
Для распознавания символов необходимо построить нейронную сеть, так как данные похожи на учебный набор mnist (рукописные цифры 28×28) на ресурсе kaggle находим примеры архитектуры нейронной сети дающие хороший результат. Архитектура нейронной сети:
Зададим параметр, при улучшении которого модель сохраняется (valaccuracy).
После тренировки сохраняются веса модели с наилучшими показателями valaccuracy, доли верных ответов. Дальнейшая работа программы: на вход подается изображение, которое обрабатывается ранее описанным алгоритмом. Результат обработки — numpy array (массив). Далее инициализируется модель, загружаются веса ранее обученной модели. На вход модели подают данные (1, 2, 3 символ). В результате модель выдает вероятность того или иного символа. Приняв за верный ответ позицию с наибольшей вероятностью из словаря «значение – символ» получаем символьное предсказание модели.
Данный алгоритм обрабатывает цветные изображения, на которых находятся символы букв и цифр, результат распознавания символов нейронной сетью 95% (точность), распознавание каптчи 82% (точность). На примере разбора алгоритма распознавания символов можно заметить, что основную долю разработки занимает подготовка, обработка и генерация данных. Выбор архитектуры и обучение нейронной сети является важней частью задачи, но не самой затратной по времени. Вариантов решения задачи распознавания цифр, букв, изображений предметов и т.п. множество, в данной статье приведен лишь один из примеров решения, показаны этапы решения, трудности, с которыми можно столкнуться в результате работы и примеры их преодоления. А как Вы работаете с каптчами?
Топ-25: самые распространенные символы и их значение
Вы когда-нибудь задумывались, как много символов окружает нас в повседневной жизни? Цель любого знака – это передать смысл, сэкономив при этом место для его обозначения. А знаете ли вы истинный смысл всех тех символов, которые постоянно попадаются вам на глаза? Вы сможете проверить это прямо сейчас, прочитав про историю свастики, про происхождение галочки, и еще про многие другие знаки, висящие на улицах и в общественных заведениях по всему миру.
25. Парикмахерская спираль
Фото: Jesse Nandra / flickr
Первоначальное значение символики парикмахерских связано еще со Средневековьем, когда цирюльники были в большей степени хирургами, чем стилистами. Они проводили мелкие медицинские процедуры, начиная с лечения переломов, и заканчивая удалением зубов. Одной из их ключевых обязанностей парикмахеров считалось кровопускание, и именно с этим устаревшим методом врачевания всех болезней и связан внешний вид современной символики. Красные полосы на спирали шеста означают кровь, а белые – чистые бинты.
24. Символ бесконечности
Фото: wikimedia commons
Математическое значение этого знака впервые появилось в 1655 году, когда британский ученый Джон Валлис (John Wallis) впервые использовал рукописную завитушку в своей работе под названием «De Sectionibus Conicis» (трактат о конических сечениях). Валлис никак не объяснил выбор именно такой символики, но считается, что она стала производной от варианта записи числа 1 000 римскими цифрами (CIƆ, CƆ), или значила просто «много».
22. Пацифик
Фото: wikimedia commons
21. Лента, украшенная детальками из головоломок
Фото: wikimedia commons
Этот символ появился в 1999 году и считается универсальным знаком аутизма. По замыслу создателя эскиза он отражает все богатство спектра этого состояния человеческой психики. Разные цвета и формы призваны демонстрировать разнообразие в жизни людей и семей, столкнувшихся с аутизмом. Яркий раскрас ленты означает надежду на то, что люди с аутизмом смогут вести полноценный образ жизни и взаимодействовать с остальным миром на своих условиях.
20. Смайлик
Фото: wikimedia commons
Наверное, это самый распространенный в масс-медиа символ, который чаще всех остальных используется на виртуальных площадках для общения и обмена положительными эмоциями. Смайлик был создан в начале 1970-х годов, и долго описывать его нет смысла, ведь тут все просто – это упрощенное изображение улыбающегося лица. Желтый цвет был выбран из-за традиционного цвета солнца на детских рисунках, и этот значок символизирует светящееся и безоблачное счастье.
19. Символ мужского пола
Фото: pixabay
Символ мужчины или организма мужского рода еще известен как «щит и копье Марса». Начертание круга со стремящейся из него стрелой, направленной в верхний правый угол, должно напоминать римского бога войны Марса, который всегда изображался во всеоружии. Вдобавок этим знаком стали обозначать и саму планету Марс, которую также именуют «планетой войны» или «огненной планетой».
18. Символ женского пола
Фото: Flanker
Значок женщины или «зеркало Венеры» – это и астрономический символ планеты Венера, и символ химического элемента медь, и символ женского рода. Существует несколько версий истории происхождения этого рисунка. Согласно одной из них круг призван напоминать нам о всеобъемлющей природе нашей Вселенной, и представляет собой женскую утробу. Крест внизу круга, добавленный в 16 веке, обозначает, что все живое рождено из духовной сферы.
17. Символ переработки отходов
Фото: wikimedia commons
Происхождение этого культового значка связано с проведением первого Дня Земли в апреле 1970 года. В тот год американская картонная компания Container Corporation of America спонсировала национальный конкурс искусства, посвященного проблемам окружающей среды, и заодно поручила студентам дизайнерских факультетов создать символ, означающий процесс переработки картона и бумаги. Студент Гэри Дин Андерсон (Gary Dean Anderson) выиграл конкурс, предоставив комиссии свой эскиз, состоящий из 3 стрел, символизирующих невосполнимые природные ресурсы Земли, которые надо защищать и сохранять для будущих поколений. Стрелы были нарисованы зелеными в честь цвета растительности.
16. Череп и крест-накрест лежащие кости
Фото: Jorg WarX, Manuel Strehl
15. Символ сердца
Фото: wikimedia commons
В современной культуре этот знак связан с любовью, чувствами и романтическими отношениями, но в прошлом у него был абсолютно другой смысл. В древней Греции форма сердца символизировала сильфий, вид гигантского фенхеля, который когда-то рос на северном побережье Африки неподалеку от греческой колонии Кирена (Cyrene). Греки использовали это растение, чтобы приправлять им пищу, в качестве лекарства и как противозачаточное средство или для стимуляции выкидышей.
14. Символ радиации
Фото: wikimedia commons
Знак радиации, как правило, состоит из желтого треугольника в черной рамке и схематичного изображения черной сферы с лепестками по прямо центру фигуры. Этот символ используется для обозначения источника радиации, контейнеров с радиоактивными материалами и территорий, где эти контейнеры хранятся. Предупреждающий значок появился в 1946 году, и был задуман как схематическое изображение атома и трех видов его излучения (бета, альфа, гамма). Палитра была выбрана не случайно, ведь в природе желтый и черный цвета нередко встречаются в окрасе ядовитых животных и растений.
13. Жест в форме буквы V
Фото: pixabay
Этот популярный жест представлен поднятыми и разведенными в стороны указательным и средним пальцами, в то время как остальные пальцы зажаты в кулак. У символа есть несколько разных значений, включая успех, одобрение, победу, а также презрение и протест.
12. Свастика
Фото: Jorge Láscar / Australia
В Западном мире свастика стала синонимом фашизма из-за того, что немецкие нацисты наносили ее на все свои знамена и флаги. Однако изначально свастика, существовавшая тысячи лет до кровавых войн 20 века, символизировала удачу. В санскрите (древний индийский язык) этот символ и вовсе означал благополучие. Исконно этот знак использовали индусы, буддисты и джайны. Сегодняшние ассоциации со злом надолго перечеркнули положительную суть этого символа, и, возможно, свастике не скоро удастся оправиться от такого удара по ее репутации.
11. Месяц
Фото: pixabay
Месяц – очень распространенный мотив в исламском мире, но его происхождение на самом деле не связано с мусульманством. Месяц красовался на христианских эмблемах много веков тому назад, и на самом деле он является древнейшим символом в истории человечества, поскольку его старейшие начертания датируются по меньшей мере периодом Вавилонской империи (2100 год до нашей эры). Месяц также символизирует не только религиозные смыслы, но и Луну, а иногда и серебро.
10. Галочка
Фото: pixabay
Этот символ используется для обозначения пунктов из списка, когда они прошли проверку, либо над ними завершено запланированное действие или что-то в них было исправлено. Сегодня галочка широко распространена почти во всех странах мира, но своим появлением она обязана именно эпохе Римской империи. В те времена значок «V» использовался для сокращения слова «veritas», означающего «истинный». Правая часть символа стала вытянутой из-за специфики работы чернильных ручек, которые не начинали писать с первого же движения руки.
9. Символ Bluetooth
Фото: wikimedia commons
Значок Bluetooth связан с древним датским правителем Харальдом Блатандом (Harald Blatand), которого все звали «Синезубым» (Blåtand, blue tooth) за его любовь к чернике и за темные передние зубы. Король викингов прославился тем, что сумел объединить враждовавшие датские племена и создал единое государство.
Сегодня символ ассоциируется с технологией беспроводных сетей Bluetooth, логотип которой был собран из 2 скандинавских рун – Хаглаз (аналог латинской буквы «H») и Беркан (аналог латинской буквы «B»). Вместе они составляют инициалы прославленного Харальда Синезубого.
8. Символ переключателя
Фото: vincentq / Melbourne
Известный символ включения и выключения стал результатом эволюции дизайна пользовательского интерфейса. Изначально большинство пультов управления состояли из отдельных переключателей, работающих для двух состояний – «Вкл» и «Выкл». Позже эти сокращения были заменены цифрами 1 и 0. Чтобы создать одну единственную кнопку, которая бы совмещала в себе оба этих состояния устройства, дизайнеры совместили единицу и ноль, и в итоге появился повсеместно известный значок.
7. Розовая лента
Фото: MesserWoland
С 1979 года розовая лента считается символом рака груди. Изначально эту ленту носили в знак моральной поддержки женщин с этим тяжелым заболеванием, но сегодня она стала символизировать также и здоровье, жизнерадостность и ободрение всех женщин в целом.
6. Символ человека на инвалидной коляске
Фото: wikimedia commons
Квадратная табличка со стилизованным изображением человека на инвалидной коляске – один из самых узнаваемых и понятных символов в мире. Знак был придуман датской студенткой дизайнерского факультета Сьюзэнн Коэфэд (Susanne Koefoed) в 1968 году и ассоциируется с общественными местами, приспособленными под нужды людей с ограниченными физическими возможностями.
5. Знак выхода
Фото: 21jcw
Другой легко узнаваемый международный символ указывает на местонахождение ближайшего аварийного выхода из здания в случае пожара или другой срочной необходимости. Этот знак еще иногда называют «бегущим человеком», а придумал его японский дизайнер Юкио Ота (Yukio Ota) в конце 1970-х годов. Символ вошел в международный обиход уже с 1985 года. Зеленый цвет ассоциируется с безопасностью, так же как и цвет светофора, сигнализирующий о разрешении на движение.
4. Товарный знак
Фото: wikimedia commons
Символ торговой марки указывает на то, что предшествующие ему слово или символ – это товарный знак или знак обслуживания, служащий для индивидуализации товаров, и удостоверенный в соответствующих регистрационных органах страны. Этот символ связан с регламентированием прав на использование товара или марки.
3. Серп и молот
Фото: wikimedia commons
2. Жезл Асклепия
Фото: pixabay
Жезл Асклепия – это символ, ассоциирующийся с медициной и здравоохранением. Сын бога Аполлона и земной принцессы Корониды, Асклепий был греческим полубогом медицины. Согласно античной мифологии этот герой обладал способностью восстанавливать здоровье больных и воскрешать людей из мертвых. Жезл Асклепия традиционно обвивает змея, потому что древние греки почитали это животное святым и использовали его в ритуалах исцеления.
1. Мальтийский крест
Фото: wikimedia commons
Мальтийский крест чаще всего ассоциируется с рыцарским орденом, управлявшим Мальтийским архипелагом с 1530 по 1798 год. Восьмиконечный крест символизирует 8 обязательств и устремлений рыцарей – жить в истине, иметь веру, исповедовать свои грехи, быть смиренным, любить справедливость, быть милосердным, быть искренним и превозмогать преследования.