INHOUDSOPGAWE:

3D -rekonstruksie uit 'n enkele foto: 8 stappe
3D -rekonstruksie uit 'n enkele foto: 8 stappe

Video: 3D -rekonstruksie uit 'n enkele foto: 8 stappe

Video: 3D -rekonstruksie uit 'n enkele foto: 8 stappe
Video: Секрет "невозможных" статуй из мрамора 2024, November
Anonim
3D -rekonstruksie uit 'n enkele foto
3D -rekonstruksie uit 'n enkele foto
3D -rekonstruksie uit 'n enkele foto
3D -rekonstruksie uit 'n enkele foto

Die taak van 3D -rekonstruksie hou gewoonlik verband met binokulêre visie. U kan ook 'n enkele kamera om die voorwerp beweeg. As die vorm van die voorwerp intussen bekend is, kan die taak uit 'n enkele foto opgelos word. Dit is dat u net een kamera het en dit beweeg nie. Kom ons kyk hoe u dit stap vir stap kan doen. Ons sal Rubik's Cube gebruik omdat dit goed gestandaardiseer is en 'n ryk reeks funksies het. Dit kan beskou word as 'n baie eenvoudige voorwerp en tegelyk 'n ingewikkelde konstruksie. Masjienvisie moet dus aansienlike struikelblokke oortref om die taak te voltooi.

Stap 1: Evalueer die kompleksiteit van die taak

Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak
Evalueer die kompleksiteit van die taak

Met die eerste oogopslag is die taak eenvoudig. Vind die sentrale knoop waar drie rande van die kubus bymekaar kom en teken hierdie rande. Uit hul koördinate is dit moontlik om die afstand van die kamera en rotasiehoeke te bereken. Die probleem is dat hierdie reëls nie bestaan nie. Uit die linkerbeeld sien jy dat elke rand deur twee parallelle lyne voorgestel word. Verder toon die prentjie regs bo dat elkeen in drie segmente verdeel is. As ons 'n variant van die gewilde Hough -transform gebruik wat lynsegmente kan opspoor, voer dit die taak uit met 'n paar foute wat die opsporing van die sentrale knoop onmoontlik maak. As die punte mekaar nie bereik nie, is daar geen enkele punt nie. As die opsporing die einde oorskry, sal dit soos die knoop in die middel van die rand lyk, soos u op die 2 oorblywende beelde sien.

Stap 2: vind die regte benadering

Vind die regte benadering
Vind die regte benadering

As te veel besonderhede deterministiese algoritmes onwerkbaar maak, is dit tyd om 'n waarskynlikheidsbenadering te oorweeg. As ons die gemiddelde parameters van die beeld bereken, word die foute aansienlik verminder, en paradoksaal genoeg blyk die metode meer betroubaar te wees. Die standaard Hough -transform lewer nie lynsegmente nie. Slegs die helling theta en die afstand rho van die koördinaat oorsprong. Hulle vorm die deel van die Hough -ruimte waarvan hierbo getoon word. Hier kom theta ooreen met die horisontale as. Helder kolle dui moontlike lyne op die prent aan. Let op dat verskeie sulke plekke bo mekaar geleë is. Geen wonder nie, op ons beeld is daar baie parallelle lyne. Hulle het dieselfde theta en verskillende rho.

Stap 3: Bereken Theta Histogram

Bereken Theta Histogram
Bereken Theta Histogram

Kom ons ontdek sulke trosse. Vir hierdie doel vat ons die lesings vir alle kolletjies in die Hough -ruimte op met dieselfde theta. U sien die ooreenstemmende histogram op die illustrasie. 'N Paar aantekeninge oor metings. As u met beelde in pixelkoördinate werk, gaan die X -as soos gewoonlik, maar Y wys afwaarts sodat die koördinaat -oorsprong in die linker boonste hoek is en die theta van die X -as met die kloksgewys gemeet moet word. Hou in gedagte dat die hele sweep van theta op die foto 180 grade is, en u kan ongeveer seker maak dat 3 groot pieke 3 oorheersende hange op die beeld verteenwoordig.

Stap 4: Bereken Rho Histogram

Bereken Rho Histogram
Bereken Rho Histogram

Noudat ons drie hoofgroepe van parallelle lyne ken, laat ons lyne binne elkeen van hulle skei. Ons kan dieselfde benadering herhaal. Kom ons neem 'n kolom uit die Hough -ruimte wat ooreenstem met een piek op die theta -histogram. Vervolgens sal ons nog 'n histogram bereken waar die X -as rho -waarde en Y -opgesomde lesings vir hierdie rho voorstel. Dit is duidelik dat die som minder sal wees, so hierdie grafiek is nie so glad nie. Tog is pieke duidelik sigbaar en die aantal (7) stem presies ooreen met die aantal parallelle lyne op die bronbeeld. Ongelukkig is nie al die kaarte so perfek nie, maar die beginsel is duidelik.

Stap 5: Vind die sentrale knoop

Vind die sentrale knoop
Vind die sentrale knoop

As ons die sentrale piek op rho histogram vir elke theta neem, kry ons 3 lyne wat rooi op die prentjie is. Hul kruising dui die nodige punt aan.

Stap 6: Kies uit 2 alternatiewe

Kies uit 2 alternatiewe
Kies uit 2 alternatiewe
Kies uit 2 alternatiewe
Kies uit 2 alternatiewe

U sien dat elke lyn van die sentrale punt in beide rigtings gaan. Hoe om die regte helfte te bepaal? Kom ons neem theta3. Gestel ons neem die onderste gedeelte van hierdie lyn. Kom ons bereken nog 'n Hough -spasie slegs vir die deel van die prent van 2 groen lyne tot in die regter boonste hoek van die prent. Skep dan die theta -histogram daarvoor. U sien dat die derde piek heeltemal verdwyn het, so ons het die regte keuse gemaak.

Stap 7: Bepaal die eksterne hoeke

Bepaal die eksterne hoeke
Bepaal die eksterne hoeke

Nou kan ons die eerste en die laaste piek op rho histogramme gebruik om blou lyne te trek wat die rooi rande sny en die res hoeke merk. Die taak is opgelos.

Stap 8: Probeer dit in die praktyk

Die illustrasies vir hierdie Instructable is gemaak met Perception 1.0. Dit is gratis sagteware wat OpenCV gebruik - 'n kragtige biblioteek vir rekenaarvisie. Dit kan ook gekoppel wees aan WinNB, wat in my ander Instructable gebruik is, en bied dus visievermoë vir robotika. U kan albei programme van nbsite aflaai. Vir installasie, voer die afgelaaide exe -lêer uit. Later kan u dit verwyder met die standaardgereedskap van Windows. Die webwerf bevat ook bronne oor rekenaarvisie en verwante onderwerpe. In Perception vind u die beskrewe metode van 3D -rekonstruksie sowel as vele ander. Die voordeel van hierdie program is dat dit die finale uitslag saam met intermediêre data lewer. U kan ondersoek instel na hoe rekenaarvisie werk sonder om 'n programmeerder te wees. Wat invoer betref, het elke metode spesiaal tipiese monsters gekies. U kan natuurlik ook u eie gebruik. Dit is moontlik om beelde van 'n lêer of vanaf die rekenaar se kamera in te voer. Kontak my gerus vir enige vrae of voorstelle.

Aanbeveel: