5. sada domácich zadaní

Moderátor: FeroG

<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pon Mar 19, 2012 7:02 pm

5. sada domácich zadaní

Vďaka pomoci Rada Gargalíka s nagenerovaním testovacích vstupov je k dispozícii evaluátor k 5. sade domácich zadaní. Zároveň na stránke PAZka so zadaním nájdete kolekciu 10 mikroskopických záberov buniek, ktoré by ste mali využiť pri implementácii svojho riešenia.

Výzva pre súťaživcov: Výsledok evaluácie je rozšírený o správu o priemernom čase trvania analýzy jedného mikroskopického záberu. Samozrejme tento čas treba brať s rezervou, pretože závisí od množstva faktorov mimo samostný kód riešenia (zaťaženie evaluačného serveru, cachovanie, či charakter vstupu). Poskytuje však približný pohľad efektívnosť riešenia (ale rozdiel 100 ms vs. 1000 ms asi nie je zanedbateľný). Pochváľte sa, aké časy sa vám podarilo dosiahnuť :-)

5. sada zadaní je vedome napísaná tak, že niektoré veci nie sú bližšie špecifikované (aspoň trochu sa chcú navodiť reálne podmienky). Na prípadné otázky je určené toto fórum. Hlavný cieľ by však mal byť jasný: spočítať na obrázku počet buniek.
<<

StefanPorhincak

Príspevky: 54

Registrovaný: Štv Sep 22, 2011 5:26 pm

Poslať Pon Mar 19, 2012 10:05 pm

Re: 5. sada domácich zadaní

Otazocka...

je toto http://vps.porhincak.eu/~stevo/bunky2.png, tj 2 "zhluky" ktore maju jeden jeden susedny par nie-ciernych bodov po diagonale povazovane za 2 bunky alebo za jednu ? Pripadne, aka je minimalna velkost bunky, 1px ? Minimalny počet susedných (po diagonálach, ako na obrázku a zjednodušene aj dole ) pixelov na to aby bol príklad ako na obrázku považovaný za jednu bunku ? Prípadne treba počítať s nejakou hranicou ( závisiacou napr od intenzity farby a počtu d. susedných pixelov ) od ktorej budú takéto zhluky považované za jedno ?

(0X)
(X0)
ak je môj príspevok nezrozumiteľný, dajte vedieť, občas po sebe nečítam...
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pon Mar 19, 2012 10:36 pm

Re: 5. sada domácich zadaní

StefanPorhincak píše:je toto http://vps.porhincak.eu/~stevo/bunky2.png, tj 2 "zhluky" ktore maju jeden jeden susedny par nie-ciernych bodov po diagonale povazovane za 2 bunky alebo za jednu ? Pripadne, aka je minimalna velkost bunky, 1px ?

(0X)
(X0)


Nezda sa mi, zeby tie 2 zhluky mali spolocnych susedov po diagonale (zkusal som to prizoomovat). Ale vzhladom na velkosti buniek a ich strukturu, zda sa mi prirodzene, aby boli po diagonale susedne bunkove pixely povazovane za pixely jednej bunky (pravdepodobne je to bunka v poslednej faze delenia). Kedze data chcu byt predspracovane (odfiltrovany sum, dilatacia + nejake to prahovanie), tak aj 1 pixelova bunku mozno povazovat za samostatnu bunky. I ked taku som na obrazkoch nevidel :-) Ale urcite by to bolo zaujimave doplnenie zadania eliminovat velmi male bunky, t.j. s velkou pravdepodobnostou sum.
<<

martin987

Príspevky: 29

Registrovaný: Str Sep 21, 2011 4:03 pm

Poslať Pon Mar 19, 2012 10:41 pm

Re: 5. sada domácich zadaní

