AVCR_zakladni_znacka_CZ_black.jpg facebook.png twitter.png linkedIn.png
     

 



Software PSto3D - Software pro tvorbu digitálních 3D modelů

J. Valach, P. Beneš, 2019

Výstup NAKI projektu # DG16P02M022.

 

1.  Očekávaný přínos aplikace PSto3D

Jak název napovídá, fotometrické stereo je optická metoda využívající principy měření intenzity světla k určení prostorového tvaru tělesa. Souvisí se zákonitostmi, které využívá i lidské oko k vnímání plastické modelace okolních předmětů spojené se stínováním jejich povrchu v závislosti na úhlu, který svírá normála povrchu se směrem dopadajícího světla. Metoda se tedy liší od nejběžnějších metod založených na stereoskopickém vidění zaznamenávajícím studované těleso alespoň dvěma kamerami. Mimo jednoduchost technické implementace principu metody přispívá k její atraktivitě i možnost proměnlivé citlivosti dané změnou geometrie osvětlení scény. Z tohoto důvodu by využití metody pro kategorii reliéfních objektů mohlo být přínosem pro dokumentaci sbírkových předmětů. Do kategorie reliéfních předmětů patří například mince, pečeti, fosilie, slepá ražba a textura papíru a v neposlední řadě také klínopisné tabulky.

Předkládaná aplikace je zamýšlena především jako softwarový nástroj ke zpracování sad fotografií pořízených prostřednictvím duálního digitizátoru (popsaného například zde: http://hdl.handle.net/11104/0289130), ale současně má ambice posloužit i pro účely rekonstrukce povrchů objektů zdokumentovaných jiným způsobem následujícím požadavky fotometrického sterea.

2.  Popis aplikace

Aplikace je předkládána jako skript příkazů a balík funkcí pro prostředí rozsáhlých technických výpočtů MATLAB. Ponechání aplikace ve formě skriptu volajícího funkce, umožňuje uživateli přizpůsobení aplikace pro vlastní potřeby, případně zahrnout některé vybrané funkce do vlastního uživatelova programu.

  1. Poté, co uživatel uvede adresář s umístěním obrázků, tedy jeho vstupních dat, je vyzván poskytnout doplňkové informace o výběru podmnožiny obrázků, které budou do rekonstrukce zahrnuty. Ty jsou pak načteny do paměti spolu s informacemi o geometrii osvětlení.
  2. V dalším kroku se určí, zda bude vytvořena a použita maska, která omezí výpočet pouze na zkoumaný předmět a vynechá pozadí. Využití masky může výrazně zrychlit rekonstrukci, obzvláště pokud těleso zabírá malý zlomek obrazové plochy. (V chystané druhé verzi aplikace bude následovat krok, který vybere vhodné obrázky pro každý obrazový pixel zvlášť, a to s cílem eliminovat ty, kde je pixel ve stínu, ale i ty, kde vrhá přímý odlesk do objektivu.)
  3. Jednou z vlastností metody fotmetrického sterea je, že vypočtená 3D topografie povrchu platí až na neznámý multiplikativní faktor. Proto musí tento faktor před započetím skutečného výstupu uživatel poskytnout. Toho může docílit zadáním skutečných známých rozměrů obrazu a výšky objektu v milimetrech. Jako alternativa je nabízeno i druhé řešení: pro usnadnění a zvýšení míry automatizace je možné vložit do záběru i kalibrační tělísko (zde kužel o průměru základny 9.5 a výšce od základny k vrcholu 3 milimetry). Vzhledem k jeho kruhovému tvaru se od uživatele očekává, že označí tři body na obvodu základny. Zbytek úkonů nutných k přepočtu a kalibrování obrázků provede program automaticky. (Pozn.: tento krok má logicky následovat až po výpočtu sklonů povrchu a jeho topografie, ale s ohledem na časovou náročnost výpočtu topografie je vhodnější, aby nejdříve uživatel zadal všechny příslušné vstupní hodnoty a pak již jen čekal na ukončení výpočtu, do kterého nemusí dále zasahovat.)
  4. Ačkoli autoři programu již dříve používali vlastní procedury na výpočet topografie založené na Kovesiho postupu i na Frankot – Chellappově metodě, rozhodli se implementovat balík funkcí pro fotometrické stereo sdílených pod CC licencní Xiuming Zhang-em z National Univ. of Singapore. Alternativní přístup k výpočtu založený na Frankot-Chellappovi bude integrován do balíku v plánované druhé verzi aplikace.  https://github.com/xiumingzhang/photometric-stereo.
    image002.png
  5. Vypočtená topografie je v dalším kroku zobrazena jako 3D plocha potažená skutečnou texturou povrchu a jsou uložena data. Spolu s tímto výstupem je vytvořen i soubor o formátu „.stl“. (V plánované budoucí verzi bude přidán i výstup do „.obj“, což je jiný 3D formát zahrnující i texturu povrchu. Tímto krokem program končí.

3.  Schematické vyjádření struktury programu vývojovým diagramem

Vývojový diagram ukazuje členění programu na několik na sebe navazujících funkčních celků.

image004.jpg

4.  Vstupní a výstupní data a jejich formáty

Jak bylo uvedeno výše, hlavním vstupem je sada obrázků digitalizovaného předmětu získaných v souladu s požadavky metody fotometrické stereo.

image006.jpg
Ukázka sady devíti obrázků s kalibračním kuželem, které byly pořízeny v odlišném osvětlení scény. Pro urychlení výpočtů se program soustřeďuje pouze na objekt a kalibrační těleso na základě (vypočtené) masky. Finální textura je potom získána z červeně rámovaného obrázku, který vzniknul při zapojení všech světel naráz.

K této sadě obrázků se předpokládá existence definičního souboru vektorů vyjadřujících směry světel.

Použité procedury v prvním kroku vypočtou sklony povrchů a ve druhém topografii, jak ukazuje ilustrativní obrázek níže:

image008.jpg image010.png
Rekonstrukce sklonů povrchových normál na povrchu kódovaná do barevných RGB komponent obrázku Rekonstrukce topografie tabulky. Výška nad vodorovnou základnou je určena odstínem šedé

Pro zvýraznění povrchového členění je při zobrazení výsledků použito simulované osvětlení povrchu potaženého texturou:

image012.jpg
Topografie povrchu obohacená texturou a simulovaným směrovým světlem

Spočtená data jsou uživateli také k dispozici ve formátu „.stl“, aby je mohl snadno sdílet s dalšími lidmi.

image014.jpg
Ukázka zobrazení vypočtené topografie v programu čtoucím soubory ve formátu .stl

5.  Poznámky k distribuci aplikace

Aplikace je na dedikované webové stránce umístěná ke stažení v podobě zazipovaného souboru PSto3D.zip.

Níže uvedené soubory se rozbalí do zvoleného adresáře.

compute_heightMap.m
compute_surfNorm.m
README.md
readme.txt
RUN_ps.m
show_surfNorm.m
tga_read_header.m
tga_read_image.m
tga_toolbox_license.txt
xyz_2_stl.m

Skript MATLABu RUN_ps.m spustí výpočet.

 

Uživatelé mohou tuto aplikaci používat podle zásad CC licence nebo BSD 2-Clause “Simplified” License.