Vzporedna izvedba algoritmov ra unalni kega vida
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

Vzporedna izvedba algoritmov računalniškega vida PowerPoint PPT Presentation


  • 84 Views
  • Uploaded on
  • Presentation posted in: General

Vzporedna izvedba algoritmov računalniškega vida. Vsebina. Računalniški vid Houghova transformacija Vzporedna izvedba Houghove transformacije Vzporedni računalnik (BEOWULF gruča) Porazdeljen procesni prostor (BPROC) Porazdeljeno računanje Houghove transformacije. d 2. . d 3. d 1.

Download Presentation

Vzporedna izvedba algoritmov računalniškega vida

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Vzporedna izvedba algoritmov ra unalni kega vida

Vzporedna izvedba algoritmov računalniškega vida

[email protected]


Vsebina

Vsebina

  • Računalniški vid

  • Houghova transformacija

  • Vzporedna izvedba Houghove transformacije

  • Vzporedni računalnik (BEOWULF gruča)

  • Porazdeljen procesni prostor (BPROC)

  • Porazdeljeno računanje Houghove transformacije


Ra unalni ki vid

d2

d3

d1

Računalniški vid

  • Cilj: simbolični opis slike.

  • Definicija “opisa” je odvisna od namena uporabe.


Predobdelava slike

Predobdelava slike

  • Cilj: Izboljšanje kvalitete.

  • Primer: filtriranje šuma.


Obdelava slike

Obdelava slike

  • Cilj: zmanjšanje količine informacije.

  • Primeri: iskanje robov, binarizacija.


Iskanje simboli nega opisa

Iskanje simboličnega opisa

  • Cilj: izračun parametrov elementov na sliki, ki so osnova za meritve.

  • Primer: robovi - premice.


Houghova transformacija

Houghova transformacija

  • Ideja: poskusimo poiskati *vse* možne premice, ki se lahko pojavijo na določeni sliki.

  • “Brute force” metoda, računska zahtevnost je temu primerna:

    • 512*512 slikovnih elementov

    • Pri zahtevani natančnosti 1 stopinje lahko skozi vsak element potegnemo 180 premic.

    • Preizkušamo torej 512*512*180 = 47,185,920 (47 miljonov!) hipotez.

  • Prednost: ne rabimo vnaprejšnjega znanja o sliki.


Houghova transformacija1

Houghova transformacija

  • Izvedba: vzpostavimo polje akumulatorjev, v katerem zbiramo “glasove” za posamezno kombinacijo parametrov k in n premice y=kx+npri tistih točkah, ki imajo vrednost 1.

  • Primer: (narišemo le 4 premice/točko)

y

  • V tem primeru je največ glasov dobila premicay=2 (k=0,n=2), saj samo ta poteka skozi vse točke z vrednostjo 1.

x


Houghova transformacija2

Houghova transformacija

  • Problem: kako zapisati navpične in vodoravne premice v parametričnem prostoru?

  • Izberemo zapis r=xcos()+ysin()

  • Glede na zahtevano natančnost za r in izberemo dimenzije polja akumulatorjev (v našem primeru kar 512*512)

  • Preiščemo vso sliko in v akumulatorje sproti prištevamo sivinske vrednosti slikovnih točk za vse možne r in.

  • Poiščemo maksimume v polju akumulatorjev, njihove pozicije nam dajo r in premic.


Zaporedna izvedba ht

Zaporedna izvedba HT

  • Algoritem/računanje:for (y=0; y<512; y++){for (x=0; x<512; x++){for ( = min;  < max;  ++){r=x*cos()+y*sin();akum[r][]=akum[r][]+slika[x][y]; };};};


Zaporedna izvedba ht1

Zaporedna izvedba HT

  • Program za HT presnamite iz http://vision.fe.uni-lj.si/classes/VS/hough

  • Odpakirajte: tar -zxvf hough.tar.gz

  • Prevedite: gcc houghseq.c -o houghseq -lm

  • Poženite: ./houghseq demo.pgm seq.pgm

  • Datoteke:

    • houghseq.c - glavni del programa

    • hough.c - izračun transformacije

    • pgmio.c - branje/pisanje PGM datotek

    • *.pgm - demo slike, pogledate jih z xloadimage slika.pgm


Vzporedna izvedba ht

Vzporedna izvedba HT

  • Ideja: vsoto v akumulatorju lahko računamo v poljubnem zaporedju.

  • Vhodno sliko razdelimo na pasove (na primer y=0..127, y=128..255, itd.)

  • Izvedemo transformacijo vsakega dela slike posebej v ločeno polje akumulatorjev (ki je še vedno dimenzij 512*512!)

  • Na koncu delne akumulatorje (delne vsote) seštejemo v glavni akumulator.

  • To je primer vhodne podatkovne dekompozicije.