Mam mensi problem. V tych skenoch buniek na stranke napr. sken c. 7, na ktorom su len dve bunky, mi moj algoritmus vratil hodnotu 3, v obrazku cellscanXYZBLA.png mi vratilo o 1 menej ako som napocital rucne atd.
Po intenzivnom debugovani a s pomocou grafickeho editora som zistil, ze problem nastal, ked moj algoritmus narazil na takmer neviditelny pixel s farebnymi zlozkami (0, 1, 0), alebo v pripade cellscanu niekolko pixelov priblizne (0, 4, 0), ktore prepajali dve bunky. Treba osetrovat aj tieto pripady? Aka velka odchylka od ciernej je uz povazovana za pixel v bunke?
<<

StefanPorhincak

Príspevky: 54

Registrovaný: Štv Sep 22, 2011 5:26 pm

Poslať Pon Mar 19, 2012 10:50 pm

Re: 5. sada domácich zadaní

FeroG píše:
StefanPorhincak píše:


Nezda sa mi, zeby tie 2 zhluky mali spolocnych susedov po diagonale (zkusal som to prizoomovat). Ale vzhladom na velkosti buniek a ich strukturu, zda sa mi prirodzene, aby boli po diagonale susedne bunkove pixely povazovane za pixely jednej bunky (pravdepodobne je to bunka v poslednej faze delenia). Kedze data chcu byt predspracovane (odfiltrovany sum, dilatacia + nejake to prahovanie), tak aj 1 pixelova bunku mozno povazovat za samostatnu bunky. I ked taku som na obrazkoch nevidel :-) Ale urcite by to bolo zaujimave doplnenie zadania eliminovat velmi male bunky, t.j. s velkou pravdepodobnostou sum.


okolo cca 90,40 su po diagonale 2 tmavozenele body . Ok, budem pocitat s tym ze to co je zobrazene je uz nad prahovou hodnotou. Hmm, v tejto mojej "primitivnej" implementacii by nebol az taky problem pocitat kolko pixelov ma bunka, takze by slo aj odfiltrovat male a pod...

Aka velka odchylka od ciernej je uz povazovana za pixel v bunke?


ja som sa spoliehal na implementaciu jePixelBunky(), skus...

ehm, pripadne postni obrazky na ktorych to blbne...
ak je môj príspevok nezrozumiteľný, dajte vedieť, občas po sebe nečítam...
<<

martin987

Príspevky: 29

Registrovaný: Str Sep 21, 2011 4:03 pm

Poslať Pon Mar 19, 2012 11:12 pm

Re: 5. sada domácich zadaní

StefanPorhincak píše:ja som sa spoliehal na implementaciu jePixelBunky(), skus...


Presne to robim aj ja, avsak jePixelBunky() iba vrati, ci je farba daneho pixelu rozna od ciernej, a tam presne vznika moj opisovany problem... A obrazky su to presne tie ktore som pisal, teda tento a niekolko z tychto.
<<

dzusik12

Príspevky: 55

Registrovaný: Str Sep 21, 2011 12:13 pm

Poslať Sob Mar 24, 2012 12:24 am

kto da viac :D

:arrow: :arrow: :arrow: (91/76/50 )

:lol: :lol: :lol:
<<

StefanPorhincak

Príspevky: 54

Registrovaný: Štv Sep 22, 2011 5:26 pm

Poslať Sob Mar 24, 2012 2:49 am

Re: 5. sada domácich zadaní

(87,82,50 )... close enough (for tonight)

btw, nie vzdy hadze tie iste casy pri rovnakom kode ( asi nestiha merat :D )
ak je môj príspevok nezrozumiteľný, dajte vedieť, občas po sebe nečítam...
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Sob Mar 24, 2012 9:49 am

Re: 5. sada domácich zadaní

