1 Uvod Pri proizvodnji elektronskih naprav je treba čim hitreje in čim bolj kakovostno opremiti ploščo tiskanega vezja z ustreznimi elementi. Pri tem je pomembna preprosta, hitra in poceni kontrola, saj se v proizvodnji dogajajo napake zaradi nezanesljivosti strojne opreme, kot tudi zaradi človeških napak. Eden od načinov kontrole je videotestiranje opremljenih plošč tiskanega vezja. Na koncu proizvodnega procesa se z videokamero zajema slika dokončanih plošč. S testno napravo se primerja z referenčno testno sliko pravilno opremljene plošče. Rezultat avtomatskega testiranja je slika z označenimi elementi, ki odstopajo od referenčne testne slike plošče tiskanega vezja s pravilno opremljenimi elementi. V drugem poglavju je opisan postopek testiranja, v naslednjih poglavjih pa obdelava slik za prikaz razlik opremljenosti plošč. Nato je v sedmem poglavju opisano tudi načrtovanje posebnega VLSI-vezja za pohitritev delovanja testiranja, če je zaporedno izvajanje algoritma prepočasno. Prikazani so tudi rezultati primerjave na primerih plošč tiskanega vezja. Simulacija postopka je potekala prepočasi za testiranje v dejanskih razmerah v proizvodnji. Z uporabo vzporednega procesiranja v VLSI-vezjih pa bi dosegli potrebne čase izvajanja postopka. 2 Postopek testiranja pravilne opremlje- nosti plošč tiskanega vezja Testiranje je razdeljeno na dve fazi. Najprej je treba podati pravilno opremljeno ploščo, oziroma sliko le-te, ki jo imenujemo referenčna testna slika plošče tiskanega vezja. 2.1 Referenčna testna slika Prva faza se lahko imenuje učenje in se opravi le enkrat za vsako različno ploščo. Tudi različna opremljenost plošče zahteva novo učenje. Testna naprava obdela sliko in si zapomni podatke, ki jih pozneje potrebuje za primerjavo s sliko testirane plošče tiskanega vezja. Pred primerjavo je treba na slikah normirati predmeta. To pomeni, da se mora slika plošče z ene slike prekrivati s sliko plošče z druge slike. Pri zajemanju slike predmet namreč ne bo vedno na istem mestu. Zato je treba eno od slik pripraviti za primerjavo. V postopku se normira slika testirane plošče na podlagi podatkov s slike referenčne testne plošče. Izkazalo se je, da je za točno prekrivanje dveh slik plošč potrebna tudi projekcija ene od slik, saj slikanje plošče ni vedno pod istim kotom. Zato se na referenčni testni sliki (slika 1) ročno izberejo štiri točke. Na slikah plošč tiskanega vezja so točke za projekcijo označene z belo piko v črnem pravokotniku. Testni postopek si zapomni te točke in jih z avtomatskim postopkom poišče tudi na slikah testiranih plošč. Slika 1: Slika referenčne testne plošče tiskanega vezja s točkami za projekcijo, označenimi z belimi pikami v črnih pravokotnikih. Figure 1: Picture of a reference test-circuit board with points for projection marked with white dots in black rectangles. Za samo iskanje razlik na ploščah pa se uporablja primerjava robov. Zato se pripravijo tudi robovi slike referenčne testne plošče tiskanega vezja, ki je potrebno za testiranje vsake plošče. 2.2 Testiranje Druga faza je dejansko testiranje, ki se ponavlja za vsako testirano ploščo oziroma sliko testirane plošče. Najprej je treba sliko pripraviti za primerjavo. Sliki plošč morata biti na istem mestu, zato se testirana slika normira tako, da se ujema z referenčno testno sliko. Kot je bilo omenjeno že pri fazi učenja, se normiranje opravi v dveh korakih – fazah. Izmerijo se podatki, enako kot za testno sliko. S primerjavo teh se dobijo parametri za pomik, skaliranje in rotacijo slike, kar se lahko imenuje grobo pozicioniranje. Avtomatsko video testiranje opremljenosti plošč tiskanega vezja 179 Slika 2: Testirana plošča tiskanega vezja z izmerjenimi točkami za projekcijo. Figure 2: Tested circuit board with measured points for projection. Parametri za pomik se uporabijo za iskanje točk za projekcijo. V okolici izračunanih položajev točk se poiščejo dejanske točke in izmeri njihov natančni položaj (slika 2). Položaji teh štirih točk na obeh slikah pomenijo projekcijo. Na dobljeni sliki se poiščejo robovi, ki se nato primerjajo z robovi slike referenčne testne plošče tiskanega vezja. 3 Grobo pozicioniranje slik Plošče tiskanega vezja niso vedno na istem mestu slike, predvideno pa je, da je na sliki samo ena plošča in da je na sliki cela plošča. Tako se lahko za grobo pozicioniranje uporabi zunanji obris plošč tiskanega vezja, ki se dobi z zapolnitvijo robov na sliki. Rezultat grobega pozicioniraniranja (slika 3) je prikazan z odstopanjem zunanjih robov obeh plošč po normiranju testirane slike. Najprej se na sliki poiščejo robovi. Ker natančnost grobega pozicioniranja ni velika že zaradi nenatančno odrezanih plošč tiskanega vezja, metoda robljenja ni toliko pomembna, uporablja pa se 'canny', ker je sorazmerno hitra in je v knjižnici programa MatLab [3]. Izvede se operacija zapiranja [1], da se poveže morebiti prekinjeni zunanji rob plošče. Nato se zapolnijo vsi deli, ki jih robovi na sliki ločijo od meje celotne slike. Ker tako lahko nastane več zaključenih zapolnjenih površin, postopek izbere le največjo, ki je tudi prava, saj druge pomenijo le manjše obrise v ozadju. Za tako dobljeni zapolnjeni obris plošče se izmeri težišče. Na podlagi obeh težišč plošč na slikah se lahko izračuna potreben zamik testirane slike, saj slikana plošča ni vedno točno na istem mestu. Podobno se za dobljeni obris izmeri premer kroga z enako površino. Iz premerov obeh slik se izračuna povečanje ali pomanjšanje testirane slike. Tudi razdalja do slikanega objekta – plošče ni vedno enaka, zato navidezni velikosti slikanih objektov nista enaki. Slika 3: Obrisa plošč tiskanih vezij po grobem pozicioniranju (črna: normirana slika testirane plošče tiskanega vezja, siva: referenčna testna plošča tiskanega vezja). Figure 3: Outlines of circuit boards after approximate positioning (black: standardized picture of the tested circuit board, grey: reference test-circuit board). Za oba parametra se uporabi funkcija Matlab 'regionprops' ('centroid' in 'equivdiameter'), za rotacijo pa je napisana posebna funkcija. 3.1 Rotacija Poleg spremembe položaja in navidezne velikosti predmeta pa se lahko pri zajemanju slike plošča tiskanega vezja tudi zavrti. Zato je treba izračunati tudi kot rotacije testirane slike. Funkcija Matlab 'regionprops' ('orientation') izračuna kot glavne osi predmeta, kar pa ni ustrezna veličina za določanje rotacije. Izkaže se, da je rezultat zelo občutljiv na slikanje s strani. Takrat se slika po eni osi raztegne glede na os, ki je pravokotna na prvo. Rezultat je toliko nenatančen, da je onemogočeno avtomatsko iskanje točk za projekcijo slike. Zato se za iskanje kota rotacije uporabijo polarne koordinate obrisa plošč. Vsem točkam obrisa se spremeni pravokotni koordinatni sistem v polarnega. Pri pretvorbi se spremeni tudi izhodišče koordinatnega sistema, ki je težišče obrisa plošče. Če so potrebne, se z interpolacijo določijo vmesne točke. Na sliki obrisa plošč v polarnih koordinatah (slika 4) x os pomeni kot, y os pa razdaljo od težišča. Pri primerjavi dveh slik se na tako dobljena obrisa izvede krožna korelacija po koordinati, ki pomeni kot (slika 5). Odstopanje maksimuma od sredine celotnega obsega koordinate (360° = 2·π) kaže na potrebno rotacijo. Maksimum se išče le v območju ±60°, saj so plošče ponavadi pravokotne oblike in se zato na 90° pojavljajo lokalni maksimumi. Zato morajo biti plošče vsaj približno enako orientirane. Kot je omenjeno, sme biti odstopanje ±60°. 180 Novak Slika 4: Polarne koordinate obrisov dveh plošč tiskanega vezja (x os pomeni kot). Figure 4: Polar coordinates of outlines of two circuit boards (the abscissa represents the angle). Slika 5: Krožna korelacija polarnih koordinat dveh obrisov plošč. Figure 5: Circular correlation of polar coordinates of two outlines of plates. 4 Fino pozicioniranje slik Na primerih se je pokazalo, da robovi plošč niso natančno odrezani, zato se sliki tudi po grobem pozicioniranju ne prekrivata dovolj natančno. Pri slikanju s strani je treba upoštevati tudi perspektivo. Zato se za fino pozicioniranje uporabi projekcija testirane slike glede na štiri izbrane točke na referenčni testni plošči. Te so izbrane tako, da se lahko preprosto poiščejo in se izmeri položaj z avtomatskim postopkom. Na referenčni testni sliki se določi pravokotnik, v katerem postopek poišče robove, jih zapolni, izbere element z največjo površino in izmeri njegovo težišče. Tako se določijo vse štiri točke. Na testirani sliki se izračuna položaj teh točk glede na parametre grobega pozicioniranja. V okolici se nato za vsako točko enako kot na referenčni testni sliki poiščejo težišča največjih zapolnjenih robov. Tako se izračunajo položaji točk na testirani sliki. Naredi se projekcija testirane slike tako, da se premakne vsaka izmerjena točka na položaj te iste točke na referenčni testni sliki, vmesne točke pa se preračunajo po projekciji. Dobi se boljše prekrivanje obeh plošč kot z grobim pozicioniranjem. Na slikah se izberejo take točke, ki se poiščejo na preprost način, imajo ostre robove in so čim bolj okrogle oblike. Tako so hitro razpoznavne, koordinate težišča pa so laže določljive. Točke morajo biti čim bolj oddaljene med seboj, da se zmanjša vpliv točnosti izračunanih položajev. V tem primeru se uporabljajo prevezave med obema stranema plošče tiskanega vezja, ki so v kotih, da so čim bolj oddaljene med seboj. 5 Robljenje Primerjava opremljenih elementov naredi na podlagi robov. Na slikah rezultatov so robovi obeh slik, poudarjeni pa so tisti, ki so le na eni od slik. Preizkušena sta dva načina robljenja. Prva je gradientna metoda 'canny' (slika 6), druga pa pragovna adaptivna histogramska metoda [1] (slika 7). Slika 6: Primerjava robov z gradientno metodo 'canny' (razlike so poudarjene, v ozadju pa so robovi obeh plošč). Figure 6: Comparison of edges with the 'Canny' gradient method (differences are emphasized, edges of both circuit boards are in the background). Metoda 'canny' išče območja, kjer je gradient nivoja osvetlitve večji od podane vrednosti. Značilnost te metode je v nasprotju z drugimi gradientnimi metodami v tem, da uporablja dve mejni vrednosti za velikost gradienta za zaznavo roba. Ko metoda zazna rob, v okolici nadaljuje z manjšo mejno vrednostjo gradienta. Histogramska metoda pa išče s histogramom slike prag osvetlitve, ki pomeni rob predmetov na sliki. Histogram je porazdelitev točk glede na osvetljenost. Predvideva se, da je osvetljenost enega predmeta približno enaka, prav tako tudi ozadja. Zato se na Avtomatsko video testiranje opremljenosti plošč tiskanega vezja 181 histogramu vidijo skupine približno enakih osvetlitev – maksimumi. Doline – minimumi pa pomenijo robove. Slika 7: Primerjava robov s pragovno adaptivno histogramsko metodo. Figure 7: Comparison of edges with local thresholding. Adaptivna metoda išče minimume – pragove za robove po območjih, saj ponavadi celotna slika ni enakomerno osvetljena. Slika se razdeli na polja 16 x 16 slikovnih elementov. Za iskanje minimumov pa se prištejejo tudi histogrami sosednjih osmih polj. Tako se dobijo za različne dele slike različni pragovi, kar je odvisno od osvetljenosti. 6 Primerjava slik Plošči na slikah morata biti točno prekriti, na teh slikah se poiščejo robovi, nato pa se sliki primerjata. Razlike med ploščama so točke robov, ki se ne izločijo z masko, ki se tvori iz robov druge slike. Čeprav je testirana slika premaknjena na testno sliko, je še vedno minimalno odstopanje robov zaradi neupoštevanih nepravilnosti pri slikanju, robljenju in netočno postavljenih elementov na ploščo tiskanega vezja. Zato se na binarnih slikah maske izvede raztezanje [1], tako da se robovi razširijo in maskirajo tudi prostor okoli robov. Poleg tega tudi robovi niso na vseh slikah enako močno izraženi. Zato se robljenje izvede z dvema nivojema občutljivosti za prepoznavo robov. Za masko se uporabi nekoliko večja občutljivost, da se pri primerjavi izbrišejo vsi robovi, ki so na meji razpoznavnosti. Da bi postopek razlikoval robove, ki so različno usmerjeni, so robovi razdeljeni v osem skupin. Za maskiranje robov v posamezni smeri se uporabi rob druge slike iste smeri ter z robovoma, ki sta zarotirana za 22,5°. Tudi potem nastajajo razlike, ki so posledica drobnih razlik v elementih. Te se odpravijo tako, da se zanemarijo razlike, katerih število slikovnih elementov v skupini je premajhno. To se naredi v dveh nivojih. Najprej se brišejo slikovni elementi, ki se držijo skupaj na eni od slik, nato še skupine, ki so na obeh slikah. Rezultat postopka je slika z robovi (sliki 6 in 7), ki nastanejo le na testirani sliki ali pa jih na testiranih slikah ni, pa so na referenčni testni sliki. Ti robovi so na slikah poudarjeni, rezultat postopka pa je barvna slika, ki loči dodatne in manjkajoče robove. Na sliki so dodani tudi drugi robovi, ki so nepoudarjeni, prikazujejo pa plošče tiskanega vezja v celoti. Pomanjkljivost postopka pa je hitrost, saj se je simulacija z Matlabom na osebnem računalniku izvajala bistveno dalj časa, kot traja cikel polaganja elementov na polagalnih strojih. Od vseh operacij je bilo najpočasnejše histogramsko adaptivno robljenje, ki se je na računalniku PC P4 1,7 MHz in za sliko 720 x 576 slikovnih elementov izvajalo 20 s. Za gradientno metodo 'canny' je bilo potrebnih 5 s, vendar pa postopek zahteva robljenje ene slike dvakrat, da skrijemo robove na meji zaznavnosti. 7 Načrtovanje polja procesorjev za robljenje slik Pri testiranju postopka s simulacijo se je pokazalo, da je robljenje eden počasnejših delov celotnega postopka. Poleg izboljšanja algoritma je drugi način pohitritve tudi vzporedno procesiranje. Zato je opisana možnost implementacije histogramskega adaptivnega robljenja s poljem procesorjev. Zaporedni postopek deli sliko na polja 16 x 16 slikovnih elementov, zato se tudi pri vzporednem postopku najprej slika razdeli na polja. V grafu odvisnosti (sliki 8 in 9) je dvodimenzionalno polje vozlov za vsak del slike, za katerega se izračuna histogram. Tretja dimenzija pa je zaporedno procesiranje – cevljenje. V tem primeru bi bilo izvajanje še hitrejše na račun obsežnejšega polja. Pri projekciji [2] v graf poteka signalov (slika 10) po eni od dimenzij slike, se zmanjša število potrebnih procesorskih elementov na račun zaporednega in s tem počasnejšega izvajanja algoritma. Polja slike v eni od dimenzij slike se obdelujejo zaporedno. Ta graf poteka signalov pa se prenese na polje procesorjev, kar je lahko regularno procesorsko polje 'wavefront'. Na vhod polja procesnih elementov pridejo podatki v skupinah za eno polje 16 x 16 slikovnih elementov. Najprej se v prvi vrsti izračunajo histogrami. Druga vrsta procesorjev iz rezultatov prve vrste izračuna minimume, ki se uporabijo za določanje pragov histogramske metode iskanja robov. Hkrati lahko prva vrsta procesorjev računa histograme naslednjih polj slike. Tretja vrsta procesorjev iz posameznih polj in pragov poišče robove, hkrati pa predhodne vrste procesorjev obdelujejo že naslednja polja slike. 182 Novak 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 16x16 Slika 8: Graf odvisnosti – struktura. Figure 8: Dependence graph – structure. T= min(∑) sign(xt-T)!= sign(xt-1-T) 16x16 H(D) 16x16 Slika 9: Graf odvisnosti – funkcijski nivo. Figure 9: Dependence graph – functional level. D 16x16,16x16,... 16x16,16x16,... 16x16,16x16,... 16x16,16x16,... 16x16,16x16,... 16x16,16x16,... D D Slika 10: Graf poteka signalov. Figure 10: Signal-flow graph. 8 Problemi pri iskanju rešitve testiranja Pri reševanju zadane naloge je bilo treba premagati nekatere težave, ki so odvisne od plošče tiskanega vezja, ki se testira. Nekateri parametri so izbrani glede na ploščo in elemente, ki so vgrajeni. Največja težava je razlikovanje elementov od ozadja. Robovi povezav na plošči tiskanega vezja se na sliki robov kažejo tako kot robovi elementov, lahko pa so tudi na istem mestu. Zato robovi povezav motijo razpoznavanje. Če neki element manjka, so lahko na mestu elementa vezi, katerih robovi se težko ločijo od robov predvidenih elementov. Prav tako pa so na elementih črte in napisi, ki se jih ne da preprosto ločiti od povezav in prevezav. Večji elementi so pritrjeni na večje blazinice, zato njihov položaj ni tako natančen kot pri manjših elementih. Zamik pri največjih elementih je lahko tudi za red velikosti najmanjših elementov. V takem primeru je težko ločiti zamik od ozadja. Težave nastanejo tudi zaradi različnih vgrajenih elementov. Ti so lahko različne barve, zato so robovi bolj ali manj izraziti, kar otežuje primerjavo. Nekateri elementi imajo oznako izdelovalca ali pa kodo elementa oziroma vrednosti. Te oznake pa se lahko popolnoma razlikujejo glede na izdelovalca elementa. 9 Sklep Predstavljeni postopek je rešitev za testiranje plošč tiskanega vezja, vendar se je pokazalo, da je treba postopek prilagajati testirancem in uporabiti njihove značilnosti. Med obema načinoma robljenja ni večjih razlik, verjetno zato, ker je za postopek pomembnejše iskanje razlik robov med slikama. Za povečanje zanesljivosti delovanja je postopek obsežen. Zato je treba razmišljati tudi o delovanju v realnem času. In tu pride v poštev vzporedno procesiranje, s katerim lahko bistveno povečamo hitrost delovanja takih testnih naprav. 10 Literatura [1] Jurij F. Tasič, Digitalna obdelava slik, 2003 [2] S. Y. Kung, VLSI array processors, 1988 [3] The MathWorks, Inc., MATLAB 7, 2004 [4] Gonzalez, Woods, and Eddins, Digital Image Processing Using MATLAB, 2004 [5] Bruno Codenotti, Mauro Leoncini, Introduction to parallel processing, 1993 [6] Selim G. Akl, The design and analysis of parallel algorithms, 1989 Pavle Novak je diplomiral leta 2000 na Fakulteti za elektrotehniko in računalništvo v Mariboru in je zaposlen v Iskraemecu Kranj.