Avtomatsko videotestiranje opremljenosti plošč tiskanega vezja Pavle Novak Univerza v Ljubljani, Fakulteta za elektrotehniko E-pošta: pavle_novak@yahoo.com Povzetek. Predstavljena je metoda avtomatskega videotestiranja pravilne opremljenosti plošč tiskanega vezja za elektronske naprave. Metoda uporablja slike opremljenih plošč, jih najprej normira, poišče robove in primerja. Taka zasnova se lahko uporablja za različna videotestiranja, vendar simulacija pokaže, da se morajo upoštevati posebne lastnosti testirancev. Za čim boljše rezultate je treba prilagajati parametre vseh operacij, glede na velikost in gostoto elementov. Postopek je simuliran z matematičnim orodjem Matlab in slikami opremljenih plošč tiskanega vezja, katerimi so bili odstranjeni nekateri od elementov. Čas trajanja simulacije je bil predolg za testiranje v realnem času. Robljenje je eden daljših postopkov, zato je predstavljeno tudi načrtovanje VLSI-vezja, ki bi omogočilo hitrejše iskanje robov na slikah - regularno 'wavefront' procesorsko polje. Tako zasnovana naprava bi omogočala testiranje pravilne opremljenosti plošč tiskanega vezja za elektronske naprave v realnem času. Ključne besede: videotestiranje, normiranje slik, robljenje slik, VLSI Automatic video testing of assembly of printed circuit boards Extended abstract. A procedure is introduced for automatic video testing of correct assembling of circuit boards. The procedure uses pictures of assembled boards. It first standardizes them and then searches and compares edges. The procedure starts with learning and continues with testing. It remembers the necessary parameters of a correctly assembled circuit board. Picture standardizing is divided into two parts. In the first part (approximate positioning) the outside edge is searched and in the second it is standardized (Figure 3): position, size and angle. For the first two the 'Regionprops' function of the mathematical Matlab tool [3] [4] is used. However, points of the outside outline are transformed into polar coordinates with the base in the center of the mass (Figure 4) for standardizing the angle. The maximum of circular correlation (Figure 5) indicates the necessary corner alteration. As board edges aren't cut off carefully, board pictures don't overlap accurately after approximate positioning. When taking a snapshot from a side, the perspective needs to be considered, too. In other parts used for refined positioning, four selected points on the reference test board (Figure 1) are used for projection of the tested picture. Points are chosen so as to be simply searched and their position measured with the automatic procedure. A rectangle is selected on the reference test picture, where edges are searched and filled. The element with the largest surface is selected and the center of the mass is measured. That is why edges of points must be sharp and as round as possible. This makes them quickly distinct and their coordinates are more easily calculated. The longer the distance between the points the lesser the impact of accuracy of the calculated positions. Positions of these points are on the tested picture calculated with regard to parameters of approximate positioning. Then, as on the reference test picture in the surrounding, every point center of the mass of the largest filled edge is searched (Figure 2). The picture is standardized more accurately after projection. Two edging procedures are compared: the 'Canny' gradient method [3] (Figure 6) and local thresholding [1] (Figure 7). The differences between the boards are in points of edges which are not excluded with the mask. The mask is formed from edges of another picture. As edges aren't expressed equally intensely on all the pictures, edge detection is made with two levels of sensitivity. For the mask, sensitivity is slightly higher, so all the edges close to recognition are erased in the comparison. Since the procedure distinguish is between differently oriented edges, edges are divided into eight groups. For masking the edges in various directions, it uses edges of other pictures of the same direction with edges rotated for 22.5°. Differences occur also after masking. They are due to small differences in elements. Being of no great importance, they are ignored. The procedure is simulated with the Matlab mathematical tool and with pictures of assembled circuit boards in which some of the elements are removed. The simulation time is too long for real-time testing. Edge detection is part of the procedure with long duration. It is for this reason that planning of the VLSI circuit is introduced too, to allow for a quicker search of edges on the pictures. The dependency diagram (Figures 8 and 9) is suggested and the solution is the regular 'Wavefront' processor field [2] (Figure 10) after projection. Such application design can be used in various video testing, provided special characteristics of the testee are considered. Procedure parameters must in each step be adapted for better results. This involves the size and density of elements. There are no significant differences between the two investigated edge detection methods. The search of differences among picture edges is probably important just for the procedure. The main problem is distinguishing the picture elements from the background. Connection lines are on the picture of the circuit board presented as edges of elements disturbing recognizing the built-in elements. The procedure can be extended to increase its reliability. Its real-time operation should be therefore considered along with parallel processing [5] [6] that would improve activity essentially of performance these devices. Keywords: video testing, picture normalization, edge detection, VLSI 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 opremljenosti 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. 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-p) 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°. 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 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. Slika 8: Graf odvisnosti - struktura. Figure 8: Dependence graph - structure. Slika 9: Graf odvisnosti - funkcijski nivo. Figure 9: Dependence graph - functional level. 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. 16x16,16x16,... 16x16,16x16,... 016x16,16x16,.. 16x16,16x16,. 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 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. D