Nacházíte se zde: Rhino3D.cz > Články > Zásuvné moduly > RhinoPhoto - 3D digitalizace pomocí fotoaparátu


RhinoPhoto - 3D digitalizace pomocí fotoaparátu

Publikováno: 22.2.2010 | Autor: Jan Slanina | Rubrika: Zásuvné moduly | Komentáře: 2 - Doporučit

Ikona3D digitalizace skutečného objektu do podoby počítačového modelu je tvrdý oříšek. Existují sice 3D digitizéry nebo skenery, kvůli obrovské ceně jsou ale často pro běžného smrtelníka nedosažitelné. Zásuvný modul RhinoPhoto jde na věc úplně jinak a kromě něj k digitalizaci potřebujete jenom to, co už většinou stejně máte - digitální fotoaparát s rozlišením alespoň 5 mpix. Takže foťák do ruky a jdeme na to!

Automatická rekonstrukce 3D bodů - jak to funguje?

Rhinophoto automaticky vytváří 3D body ze sady fotografií objektu s nalepenými kódovými terčíky. Je to skutečně tak jednoduché, jak jednoduše to zní. Na objekt nalepíte speciální kódované terčíky (ty si vytisknete na samolepicí papír nebo je zakoupíte u výrobce), vyfotíte jej z několika úhlů, obrázky nahrajete do nějakého adresáře, řeknete modulu RhinoPhoto kde tento adresář je a on vám z fotek vygeneruje 3D body.

Terčíky vypadají třeba takto:

Coded target Coded target

Tvar každého terčíku odpovídá určitému číslu. Toto číslo načte Rhinophoto z fotografie a automaticky vytvoří 2D bod na obrázku ve středu terčíku.

Poté Rhinophoto vypočítá 3D pozice bodů z jednotlivých 2D bodů ze všech obrázků a vytvoří 3D body v Rhinu. Podívejte se na video "How to modelize a Car Hood with Rhinophoto" a bude vám vše jasné.

Postup digitalizace

1 - Umístěte kódový terčík na reálný objekt do každého bodu, který chcete digitalizovat (při 50 terčících - což je 100 bodů - tato práce zabere cca. 10 minut)

RhinoPhoto - 3D digitalizace - umístění terčíků na objekt

2 - Umístěte speciální kódové terčíky představující počátek a jednu z os.

RhinoPhoto - umístění terčíku počátku os

3 - Pořiďte sérii fotografií objektu s terčíky z různých úhlů a nakopírujte tyto fotografie do připravené prázdné složky (dalších cca. 5 minut)

RhinoPhoto - různé fotografie objektu

4 - Spusťte Rhino a poté spusťte příkaz Rhinophoto a nahrejte fotku ze seznamu.

RhinoPhoto - automatické generování 3D bodů

5 - A je to hotovo! Vše je automatické, po provedení výpočtů (čas závisí na počtu obrázků, většinou je to několik minut) vytvoří Rhinophoto v Rhinu 3D body.

RhinoPhoto - 3D body v Rhinu

6 - Nyní můžete z 3D bodů vymodelovat plochy pomocí standardních příkazů Rhina. Můžete použít například příkaz Plát (Patch) pro proložení bodů plochou nebo můžete skrz charakteristické linie bodů proložit křivky a tyto křivky využít opět jako vstup standardních příkazů Rhina, například SíťKřivek (NetworkSrf), Táhnout1 (Sweep1), Táhnout2 (Sweep2) apod.

RhinoPhoto - plocha vymodelovaná příkazem Plát

Otázky a odpovědi

1. Jaká je minimální velikost digitalizované součásti?

Minimální velikost součásti je dána velikostí terčíků, které na součást musíte nalepit. Obecně lze říci, že tato metoda není vhodná pro součásti menší než cca. 10 x 10 x 10 cm.

2. Jaká je maximální velikost digitalizované součásti?

Reálné omezení maximální velikosti digitalizované součásti neexistuje, pouze jde o to, že kódové terčíky musí být na součásti viditelné a na fotografii musí být "čitelné". Pokud vytisknete a nalepíte na součást velké kódové terčíky a pokud na fotografii bude mít černá tečka uprostřed terčíku průměr alespoň 6 pixelů (obrazových bodů), pak z těchto snímků dokáže Rhinophoto scénu zrekonstruovat.

