roboforum.ru

Технический форум по робототехнике.

Распознавание трехмерных объектов на сложном фоне по части к

Автомат, адаптивный автомат ... разум

Распознавание трехмерных объектов на сложном фоне по части к

Сообщение EdGull » 20 авг 2008, 13:49

Сложу здесь для потомков...
Оригинал статьи находится по адрессу http://aimatrix.nm.ru/aimatrix/Recognition3D.htm

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

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

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

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

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

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

Первой характерной точкой, как и в литературе [L.Gupta and M.R.Sayeh. Neural networks for planar shape classification. IEEE. 1988. P.936], является наиболее удаленная точка от центра тяжести контура, второй характерной точкой является точка контура, наиболее далеко отстоящая от первой. Третья точка и последующие определяются как наиболее удаленные от двух точек, между которыми они находятся. Процесс нахождения характерных точек продолжается до тех пор, пока отношение расстояния от искомой точки до прямой, соединяющей эти две точки, к длине отрезка между ними не станет меньше некоторой, заранее заданной величины EPS. Эта величина является одним из немногих настроечных параметров программы, она подбирается экспериментально таким образом, чтобы программа различала два наиболее близких друг к другу контура двух разных предметов из всей группы. Результат нахождения характерных точек для некоторого частного примера проекции трехмерного предмета на плоскость представлен на рисунке 1.


Recognition3D1.gif
Recognition3D1.gif (4.19 КиБ) Просмотров: 15049

Рис.1. Нахождение характерных точек контура.

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

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

Дополнительно к этим двум числам данному отрезку присваивается признак z=1, если соседние отрезки прилегают к данному с одной стороны, как на правой части рисунка, или z=-1, если они находятся с разных сторон.

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

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

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

Заполнение базы данных осуществлялось так: запоминаемый предмет случайным образом ориентируется относительно изобразительной плоскости и по алгоритму, описанному выше, определяется характеристическое двоичное число для данного контура и заносится в базу данных совместно с названием этого предмета, параметрами его ориентации в пространстве и последовательно расположенными по обходу контура тройками чисел n1, n2 и z, однозначно описывающими его.

Исходя из этой информации определяется, был ли уже занесен данный контур в базу данных, - и если он уже есть, то генерируется следующее случайное положение предмета. В противном случае информация о предмете и его ориентации заносится в базу данных. Этот процесс продолжается до тех пор, пока не будет получено подряд k отказов в занесении информации в базу данных. Величина k является третьим настроечным параметром программы (второй параметр - это масштабный коэффициент m) и в настоящей работе получены оценки, что при k=10 происходит надежное распознавание предъявляемых предметов с вероятностью, превышающей 0.99. Также оценки показывают, что для набора из семи предметов, использованного при тестировании данной программы, при значениях настроечных параметров, приведенных в настоящей работе, достаточно занести примерно 3000 различных ракурсов каждого предмета. При использовании в качестве носителя базы данных современный компакт-диск можно разместить порядка тысячи предметов. Следует отметить также, что предлагаемый метод распознавания является универсальным и может применяться в более простых задачах - распознавании символов, иероглифов, отпечатков пальцев и других плоских изображений.

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

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

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

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

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

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

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


Recognition3D2.gif

Рис.2. Результат распознавания объекта на сложном фоне.

Тестирование программы в "стерильном" случае, когда предмет распознавался по его внешней проекции на чистом фоне, осуществлялось на наборе из семи предметов с использованием специальной программы генерации трехмерных объектов в 3D-геометрии. На рисунке 3 представлены изображения этих предметов в фиксированный момент времени. С помощью этой программы выделяется одиночный предмет, и его изображение запоминается в графическом файле. Далее осуществляется вход в программу DETERMINATOR в режим РАСПОЗНАВАНИЕ. На экране появляется силуэт запомненного на предыдущем этапе предмета и производится поиск этого контура в базе данных по алгоритму, описанному выше. Результат распознавания предмета по части контура представлен на рисунке 4.


Recognition3D3.gif
Recognition3D3.gif (2.28 КиБ) Просмотров: 15037

Рис.3. Библиотека объектов.

Recognition3D4.gif

Рис.4. Результат распознавания объекта по части контура.

Проверка программы на тестовых наборах предметов при проведении статистических испытаний по методике, близкой к описанной в литературе [А.П.Горелик, В.А.Скрипкин. Методы распознавания. М. "Высшая школа". 1989. С.216], показала устойчивую работу при различных искажениях частей контуров, достигающих до 50 процентов контура.

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

