Jump to content
Compvision.ru

Виталий

Пользователи
  • Content count

    50
  • Joined

  • Last visited

  • Days Won

    4

Виталий last won the day on November 8 2011

Виталий had the most liked content!

Community Reputation

6 Новичек

About Виталий

  • Rank
    Эксперт
  1. openCV + Android

    Решил собрать проект под андроид с использованием opencv. Делал все по инструкции http://opencv.itseez.com/doc/tutorials/introduction/android_binary_package/android_binary_package.html После импорта в эклипс примеров удалось скомпилить только один. Все остальные выдают ошибку: [2012-02-18 01:03:20 - CameraExample] Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties. Решения найденные на некоторых форумах проблему не решили. Установка примеров из apk файлов прошла успешно. Кто сталкивался с подобной проблемой? W7 prof x86, eclipse 3.7, opencv 2.3.1, android 2.3.5, телефон - SGS2.
  2. Трекер глаз (opensource)

    я специально снимал ик фильтр из вебки и подсвечивал глаз ик светодиодом.
  3. Трекер глаз (opensource)

    Я делал диплом по этой теме. в приложении дипломная работа. В итоге всего этого получилось сделать трекинг с наложением на видеоряд с головной камеры. на одном ядре (phenom) давало 20фпс. есть видеозапись работы, но 300мб не удается загрузить на сайт. если есть вопросы, то готов ответить в этой ветке или почтой kvmax at inbox(dot)ru эту прогу тоже смотрел. основной недостаток - вебкамера и голова должны быть жестко закреплены, иначе при повороте головы точка взгляда уходит, хотя ты смотришь в одну точку. Бакалаврская работа.rar
  4. Поиск положения камеры, image based localization

    Если востанавливать по набору перекрывающихся картинок, то по общим дескрипторам можно найти смещение камеры между двумя кадрами. Только точность будет страдать при такой постановке задачи.
  5. Поиск положения камеры, image based localization

    Задача как раз в этом и состоит - ориентация на местности по предварительно составленной карте. Плюс уточнение карты при последующих измерениях. Задача 1: Составить 3d карту по набору картинок(видеозапись) при достаточно точно заданных положениях камеры. Задача 2: По построенной карте и фотографии местности найти положение камеры. Задача 3(желательно): уточнять карту после первой съемки параллельно с вычислением ее ориентации. SLAM практически это и делает, только я не до конца понял реализацию алгоритма. Думаю сделать так: -на самой первой записи(при известном положении камер) найти SURf дескрипторы на всех изображениях. -найти соответствующие дескрипторы на нескольких подряд идущих кадрах. -вычислить 3d координаты каждого дескриптора, который найден на нескольких фотографиях(мы знаем положения камер и коодинаты дескриптора на каждом кадре). Набор 3d дескрипторов и будет составлять карту. -найти дескрипторы на изображении с камеры, положении которой хотим вычислить. -найти соответствие дескрипторов карты и дескрипторов на изображении. Тут как раз и возникает задача о которой я писал - известны координаты дескрипторов на изображении, известны их координаты в 3d пространстве, нужно - определить положение камеры. Описал достаточно подробно. какие есть соображения?
  6. Поиск положения камеры, image based localization

    Спасибо. Почти то что мне нужно. Я думаю, что достаточно использовать surf дескрипторы, расчитанные в 3d пространстве.
  7. Как по координатам нескольких точек трехмерной сцены и координатам их изображения при проецировании найти положение камеры? Например, есть скриншот компьютерной игры на котором имеются некоторые предметы, положение которых мы знаем на 3d сцене. Как востановить координаты камеры на 3d сцене?
  8. SURF дескрипторы и их сравнение

    все функции сишные из пакета opencv. На питоне написана только моя собственная функция сравнения дескрипторов.
  9. SURF дескрипторы и их сравнение

    Сравнивание происходит полным перебором. Не совсем представляю, как можно найти соответствие по какой либо случайной выборке, ведь присутствует большая зашумленность данных. Ransac используется для поиска матрицы преобразования и учитывает уже найденные соответствия. скалярное произведение именно так и использовалось. Чем ближе оно к единице(вектора нормированы) тем более схожи дескрипторы. Алгоритм поиска соответствий дескрипторов на питоне обрабатывает несколько кадров в секунду при количестве точек порядка сотни на каждом сравниваемом изображении. есть ли идеи по улучшению?
  10. SURF дескрипторы и их сравнение

    Задача поиска соответствующих точек на двух изображениях. Нахожу surf дескрипторы на каждом изображении и сравниваю их. Функция сравнивает вектора дескрипторов двух точек.
  11. Изучаю surf алгоритм. Написал код, который находит дескрипторы на двух снимках с камеры и сранивает их. В примерах на си используется функция сравнения из библиотеки flann, которой нет на питоне. Не найдя подходящей функции я написал свою, которая возвращает скалярное произведение двух вектордескрипторов. Экспериментальное значение 0,85 для произведения векторов позволяет показать схожесть дескрипторов. Есть ли более корректный алгоритм сравнения двух дескрипторов? может есть соответствующая функция в opencv?
  12. Проблема открытия видеофайла в opencv

    Другие файлы в разрешении mp4 тоже не открываются в программе.(avi открывается) Все файлы о которых идет речь проигрываются медиаплеером.
  13. Проблема открытия видеофайла в opencv

    Попробовал - не помогло. Использовал mpeg, mpg, avi. При этих разрешениях плеер открывал файл. Видеофайл - ролик записанный телефоном в разрешении 1920*1080. Может в этом дело?
  14. OpenCV: модуль stitching

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

    Я игрался с востановлением карты глубины по двум изображениям. Хочу поделиться результатами. В опенсв есть 2 функции: FindStereoCorrespondenceBM и cvFindStereoCorrespondenceGC Первая функция - это сравнение по блокам. Достаточно быстрая, может работать в реальном времени. Результат плохой - распознается небольшая часть изображения, границы смазаны. Вторая функция - работает по принципы минимизации энергии графа. На выходе 2 карты глубины для правого и левого изображений. Работает достаточно хорошо, границы четкие, но требует значительное время на обработку. Вот код на питоне: import cv L=cv.LoadImage("l.jpg",0) R=cv.LoadImage("r.jpg",0) size = (L.width, L.height) disparity = cv.CreateImage( size, cv.IPL_DEPTH_32F, 1) dLeft = cv.CreateImage( size, cv.IPL_DEPTH_16S, 1) dRight = cv.CreateImage( size, cv.IPL_DEPTH_16S, 1) Hleft = cv.CreateImage( size, cv.IPL_DEPTH_8U, 1) Hright = cv.CreateImage( size, cv.IPL_DEPTH_8U, 1) print "calculation started", time.ctime() state = cv.CreateStereoGCState(128, 100) cv.FindStereoCorrespondenceGC(L, R, dLeft, dRight, state, False) print "calculation complited", time.ctime() cv.ShowImage("L", L) cv.ShowImage("R", R) cv.AddWeighted(dRight, 2, dRight, 0, 0, dRight) cv.AddWeighted(dLeft, -2, dLeft, 0, 0, dLeft) cv.ConvertScale(dLeft, Hleft) cv.ConvertScale(dRight, Hright) cv.ShowImage("Disparity Left", Hleft) cv.ShowImage("Disparity Right", Hright) cv.SaveImage("Hleft.jpg", Hleft) cv.SaveImage("Hright.jpg", Hright) cv.WaitKey(5000) Расчет на одном ядре занял около 10 минут. Это наилучший результат, которого я смог добиться Экспериментально нужно подобрать параметры функции cv.CreateStereoGCState(128, 100)
×