vzporedna izvedba algoritmov ra unalni kega vida
Download
Skip this Video
Download Presentation
Vzporedna izvedba algoritmov računalniškega vida

Loading in 2 Seconds...

play fullscreen
1 / 20

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


  • 143 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Vzporedna izvedba algoritmov računalniškega vida' - jabari


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
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?
ad