-
Количество публикаций
28 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Cfr
-
-
-
OpenCV, в отличие от Ipl, не поддерживает битовые изображения, как я понял из инструкции, так что придется собирать битовый массив самому. Точки можно доставать при помощи команды:CvScalar cvGet2D(const CvArr* arr, int idx0, int idx1);
где arr - указатель на изображение, idx0 - x координата, а idx1 - y координата.
пробегать точки изображения, сравнивать с порогом, и собирать байты побитно.
Вроде бы CvGet2D тоже не поддерживает.
Битовые изображения (и даже кодированные по длине) поддерживает библиотека http://camellia.sourceforge.net/
#include <opencv/cv.h> #include <opencv/highgui.h> #include <camellia.h> int main() { CamImage *i = (CamImage*)cvLoadImage("./1.png", CV_LOAD_IMAGE_GRAYSCALE); CamImage t; camAllocateImage(&t, i->width, i->height, CAM_DEPTH_1U); camThreshold(i, &t, 100); camSavePGM(&t, "./1.bin.pgm"); IplImage *b = cvLoadImage("./1.bin.pgm"); cvNamedWindow("thr"); cvShowImage("thr", ; cvWaitKey(0); }[/code]
Хотя, не нашел как преобразовать битовое изображение в серое (кроме идиотского сохранить-загрузить)
BTW, а зачем нужна битовая матрица? Чем не подходит байтовая или с числами с плавающей точкой (масштабированная к нулям и единицам)?
-
OpenCV можно прикрутить к Matlab каким-то образом насколько я знаю... А нет ли подобных бесплатных аналогов которые можно использовать с OpenCV? Типа SciLab... Может такие возможности есть в последних версиях OpenCV?Да, и еще, если кому несложно пояните мне пожалуйста... Каким образом осуществляется взаимодействие между средствами разработки программных продуктов и тем же Matlab? Просто никогда подобным не занимался... То есть как происходит передача данных из одного в другое...
Есть биндинги OpenCV к Octave (частично совместима с Matlab) и Python (тут есть NumPy, SciPy и еще куча пакетов для научных вычислений).
-
Ни как не могу запустить программу на другом компьютере где нет среды Builder С++.Что только не делал...
Смотрел чего не хватает через Dependency Walker все dll на месте,
И копировал все bpl, и компилировал без run time pakage. Ни как не хочет запускаться ((
Что делать?
Перейти уже на нормальные средства разработки
-
Не поможет, тк в этом случае лишь градиент короче, а 2 движущихся объекта с примерно одинаковой скоростью, так и будут казаться одним целым... тут нужно другое решение... только вот какое?Надо строить модель движения.
-
Я любитель и мне эта тема очень интересна, жаль что я не могу послушать лекцию=(Если вам не трудно не могли бы вы посоветовать материал по этой теме?
AR --- раздел 3D-зрения, лучшими теоретическими источниками будут [1] и [2]. Ну, это чтобы полностью всё понять, на практике хватит разобраться с главами по 3D проекциям и калибровке камеры в [3] + почитаться статьи (хотя бы википедию) про способ ARToolkit [4]. Кстати, английская страница википедии вроде неплохо всё освещает [5].
Сейчас всё больше хотят перейти на AR без маркеров, для этого пробуют vSLAM (самая известная OSS-система -- monoSLAM [6]) и алгоритмы SFM (например, Bundle Adjustment, есть открытая софтинка PTAM [7]). Кстати, диссертация автора PTAM [8] содержит прекрасный обзор современного состояния AR.
В сети можно найти массу туториалов и курсов, мне очень понравился [9] (отличное краткое введение в 3D трекинг) и [10]. Книги, полностью посвященные AR не смотрел.
Лучше всего, если есть по-настоящему научный интерес, прочесть [1], если исключительно инженерный, поковырять ARToolkit и PTAM, хотя с последним будет сложно без науки разобраться
[1] http://www.robots.ox.ac.uk/~vgg/hzbook/index.html
[2] http://mitpress.mit.edu/catalog/item/defau...2&tid=10195
[3] Стокман, Шапиро ``Компьютерное Зрение''
[4] http://www.hitl.washington.edu/artoolkit/
[5] http://en.wikipedia.org/wiki/Augmented_reality
[6] http://www.doc.ic.ac.uk/~ajd/Scene/download.html
[7] http://www.robots.ox.ac.uk/~gk/PTAM/
[8] http://www.robots.ox.ac.uk/~gk/publication...n2006Thesis.pdf
[9] http://130.203.133.121:8080/viewdoc/summar...=10.1.1.84.8498
-
Фильтр Кальмана - это прежде всего фильтр.Он не может предсказывать, но за то, может откорректировать то что Вы намеряли (рассчитали).
Вы же определяете координаты объектов в текущий момент времени.
Так-же можно определить положения и в следующий момент.
Потом скорректировать значения координат используя фильтр.
Как-то я запутался. Фильтр Калмана может предсказывать (экстраполировать), это одна из фаз его работы (предсказание текущего (или следующего) состояния, затем коррекция).
-
А что вы думаете о задаче дополнения реальности (Augmented reality)? Недавно обнаружил, что большое количество маленьких и довольно больших проектов начинает выпускаться в которых используется дополнение реальности. К примеру тот проект от PleyStation о котором я писал на форуме http://www.compvision.ru/forum/index.php?showtopic=143. На западе идет активное изучение данной темы. Многие крупные компании так же ведут разработку, судя по их рекламным роликам.Не понятно. Кажется, очень перспективное направление, но занимаются им все подряд, любители и коммерческие фирмы. Однако, достаточно общего решения для markerless пока не найдено. Очень много приложений на мобильниках, в рекламе и играх. Опять же, для получения опыта подходит очень хорошо.
Кстати, если кто из Петербурга, скоро буду читать лекцию по AR (классический алгоритм как в ARToolkit + немного BundleAdjustment и SLAM), если интересно -- пишите в личку/cfr.ssvATgmail.com.
Да, их довольно много. Но сложность выхода на рынок определяется не только их количеством. В этой области для клиентов очень важна репутация производителя. Впрочем, полнофункциональную систему видеонаблюдения в одиночку написать просто нереально.Если же специализироваться только на детекторе движения, то шанс небольшой есть. Продавать его как библиотеку, как продаются библиотеки для распознавания лиц, авто и ж/д номеров и т.п. Но тут веб-камерой никак не обойтись.
В любом случае, при желании устроиться на работу по данной специальности твой опыт будет большим плюсом.
Ну, где ж найти такую работу? Я бы с удовольствием устроился (конечно, если это не институт с <10K зарплатами).
Полнофункциональную --- в каком смысле? Раньше (хотя бы 3 года назад), когда не было OpenCV и других открытых библиотек с реализациями AdaBoost, смесей гауссианов, фильтров Калмана и MCMC, было сложно. А сейчас, это даже бакалавр сделает.
-
Автоматические системы видеонаблюдения есть во всех универах даже у нас, производителей тоже море, не особо перспективная задача, хотя полезная для изучения (трекинг, обучаемые детекторы, классификация).
-
Офигенно
-
Не знаю, как вы получили решение, но для перспективной проекции их 8 штук (4 перед камерой).
Проблема прекрасно изучена и называется P3P.
Чаще всего решается оптимизацией (обычно, Гаусса-Ньютона), хотя для этого желательно знать приближенное значение, иначе можно уехать в одно из трех "ненастоящих". Можно как-то выбирать из четырех аналитических. Можно воспользоваться слабо-перспективной проекцией, хотя точность не очень высока (только когда объект достаточно далеко от камеры).
Вообще, P4P и старше прекрасно решаются, в OpenCV есть алгоритмы.
-
Есть пара шикарных книг на английском, почти уже классика:
Hartley & Zisserman http://www.robots.ox.ac.uk/~vgg/hzbook/hzbook1.html
Faugeras & Luong http://www.amazon.com/Geometry-Multiple-Im...tion/0262062208
Можно своровать на гигапедии. На русском есть немного в Современном подходе, но я не стал бы её советовать.
Вообще задача хорошо решена если не в реальном времени, MS уже вводят сервис типа Photo Tourism. Если покопаться, в интернете можно найти много исходников по реконструкции, например IBVH: http://people.csail.mit.edu/wojciech/
-
Стереозрение для одной камеры -- Structure from motion
В частности, как заметил Smorodov, можно сдвигать камеру и определять её координаты относительно первой (например, гомографией).
-
Извините, что разрушаю идиллию, но в OpenCV полно подобного рода алгоритмов
См. camshift и floodfill.
-
Thanks, буду ореинтироваться на эту камеру.Рекомендую проверить кроссплатформенность камер на http://opencv.willowgarage.com/wiki/#Welco...OSSpecificStuff
У многих камер проблемы с драйверами под другие ОС :/
-
Накопал в GIMP'е такой интересный эффект "постеризации" изображения (Colors->Posterise).Сразу прикинул, что это можно неплохо заюзать в удалении шумов
Естественно, что многие(все?) алгоритмы усреднения удаляют шумы. Только, тут совсем много информации теряется, лучше гауссианом
Как указал Smorodov, похожие вещи применяются в сегментации, например, суперпикселы в легендарной "Automatic Image Popup".
-
Накопал в и-нете интересный документик (к сожалению без титульного листа, поэтому автора не указываю):У нас это часто называют математической лингвистикой, а за рубежом -- вычислительной лингвистикой [1].
Данная область достаточно сильно связана с декларативным программированием
Меня немного интересуют искуственные языки, например, Ложбан [2]
[1] http://en.wikipedia.org/wiki/Computational_linguistics
[2] http://ru.wikipedia.org/wiki/%D0%9B%D0%BE%...%B1%D0%B0%D0%BD
-
Приятный текст, ваш? Почему не в вики?
-
Я пользователь джаббера, но в настройках сервера ничего не понимаю.
Достучаться до xmpp://compvision.ru через gtalk(в pidgin) мне не удалось, не создать комнату и, видимо, сообщение до smorodov@compvision.ru не дошло.
Может, нужен транспорт?
Я добавил запись cfr@compvision.ru, вроде зарегистрировался, но создать комнату и доставить сообщение всё равно не удалось
UPD: хотя, себе сообщение могу отправить
-
Кстати, можно поподробнее про SVM (и скрытые марковские модели) в opencv? Что-то в хелпе их вроде не видел...По SVM/HMM смотрите /usr/include/opencv/ml.h (или где у вас заголовочные файлы opencv). Внятных примеров по этому поводу не встречал >_>
В хелпе есть -- в разделе MachineLearning.
С вейвлетами инвариантность к вращению обычно достигается (по крайней мере, так с вейвлетами Габора) за счет применения повернутого ядра
Мало игрался с Виола-Джонс, не знаю как там это делается.
-
подскажи более подробней....потому как я попытался доступится как avg[x][y] мне писало ероры...как вытянуть мин/макс? cvMin?
RTFM для обычного доступа.
Удобно использовать макросы: CV_IMAGE_ELEM(img, uchar, i, j)
cvMinMaxLoc для максимума и минимума.
Изображение можно нормализовать.
-
Начинать нужно было с простейшей задачи - выявить на изображениии лицо.Насколько я понимаю, SURF (SIFT) позволяет найти эталон на изображении. А если все объекты относятся к одному классу (например, самолет) и имеют сходные внешние контуры (хвост, фюзеляж, крылья), но ключевые точки для каждого будут разными (или я не прав), то эти методы не сработают (не делать же для каждой модели самолета свой эталон). А алгоритм Виола-Джонса, если я правильно понимаю, позволяет получить именно некий нечеткий эталон для определенного класса объектов. Поэтому продолжил копать в этом направлении. Или я не прав? Тема для меня новая абсолютно
Да, с SIFT/SURF всё правильно, он точно поможет найти уже существующие в базе объекты, с классификацией это, на самом деле, не особо связано.
Гугл подсказывает, часто используют SVM и HMM (не знаю, с какими фичами), в OpenCV они есть.
Получается вроде здорово ^_^b
-
Может отсюда что нибудь сгодится?Distinctive Image Features from Scale-Invariant Keypoints
Вроде у них по образцу на примерах очень неплохо работает.
Дык, SURF -- штука аналогичная SIFT, но не запатентованная. И работает быстрее.
-
Ага, похоже вы занимаетесь Automatic Image Annotation
Есть, как минимум, один проект подобного рода на OpenCV Annotator, к сожалению без исходников.
А почему вы используете Виола-Джонс? Этот алгоритм, похоже не самый популярный в данной задаче...
ARToolkit где взять + примеры (англ.)
в ARToolkit
Опубликовано · Report reply
Тема хоть и прикладная но не узкая, т.к. если не использовать маркеры, нужно реализовать робастный 3D-трекинг, а это не решенная задача. Плюс, большинство систем AR пока не учитывают освещение (есть несколько статей).
Не совсем понятно, что значит трехмерная реальность на базе OpenCV, задачи противоположные. С помощью зрения получают матрицу преобразования (позу), с которой работает графическая библиотека, каждый кадр.
Сравнительно новый подход к AR: http://www.robots.ox.ac.uk/~gk/PTAM
Ориентированный исключительно на развлечения http://www.openframeworks.cc/ (есть биндинги к opencv и artoolkit)