close
Vážení uživatelé,
16. 8. 2020 budou služby Blog.cz a Galerie.cz ukončeny.
Děkujeme vám za společně strávené roky!
Zjistit více

Vážení uživatelé,
16. 8. 2020 budou služby Blog.cz a Galerie.cz ukončeny.
Děkujeme vám za společně strávené roky!

Matematika v robotice 18. Laterální inhibice 1.

1. května 2014 v 5:54 | Petr |  Roboti a Matematika
Musím přiznat, že se sepsáním tohoto článečku jsem velice váhal, protože nemohu zakrýt jistý fakt z mé oblíbené patologické oblasti známé pod heslem "vše spolu tak nějak souvisí". Takže nevím jestli tento článeček patří do "matematiky", nebo jestli by se stejně tak nemohl uplatnit v "neurovědách".

Laterální inhibice z nadpisu je totiž něco, co jsem se naučil ve fyzilogii na medicíně, a pak to léta úspěšně používal v robotech. Laterální inhibice - otrocky přeloženo "blokáda do boku" je totiž fenomén z říše zvířat. Silně osvětlená buňka sítnice totiž částečně blokuje své slaběji osvětlené sousedky. To je proto aby se nám silný signál "nerozpliznul" do okolí a obraz tak neztratil svoji ostrost.
Zde je optická iluze zvaná Hermanova mřížka, která to pěkně ilustruje. Divák se nemůže zbavit dojmu že průsečíky bílých úseček jsou tmavší než oblasti mezi černými čtverečky. To je právě proto že na "křižovatce" se vám střetávají 4 bílé úsečky - tudíž bílého jasu je tam mnohem více a tudíž "laterální inhibice" kterou vidíme na bílé - nikoliv na černé - je tam nejsilnější.
Zcela stejný proces probíhá i v klasické "analogové fotografii" - když vyvoláváte fotky - máte fotkou v misce pohybovat aby se vám dostaly k emulzi čisté chemikálie, pokud právě naopak vezmete gumový váleček a fotku po prvním namočení do vývojky "naválcujete" na sklo dojde k tomu, že na rozhraní černá / bílá dojde k nerovnoměrnému vyčerpání vývojky a to tak že na černých oblastech se vývojka více vyčerá a proto jsou sousední bílé oblasti "ještě bělejší". Celé se to jmenuje Sabatierův efekt a v době před Phostoshopem to byla oblíbená metoda "analogového zaostřování".


Když už jsme u toho Photoshopu - ač si puboši myslí opak - Photoshop jen kopíruje možnosti mokré chemie. Snad krom toho, že nyní mohou "laterální inhibici" využívat i líní a nešikovní, kteří by kdysi byli akorát pobryndaní od vývojky. V Photoshopu se tato funkce jmenuje "unsharp mask" - otrocky přeloženo "rozostřená maska", která využívá přesně stejných matematických principů jako matička příroda a staří fotografové.

Aby šílenství bylo dokonalé - zcela stejný princip - difuze čerstvé kyseliny nás otravuje při "podleptávání" cestiček na plošných spojích - na hranici odleptané / neodleptané mědi totiž probíhá leptání daleko rychleji nez na velkých plochách - díky přílivu čerstvé kyseliny z oblastí už bez mědi....


Takže pokud potřebujemem nějaký signál "zaostřit" nebo v něm hledáme hrany klidně k tomu můžeme přistoupit naivně a udělat si učebnicový příklad laterální inhibice. Prostě počítáme výstup podle následujícího vzorečku :

Y(n)= 2 * X(n) - X(n-1) - X(n+1)

Tento postup je jednoduchoučký, rychlý ( v assembleru místo násobení použijeme bitový posun) a nepotřebuje žádnou paměť navíc krom vstupního a výstupního bufferu.
Výsledkem však je, že vám zcela zmizí "stejnosměrná úroveň signálu". proto je lepší vzoreček naprogramovat jako

Y(n)= A * X(n) - B*( X(n-1) + X(n+1) )

Kde A a B jsou koeficienty, se kterými si můžete hrát. Takže pokud potřebujete zachovat stejnosměrnou úroveň musí být A = 2*B+1. Například zde máme graf pro A= 3 a B = 1


Když rozebereme vzoreček podrobněji tak vidíme že X(n-1) + X(n+1) je vlastně maska, která je rozostřená součtem sousedících hodnot. Tento postup je jednoduchoučký, ale pokud jste pravidelnými čtenáři "matematiky" je vám jistě jasné, že takto jednoduše to s reálnými daty jde jenom občas.
Problémy jsou v zásadě dva :
  1. Musíte znát hodnoty dat "z budoucnosti" - což reprezentuje člen X(N+1), ale řekněme, že toto jde překonat, když držíme data v malinkatém bufferu
  2. Pokud se chceme zbavit šumu v datech musíme vstupní data prohnat nějakou numerickou dolní propustí - tedy buď lineárním, nebo exponenciálním klouzavým průměrem. Pokud klouzavý průměr průměruje třeba 5 sousedních hodnot - maska, aby byla účinná musí průměrovat ještě o něco více, proto hrozí, že zde uvedeným jednoduchoučkým způsobem budeme některá data sčítat zbytečně stále znova a znova dokola.
Z toho důvodu od jisté složitosti "laterální inhibice" stojí za to připravit si masku předem do druhého bufferu a pak masku a data prostě odečíst. Jak na to budeme řešit příště, neb řada čtenárů včetně mně jsou jeleni už teď.
Zbývá nám už jenom tradiční rada pro brunety - bruneta, která je dost chytrá na to aby nechodila s nosem nahoru a dokonce se umí tvářit jako "skromný Bobík" - je prostě ještě více sexy než kdejaká blondýna s umělýma pazourama, vlasama, ověšená drahou kabelkou a dalšímí "cingrlaty".
 

Buď první, kdo ohodnotí tento článek.

Komentáře

1 rvx rvx | 1. května 2014 v 17:34

bruneta, která je dost chytrá na to aby nechodila s nosem nahoru a dokonce se umí tvářit jako "skromný Bobík" - je prostě ještě více sexy než kdejaká blondýna s umělýma pazourama, vlasama, ověšená drahou kabelkou a dalšímí "cingrlaty".

- problém je, že tohle brunetám (natož blonckám) NIKDO nevysvětlí ;)

Komentáře jsou uzavřeny.


Aktuální články

Reklama