Topograficzna analiza dwuwymiarowych obrazów materiału

Transkrypt

Topograficzna analiza dwuwymiarowych obrazów materiału
dr inż. ADAM HEYDUK
Politechnika Śląska
Topograficzna analiza
dwuwymiarowych obrazów materiału ziarnistego
W artykule przedstawiono wykorzystanie metod geometrii różniczkowej do celów
segmentacji obrazu materiału ziarnistego. Podstawową techniką jest analiza wartości własnych macierzy hesjanu jasności obrazu w danym punkcie – umożliwiająca
precyzyjną topograficzną klasyfikację tego punktu. Taka klasyfikacja w istotny sposób ułatwia wyodrębnienie sąsiadujących ze sobą ziaren. Klasyfikacja ta dokonywana jest przy wykorzystaniu dwusześciennej aproksymacji otoczenia tego piksela
opartej na ortogonalnych wielomianach bazowych.
WSTĘP
Segmentacja obrazu materiału ziarnistego opiera się
na przypisaniu każdemu pikselowi odpowiedniej kategorii (np. ziarna, krawędzi ziarna, przestrzeni międzyziarnowej, tła – np. taśmy przenośnika itp.) Klasyfikacja ta dokonywana jest na zasadzie istnienia zależności
miedzy jasnością rozpatrywanego fragmentu obrazu
a własnościami powierzchni fotografowanego obiektu.
Ponieważ w zagadnieniach przeróbki surowców mineralnych występuje zwykle bardzo duża liczba obiektów (ziaren, pęcherzyków) charakteryzujących się
takimi samymi lub bardzo zbliżonymi cechami fotometrycznymi powierzchni (ten sam materiał) to dla
interpretacji obrazu decydujące znaczenie ma ich
ukształtowanie geometryczne (kąt nachylenia w stosunku do kierunku oświetlenia i osi optycznej obiektywu kamery). Przy równomiernym oświetleniu padającym z kierunku zbliżonego do osi obiektywu i prostopadłego do obserwowanej powierzchni (makroskopowo) – najczęściej jest to powierzchnia pozioma
(strumień materiału na taśmie przenośnika lub np.
powierzchnia piany flotacyjnej), fragment obrazu
będzie tym ciemniejszy im większy będzie jego kąt
nachylenia, bo odbite w bok światło nie będzie trafiać
do obiektywu kamery. Stąd też – przy założeniu poziomej powierzchni, górnym powierzchniom ziaren
lub pęcherzyków piany odpowiadać będą obszary
jaśniejsze, natomiast obszary ciemniejsze interpretowane być mogą jako przestrzenie międzyziarnowe.
Zagadnienie segmentacji sprowadzić więc można do
wyszukiwania lokalnych maksimów i minimów jasności obrazu. Najprostszą metodą może być tu progowe
przetwarzanie obrazu, czyli porównywanie luminancji
każdego piksela z ustaloną wartością progową, jednak
z uwagi na występującą w praktyce niejednolitość
oświetlenia oraz zróżnicowaną jasność poszczególnych obiektów jednoznaczne ustalenie tych wartości
progowych praktycznie nie jest możliwe lub też prowadzi do dużych błędów w lokalizacji granic wydzielanych obszarów. Stad też celowe jest poszukiwanie
metod bardziej precyzyjnie interpretujących lokalną
strukturę obrazu.
Podstawową operacją lokalnego przetwarzania obrazu stosowaną w komputerowych systemach wizyjnych
do celów segmentacji jest wyznaczanie gradientu jasności. Metoda ta jest szczególnie efektywna do wyznaczania granic obiektów o zróżnicowanej jasności
(np. jasny obiekt na ciemnym tle lub odwrotnie) jednak w przypadku niewielkich różnic miedzy obiektem
a tłem lub sąsiednimi obiektami jej zastosowanie staje
się znacznie trudniejsze. Jest to również metoda wrażliwa na zakłócenia spowodowane np. nierównomiernością powierzchni (teksturą) rozdzielanych obiektów
– stąd też zwykle wymagane jest wstępne wygładzenie
segmentowanego obrazu. W niniejszym artykule zaproponowano metodę sześciennej aproksymacji fragmentów obrazu, ułatwiającą łatwe wyznaczenie niezbędnych do dalszej analizy pochodnych pierwszego
i drugiego rzędu w różnych kierunkach, wynikających
z lokalnej struktury obrazu.
6
MECHANIZACJA I AUTOMATYZACJA GÓRNICTWA
1. RÓŻNICZKOWA OCENA WKLĘSŁOŚCI/WYPUKŁOŚCI POWIERZCHNI
W PRZESTRZENI TRÓJWYMIAROWEJ
 2 f
 x 2
a H xy  
 2 f

 xy
Dwuwymiarowy obraz monochromatyczny można
traktować jako dyskretny zbiór wartości pewnej ciągłej funkcji f(x, y) opisującej rozkład jasności (luminancji) w poszczególnych punktach obrazu w przyjętym układzie współrzędnych x, y. Pochodną tej funkcji dwóch zmiennych f(x, y) w kierunku wektora v
tworzącego kąt α z osią x można ogólnie wyznaczyć
jako
f  x  t cos  , y  t sin    f  x, y 
df ( x, y )
 lim

t

0
dv
t
f  x, y 
f  x, y 

cos  
sin 
x
y
(1)
Postępując tak samo, można wyznaczyć drugą pochodną w tym samym kierunku jako
d 2 f  x, y    f ( x, y )
f ( x, y )

 
cos  
sin   cos  
2
dv
x  x
x


  f ( x, y )
f ( x, y )

cos  
sin   sin 

y  x
x

czyli
d 2 f  x, y   2 f
2 f
f
2

cos


sin 2   2
cos  sin 
dv 2
x 2
y 2
xy
(3)
co można zapisać macierzowo jako
d 2 f  x, y 
  cos 
dv 2
2 f 
xy  cos  


 2 f   sin  

y 2 
(4)
a w skrócie
df
 dT  H  d
dv
(5)
gdzie:
cos    d x 
d
    oznacza kierunek, wzdłuż któ sin    d y 
rego liczona jest pochodna,
obrazu w rozpatrywanym punkcie.
Aby znaleźć kierunek d, w którym druga pochodna
d 2 f  x, y   2 f 2  2 f 2
f
 2 dx  2 d y  2
d x d y przy
2
dv
x
y
xy
warunku d x2  d y2  1 osiąga minimum można zastosować metodę mnożników Lagrange’a, czyli poszukiwać punktów stacjonarnych funkcji
D dx , d y  
2 f 2
2 f
2 f 2
d

2
d
d

d y    d x2  d y2  1
x
x
y
x 2
xy
y 2
 D  d x , d y 

0
d x

Wówczas warunki 
 D  d x , d y 
0

d y

(7)
przybierają postać
(2)
 2 f
 x 2
sin    2
 f

 xy
2 f 
xy 
jest hesjanem jasności
2 f 

y 2 
 2 f
2 f
2
d

2
d x  2 d x  0
 x 2 x
xy

 2
2
 2  f d  2  f d  2 d  0
y
y
 x 2 y
xy
(8)
czyli w zapisie macierzowym
 2 f
 x 2

 2 f

 xy
2 f 
dx 
xy   d x 
      .
2
 f  d y 
d y 
2 
y 
dx 
 musi więc być wektorem własnym
d y 
Kierunek 
 2 f
 x 2
hesjanu H xy  
 2 f

 xy
2 f 
xy 
.
2 f 

y 2 
Zatem przyjmując dla skrócenia zapisu dalszych
obliczeń oznaczenia
Nr 2(456) LUTY 2009
7
Znacznie korzystniej jednak zapisać wzór (18)

2 f
 Fxx  2
x


2 f
F

 yy
y 2


2 f
 Fxy 
xy


w równoważnej postaci   Fxx  Fyy
(10)
i zapisując hesjan w postaci
 Fxx
H xy  
 Fxy
Fxy 
Fyy 
(11)
1 
Fxy   d x 
dx 
 



Fyy   d y 
d y 
2
 4Fxy 2 ,
gdyż zmniejsza to liczbę niezbędnych operacji obliczeniowych (zwłaszcza mnożeń – bardziej czasochłonnych od dodawania i odejmowania) oraz – co
ważniejsze – jednocześnie świadczy, że   0 , gwarantując istnienie rozwiązań równania (17) w zbiorze
liczb rzeczywistych.
Wówczas pierwiastki równania (17), czyli wartości
własne macierzy Hxy można zapisać jako
można napisać, że
 Fxx
F
 xy

(12)
2 
F
Fxx  Fyy 
 Fyy   4 Fxy2
2
xx
(19a)
2
F
Fxx  Fyy 
xx
 Fyy   4 Fxy2