Nejake milisekundy urcite nema zmysel nahanat (to pisem preto, aby ste zbytocne na to nemrhali svoj cas). Netreba zabudat, ze cas behu ovplyvuje kopa faktorov (vytazenie serveru, na ktorom bezi evaluator, diskove operacie [v case je zahrnuty aj cas nacitania obrazku z disku] a cachovanie, ...). Preto sa casy pri kazdom spusteni o nejakych par milisekund lisia. Navyse pre porovnavanie su zaujimave len prve 2 casy, pretoze prvych 20 obrazkov (2 podsady) si pri kazdom teste rovnake. Posledna podsada sa generuje z nahodneho vyberu 180 obrazkov. A pri nej cas behu vo vasich implementaciach zavisi od poctu buniek na obrazku.
<<

RadoG

Príspevky: 29

Registrovaný: Ned Sep 26, 2010 7:07 pm

Poslať Pon Mar 26, 2012 12:15 pm

Re: 5. sada domácich zadaní

No ono nie je problém dosiahnuť dobrý čas... len ako sa pozerám na vaše riešenia (myslím oboch), tak ten kód sa vám už naozaj dosť komplikuje a stáva sa dosť neprehľadným. Možno sa treba zamyslieť nad tým, že ako dosiahnuť dobrý čas a mať aj relatívne krátky a zrozumiteľný kód.
<<

limki

Príspevky: 26

Registrovaný: Pia Sep 25, 2009 5:34 pm

Poslať Pon Mar 26, 2012 2:05 pm

Re: 5. sada domácich zadaní

A aj s peknym kodom sa da lepsi cas
Obrázok
a este ...
Obrázok
<<

StefanPorhincak

Príspevky: 54

Registrovaný: Štv Sep 22, 2011 5:26 pm

Poslať Pon Mar 26, 2012 3:37 pm

Re: 5. sada domácich zadaní

Uznavam, o citatelnost mi neslo v prvom rade... limki, ako sa ti podaril ten druhy (lepsi) cas? Nejaka strucna napoveda akym smerom sa vydat?

SP
ak je môj príspevok nezrozumiteľný, dajte vedieť, občas po sebe nečítam...
<<

dzusik12

Príspevky: 55

Registrovaný: Str Sep 21, 2011 12:13 pm

Poslať Pon Mar 26, 2012 5:36 pm

Re: 5. sada domácich zadaní

navrhujem zeby sme sa stretli po tom ako bude ta domaca "za nami" a pozreli sa ze jak sa daju take veci optimalizovat na 30 ms :)
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pon Mar 26, 2012 6:02 pm

Re: 5. sada domácich zadaní

Ako som uz pisal, do casu sa zaratava aj nacitanie obrazku. Tu nejaky zasadny zisk za primeranu namahu neziskate. Na co ale ide zautocit je metoda getRGB triedy BufferedImage. Princip je ten, ze pytanie sa na pixely jednotlivo je dost pomale v porovnani s vypytanim si kompletnej informacie vo forme, v akej su udaje interne ulozene v BufferedImage. To vsak samozrejme znamena oboznamit sa blizsie aj s tym, co sa vlastne skryva pod BufferedImage. Berte to teda ako motivaciu, pre dalsie studium, nie ako motivaciu na nahananie milisekund. V E[xtra] skupine - ak bude o to zaujem - mozete ist neskor do tychto detailov...

Z hladiska principu algoritmu existuju 2 pristupy. Ten prvy (ocakavany, ktory vychadza z toho, co sa robilo na PAZ1b) ste pouzili zatial vsetci s jednou vynimkou. Jeden z vas vyuzil iny pristup (i ked asi len "zdravo uvazoval", pouzil princip, ktory ma dokonca svoje meno), ktory je malicko rychlejsi nez ten prvy (dotycny vsak niektore implementacne detaily nedotiahol a tak je jeho cas podstatne horsi).
<<

dzusik12

Príspevky: 55

Registrovaný: Str Sep 21, 2011 12:13 pm

Poslať Pon Mar 26, 2012 9:14 pm

Re: 5. sada domácich zadaní

keby sa to riesilo na extra skupine, tych 15 minut, od kedy skonci ostatnym hodina, by slo ? :arrow: :cry:
Ďalší

Späť na PAZ1b

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.