кандидат физико-математических наук Протасов Владислав Иванович, 11 февраля 2003 года protonus@yandex.ru

В заключение автор благодарит И. Каляева, инициировавшего данную работу и В. Шаповала, любезно предоставившего программный генератор движущихся трехмерных объектов. Данная статья была опубликована в 2001 году в журнале “Нейрокомпьютеры. Разработка и применение” в 7 и 8 выпусках.

Список литературы

1. L.Gupta and M.R.Sayeh. Neural networks for planar shape classification. IEEE. 1988. P.936.
2. А.П. Горелик, В.А. Скрипкин. Методы распознавания. М. "Высшая школа". 1989. С.216.
Последний раз редактировалось EdGull 20 авг 2008, 14:01, всего редактировалось 2 раз(а).
Причина: рисунки поправил
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение EdGull » 20 авг 2008, 21:08

а выделять контуры можно вот таким элегантным способом взятым от сюда http://aimatrix.nm.ru/aichip/WhatIsReceptorWork.htm

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

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

    1) Выход = Потенциал_ядра - Входной_потенциал
    2) Потенциал_ядра = Входной_потенциал


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

Но тогда если мы поставим перед глазом неподвижную картинку, рецепторы сетчатки зафиксируют ее один раз, а в следующих "тактах" замеров будут фиксировать "нули"? Да, именно так оно и будет, если сможем спроецировать на сетчатку действительно неподвижную картинку. Приведем короткий фрагмент из книги В.Е.Демидова "Как мы видим то, что видим". Это касается невозможности без специальных ухищрений показать глазу по-настоящему неподвижную картинку.

Мы не замечаем, что наши собственные глаза все время в движении. Я имею в виду не те "обходы", которыми глаз выделяет наиболее информативные части картинки. Есть иные движения, они не подчиняются нашей воле, и управлять ими невозможно. Не удастся их и остановить, как ни старайся уставить взор в одну точку.

WhatIsReceptorWork1.gif
WhatIsReceptorWork1.gif (18.67 КиБ) Просмотров: 14996


Мышцы не в состоянии удерживать глазное яблоко в полном покое. Более того, их задача как раз обратная: обеспечить непрерывные микродвижения. Во-первых, тремор, при котором глаз подергивается с частотой около 100 герц (100 раз в секунду, но это средняя цифра, а пределы - от 30 до 150). Амплитуда дрожания ничтожная - 20-40 угловых секунд. Если глаз видит тонкую линию, она будет перепрыгивать лишь с одного фоторецептора центральной ямки на другой, рядом лежащий, и не далее, а их там на одном квадратном миллиметре собралось около 50 тысяч. Во-вторых, существует дрейф - медленные плавные смещения взора: в угловых мерах от трех до тридцати минут. В-третьих, периоды дрейфа сменяются небольшими скачками - микросаккадами. Взгляд "плывет" - вдруг рывком перебрасывается чуть в сторону, где опять начинается дрейф. Эти движения также невелики по амплитуде, они того же порядка, что и дрейф, так что точка, спроецированная в центральную ямку сетчатки, даже при самом большом микросаккадическом скачке не выйдет за ее пределы. И, наконец, четыре раза в секунду глаз совершает незаметный со стороны большой саккадический прыжок (опять оговорюсь, что цифра средняя: промежутки между этими скачками бывают от трех сотых секунды до двух секунд).


Вопрос "зачем эти микродвижения нужны?" имеет неоднозначное толкование. Попробуем предположить, что они являются необходимым условием функционирования аппарата выделения контуров в изображении. Чтобы проверить предположение, заставим рецепторы сетчатки искусственного глаза зафиксировать предложенную картинку, затем незначительно, скажем на 1 точку, сдвинем картинку в сторону и снова дадим рецепторам зафиксировать ее. В этот момент на выходах рецепторов окажется относительное изменение раздражающего сигнала. Возьмем значения изменений на выходах рецепторов и занесем их в соответствующие точки на картинке. Теперь посмотрим на результат. Начнем с простого изображения - черный квадрат на белом фоне.

WhatIsReceptorWork2.gif
WhatIsReceptorWork2.gif (619 байт) Просмотров: 15011


Далее возьмем черно-белое изображение, чтобы пока не касаться вопроса цвета.

WhatIsReceptorWork3.jpg


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

WhatIsReceptorWork4.jpg


Перейдем к цветным картинкам.

