Съдържание:

3D реконструкция от една снимка: 8 стъпки
3D реконструкция от една снимка: 8 стъпки

Видео: 3D реконструкция от една снимка: 8 стъпки

Видео: 3D реконструкция от една снимка: 8 стъпки
Видео: Секрет "невозможных" статуй из мрамора 2024, Юли
Anonim
3D реконструкция от една снимка
3D реконструкция от една снимка
3D реконструкция от една снимка
3D реконструкция от една снимка

Задачата на 3D реконструкция обикновено се свързва с бинокулярно зрение. Като алтернатива можете да преместите една камера около обекта. Междувременно, ако формата на обекта е известна, задачата може да се реши от една снимка. Това означава, че имате само една камера и тя не се движи. Нека да разгледаме как да го направим стъпка по стъпка. Ще използваме Rubik's Cube, защото той е добре стандартизиран и има богат набор от функции. Може да се разглежда като много прост обект и едновременно сложна конструкция. Така че машинното зрение трябва да надмине значителни препятствия, за да изпълни задачата.

Стъпка 1: Оценете сложността на задачата

Оценете сложността на задачата
Оценете сложността на задачата
Оценете сложността на задачата
Оценете сложността на задачата
Оценете сложността на задачата
Оценете сложността на задачата
Оценете сложността на задачата
Оценете сложността на задачата

На пръв поглед задачата е проста. Намерете централния възел, където 3 ръба на куба се събират и нарисувайте тези ръбове. От техните координати е възможно да се изчисли разстоянието от камерата и ъглите на въртене. Проблемът е, че тези редове не съществуват. От лявото изображение виждате, че всеки ръб е представен от 2 паралелни линии. Освен това горната дясна снимка показва, че всеки от тях е разделен на 3 сегмента. Освен това, ако приложим вариант на популярната трансформация на Hough, която може да открива сегменти на линия, тя изпълнява задачата с някои грешки, които правят невъзможно откриването на централния възел. Ако краищата не достигат един до друг, няма нито една точка. Ако откриването надвиши края, то ще изглежда като възел в средата на ръба, както виждате на останалите 2 изображения.

Стъпка 2: Намерете правилния подход

Намерете правилния подход
Намерете правилния подход

Когато твърде много детайли правят детерминираните алгоритми неработещи, е време да помислим за вероятностния подход. Ако изчислим усреднените параметри на изображението, техните грешки ще бъдат значително намалени и парадоксално методът ще се окаже по -надежден. Стандартната трансформация на Hough не извежда сегменти на линия. Само неговият наклон тета и разстоянието rho от началото на координатите. Те образуват пространството Hough, част от което е показано по -горе. Тук тета съответства на хоризонталната ос. Ярки петна маркират възможни линии на изображението. Имайте предвид, че няколко такива петна са разположени едно над друго. Нищо чудно, че на нашето изображение има много успоредни линии. Те имат една и съща тета и различно ро.

Стъпка 3: Изчислете Theta хистограма

Изчислете Тета хистограма
Изчислете Тета хистограма

Нека открием такива клъстери. За тази цел ще обобщим показанията за всички точки в пространството Hough със същата тета. Виждате съответната хистограма на илюстрацията. Няколко бележки за измерванията. Когато работите с изображения в пикселни координати, оста X върви както обикновено, но Y сочи надолу, така че началото на координатите е горният ляв ъгъл и тета трябва да се измерва от оста X по часовниковата стрелка. Имайки предвид, че целият размах на тета върху картината е 180 градуса, можете приблизително да проверите дали 3 големи върха представляват 3 преобладаващи наклона на изображението.

Стъпка 4: Изчислете Rho хистограма

Изчислете Rho хистограма
Изчислете Rho хистограма

Сега, когато знаем 3 основни клъстера от успоредни линии, нека отделим линии във всяка от тях. Можем да повторим същия подход. Нека вземем колона от пространството Hough, която съответства на един връх на тета хистограмата. След това ще изчислим друга хистограма, където оста X представлява rho стойност и Y - обобщени показания за това rho. Очевидно сумата ще бъде по -малка, така че тази диаграма не е толкова гладка. Независимо от това, върховете са ясно видими и броят им (7) точно съответства на броя на паралелните линии на изходното изображение. За съжаление не всички класации са толкова перфектни, но принципът е ясен.

Стъпка 5: Намерете централния възел

Намерете централния възел
Намерете централния възел

Ако вземем централния връх на rho хистограма за всяка тета, ще получим 3 реда, които са червени на снимката. Тяхното пресичане маркира необходимата точка.

Стъпка 6: Изберете от 2 алтернативи

Изберете от 2 алтернативи
Изберете от 2 алтернативи
Изберете от 2 алтернативи
Изберете от 2 алтернативи

Виждате, че всяка линия върви от централната точка в двете посоки. Как да определим правилната половина? Да вземем theta3. Да предположим, че вземаме долната част на тази линия. Нека изчислим още едно пространство за Hough само за частта на картината от 2 зелени линии до горния десен ъгъл на изображението. След това създайте тета хистограма за него. Виждате, че третият връх изчезна напълно, така че направихме правилния избор.

Стъпка 7: Определете външните ъгли

Определете външните ъгли
Определете външните ъгли

Сега можем да използваме първия и последния връх на rho хистограмите, за да нарисуваме сини линии, които изрязват червените ръбове и маркират останалите ъгли. Задачата е решена.

Стъпка 8: Опитайте на практика

Илюстрациите за тази инструкция са създадени с помощта на Perception 1.0. Това е безплатен софтуер, който използва OpenCV - мощна библиотека за компютърно зрение. Също така може да бъде свързан с WinNB, който беше използван в моя друг Instructable, като по този начин осигурява възможност за зрение за роботика. Можете да изтеглите и двете програми от nbsite. За инсталация просто стартирайте изтегления exe файл. По -късно можете да го премахнете с помощта на стандартния инструмент на Windows. Сайтът съдържа и ресурси за компютърното зрение и сродни теми. В Perception ще намерите описания метод за 3D реконструкция, както и много други. Предимството на тази програма е, че тя извежда крайния резултат заедно с междинни данни. Можете да изследвате как работи компютърното зрение, без да сте програмист. Що се отнася до въвеждането, всеки метод има специално подбрани типични проби. Разбира се, можете да използвате и своя собствена. Възможно е въвеждане на изображения от файл или от камерата на компютъра. Чувствайте се свободни да се свържете с мен с всякакви въпроси или предложения.

Препоръчано: