|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.02.2018, 15:28 | #1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Распознавание объектов
Скажу сразу, что завел тему не с прикладной целью, а просто интересно.
Сейчас существуют технологии распознавания объектов, в том числе и человеческих лиц. Погуглил и даже нашел API. Платные, по этому даже для эксперемента использовать не буду. Это все от безделья в голове возникло. Из за беспокойной головы и завышенной самооценки, я взял на себя смелость самому придумать алгоритм. Ну так вот, ломаю голову сутки и не чего особого не приходит. Для простоты- есть объект (однотонный), от фона он оличаеться цветом. Мы просматриваем каждый пиксель изображения и если цвет совпадает, пиксель принадлежит объекту. И тут сразу первая непродалимая проблема. Что если освещенность объекта не равномерная? - цвета пикселей в точности совпадать не будут. |
05.02.2018, 15:49 | #2 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Хорошо. Я Вам тоже от безделья отвечу, т.к. думал одно время над этой задачей.
Наверное сперва надо построить из изображения монохромную карту из дискретных производных по цветовой дистанции, или вообще работать сразу в цветовом пространстве HSL. На основе этих карт, наверное надо построить граф и преобразовать картинку в вектор. Для распознавания объектов, например текста - надо иметь образцы в такой же векторной форме. Ну а дальше - пишем алгоритм сопоставления полученного графа с образцами. Наверное примерно так. + И ещё, наверное, можно нейросеть натренировать на распознавание. Последний раз редактировалось LV1974; 05.02.2018 в 15:58. Причина: + |
05.02.2018, 16:11 | #3 | ||
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Цитата:
Цитата:
|
||
05.02.2018, 16:20 | #4 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Векторный граф. Здесь надо уйти от абсолютных координат и размеров, чтобы можно было сравнивать с образцами. Чтобы при сравнении не мешали масштабы и повороты.
+ Суть в том, что надо избавиться от лишней информации. Таким образом векторный граф будет содержать в каждом ребре информацию об углах с другими рёбрами. А также радиус кривизны для каждого ребра. - По моему это самая важная информация для распознавания текста. Могу ещё сказать о том, что общий граф распадётся на фрагменты, которые надо сгруппировать и нормировать. И ещё. Из образцов надо построить дерево наиболее близких образцов. Это существенно оптимизирует перебор вариантов при сравнении. Последний раз редактировалось LV1974; 05.02.2018 в 16:55. Причина: + |
05.02.2018, 17:23 | #5 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Если это техническое зрение то просто добавляют источник освещения и направляют его на объекты. HSV - тут уже называли есть и более хитрые методы восстановления освещённости и её нормировки. Или просто использовать большой набор данных. К примеру для текста у меня неплохо работало дерево решений, а образцы сгенерированы с разнымм размерами и разными наклонами и разных шрифтов. Так и в вашем случан можно попробовать раздобыть шаблоны с разными освещённостями.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
05.02.2018, 18:25 | #6 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Цитата:
|
|
05.02.2018, 19:49 | #7 | |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Цитата:
1. Подобрал бы пороговое значение по цветовой дистанции. 2. Сделал бы списки сканлайнов на основе порога. Причём и по вертикали и по горизонтали. 3. На основе сканлайнов сформировал бы список дискретных контуров. 4. Здесь бы сделал отображение контуров поверх исходной картинки, для самопроверки. И поигрался бы снова с подбором порога. 5. Преобразовал бы дискретные контуры в дуги, безье или иные кривые. 6. Составил бы граф на основе выявленных кривых. Ну вот примерно так. и т.д. |
|
06.02.2018, 00:37 | #8 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
2) Это не важно с чего начинать. Важна синергия. 3) Для выделения объекта из общей фотографии применяют перебор. Метод скользящего окна. Грубо говоря перебираем все координаты исходного изображения. С этими координатами копируем квадрат 100х100. И пробуем распознать,если распознали, то это и есть необходимый объект. Распознаём при помощи НС или любого другого метода классификации. В классификатор вводится клас "муссор" куда загружаем то что не подподает или недолжно подподать под другие классы. Этот всё достаточно хорошо изученно и проработанно. 4)А вот работа с цветом плохо изучена. Приходится в водить большие допуска в 64 и даже 128 уровней. 5) Как можно выделить геометрию из общего фота? Первая идея: задний фон вне фокуса, а основной объект в фокусе. Т.е. основной объект имеет резкие переходы а фон плавные тогда если взять производную вернее применить оператор Собеля то далее по порогу можно отделить фон от основного объекта. Проблема в том что порой цвета сливаются. Поэтому контуры становятся разомкнутыми. Тут для улучшения применяют много всяких методов. Самое первое это использовать локальные пороги. Но это не спасает от разрывов контуров. Хотя качество повышает. Вторая идея эта замены оператора Собеля на морфологический оператор поиска контура. Контур получается замкнутым, но геометрия формы может пострадать из-за того что цвета сливаются. Третий способ это сегментация на основе минимального разреза графа(graph cut и его аналоги). Можно сказать что проблему "протечки" он решает. Но метод трубет ручного указания верных и ложных пикселей. А теперь вопрос, а нужныли замкнутые контуры для распознования? Оказывается не нужны. Достаточно проанализировать границы. Более того строить сплайны тоже нет надобности. Достаточно проанализировать особые приметы: углы,т-образные пересечения линий и + образные. Под термином проанализировать я имею в виду пропустить их наличие, положение поворот через классификатор. А если говорить про распознование лиц так оно основано на шаблонах Хара. А векторное представление применяют для экономии памяти и как следстве ускорения расспознования.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
06.02.2018, 08:22 | #9 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Велосипед изобретаете ))) В большинстве случаев после долгих мучений скорее всего вы изобретете уже существующий метод обработки.
Чтобы изобрести что-то действительно новое нужно как минимум изучить матчасть существующих решений.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
06.02.2018, 12:20 | #10 | ||
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Цитата:
Спасибо Pavia Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Распознавание объектов на фотографии | Visa | Фриланс | 1 | 13.12.2016 09:58 |
Добавление своих объектов в Добавление своих объектов в двунаправленный кольцевой список | voidmain | C# (си шарп) | 3 | 21.03.2013 13:08 |
Создание и уничтожение объектов. Время жизни объектов C++/C# | Anett// | Помощь студентам | 0 | 24.10.2011 23:26 |
Распознавание текста | Босиком_по_лету | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.04.2011 10:23 |
Распознавание объектов на изображении | STRELOK-2007 | Общие вопросы Delphi | 2 | 07.08.2009 08:36 |