WhatIsReceptorWork5.jpg


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

WhatIsReceptorWork6.jpg


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

WhatIsReceptorWork7.jpg


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

Приведем еще и простой программный код (на языке Pascal), который имитирует содержимое рецепторов на сетчатке глаза после микродвижения глазного яблока. Здесь рецепторы на самом деле не используются. Происходит имитация их работы. Есть изображение, знаем направление микродвижения (тут применено диагонально на величину M). Сначала конкретный рецептор видит свою исходную точку с координатами X, Y, после микродвижения - точку с координатами X-M, Y-M. Разница цветовых плоскостей между исходной точкой и точкой, которая оказалась на ее месте в результате микродвижения, - это и есть относительное изменение входного раздражающего сигнала (для конкретного рецептора). Для удобства разбора кода приведены комментарии, начинающиеся символом //.

Код: Выделить всёРазвернуть
procedure TForm1.Button1Click(Sender: TObject);
var

  M:      Integer;   // величина микродвижения
                     // (Integer - это Signed Double Word)
  W, H:   Integer;   // ширина и высота изображения
  X, Y:   Integer;   // координата точки обслуживаемого рецептора
  C1, C2: TColor;    // цвета исходной и смещенной точек
                     // (TColor - это Double Word)
  R1, R2: Byte;      // переменные для вычисления разницы
                     // в цветовой плоскости двух точек

begin

  M := 1;   // микродвижение на 1 точку

  W := Image1.Picture.Bitmap.Width;   // берем ширину изображения
  H := Image1.Picture.Bitmap.Height;  // берем высоту изображения

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

  for Y := M to H do begin
    for X := M to W do begin

      // Сначала извлекаем цветовую информацию (сигналы)
      // двух разных точек, которые фиксирует один и тот же
      // рецептор (исходная точка и точка, спроецированная
      // на рецептор после микродвижения).

      C1 := Image1.Picture.Bitmap.Canvas.Pixels[X, Y];
      C2 := Image1.Picture.Bitmap.Canvas.Pixels[X-M, Y-M];

      // Здесь выделяется разница между цветами в канале Blue.
      // Только придется использовать Abs (число по модулю),
      // что не нужно реальным рецепторам, ведь в цветовых
      // плоскостях точек используются значения от 0 до +255.

      R1 := C1 and $FF;    // берем цвет канала Blue 1-ой точки
      R2 := C2 and $FF;    // берем цвет канала Blue 2-ой точки
      R1 := Abs(R2 - R1);             // вычисляем разницу
      C1 := (C1 and $FFFF00) or R1;   // ставим ее назад в канал

      // Здесь выделяется разница между цветами в канале Green.
      // (X shr Y - это сдвиг X на Y битов вправо)
      // (X shl Y - это сдвиг X на Y битов влево)
      // не ротация битов, а именно сдвиг со вталкиванием
      // справа/слева нулевых битов

      R1 := (C1 shr 8) and $FF;
      R2 := (C2 shr 8) and $FF;
      R1 := Abs(R2 - R1);
      C1 := (C1 and $FF00FF) or (R1 shl 8);

      // Здесь выделяется разница между цветами в канале Red.

      R1 := (C1 shr 16) and $FF;
      R2 := (C2 shr 16) and $FF;
      R1 := Abs(R2 - R1);
      C1 := (C1 and $FFFF) or (R1 shl 16);

      // Теперь в точку заносится цвет из полученных разниц.
      // Чтобы получить сразу "позитивное" изображение, нужно
      // вместо := C1; вписать := C1 xor $FFFFFF;

      Image1.Picture.Bitmap.Canvas.Pixels[X-M, Y-M] := C1;
    end;
  end;

  // Обновляем изображение на экране.

  Image1.Refresh;

end;


На форму программы помещается кнопка Button1 и изображение Image1 (объект типа TImage). В изображение загружается нужная картинка и нажимается кнопка Button1, при нажатии которой должна вызываться представленная процедура.
...

Дмитрий Сахань, 12 декабря 2002 года
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение Spy » 14 сен 2008, 02:32

Вот мне ещё очень интересна тема распознавания лиц... Искал в интернете бесплатный софт или исходники пока безрезультатно. Может у кого-то есть информация на эту тему? Нашел только програмку которая использует фейсконтроль для получения доступа к ПК :)
http://www.10001downloads.com/software/ ... 16519.html
http://cookos.com.ua/ - тысячи кулинарных рецептов!
http://wishop.ru/ - Исходники, скрипты, PIN-коды, книги...
Аватара пользователя
Spy
 