Vzporedna izvedba ht1

Vzporedna izvedba HT

  • Algoritem/računanje v vsakem procesu:for (y=y1; y<y2; y++){for (x=0; x<512; x++){for ( = min;  < max;  ++){r=x*cos()+y*sin();akum[r][]=akum[r][]+slika[x][y]; };};};


Vzporedna izvedba ht2

Vzporedna izvedba HT

  • Potrebna je komunikacija med procesi:

    • Deljen pomnilnik preko katerega procesi-otroci prenesejo delne rezultate (svoja polja akumulatorjev) roditelju.

    • Niz semaforjev za nadzor dostopa do deljenega pomnilnika.

  • Prevedite: gcc houghpar.c -o houghpar -lm

  • Poženite: ./houghpar demo.pgm par.pgm

  • Je takšna izvedba transformacije hitrejša?

  • Zakaj?


Vzporedni ra unalnik

Vzporedni računalnik

  • 1994, Thomas Sterling & Don Becker

    • vzdevek BEOWULF

  • 16 računalnikov 486 DX4

    • Vsak računalnik predstavlja “vozlišče” (node)

  • Multiračunalniški sistem

    • Krajevno porazdeljen pomnilnik

    • Povezava prek krajevnega omrežja

  • Beowulf je le oznaka za takšen sistem, način realizacije ni standardiziran.

  • Dva glavna problema sta:

    • Upravljanje procesov

    • Komunikacija med procesi


Upravljanje procesov

Upravljanje procesov

  • Enostavni, vendar nepraktični načini

    • rlogin + školjka na vsakem od računalnikov

    • rexec (remote exec)

  • Pomanjkljivosti:

    • Program mora biti prisoten na vsakem od računalnikov-vozlišč.

    • Uporabniki morajo imeti uporabniška imena na vsakem od vozlišč.

    • Procesi niso v sorodu.

    • Težavna administracija, nepregledno izvajanje programov.


Upravljanje procesov1

Upravljanje procesov

  • Beowulf Distributed Process Space (BPROC)

    • Porazdeljen procesni prostor

    • Procese je možno med delovanjem (!) premikati med računalniki.

    • PID procesov so navzven enaki ne glede na katerem računalniku se izvajajo.

    • Procesi so prisotni v tabeli procesov glavnega računalnika, tudi če se izvajajo drugje.

    • Minimalne prilagoditve vzporednih programov.

  • Bproc zajema:

    • Obsežne popravke jedra (kernel)

    • module sistemskega jedra

    • bproc demone (bpslave, bpmaster).


Ht na beowulf ra unalniku

HT na Beowulf računalniku

  • Minimalne spremembe paralelne verzije programa houghpar.c:

    • #include<sys/bproc.h>

    • bproc_move(številka_vozlišča) po izvedenem klicu fork(), preden se začne računanje

    • bproc_move(-1) po izvedenem računanju, pred začetkom sinhronizacije podatkov.

  • Pomembno: procesi ne morejo komunicirati na standardne načine (deljen pomnilnik, semaforji, cevi…) dokler se ne vrnejo na isti fizični računalnik (bproc_move(-1))!


Ht na beowulf ra unalniku1

HT na Beowulf računalniku

  • Oglejte si houghpar_beo.c in nastavite številke vozlišč pri bproc_move()!

  • Prevedite:gcc houghpar_beo.c -o houghpar_beo -lm -lbproc

  • Poženite: ./houghpar_beo demo.pgm beo.pgm

  • Z ostalimi se dogovorite da eksperimentov ne boste pognali vsi naenkrat!

  • Opazujte procese z orodjem top/ktop

    • zaseden pomnilnik, proc. čas, itd. Kaj opazite?

    • Poglejte, kako so vaši procesi vidni na tujih računalnikih.


V razmislek

V razmislek

  • Je takšen program hitrejši? Zakaj?

  • Zakaj nas ni nikoli zanimala sinhronizacija dostopa do vhodnih podatkov?

  • Od kje zakasnitev pred začetkom računanja?

  • Kaj se takrat dogaja?

  • Bi bilo smiselno program drobiti na še večje število procesov (npr. 64)? Zakaj ?

  • Oglejte si sliko akumulatorja (izhodne .pgm datoteke) in najdite maksimume. Koliko jih je?


  • Login