2
(19b)
2
W szczególnym przypadku, gdy   0 (możliwe
czyli
 Fxx  
 F
 xy
Fxy   d x  0
.


Fyy     d y  0
(13)

 Fxx  Fyy
)

 Fxy  0
tylko w sytuacji, gdy jednocześnie 
zachodzi
Równanie macierzowe (13) może mieć niezerowe
rozwiązania tylko wtedy, gdy jego wyznacznik równy jest zeru
Fxx  
Fxy
Fxy
0
Fyy  
(14)
1  2 
Fxx Fyy   Fxx   Fyy    Fxy  0
2
 Fxx  i
 F
 xy
(15)
Wartości własne  muszą być więc pierwiastkami
równania kwadratowego
2
 2    Fxx  Fyy    Fxx Fyy  Fxy 2   0 (17)

  Fxx  Fyy

2


 4 Fxx Fyy  Fxy 
2
 Fxx  2 Fxx Fyy  Fyy  4 Fxx Fyy  4 Fxy  (18)
2
2
 Fxx  2 Fxx Fyy  Fyy  4 Fxy
2
2
dx 
(20)
Fxy
(2.21a)
  1
Fxx  Fyy 
F
xx
 Fyy   4 Fxy2
2
2 Fxy
(2.21b)
a dla   2
2
2
Fyy  
dx 
czyli dla
Wyróżnik  tego równania kwadratowego (17)
będzie miał postać
Fxy   d x  0

Fyy  i   d y  0
Przyjmując wstępnie np. d y  1 uzyskuje się
(16)
czyli
(19c)
2
Dla każdej wartości i można wyznaczyć odpowiadający jej wektor własny z układu równań
czyli
 Fxx      Fyy     Fxy 2  0
Fxx  Fyy
dx 
Fxx  Fyy 
F
xx
 Fyy   4 Fxy2
2 Fxy
2
(2.21c)
MECHANIZACJA I AUTOMATYZACJA GÓRNICTWA
8
Wektory własne będą więc miały postać:

 Fxx  Fyy 
d1  


F

 Fxx  Fyy 
d2  


2

 Fyy   4 Fxy2 

2 Fxy


1
F
xx
xx
 Fyy 
2 Fxy
1
2
 Fxx
F
 xy

 4F 



2
xy
d2 f
 1  d1x
dd12
Fxy   d1x 
 d1x 
    1  

Fyy   d1 y 
 d1 y 
(26)
 d1x 
d1 y      1  d12x  d12y   1 (27)
 d1 y 
I analogicznie
2

 Fyy   4 Fxy2 

2 Fxy

2
 Fxx  Fyy   4Fxy2 

2 Fxy

F
 Fxx
F
 xy
Do dalszych rozważań najkorzystniej przyjąć wektory własne w postaci znormalizowanej (o długości
równej 1), czyli
 d1x 
d 
 1y 
1
1
d2 
d2
d 22x  d 22y
 d2 x 
d 
 2y 
(23)
(28)
Fxy   d 2 x 
 d2 x 
    2  

Fyy   d 2 y 
d2 y 
(29)
to
d2 f
 2  d 2 x
dd 22
 d2 x 
d 2 y      2  d 22x  d 22y   2 (30)
1 4 2 43
d2 y 
1
2. LOKALNA APROKSYMACJA FRAGMENTÓW OBRAZU FUNKCJĄ DWUSZEŚCIENNĄ Z WYKORZYSTANIEM WIELOMIANÓW
ORTOGONALNYCH
Do celów analizy topograficznej metodami geometrii różniczkowej najkorzystniej jest otoczenie rozważanego punktu (piksela) P(x,y) aproksymować określoną funkcją, np. dwuwymiarowym wielomianem
o ogólnej postaci
f ( x, y )  K1  K 2 x  K 3 y  K 4 x 2  K 5 xy  K 6 y 2 
           
aproksymacja
liniowa
gdyż ułatwi to dokonywanie przekształceń odwrotnych.
Zachodzi wówczas
1 dla i  j
eTi  e j  
0 dla i  j
Fxy   d 2 x 

Fyy   d 2 y 
A ponieważ
(22)
1
1
d1 
d1
d12x  d12y
 Fxx
d 2 y   
 Fxy
d2 f
 d2 x
dd 22 
xx
2

2 
2

 F  Fyy   Fxx  Fyy   4 Fxy 
