alex 0 Report post Posted March 14, 2010 Здравствуйте. Возможно вопрос покажется простым, но я только начинаю осваивать OpenCV. Есть параметры внутреннего ориентирования камеры (фокусное расстояние, ширина и высота матрицы в метрах и пикселях, координаты главной точки, коэффициэнты дисторсии), есть два снимка одного объекта с разных сторон, для которых известны абсолютные координаты камеры и абсолютные углы в момент съемки. На снимках отмечена характерная точка объекта. Как по всем этим данным определить абсолютные координаты этой точки? Т.е. нужно что-то вроде ProjectPoints2, только с прямо противоположным преобразованием. Share this post Link to post Share on other sites
Smorodov 572 Report post Posted March 14, 2010 Здравствуйте. Возможно вопрос покажется простым, но я только начинаю осваивать OpenCV. Есть параметры внутреннего ориентирования камеры (фокусное расстояние, ширина и высота матрицы в метрах и пикселях, координаты главной точки, коэффициэнты дисторсии), есть два снимка одного объекта с разных сторон, для которых известны абсолютные координаты камеры и абсолютные углы в момент съемки. На снимках отмечена характерная точка объекта. Как по всем этим данным определить абсолютные координаты этой точки? Т.е. нужно что-то вроде ProjectPoints2, только с прямо противоположным преобразованием. Вот тема с аналогичным вопросом: http://www.compvision.ru/forum/index.php?showtopic=198 там есть ссылки на примеры, и статьи. Share this post Link to post Share on other sites
alex 0 Report post Posted March 15, 2010 Спасибо, но это не совсем то что нужно. Вернее совсем не то) Мне хотя бы понять, можно ли мою задачу решить средствами OpenCV или нужно искать какие-то другие библиотеки. Возможно я не совсем точно сформулировал задачу - мне нужна 3D реконструкция объекта по нескольким фотографиям, т.е. то же что делает, например, PhotoModeler. Я же описал самый простой случай, когда по координатам характерной точки на двух снимках, необходимо определить ее абсолютные координаты. Что-то вроде такого: (X Y Z) = f( u1, v1, u2, v2, fx, fy, Cx, Cy, k1, k2, k3, p1, p2,...), где X,Y,Z - искомые координаты точки в 3D пространстве u1, v1, u2, v2 - координаты этой точки на снимках fx, fy - фокусное расстояние Cx, Cy - координаты главной точки k1, k2, k3, p1, p2 - коэфф. дисторсии Буду рад любым подсказкам. Share this post Link to post Share on other sites
Smorodov 572 Report post Posted March 15, 2010 Подкину документ (надеюсь это по теме):Photorealistic_Scene_Reconstruction_by_Vixel_Coloring.pdf И проект робота с определителем расстояния до объектов по стереоизображениям: RobotProjectOpenCV.pdf 1 Share this post Link to post Share on other sites
zaza 0 Report post Posted April 30, 2011 Здравствуйте! У меня вопрос - можно ли восстановить, используя OpenCV, трехмерную форму объекта, используя стереоизображения, т.е. два 2D-изображения одного объекта, сделанные под разными углами. Или лучше использовать что-то другое? Share this post Link to post Share on other sites
Smorodov 572 Report post Posted April 30, 2011 Есть проект с открытым кодом: http://phototour.cs.washington.edu/bundler/ Еще поищите книжку Multiple View Geometry in computer vision, там объясняется вся теория. Share this post Link to post Share on other sites
zaza 0 Report post Posted April 30, 2011 Уточню - у меня есть изображения, известны координаты особенностей в пространстве. используя все это, я ведь могу восстановить форму объекта? Вот что лучше для этого использовать? Share this post Link to post Share on other sites
Nuzhny 238 Report post Posted May 1, 2011 То есть тебе надо сделать что-то подобное? 1 Share this post Link to post Share on other sites
zaza 0 Report post Posted May 1, 2011 Да. Что-то такое) Так можно подобное на OpenCV сделать ? Или для визуализации удобнее что-то другое использовать? Share this post Link to post Share on other sites
mrgloom 242 Report post Posted May 31, 2011 Может кто знает, есть ли какие то готовые реализации с нормальным интерфейсом? хотелось бы просто посмотреть как это работает, без собирания\допиливания\прикручивания и т.д. Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted June 5, 2011 Люди! Всем зравствуйте! Помогите мне, пожалуйста! Интересует реконструкция 3D сцен и объектов. В частности построение 3D модели головы человека, по 1-2 фотографиям. Знаю, что такое реально, но никак не могу найти как решают эту задачу! Думала может пойти от модели, ну типо болванки и ее уже как-то подгонять... Может shape from shading использовать... Чесно я в полном замешательстве. Думала, если, например, если 2 фотографии(фас-профиль)- можно сопоставить нос-нос, глаз-глаз и т.д. , но что дальше... Также думала, что может как-то морфинг поможет... В общем, надеюсь на вашу помощь, хотя и понимаю, что наверно все очень пространственно написала. Ну может вы мне хоть что-нибудь подскажите... P.S. Еще такой вопрос:как пользоваться aam? Скачала, но что-то не поняла, что к чему, может существует какой-нибудь help-ик на русском. Всем заранее спасибо! Share this post Link to post Share on other sites
Smorodov 572 Report post Posted June 5, 2011 Я использовал так: Подключил исходники AAM (лежат в аттаче) к проекту, дальше добавил код: AAM_src.rar // Объявляем заголовочники #include "AAM_IC.h" #include "AAM_basic.h" #include "AAM_MovieAVI.h" #include "VJFaceDetect.h" // ..... // void main (void) { // ... // // для тренировки (создание файла my.amf) надо сделать следующее (это было в отдельной функции) { //параметры AAM int type = TYPE_AAM_BASIC; int level = 2; VJfacedetect facedet; facedet.LoadCascade("haarcascade_frontalface_alt2.xml"); file_lists imgFiles = AAM_Common::ScanNSortDirectory("image//", "jpg"); file_lists ptsFiles = AAM_Common::ScanNSortDirectory("image//", "pts"); if(ptsFiles.size() != imgFiles.size()){ fprintf(stderr, "ERROE(%s, %d): #Shapes != #Images\n", __FILE__, __LINE__); ShowMessage("Error"); Close(); } AAM_Pyramid model; model.Build(ptsFiles, imgFiles, type, level); model.BuildDetectMapping(ptsFiles, imgFiles, facedet); model.WriteModel("my.amf"); } // для детекта и вывода результата. { //создаем объекты AAM_Pyramid model; AAM_Shape Shape; int view_mode=2; // маска model.ReadModel("my.amf"); VJfacedetect facedet; facedet.LoadCascade("haarcascade_frontalface_alt2.xml"); while(1) { считать кадр (преобразовать в серый) model.Fit(frame, Shape, кол-во итераций ( штук 10-30) , false); model.Draw(frame, Shape, view_mode - точки, сетка или маска ); нарисовать frame cvWaitKey(10); } } }[/code] Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted June 5, 2011 Большое спасибо! Чуть позже обязательно попробую! Жаль, что с реконструкцией помочь не можете,очень на вас рассчитывала..Видимо не судьба сбыться моей мечте, во всяком случае пока). А вообще хотела сказать, что очень классный форум! Много интересного здесь нашла! Спасибо, что вы есть) Share this post Link to post Share on other sites
Smorodov 572 Report post Posted June 6, 2011 Здесь есть информация по 3D реконструкции с использованием фотометрии (уже писал в теме про распознавание лиц): http://www.cs.washington.edu/homes/kemelmi/ ,правда она на английском. А конкретно здесь: http://www.cs.washington.edu/homes/kemelmi/ProjectPages/Faces/paper.pdf ,здесь: http://www.cs.washington.edu/homes/kemelmi/ProjectPages/Mooney/paper.pdf и здесь: http://www.wisdom.weizmann.ac.il/~vision/photostereo/Photometric%20Stereo%20with%20General%20Unknown%20Lighting%20-%20BasriJacobsKemelmacher_ijcv06.pdf Статейки небольшие, и с картинками Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted June 6, 2011 Ухты! Спасибо! Надо было раньше написать) Да картинки - это всегда плюс!) особенно в англоязычных материалах - так хоть интерес появляется их переводить!) Share this post Link to post Share on other sites
mrgloom 242 Report post Posted June 7, 2011 реконструкция модели из поинт клауда http://www.graphicon.ru/2002/pdf/Emelyanov_En_Re.pdf голова череп http://www.graphicon.ru/2001/Computational_Geometry/Knyaz_Abramov_Zheltov_Stepanyants_Saltykova.pdf 1 Share this post Link to post Share on other sites
mrgloom 242 Report post Posted June 9, 2011 + сюда еще и Photogrammetry до кучи добавим. а программы вроде бы даже и есть целый список Current Suite of Software. http://en.wikipedia.org/wiki/Photogrammetry Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted June 10, 2011 Спасибо Как будут результаты, постараюсь отписаться, но пока мешают другие дела этим вплотную заняться...все навалилось..(( Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted June 24, 2011 Люди добрые, помогите!Не знаю уж сюда или не сюда пишу.. не совсем по теме.. Вопрос про AAM делаю по этому руководству. http://www.isbe.man.ac.uk/~bim/software/am_tools_doc/model_building_from_scratch.html Собственно вопрос: Подскажите, пож-та, кто это уже делал: обязательно ли проходить все шаги, просто у меня срок уже подходит-не успеваю! Или может быть подскажите как для snake в OpenCV задать начальную форму-может проще в данном случае велосипед изобрести? Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted June 24, 2011 Да... я так поняла, что видимо зря я по тому руководству делала.. Просто по аналогии с приведенным выше примером у меня не получатся! Объясните пожалуйста поподробнее!(( Share this post Link to post Share on other sites
Smorodov 572 Report post Posted June 24, 2011 Я так понял, что Вам нужна модель для AAM. Но тогда вопрос, какую библиотеку используете? Если ту, что я прикрепил сверху напишите e-mail, я отправлю модель. Не прикрепил, т.к. она большая (около 40 Мб, если память не подводит). Если AAMlibrary (то, что я прикрепил, это часть оттуда), то с ней идет набор файлов (фотки и разметка + тулза для создания из этого модели) для формирования модели. Поэтому его там и нет. Я бы лучше использовал ASMLibrary, по опыту работает намного лучше. Аналогично, в архиве есть файл в моделью. Есть еще Stasm на основе которой построена ASMlibrary, но она работает похуже. Однако на сайте есть документация с картинками по всему этому делу, правда на английском языке. Самостоятельное обучение ASM и AAM, задача очень трудоемкая, т.к. нужно разметить несколько тысяч фотографий вручную (обычно используется от 20 до 68 точек). И еще есть большой китайский склад исходников: www.pudn.com (англ. язык можно включить сверху справа). Там много интересного можно найти. Правда нужно сначала загрузить туда несколько своих файлов. И получите эккаунт. Share this post Link to post Share on other sites
Smorodov 572 Report post Posted July 5, 2011 Система 3D восприятия для мобильных роботов (язык C#) http://code.google.com/p/sentience/ Share this post Link to post Share on other sites
bluebyte 1 Report post Posted July 6, 2011 Занимаюсь учебной задачей. Необходимо построить карту относительных расстояний до объектов сцены по двум фотографиям, сделанным на небольшом расстояние друг от друга. Допустим с поиском объектов, и векторами их смещений я разобрался. Но так как никогда ранее ничем подобным не занимался, то теоретических знаний не хватает. Что делать с векторами дальше представляю смутно. Одна попытка не привела к правильным результатам. Собственно обращаюсь к участникам форума с просьбой помочь разобраться в этом вопросе. Но при этом готовые решения не сильно интересуют, хочется дойти до всего самому. Ищу, что почитать по этой теме - книги, статьи (желательно что-то конкретное, а не "читай учебники по оптической геометрии" Может были соответствующие обсуждения где-то... 1 Share this post Link to post Share on other sites
Smorodov 572 Report post Posted July 6, 2011 Здесь близкие темы: http://www.compvision.ru/forum/index.php?showtopic=423 http://www.compvision.ru/forum/index.php?showtopic=529 http://www.compvision.ru/forum/index.php?showtopic=325 Одна из книг, на которую почти все ссылаются когда речь идет о геометрии в машинном зрении: Multiple View Geometry in computer vision Авторы Richard Hartley и Andrew Zisserman 1 Share this post Link to post Share on other sites
DiplomNeed 0 Report post Posted July 6, 2011 Большое спасибо за ответы. Хотела использовать библиотеку OpenCV, я так понимаю мне подходит и AAMlibrary и ASMLibrary. Тогда по вашему совету обращусь к ASMLibrary. Извините, что так долго не отвечала, мне прям стыдно( Share this post Link to post Share on other sites