Сообщения: 24
Зарегистрирован: 10 май 2006, 00:41
Откуда: Kiev
прог. языки: C++, Delphi

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение =DeaD= » 14 сен 2008, 10:09

Не понял - вам тема интересна в каком плане - готовый софт найти или самому писать? :wink:
Если готовый - не знаю, если самому писать - см. по словам HAAR, HAAR-training, face-detection.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение Denis_Wozniak » 28 фев 2009, 23:59

А я делал такую прогу!

Добавлено спустя 22 минуты 52 секунды:
Это что так нереально звучит?

Программа делалась в рамках проекта, для шаг в будушее Москва.(пока проект не доделан)
Есть манипулятор, поле, несколко предметов произвольной формы (лежат на поле) и камера над полем.
Задача: распознать ключевые точки предмета(перевод в векторную графику), запомнить его, найти самый оптимальный вариант: как его взять.
В итоге: когда на поле много предметов манипулятор раскладывает их по группам (квадраты, круги, одинаковые предметы произв формы и тд).
Вложения
_Figuri.zip
первая: с поиском параллельных прямых и прямых углов... Там кривенько сделано, но можно посмотреть.
А третья - с полным процессом работы программы.
(27.15 КиБ) Скачиваний: 87
Аватара пользователя
Denis_Wozniak
 
Сообщения: 175
Зарегистрирован: 31 дек 2008, 22:47
Откуда: Подмосковье, Ногинск
прог. языки: С, С++, Ну и начинал я в Visual Basic.

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение =DeaD= » 01 мар 2009, 00:34

Ждёшь восторженных отзывов? :) Ну сделал и хорошо :) чего ж тут нереального? В туториалах к OpenCV квадраты ищут на картинке - я на базе этого визуальные маяки свои делал, всё достаточно реализуемо...

Вот только уровень описания того что ты сделал - хромает, проще говоря - нифига не понятно чего именно ты сделал, качать .exe-шники - как-то стрёмно :) выложи скриншоты чего делает интересного программа.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение Denis_Wozniak » 01 мар 2009, 00:46

:D Я бы даже не подумал про вирус. Пусть Касперский думает! :D
Вложения
sl1.jpg
sl2.jpg
Аватара пользователя
Denis_Wozniak
 
Сообщения: 175
Зарегистрирован: 31 дек 2008, 22:47
Откуда: Подмосковье, Ногинск
прог. языки: С, С++, Ну и начинал я в Visual Basic.

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение =DeaD= » 01 мар 2009, 01:11

Это конечно круто на черно-белых рисунках проверять свои методы, так и 3Д-реконструкцию можно динпрогом делать, жалко что при попытке применить на реальных изображениях всё рушится в хлам.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение Denis_Wozniak » 01 мар 2009, 09:51

Вот, попробовал с шумом и размытостью.
Вложения
sl3.jpg
Аватара пользователя
Denis_Wozniak
 
Сообщения: 175
Зарегистрирован: 31 дек 2008, 22:47
Откуда: Подмосковье, Ногинск
прог. языки: С, С++, Ну и начинал я в Visual Basic.

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение =DeaD= » 01 мар 2009, 10:17

Так ты попробуй на реальных изображениях - например накидай какие-нибудь предметы на стол, сфоткай и скорми программе :wink:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение bolt » 03 мар 2009, 11:03

нормальная прога! :good: Для распознавания или позиционирования вполне подходит
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение =DeaD= » 03 мар 2009, 11:17

Жжошь! Распознавания и позиционирования чего и где? Давай обосновывай своё высказывание! 8)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение Myp » 03 мар 2009, 11:27

очевидно для распознавания синих фигурок на белом фоне и позиционирования зелёных точечек в углах фигурок.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение Виталий » 03 мар 2009, 13:44

Отличная прога. И на нормальных изображениях будет работать если немного ее поправить.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Распознавание трехмерных объектов на сложном фоне по части к

Сообщение bolt » 03 мар 2009, 19:03

Если бот маркирован ИК диодом, то это яркая точка на темном фоне. Запрещенные зоны можно маркировать в самой программе. Ч/б изображения уже вполне достаточно.
А прога еще круче, поскольку распознает даже форму предмета. :friends:
bolt
 
Сообщения: 281
Зарегистрирован: 01 дек 2008, 19:21

След.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6