d1T  d 2   Fxx  Fyy   Fxx  Fyy   4 Fxy2 2 Fxy    xx



 
2 Fxy


2
2

 

  Fxx  Fyy   Fxx  Fyy   4 Fxy2    Fxx  Fyy   Fxx  Fyy   4 Fxy2   4 Fxy2 

 

2
2
  Fxx  Fxy    Fxx  Fyy   4 Fxy2   4 Fxy2  0


e2 
(25)
to
Wektory własne d1 , d 2 (o ile są różne) tworzą
układ ortogonalny, gdyż ich iloczyn skalarny
e1 
Fxy   d1x 

Fyy   d1 y 
A ponieważ
lub po przeskalowaniu

F  Fyy 
d1   xx



F  Fyy 
d 2   xx


 Fxx
d1 y   
 Fxy
d2 f
  d1x
dd12 
(24)
Wracając do wyznaczania wartości drugiej pochodnej w wyznaczonych kierunkach d1 i d2 można
zapisać
aproksymacja
kwadratowa
(31)
 K 7 x 3  K 8 x 2 y  K 9 xy 2  K10 y 2
            
aproksymacja
sze śzeście
Sumaryczny błąd aproksymacji we wszystkich
punktach prostokątnego otoczenia (okna) punktu
będzie równy
e 2   ( K1  K 2 x K 3 y  K 4 x 2  K 5 xy  K 6 y 2 
x
y
 K 7 x  K 8 x y  K 9 xy  K10 y  f ( x, y ))
3
2
2
3
2
.
Nr 2(456) LUTY 2009
9
Minimalizacja tego błędu, czyli aproksymacja optymalna w sensie metody najmniejszych kwadratów,
będzie możliwa, gdy wyzerują się pochodne funkcji
błędu, po wszystkich współczynnikach K1, K2, ... K10,
czyli
e 2
e 2
e 2
e 2
 0,
 0,
 0,
 0, ...
K1
K 2
K 3
K 4
e 2
e 2
e 2
 0,
 0,
0
K 8
K 9
K10
(32)
Po wyznaczeniu wartości współczynników K1, K2
… K10 można już stosunkowo łatwo wyliczyć pochodne cząstkowe
 f ( x, y )
 K 2  2 K 4 x  K 5 y  3K 7 x 2  2 K8 xy  K 9 y 2


x

 f ( x, y )
2
2
 y  K 3  K 5 x  2 K 6 y  K8 x  2 K 9 xy  3K10 y
(33)

  2 f ( x, y )
 2 K 4  6 K 7 x  2 K8 y

2
 x
  2 f ( x, y )
 2 K 6  2 K 9 x  6 K10 y

2
 y
  2 f ( x, y )
 K5  2 K8 x  2 K 9 y

 x y
Dla klasyfikowanego punktu P położonego w centrum rozpatrywanego obszaru (czyli o współrzędnych
(x=0, y=0) )wyrażenia (33) przyjmują jeszcze znacznie prostszą postać

f ( x, y )
 K2
 Fx 
x

f ( x, y )

 Fy  y  K 3


 2 f ( x, y )
 2K4
 Fxx 
x 2


 2 f ( x, y )
 2K6
 Fyy 
y 2


 2 f ( x, y )
 K5
 Fxy 
x y

