Diskuze: Machr na algoritmy - Podobné obrázky
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Vlastník

Zobrazeno 50 zpráv z 51.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Jak má člověk stíhat dělat hru do Magického léta, když dáváš
takový zajímavý úkoly?
jako správný programátor, málo spánku, spoustu kódu
a ty jako nám dáš otestovat zelené jablko a červené jablko a my ti máme napsat že jsou podobné?
Zkusím vzkřísit princip, který jsem použil v Pascalu...
To by bylo moc těžké, pozná to jen jablka co mají podobný tvar a barvu. Zelené a červené budeme brát jako 2 jiné obrázky.
Já bych klidně nechal zelené a červené jablko jako podobný obrázek
To už by bylo těžší
Já bych to dělal asi tak, že bych si ořezal barvy na nějakou velmi
základní škálu a potom obrázky rozpixeloval na nějaké velmi hrubé
rozlišení (10x10 pixelů?). Výsledky bych potom porovnal asi ještě s
nějakou tolerancí.
záleží co je učelem, jestli pokud dostanu obrázek se zeleným jablkem
tak najít jablko, nebo třeba mísu s ovovcem co obsahuje zelený jablko? (nebo
obje já vím )
Mísa s ovocem už by byla příliš složitá, na poměry devbooku nejspíš
i "neřešitelná"
Ale poznat, že červené jablko je podobné zelenému se ještě nějak dá, pokud jsou jinak podobná a jsou třeba umístěná na stejném místě v obraze a mají podobnou velikost.
10x10px je moc málo. V Pascalu jsem porovnával velikosti 32x24px (4:3). Ale
v té době bylo obrázky max 640x480px
Napadlo mě, budou se brát jako "totožná jablka", že na jednom obrázku bude jablko v levém horním rohu a v druhém obrázku zase v pravém dolním?
Asi ne, stačí to opravdu jen jednoduché.
V čem si přesně obrázky mají být podobné? Barva, tvar i barva(malé rozdíly), pouze tvary...
PNG nebo JPEG, ideálně obojí. Podobné jsou si barvou a tvarem.
Tak už se na to někdo vrhnul? Já to mám skoro hotové, jen vychytat ty odchylky. Snad to do zítra stihnu, jelikož teď nebudu mít moc přístup k pc.
No já jsem zatim v tomhle stavu, a musím ještě vychytat pár errorů co mi tam skáčou, a naučit to pracovat se 2 soubory jinýho rozlišení.
Já jsem na tom nějak podobně. Jen mě nenapadlo jak ukázat zda jsou nebo nejsou podobné. Ta procenta jsou chytré řešení. Ještě jsem aplikoval filtr pro vyhledávání hran. Snad to trochu ulehčí vyhledávání. Ještě jsem ale ještě nepřišel jak ho nejlépe využít.
no to řešim taky, doted jsem nevyřešil jak třeba bále pozadí s obejtem levo nahoře a víle pozadí s objektem (stejným) vpravo dole, zatim jsem jen ve stavu, toho obrázku co jsem ukazoval
Takže zde přidávám svůj výtvor. Už na to nebudu mít dneska ani zítra
čas, i když by si to možná zasloužilo. Jinak program je docela pomalý,
(zvlášť pokud obrázek obsahuje velké plochy stejné barvy). Jsou tam i
zdrojáky tak se můžete podívat,ale moc z toho asi nevyčtete
Jinak , myslím že kdybych místo porovnávání obrázků udělal nějaký
pěkný náhodný generátor čísel tak by to bylo skoro stejný
https://mega.co.nz/#!CQdGQQLD!Ke8XMQJjCAZ-MW7fj3Wi0VHu_PUdvHSJfW9pOLPZCwk
Nejak mi to nefunguje. zasekne se to u prepare
Už je to v pořádku. Jen je to opravdu příšerně pomalé. To moje je
proti tomu opravdu rychlík
ale funguje to celkem dobře. Já mám zatím udělanou geometrickou detekci.
Barva ještě nějak nefunguje.
je to kvuli tomu že to dělá prohledávání do šířky a to třeba na 1024x720 není
žádná sranda
, ale co
nadělám, bez té části by to nefungovalo pořádně a nic lepšího mě
nenapadlo
s tím že jde samozřejme v kodu celej krok prepare vyhodit,ale tím padem se zhorší detekce a stene se podle mě víc nepřesnou
Vyhledávat podobné obrázky na googlu, pár let bych si asi počkal
To asi ano. Ale oni to
mají předhashované. Tzn. že to neprohledává vždy znovu
Zde je moje verze. Vše by mělo fungovat bez problému.
Omlouvám se, soubor se nenahrál. Tady je link: https://drive.google.com/folderview?…
Hm, až teď jsem se dostal k PC, tak to se už do ničeho pouštět nebudu
Tak, snažil jsem se to testovat jak to šlo, ale výsledky jsou bohužel hrozně mimo a to u všech zúčastněných:
brisingr002
apple1 a apple2 - 80%
elephant1 a elephant2 - 65%
nemo1 a nemo2 - 93%
windows1 a windows2 - 90%
apple2 a elephant1 - 59%
nemo2 a windows2 - 80%
app1 a app2 - 94%
martinsakra
apple1 a apple2 - 39%
elephant1 a elephant2 - 30%
nemo1 a nemo2 - 55%
windows1 a windows2 - 28% (mimo)
apple2 a elephant1 - 9%
nemo2 a windows2 - 33%
app1 a app2 - 53%
p4koo
apple1 a apple2 - 83%
elephant1 a elephant2 - 77%
nemo1 a nemo2 - 100%
windows1 a windows2 - 83%
apple2 a elephant1 - 71% (mimo)
nemo2 a windows2 - 79%
app1 a app2 - 92%
Testované obrázky viz níže nebo zde: https://dl.dropboxusercontent.com/…pobrazky.zip Nevím,
jestli jsem zvolil moc složitou úlohu nebo je problém v implementacích.
Nejblíže mi přijde brisingr002, ale je to jen o chlup, takže dneska asi bez
placky
Problém je v bilé ploše => každý kdo to dělal pixel po pixelu mu
potom vyšly takové nesmyslné čísla
Pořád na to koukám a nevím si opravdu rady. Jestli má komunita nějaký
nápad, tak sem s ním
Tak jsem to ještě trápil, ale pořád stejné výsledky, není to ani tou
bílou barvou. Dal jsem třeba teď les a moře, výsledek byla shoda 80%. Dáme
příště zas něco lehčího no
Hm, asi si to cvicne zkusim taky, jestli dopadnu lip
úloha je to zajímavá. Teď jsem bohužel v jednom kole a neměl jsem čas.
Časem sem přidám své řešení. Třebas i bez placky )
Je to opravdu hodně těžká úloha, která se nedá dělat pixel po pixelu.
Takže musím si obhájit své výsledky
Byla to zajímavá úloha, ale neměla přesné řešení. Pouze šlo
napodobit tvoje chápání kontextu.
Těším se na příští soutěž
něco nového ses naučil, to je jenom dobře.
Aaaaaaaaaaaaaaa. Z tebe se stal snad učitel ne? Ale souhlasím.
To bych taky mohl zkusit. Třeba do nějakého neznámého jazyka (D, D++, F#...) Ještě kdybych
je uměl.
jo třeba F# vypadá zajímavě, ten bych se i naučil. Protože není
objektový tak by mě nikdo nebuzeroval za kód
Je funkcionální, takže pro buzeraci je tam prostoru dost
Zkus XSLT. Všechny proměnné tam jsou immutable. Pro céčkaře téměř nepřekonatelný problém.
Když jsem řešil něco podobného - vyhledávání objektu v obraze - tak shodnost obrazů vyhodnocuji jako součet absolutních hodnot rozdílů barev (korelační koeficient). Nejdříve takto porovnávám obrazy velmi silně pixelované (na hrubé rozlišení), s tím že je vůči sobě posouvám, otáčím a měním velikost (hrubě). Pokud je někde zajímavější shoda, zvýším přesnost rozlišení a jemnost posunů a zkouším najít přesnější shodu ... a tak postupně až do nejvyššího rozlišení. Před hledáním může být nutné obrazy znormalizovat - vyrovnat jasy ploch.
Zobrazeno 50 zpráv z 51.