Často kladené otázky#
Obecné otázky#
Čím je CMUcam1 jedinečná?#
Tradičně jsou k zachycení a zpracování obrázků z kamery potřeba rychlé počítače. Rovněž je nutné napsat software k provedení tohoto zpracování. Kvůli tomu je obtížné používat zrak jako senzor v jednoduchých systémech.
Vizuální systém CMUcam1 používá rychlý levný mikrokontrolér ke zvládnutí veškerého vysokorychlostního zpracování dat z kamery a obsahuje software pro provádění jednoduchých úloh vidění. Protože se uživatel může rozhodnout vydávat z vizuálního systému pouze vysokoúrovňové informace s nízkou šířkou pásma, jako například že červený objekt je na pozici X-Y, je pro jednoduchý procesor, jako je mikrokontrolér PIC, možné tato data číst a řídit malého robota v úlohách, jako je honění barevného míče. Vizuální systém CMUcam1 umožňuje ignorovat složitost propojení kamery a používat vidění stejně jako jakýkoli jiný senzor (např. sonar) často používaný v robotických systémech.
Jaká je snímková frekvence CMUcam1?#
Nejrychlejší snímková frekvence je 16,7 snímků za sekundu. To znamená, že CMUcam1 vám může sdělit polohu objektu asi 17krát za sekundu. Pomocí sériového softwarového protokolu to můžete v případě potřeby zpomalit.
Jaké přenosové rychlosti CMUcam1 podporuje?#
Od nejnovější verze firmwaru (v1.12) může CMUcam1 komunikovat přenosovými rychlostmi 9600, 19200, 38400 nebo 115200. Přenosová rychlost se vybírá pomocí nastavení propojek na desce.
Jak upgraduji firmware své CMUcam1?#
Pokud aktuálně používáte firmware v1.11, není důvod k upgradu, pokud nepotřebujete podporu pro nižší přenosové rychlosti. Verze 1.11 podporuje 38400 a 115200 baudů. Verze 1.12 podporuje tyto přenosové rychlosti a přidává podporu pro 9600 a 19200 baudů. K upgradu firmwaru budete muset přeprogramovat flash paměť v čipu procesoru. Pokud máte programátor, můžete si stáhnout aktuální verzi z naší stránky Soubory ke stažení a přeflashovat procesor sami.
Funguje CMUcam1 venku?#
CMUcam1 funguje venku, ale ne na přímém slunci. CMOS kamera, kterou používáme, nemá vysoce kvalitní IR filtr, a tak sluneční světlo saturuje červené pixely a obraz se na přímém slunci stává v podstatě monochromatickým. Je možné přidat externí filtr pro zlepšení venkovního provozu. Máme krátký zápis, který vám ukazuje, jak světelné podmínky ovlivňují CMUcam1, který si můžete stáhnout zde.
Mohu napsat vlastní kód pro CMUcam1?#
Zajisté. Chcete-li to provést, požádejte nás o zdrojový kód firmwaru, objednejte si programovací prostředí C pro čip Ubicom a pusťte se do toho. Když vám pošleme zdrojový kód firmwaru, zašleme vám také shrnutí struktury kódu a informace o programovacím prostředí, které používáme.
Kolik energie CMUcam1 spotřebuje?#
Kompletní systém spotřebovává asi 200 miliampérů.
Jaké je zorné pole CMUcam1?#
To závisí na objektivu, který nasadíte na CMOS kameru. Pokud si objednáte CMOS kameru tak, jak se standardně prodává, získáte zorné pole přibližně 25 stupňů, které je relativně úzké. Při objednávce CMOS kamery si však můžete na zakázku objednat širokoúhlé objektivy.
Jaký procesor používá CMUcam1?#
Náš kód pro zpracování obrazu je umístěn na čipu mikrokontroléru od Ubicom běžícím na 75 MHz, SX28AC. Tento čip čte všechny pixely z CMOS kamery přes paralelní rozhraní a provádí veškeré zpracování v reálném čase. Poté komunikuje výsledky do vašeho mikrokontroléru nebo počítače přes rozhraní sériového portu.
Jakou CMOS kameru používá CMUcam1?#
Používáme CMOS kameru, která využívá CMOS kameru na čipu OmniVision OV6620. Používáme desku CMOS kamery s modelovým číslem C3088, na které je namontován senzor, konektor a objektiv.
Funguje CMUcam1 s jinými CMOS kamerami?#
Ne. V současnosti byl hardwarový a softwarový systém navržen tak, aby fungoval specificky s CMOS kamerou OmniVision OV6620. Systém by musel být kompletně přepracován, aby fungoval s jinou kamerou.
Existuje nějaké místo, kde najdu odpovědi na další otázky, které mám?#
Ano. Na této stránce máme nějaké informace o technických otázkách.
Kde mohu zjistit více o počítačovém vidění obecně?#
CMUcam1 plní jednoduchou úlohu počítačového vidění, ke které byla navržena, v malém, levném balení. Obecný problém počítačového vidění spočívající ve snaze rozpoznat libovolné objekty za libovolných podmínek je však stále velmi aktivním výzkumným tématem a má velmi daleko k tomu, aby byl vyřešeným problémem.
Pokud se chcete dozvědět více o počítačovém vidění, můžete vyzkoušet tyto odkazy:
Technické otázky#
Jaká je přesná posloupnost kroků prováděných při zapnutí demo režimem?#
Zde je přesná sekvence, kterou režim ukázky provádí při zapnutí:
Resetujte kameru.
Počkejte 5 sekund, než se automatické nastavení parametrů kamery ustálí.
Pošlete řetězec registru kamery:
CR 18 32 19 32, který vybere režim YCrCb a vypne automatické zesílení.Proveďte příkaz
TW.
Poté kamera začne řídit servo směrem ke střední hmotě barvy detekované příkazem TW.
Jaká je přesná posloupnost kroků prováděných příkazem „TW“?#
Zde je přesná sekvence, kterou příkaz TW provádí:
Zmenšete okno na 1/4 velikosti (v každém rozměru) aktuálního okna na nové okno vystředěné na střed aktuálního okna.
Zavolejte get mean.
Obnovte okno na plnou velikost obrazu.
Nastavte maximální a minimální hodnotu pro každý barevný kanál na průměr pro daný kanál +/- 30.
Poté kamera začne streamovat pakety typu C, M nebo N.
Za jakých podmínek se rozsvítí sledovací LED, když je povolen automatický režim?#
LED se rozsvítí, když je vrácený pixel_count >= 2. Vrácený pixel_count = (actual_pixel_count + 4) / 8.
Pokud má CMOS kamera rozlišení 352 x 288 pixelů, proč je rozlišení CMUcam1 jen 80 x 143?#
Problém zde spočívá v tom, jak fungují barevné digitální fotoaparáty. Ve všech digitálních barevných fotoaparátech (i těch velmi drahých - kromě některých založených na velmi pokročilé technologii) získáte pouze jedno měření barevného kanálu na pozici pixelu, tomu se říká mozaikové filtrování. Zde je pěkný diagram, který pomáhá toto vysvětlit:

(Diagram s laskavým svolením Foveon, Inc.)
Takže vidíte, že pixely si lze představit uspořádané do skupin po čtyřech, kde na skupinu připadají dvě měření G a jedno R a jedno B. Pokud jedno z měření G zahodíte (což děláme), zjistíte, že skutečné rozlišení kamery 352x288 je blíže 176x144. Kameru provozujeme v režimu polovičního rozlišení, který přeskakuje každý druhý blok 2x2 vodorovně, což vám dává 88x144. Kvůli omezením paměti v procesoru zahazujeme 8 sloupců vodorovně a jeden řádek svisle, který obsahuje testovací vzor, což vám dává 80x143 jako výsledné rozlišení.
Jen pro informaci, standardní digitální fotoaparáty používají složité interpolační techniky, aby se pokusily doplnit chybějící hodnoty barev v každém pixelu a poskytly vám něco o něco bližšího plnému rozlišení senzoru.
Jak mohu CMUcam1 přesně zaostřit?#
Nejlepším způsobem, jak postupovat při zaostřování, je samozřejmě pořizování výpisů snímků pomocí GUI. Možná nemáte po ruce počítač nebo možná používáte BotBall CMUcam1, který nemá při své pevně nastavené přenosové rychlosti 9600 baudů dostatečné rozlišení, aby toto dobře fungovalo.
V takovém případě existují dvě alternativy. Za prvé, můžete zkusit počítat závity. Objektiv není při maximálním zaostření zašroubován úplně. Spíše je vidět mezera závitu asi 1 milimetr. Co se týče počtu závitů, jsou v mezeře mezi objektivem a upevněním objektivu vidět asi 2 závity.
Druhá alternativa se opírá o myšlenku, že když je obraz ostrý, tmavé oblasti jsou nejtmavší a světlé oblasti nejsvětlejší. Jinými slovy, když je kontrast největší. Když se obraz rozostří, pak extrémy vyblednou do rovnoměrnějšího rozložení intenzit. Takže pokud spustíte streamovací režim a poté zavoláte GM (Get Mean), můžete zaostřovat v reálném čase. Sledujte odchylku červené. Jak ostře zaostříte na vysoce kontrastní objekt (jako je kus papíru s množstvím textu) v požadované vzdálenosti, bude při nejostřejším zaostření patrný vrchol v odchylce červené. Vezměte na vědomí, že tento přístup k zaostřování vyžaduje, abyste měli kameru a cíl při otáčení objektivu pevně usazené.