Výrobce uvádí úspešnou digitalizaci součásti o rozměrech 15 x 3 metry.

3. Je nějak omezen maximální počet fotografií součásti?

Ne, teoreticky není, ale limitem může být paměť vašeho PC. Výrobce provedl úspěšné testy s 200 fotografiemi na PC s Win XP a 2GB RAM.

4. Kolik terčíků mohu použít v jenom projektu?

Počet terčíků je omezen použitým kódováním. Standardní verze Rhinophoto používá 14 bitové kódové štítky.

RhinoPhoto - 14bitové kódování

14bitové kódování teoreticky poskytuje 16384 variant ale protože Rhinophoto načítá terčíky v jakýchkoliv pozicích, máte při použití 14bitového kódování reálně k dispozici 1181 různých variant.

Terčíky mohou být kódovány od 8 do 17 bitů.

Tím máte k dispozici maximálně :

  • 35 různých terčíků při 8bitovém kódování
  • 59 různých terčíků při 9bitovém kódování
  • 107 různých terčíků při 10bitovém kódování
  • 187 různých terčíků při 11bitovém kódování
  • 351 různých terčíků při 12bitovém kódování
  • 631 různých terčíků při 13bitovém kódování
  • 1181 různých terčíků při 14bitovém kódování
  • 2191 různých terčíků při 15bitovém kódování
  • 4115 různých terčíků při 16bitovém kódování
  • 7711 různých terčíků při 17bitovém kódování

Poznámky:

  • Čím vyšší počet bitů, tím obtížnější je dekódování, například terčíky s 16bitovým kódováním se z fotografie načítají obtížněji než terčíky s 14bitovým kódováním.
  • Počet nekódovaných terčíků není nijak omezen

5. Jak je to s přesností?

Přesnost je relativní vzhledem k velikosti součásti.

Přesnost 3D rekonstrukce závisí na několika faktorech:

  • Rozlišení digitálního fotoaparátu a kvalita objektivu
  • Kvalita kalibrace kamery
  • Počet fotografií (více fotografií znamená vyšší přesnost).
  • Počet terčíůk umístěných na digitalizované součásti (více terčíků znamená vyšší přesnost).

Podle testů výrobce se přesnost pohybuje v rozmezí 5/10005/10000 v závislosti na fotoaparátu a objektivu.

Například na ocelové kostce o rozměrech 100 x 100 x 100 mm bylo umístěno 40 terčíků a bylo pořízeno 17 fotografií. Po provedení digitalizace a následné analýze bylo zjištěno, že maximální chyba je 0.038 mm, střední chyba 0.013 mm( více na této stránce).

6. Mohu využít svůj fotoaparát pro digitalizaci?

Teoreticky ano, pokud není příliš starý a jeho senzor má alespoň 5 Megapixelů (Rhinophoto nemůže načítat terčíky z fotografií s méně než 5 MP).Pak by takový digitální fotoaparát měl být s Rhinophoto použitelný, ale pokud vezmeme v úvahu, jakým tempem roste počet fotoaparátů na světovém trhu, není v našich silách otestovat je všechny, nebo alespoň zaručit, že vám váš přístroj poskytne požadovanou přesnost.

Pro použití bez kalibrace je nezbytné, aby váš přístroj dokázal do každého obrázku zaznamenat určitá “EXIF” data (pokud víme, všechny “moderní” aparáty EXIF data zaznamenávají).

Pokud by tomu tak nebylo, je nezbytné spustit na počátku kalibrační proceduru a ověřit data, vypočtená softwarem. Tato data pak budou zapsána do konfiguračního souboru a budou automaticky používána.

Další informace o EXIF datech najdete na následujícím webu: Exchangeable image spins format, 20. září 2006, Wikipedie: http://en.wikipedia.org/wiki/EXIF.

Poznámka: pro dosažení slušné přesnosti doporučujeme SLR fotoaparát s minimálním rozlišením 6Mpixelů.

7. Mohu použít více fotoaparátů?

