Databáze obrázků kostek

Založil Petr1, 13.11.2016, 00:36:27

Předchozí téma - Další téma

0 Uživatelé a 1 Host prohlíží toto téma.

Petr1

Dobrý den,

přicházím sem s prosbou o radu, kde by se daly sehnat obrázky LEGO kostek. Jedná se mi o obrázky jednotlivých kostek sejmuté z vrchu tak, aby byla vidět pouze horní strana. Ideálně aby ležely na nějakém jednotném (černém nebo bílém) podkladu, bez nějakých zbytečných stínů, či odrazů světla. Všechny databáze dílků a eshopy, na které jsem zatím narazil, měli kostky vyfocené pro mé účely nevhodně.

Abych tedy ještě upřesnil ty "mé účely". Pracuji na diplomové práci nesoucí název "Mechatronický systém pro třídění LEGO dílků". Pro stavbu onoho mechatronického systému používám LEGO MINDSTORMS NXT. Ovládací program dělám v jazyce C# a Pyton. Nyní pracuji na zpracování obrazu z kamery pod kterou jednotlivé lego dílky leží. Jelikož na univerzitě příliš kostek nemáme, snažím se tímto způsobem sehnat nějaká data, na kterých bych mohl průběžně testovat své rozpoznávací algoritmy. Stačilo by třeba cca 30 nejpoužívanějších kostek.

Předem díky za radu.
Petr

milanv

Nejupřímnější odpověď je, že je to ztráta času takové obrázky hledat. Nejsou. Lépe řečeno nikdo je neoptimalizoval na váš projekt, takže každý obrázek bude mít z vašeho pohledu nějakou vadu. Tisíckrát jednodušší je si koupit malý set obsahující potřebné díly. Nebo někam pro samostatné díly, internet poradí místo blízko bydlišti nebo e-shop.

Mohl by vás zajímat tento starší projekt a další projekty jeho autora: třídička Technic osiček nebo třídička Technic kostek.

Hodně štěstí.
Pán na Žlutém hradě

pryb

Hezká úloha.

Souhlasím s Milanem, nejjednodušší bude vyrobit si obrázky sám v rámci kalibrace.

Před pár lety jsem se zabýval něčím podobným. Dal jsem si menší cíl, stavěl jsem NXT třídičku podle barev a podle hrubé velikosti. Skončil jsem, když mi prototyp prozkoumal synek, už jsem to pak dohromady nedával.

Pár postřehů (i když jste na většinu nejpíš dávno přišel):
Měření hodně ovlivňovalo okolní osvětlení - i drobné změny denního světla. Přestože jsem měl měřící plochu v téměř uzavřené "komoře".
Některé díly bude problém postavit tak, aby byly snímkovány shora. počítal bych s tím, že budou potřeba i obrázky ze stran. Některé jednoznačně vůbec postavit nepůjdou (i když ty se asi dají považovat za nevýznamné).
Některé díly budou při snímkování z jednoho směru snadno zaměnitelné - např. plate 1x1 a brick 1x1.
Některé díly jsou lisovány různými formami a budou se tedy lišit - u hodně starých dílů např. fontem LEGO na studu.
Rozhodně bych předřadil třídění podle velikosti - právě na principu Akiyukiho třídění osiček nebo nějakém podobném.

Ať se daří.
Aktuální projekt - třídička.
Youtube kanál

Jonas

#3
Hezké téma pro DP.
(Že by to bylo to, které jsme letos vypsali na naší katedře?  ;))

Doporučuji řídit se všemi náměty a nápady uvedenými v předchozích příspěvcích. Jednoznačně pak doporučuji udělat si vlastní databázi obrázků kostek/dílků, které se mají třídit. (Určitě to bude jen vybraná podmnožina). Kostky nechat projíždět pod kamerou (v dané konfiguraci kamery, osvětlení, podložky, podavače, ...) a nasnímat co nejvíce obrázků (stovky, lépe tisíce). Teprve při pohledu na tyto obrázky si člověk uvědomí, v jakých různých pozicích se kostky mohou nacházet a jakou roli hraje osvětlení. Je potřeba to nasnímat také pro několik různých barev kostek, protože zejména extrémní barvy (bílá a černá) mohou ovlivnit spolehlivost algoritmu detekce a identifikace objektu. Výhoda velkého množství nasnímaných obrázků může pak spočívat v tom, že  na nich bude možné naučit některé moderní 'učící' se metody rozpoznávání, např. neuronové sítě. (Ty se dají naučit tak, že už pak tolik nezávisí na natočení, osvětlení, atd.)

Držím palce
Jonas - Můj Brickshelf

Petr1


Děkuji za cenné rady.

Již jsem zhlédl spousty videí s GBC od Akiyuky, hledaje v nich inspiraci. Nicméně třídění různě velkých, hranatých dílků je úplně jiná disciplína. Zatím ještě nemám úplně představu, jak vyřeším to, aby dílky pod kamerou neležely třeba na boku, nebo jak od sebe rozeznat brick a plate. Jelikož mi však dochází stavební materiál, zkusím použít druhou kameru.
Nyní se nacházím ve fázi, kdy jsem schopen provést úspěšnou segmentaci (až právě na některé případy špatného osvětlení a extrémní barvy) a detekci barvy. Momentálně pracuji na rozpoznání velikosti a tvaru a k tomu jsem právě chtěl získat další testovací data. Zda projekt zajde tak daleko, že budou nasazeny neuronové sítě zatím nevím.


milanv

Ještě mě napadlo pár laických tipů:

* Akiyuki, pokud se nepletu, kombinuje zpracování obrazu s vážením dílu. To by mohlo hodně pomoci, v praxi určitě. Jen nevím, jestli to smíte i v rámci projektu, když ten má nějaké konkrétní zadání. Popravdě, s dostatečně přesnou váhou (jako jsme měli teď na třídění kostek z Lugbulku) by možná bylo optické pozorování už jen jako doplněk, ale před komisí Pssst! :)

* také je potřeba vzít v potaz dopravu dílů strojem. Protože z toho vyplynou zajímavé podmínky. Např. si neumím představit, že byste byl schopný docílit bricku (kostky) studama nahoru ("ťuflíkama"), v nějakém statisticky významném počtu. V drtivé většině případů bude ležet na boku, a tak se problém rozpoznávání s plate stejného rozměru vůbec neprojeví.

* naopak by možná šlo té dopravy využít k orientaci dílu před scanem nebo scanování dílu vícekrát, s otočením, "setřesením" nebo jinou mechanickou pomocí mezi těmi scany. Tím by vzniklo mnoho scanů z mnoha směrů.

* zvážil bych oddělení posuzování tvaru od posuzování barev. Kompletně nezávisle, tedy i jinou kamerou. Něco jako má Akiyuki to sledování tvaru jen siluetami, přesvícením okolí.
Pán na Žlutém hradě