(34)
Poszczególne pochodne cząstkowe (niezbędne do
obliczania wartości gradientu i hesjanu) można więc
bardzo łatwo wyznaczyć bezpośrednio na podstawie
znajomości współczynników wielomianu aproksymacyjnego (31).
[1],[2] według następujących reguł (Uwaga: Ze
względu na występujące w obrazie zakłócenia przyjęto, że warunki i  0 , i  0 , i  0 odpowiadają
porównaniu wartości i z określoną wartością progową (wartość ta może być np. lokalnie wyznaczana
w sposób adaptacyjny przy uwzględnieniu wariancji
jasności w najbliższym otoczeniu rozpatrywanego
piksela), gdyż chodzi o to aby jednoznacznie klasyfikować tylko „wyraźne” granice).
Jeśli gradient jasności G  0 to punkt leży na obszarze nachylonym (np. pochyłej krawędzi ziarna)
i nie jest celowe rozpatrywanie wartości i znaku drugiej pochodnej kierunkowej
Jeśli gradient G  0 to niezbędna jest dalsza analiza na podstawie znaków i wartości drugich pochodnych:
 Jeśli 1  0 , 2  0 obszar płaski (zwykle górna
powierzchnia ziarna lub fragment rozległej przestrzeni międzyziarnowej – w tym przypadku dodatkową wskazówką może być bezpośrednio wartość
luminancji rozważanego piksela),
 Jeśli 1  0 , 2  0 obszar wypukły (górna powierzchnia ziarna – nie może wchodzić w skład
przestrzeni międzyziarnowej),
 Jeśli 1  0 i 2  0 obszar wklęsły (jeśli taki
obszar graniczy z innymi punktami przestrzeni
międzyziarnowej to może być do niej zaliczony,
natomiast jeżeli jest ze wszystkich stron otoczony
obszarem płaskim lub wypukłym – to oznacza
zwykle niewielkie wgłębienie na górnej powierzchni jakiegoś ziarna),
 Jeśli 1  0 , 2  0 podłużne minimum (np.
wklęsła granica między 2 ziarnami),
 Jeśli 1  0 , 2  0 podłużne minimum (np.
wklęsła granica między 2 ziarnami),
 Jeśli 1  0 , 2  0 podłużne maksimum (np.
wypukła krawędź 2 ścian ziarna na jego górnej powierzchni),
 Jeśli 1  0 , 2  0 podłużne maksimum (np. wypukła krawędź 2 ścian ziarna na jego górnej powierzchni),
 Jeśli 1  0 2  0 punkt siodłowy (np. 2 ziarna
stykające się na niewielkim obszarze – może być
zaliczone do przestrzeni międzyziarnowej),
 Jeśli 1  0 , 2  0 punkt siodłowy (np. 2 ziarna
stykające się na niewielkim obszarze – może być
zaliczony do przestrzeni międzyziarnowej).
3. REGUŁY KLASYFIKACJI POSZCZEGÓLNYCH PIKSELI OBRAZU
4. PRZYKŁAD OBLICZENIOWY

Wartość gradientu luminancji G  Fx2  Fy2
 oraz
wartości własnych hesjanu luminancji pozwalają
jednoznacznie klasyfikować wiele punktów obrazu
Dla ilustracji opisanej powyżej metody klasyfikacyjnej przedstawiono przykłady analizy, prze-
MECHANIZACJA I AUTOMATYZACJA GÓRNICTWA
10
prowadzonej i zwizualizowanej za pomocą programu Matlab™. Dla zapewnienia większej szybkości obliczeń, procedury obliczeniowe zostały
napisane w języku Visual C w postaci MEXplików [3],[4], co jednocześnie ułatwić może ich
dalszą integrację w systemie docelowym, pracującym w czasie rzeczywistym.
Rys. 4. Zacienione obszary wklęsłe
dla obrazu z Rys. 1
WNIOSKI
Rys. 1. Przykładowy obraz materiału ziarnistego
Rys. 2. Podłużne minima luminancji
dla obrazu z Rys. 1
Podstawowym elementem segmentacji obrazów
materiału ziarnistego jest wyznaczenie podłużnych
minimów luminancji. Istotną rolę odgrywają także
inne punkty, a zwłaszcza zacienione obszary wklęsłe
– położone między kilkoma ziarnami oraz punkty
siodłowe w obszarach bezpośredniego styku dwóch
sąsiadujących ze sobą ziaren. Ich wyodrębnienie jest
niezbędne dla zapewnienia ciągłości wyznaczanych
konturów poszczególnych ziaren. Klasyfikacja punktu możliwa jest jednak dopiero na podstawie analizy
jego bezpośredniego otoczenia (dwuwymiarowego
okna pomiarowego o określonym rozmiarze). Takie
otoczenie najdogodniej aproksymować funkcją sześcienną o współczynnikach wyznaczanych za pomocą ortogonalnych wielomianów bazowych.
Literatura
1.
2.
3.
4.
Lopez A.M, Lumbreras F., Serrat J.: Evaluation of methods for
ridge and valley detection. IEEE Transactions on Pattern Analysis
and Machine Intelligence, April 1999.
Eberly D., Gardner R., Morse B., Pizer S., Scharlach C.: Ridges
for image analysis. Journal of Mathematical Imaging and Vision,
4:353-373 (1994).
Matlab® 7 External Interfaces. The MathWorks 2008.
Matlab® 7 C and Fortran API Reference. The MathWorks 2008.
Recenzent: dr inż. Roman Kaula
Rys. 3. Punkty siodłowe luminancji
dla obrazu z Rys. 1