Rhinophoto pracuje s neomezeným počtem fotoaparátů.Rhinophoto automaticaky vyhledá existující kalibrační soubor pro dané aparáty v databázi. Pokud kalibrační soubor nenajde, použije automaticky data aparátu uložená v EXIF datech každého snímku. V toto případě bude přesnost nižší, ale dostanete alespoň odhad polohy 3D bodů.

8. Mohu mezi pořízením jednotlivých fotografií v jednom projektu zoomovat?

Ne, momentálně nemůžete mezi jednotlivými fotografiemi měnit zoom.

Je tedy nutné, abyste ve všech snímcích použili přesně stejný zoom, jako při kalibraci kamery (obvykle je to ten nejnižší zoom).

Příklad použití - digitalizace kapoty automobilu

Všimněte si, že terčíky nebyly na kapotu umístěny náhodně, ale s pomocí nalepených nití tvoří souvislé křivky, které lze v Rhinu snadno rekonstruovat proložením digitalizovaných bodů křivkou. To je obrovská výhoda oproti klasické 3D digitalizaci, kdy je výsledkem chaotická změť miliónů bodů, které se velmi obtížně převádí na plochy. Takto si můžete při troše šikovnosti a přemýšlení zdigitalizovat charakteristické linie objektu a objekt pak rovnou vymodelovat pomocí těchto křivek v Rhinu.

Digitalizace audi s RhinoPhoto - obrázek 01

Digitalizace audi s RhinoPhoto - obrázek 02

Digitalizace audi s RhinoPhoto - obrázek 03

Digitalizace audi s RhinoPhoto - obrázek 04

Tyto fotografie byly automaticky zpracovány v Rhinu pluginem RhinoPhoto a výsledkem byly následující 3D body. Nejprve byly hraniční body proloženy křivkou a poté byla na tyto křivky a všechny body aplikována funkce Plát.

RhinoPhoto - digitalizace bodů 01

RhinoPhoto - digitalizace bodů 02

RhinoPhoto - digitalizace bodů 03

RhinoPhoto - digitalizace bodů 04
Na posledním obrázku si všimněte přesnosti, s jakou plocha aproximuje body - odchylka (zjištěná příkazem OdchylkaBodů), se pohybuje v naprosté většině do 0.1 mm (střední vzdálenost je 0.035 mm), v nejhorším případě je to cca. 0.3 mm, což je na objekt velikosti kapoty automobilu myslím slušná hodnota...

Nakonec jsem zkusil dát do pozadí okna Rhina jednu z fotek a výslednou plochu jsem na ni zkusil napasovat - není to ještě úplně ideální a chtělo by to ještě chvíli trpělivosti a experimentů s ohniskovou vzdáleností a s nastavováním správného pohledu, ale je vidět, že plocha je opravdu velice věrná originálu. Žluté tečky jsou zdigitalizované body v Rhinu, pod nimi na ftce prosvítají černé terčíky, nalepené na kapotě auta:

Výsledek - zdigitalizovaná kapota auta

Mimochodem už jsme se s výrobcem dohodli na lokalizaci tohoto pluginu do češtiny a připravujeme jeho distribuci. Cena komerční licence je 895€, studentská licence stojí 195€.

Související odkazy

Nahoru ↑

Diskuse k článku

  • [2] lubos – 02. 09. 2010, 11:40

    reagovat

    taky bych rekl, ze je to zajimavy plugin, jen z meho pohledu velika skoda, ze se nehodi pro male objekty, rekl bych taky, ze bude mit problemy v rozpoznavani malych polomeru diky velikosti tercu. Treba by se ta technologie dala modifikovat pro male terce, pak by to bylo zajimavejsi :)

  • [1] martincg20. 04. 2010, 14:20

    reagovat

    zaujimavy plugin. to musi byt celkom heroicky vykon polepit tu karu a potom to davat dole... celkovo je to vhodne asi len na velke objekty /plochy/, alebo? kde sa to v praxi pouziva ?, alebo je tohto plugu nejaky medzikrok k nieco mu vacsiemu ? /pri autach su blueprinty, tak tam bude asi rychlejsie zmodelovat to podla nich/