Tính toán đặc trƣng mức Pixel

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát triển hệ thống tra cứu các loài thực vật quý hiếm tại khu bảo tồn thiên nhiên na hang tỉnh tuyên quang​ (Trang 33)

3. Cấu trúc luận văn

2.4.1 Tính toán đặc trƣng mức Pixel

Theo [5], một số đặc trƣng có thể đƣợc tính toán ở mức pixel, ví dụ nhƣ giá trị pixel , kết cấu và gradient.

Với một ảnh đầu vào, đầu tiên, chúng ta đi tính toán véctơ gradient tại mỗi điểm ảnh. Việc tính toán véctơ gradient đƣợc thực hiện theo cách tính trong quá trình tính toán đặ trƣng SIFT Lowe (1999) [10]. Véctơ đặc trƣng tại mỗi điểm ảnh z đƣợc xác định bởi hai thành phần: đó là độ lớn m(z) và hƣớng

θ(z). Trong [5], hƣớng đƣợc định nghĩa nhƣ công thức (2.2) sau:

2.4.2 Tính toán đặc trƣng mức patch

Trong [5], các patch có kích thƣớc cố định đối với tất cả các ảnh trong cơ sở dữ liệu. Tuy nhiên trong thực tế, các ảnh đầu vào thƣờng có kích thƣớc khác nhau. Với các file hình ảnh có kích thƣớc nhỏ thì số lƣợng các patch đƣợc sinh ra cũng nhỏ, dẫn đến véctơ đặc trƣng thu đƣợc mang lại ít thông tin. Hơn nữa, hai véctơ đặc trƣng của hai ảnh của cùng một lá cây ở hai kích

Hình 2.3: patch thích nghi với = = 8, do đó = = 9

thƣớc khác nhau có thể sẽ rất khác nhau. Vì vậy ta có thể thấy rằng véctơ đặc trƣng tính toán bằng cách đƣợc trình bày trong [5] nhạy cảm với sự thay đổi của kích thƣớc ảnh.

Hình 2.4 (a,b) minh họa vấn đề này. Hình 2.4(a) và hình 2.4 (b) là hai ảnh của cùng một lá cây với hai kích thƣớc khác nhau. Ảnh trong hình 2.4(a) nhỏ hơn ảnh trong hình 2.4 (b). Khi chúng ta sử dụng kích thƣớc patch cố định bằng nhau là 16x16 và kích thƣớc ô lƣới cố định là 8x8, ảnh trong hình 2.4(b) thu đƣợc 77 patch trong khi đó ảnh trong hình 2.4(a) chỉ thu đƣợc 24 patch. Một patch trong hình 2.4(a) chứa nhiều thông tin thực tế hơn là một patch trong hình 2.4(b). ta thấy rõ ràng rằng tập véctơ đặc trƣng mức patch thu đƣợc từ hai ảnh ở hai hình 2.4 (a) và và 2.4(b) là rất khác nhau mặc dù đó là ảnh của cùng một chiếc lá cây, thậm chí là cùng một ảnh khố, chỉ là kích thƣớc hai ảnh khác nhau.

Hình 2.3 minh họa kỹ thuật sinh patch với kích thƣớc thích nghi. Giả sử số lƣợng patch là x ( patch theo chiều ngang và patch theo chiều dọc) Số ô lƣới x đƣợc xác định là , . Với mỗi ảnh có kích thƣớc w × h thì chiều ngang của ô lƣới thích nghi là

và chiều dọc là

. Một patch thích nghi sẽ có kích thƣớc là

trong đó và

. Một patch đƣợc hình thành từ 4 ô lƣới. vùng chồng lấn giữa 2 patch kế tiếp theo chiều dọc hoặc chiều ngang là một vùng rộng 2 ô lƣới. Với cách sinh tập patch thích nghi này, kích thƣớc các patch tỷ lệ thuận với kích thƣớc ảnh.

Hình 2.4(b) và 2.4(c) cho thấy ƣu điểm của kỹ thuật sinh patch thích nghi. Khác với hình 2.4 (a,b), kỹ thuật sinh patch thích nghi khi áp dụng cho

Hình 2.4: Một số ví dụ minh họa patch cố định và patch thích nghi: (a,b) hai ảnh của cùng một lá với kích thước khác nhau sinh ra hai tập patch với

kích thước patch cố định bằng nhau; (b,c): hai ảnh của cùng một lá với kích thước ảnh khác nhau sinh ra hai tập patch với kỹ thuật sinh patch thích nghi.

hai ảnh ở hình 2.4(b,c), chúng ta thu đƣợc hai tập patch với số lƣợng bằng nhau theo cả chiều ngang và chiều dọc. Hai ảnh trong hình 2.4(b,c) cũng là hai ảnh của cùng một lá cây với kích thƣớc khác nhau. Ta có thể thấy nội dung phần ảnh trong 1 patch của hình 2.4(b) tƣơng tự với nội dung trong một patch của hình 2.4(c). Do đó tập véctơ đặc trƣng mức patch thu đƣợc từ ảnh trong hình 2.4(b) và 2.4(c) tƣơng tự nhau. Điều đó khiến véctơ đặc trƣng mức ảnh sẽ tƣơng tự nhau, tức là véctơ đặc trƣng thu đƣợc bất biến với sự thay đổi kích thƣớc ảnh.

2.4.2.2 Tính toán véctơ đặc trƣng mức patch

Véctơ đặc trƣng mức patch đƣợc tính toán dựa trên ý tƣởng của các phƣơng pháp kernel (kernel method). Từ một match kernel giữa hai patch, chúng ta có thể trích rút véctơ đặc trƣng của patch sử dụng một ánh xạ xấp xỉ đặc trƣng mức patch.

Gradient match kernel đƣợc xây dựng từ 3 kernel, đó là magnitude kernel , orientation kernel và position kernel .

(2.12)

Trong đó PQ là các patch của hai ảnh cần đối sánh. là tọa độ điểm ảnh trên các patch PQ . tƣơng ứng là hƣớng gradient

Sử dụng trực tiếp hƣớng gradient trong orientation kernel thì vect đặc trƣng trích rút đƣợc ứng với match kernel sẽ không bất biến với phép xoay. Do đó chúng ta chuẩn hóa hƣớng gradient trƣớc khi sử dụng trong match kernel . Dựa trên ý tƣởng trong bộ mô tả SIFT Lowe (1999) [10] , chúng ta tính hƣớng chính của patch rồi chuẩn hóa tất cả các vect gradient theo hƣớng chính này. Ta có thể sử dụng một trong hai cách để xác định hƣớng chính của patch P. Cách thứ nhất là cách đƣợc sử dụng trong Lowe (1999) [10]. Cách thứ hai là lấy hƣớng chính là hƣớng véctơ tổng của tất cả các véctơ gradient trong patch. Khi đó, góc của các véctơ gradient tại điểm ảnh trong patch P trở thành (2.13):

(2.13)

Sau đó, theo (2.2), hƣớng gradient sau khi chuẩn hóa sẽ là:

(2.14) Cuối cùng, chúng ta xác định đƣợc gradient match kernel với hƣớng gradient sau khi chuẩn hóa nhƣ sau:

(2.15) Gradient magnitude kernel đƣợc xác định nhƣ sau (2.16):

(2.16)

Trong đó độ lớn véctơ gradient sau khi chuẩn hóa đƣợc xác định nhƣ sau (2.17):

(2.17)

Trong đó là hằng số, là độ lớn của véctơ gradient tại điểm ảnh . Ta thấy rằng gradient magnitude kernel là một kernel xác định dƣơng. Cả hai kernel, orientation kernel và position kernel đều là Gaussiankernel có dạng:

(2.18)

Hệ số γ sẽ đƣợc xác định riêng cho từng kernel kokp, đƣợc ký hiệu là

γo γp .

Câu hỏi đặt ra là một match kernel thì làm thế nào để tính toán véctơ đặc trƣng cho một patch? Gọi là ánh xạ đặc trƣng ứng với gradient orientation kernel và position kernel . Khi đó công thức 2.15 đƣợc viết lại nhƣ sau:

(2.19) trong đó Fgradient (P) là véctơ đặc trƣng của parth P, đƣợc xác định nhƣ sau(2.20):

(2.20)

Sau đó, xấp xỉ véctơ đặc trƣng của patch P đƣợc xây dựng nhƣ sau (2.21):

(2.21)

Với là Kronecker product, là xấp xỉ ánh xạ đặc trƣng ứng cới các kernel kokp .

Xấp xỉ ánh xạ dặc trƣng đƣợc tính toán dựa trên một phƣơng pháp cơ bản của KDES. Ý tƣởng cơ bản của việc biểu diễn dựa trên kernel method là tính toán xấp xỉ ánh xạ đặc trƣng ứng với hàm kernel match, nhƣ hình (2.5):

Nói cách khác, các hàm kernel match đƣợc xấp xỉ dựa trên các ánh xạ

Hình 2.5: Ý tưởng cơ bản của việc biểu diễn dựa trên kernel method

đặc trƣng đƣợc tính toán tƣờng minh. Điều này cho phép áp dụng các phƣơng pháp học hiệu quả dành cho các kernel tuyến tính trên các kernel phi tuyến. Hƣớng tiếp cận này đƣợc giới thiệu trong [4] [5] [11] [12] [16].

Một trong những phƣơng pháp tính toán xấp xỉ đặc trƣng đƣợc trình bày trong [4]. Cho một hàm match kernel k(x,y), ánh xạ đặc trƣng ứng với kernel k(x,y) là một hàm thực hiện ánh xạ x vào không gian một véctơ:

Giả sử ta có hệ véctơ cơ sở, khi đó xấp xỉ của véctơ đặc trƣng là trong đó đƣợc xác định nhƣ sau (2.23):

(2.23)

trong đó là ma trận biến đổi, là biểu diễn của trên hệ véctơ cơ sở B.(2.23) là một bài toán quy hoạch toàn phƣơng lồi. Nghiệm giải tích của (2.23) là (2,24):

( 2.24) Xấp xỉ ánh xạ đặc trƣng là (2.25), [4]:

(2.25) trong đó G đƣợc xác định bởi công thức(2.26):

(2.26)

trong đó KBB là ma trận D x D với {KBB}ij = k(vi,vj).kB là một véctơ D x 1 với

{kB}i = k(x,vi).

Với một tập đặc trƣng X= {x1,….,xp}, xấp xỉ ánh xạ đặc trƣng trên X

đƣợc xác định nhƣ sau (2.27):

(2.27)

Để tính toán xấp xiranhs xạ đặc trƣng, ta cần hệ véctơ cơ sở . Hệ véctơ cơ sở B thu đƣợc bằng cách học trên một training pool của các đặc trƣng F, {x1,…,xF}, bằng cách sử dụng CKSVD (constrained kernel singular value decomposition, [4]).

Để tính toán xấp xỉ đặc trƣng trong công thức 2.21 từ các match kernel, hệ véctơ tối thiểu cần đƣợc sinh ra bằng việc học. Hệ véctơ cơ sở tối thiểu phải đƣớc học từ hệ véctơ cơ sở đầy đủ sử dụng KPCA (kernel principal component analysis). Trong đó, hệ véctơ cơ sở đầy đủ thu đƣợc bằng cách lấy mẫu đều và dày từ các vùng ảnh sử dụng một lƣới sao cho hệ các véctơ cơ sở thu đƣợc giúp xấp xỉ một cách chính xác các match kernel. Chúng ta sử dụng hệ véctơ cơ sở và các tham số của các match kernel đã đƣợc học từ một tập con của cơ sở dữ liệu ảnh Imagenet đã đƣợc trình bày tại [5].

Gọi tập do véctơ cơ sở đã học đƣợc là và tập dp véctơ cơ sở là ứng với các kernel kokp. trong đó xi là các véctơ gradient đã đƣợc lấy mẫu và dã đƣợc chuẩn hóa và yi

là các tọa độ trong patch 2D đã đƣợc chuẩn hóa.

Kronecker product làm cho véctơ đặc trƣng có số chiều lớn. để giảm số chiều của , ta áp dụng KPCA lên tập véctơ cơ sở đã đƣợc

nối lại . Gọi thành phần thứ t học đƣợc thông qua KPCA là , ta áp dụng theo[5], gradient kernel descriptor kết quả ứng với match kernel trong (2.12) có dạng (2.28):

(2.28)

2.4.3 Tính toán đặc trƣng mức ảnh

Khi đặc trƣng mức patch đã đƣợc tính cho mỗi patch, công việc còn lại là tính toán véctơ đặc trƣng cho toàn bộ ảnh. Theo Bo & Sminchisescu (2009)

[4], ta sử dụng một cấu trúc Pyramid bằng cách chia ảnh thành các ô bao gồm các dòng và các cột ở một số layer (hình 2.6).

Để tính toán đặc trƣng của toàn bộ ảnh, đầu tiên chúng ta tính toán véctơ đặc trƣng cho mỗi ô của cấu trúc pyramid sau đó ghép chúng lại để thu đƣợc véctơ đặc trƣng cuối cùng của toàn bộ ảnh.

Để tính toán véctơ đặc trƣng cho mỗi ô, chúng ta sử dụng một phƣơng pháp sinh véctơ dặc trƣng từ tập véctơ đặc trƣng mức patch của một vùng. Phƣơng pháp này là một biến thể của phƣơng pháp BoW (Bag Of Word) sử dụng các match kernel để đo độ tƣơng tác giữa hai đặc trƣng cục bộ. Một phƣơng pháp cụ thể đƣợc trình bày chi tiết trong Bo&Sminchisescu(2009) [4]

Hình 2.6: Cấu trúc pyramid

sử dụng EMK (Efficient Match Kernels).

Gọi C là một ô chứa một tập các patch. Tập các patch này có một tập các véctơ đắch trƣng mức patch tƣơng ứng:

X= {x1,….,xp} (2.29) trong đó P là số patch của ô C.

Trong BoW, mỗi véctơ đặc trƣng mức patch của ảnh đƣợc coi nhƣ một từ (word). Giả sử V={v1,…,vD} là từ điển ( một tập các từ). một véctơ đặc trƣng mức patch đƣợc lƣợng tử hóa thành một véctơ chỉ báo nhị phân D

chiều:

(2.30) trong đó ( ) đƣợc các định nhƣ sau:

(2.31)

trong đó . Véctơ đặc trƣng

của một ảnh đƣợc định nghĩa là một hitogram đã đƣợc chuẩn hóa:

(2.32)

trong đó |X| là lực lƣợng của tập X . Khi Bow cƣợc sử dụng cùng với một bộ phân lớp tuyến tính, hàm match kernel là:

(2.33)

Ta ký hiệu độ tƣơng tự giữa hai véctơ đặc trƣng mức patch là x và y (xem định nghĩa của ( ) trong công thức 2.30 và công thức 2.31):

Công thức 2.33 đƣợc viết lại nhƣ sau:

(2.35)

Ý nghĩa của công thức 2.34 là độ tƣơng tự giữa hai véctơ xy là 1 nếu xy đều cùng thuộc về một vung R(vi), và 0 nếu ngƣợc lại. Theo đó, hai véctơ đặc trƣng mức patch có thể đƣợc quy về hai cụm (cluster) khác nhau mặc dù hai véctơ đó rất gần nhau nhƣng lại đƣợc xem là hoàn toàn khác nhau (xem hình 2.7). Trong hình 2.7, các điểm v1,…,v4 biểu diễn trung tâm các cụm (các word), và điểm x,y,z là véctơ đặc trƣng mức patch. Ở đây, ta thấy hai

Hình 2.7: Nhược điểm của cách gán cứng [14]

nhƣợc điểm của cách gán cứng: (i) Trong cách gán cứng, độ tƣơng tự giữa hai véctơ đặc trƣng mức patch yz sẽ là 0. Có nghĩa là chúng khác nhau hoàn toanfbowir vì chúng đƣợc gán vào hai word khác nhau mặc dù chúng gần nhau trong không gian đặc trƣng mức patch; (ii) hai véctơ đặc trƣng xy cùng đƣợc gán vào một word v3 và không thể nhận ra rằng x gần

z hơn y cũng nhƣ không thể biết đƣợc thực tế là y gần z hơn x.Việc lƣợng tử hóa này là một cách xấp xỉ rất thô của độ tƣơng tự trên thực tế giữa hai véctơ đặc trƣng mức patch, 1 nếu đƣợc gán vào cùng một word và 0 nếu ngƣợc

lại.Cách gán cứng này có thể gây ra lỗi do sự thay đổi của véctơ đặc trƣng do ảnh hƣởng của nhiễu, điều kiện chiếu sáng thay đổi, các biến đổi không tuyến tính. Do đó chúng ta sẽ sử dụng cách gán mềm (“soft asignment”, đƣợc trình bày trong [14]). Phƣơng pháp này dựa trên kỹ thuật kết hợp có trọng số các word. Đây là một cải tiến trong việc matching các patch (so với việc gán cứng). Thuật ngữ “soft asignment” mô tả một kỹ thuật mà ở đó trọng số đƣợc gán cho các từ lân cận phụ thuộc vào khoảng cách giữa các véctơ đặc trƣng và các trung tâm cụm.

Với ý tƣởng tƣơng tự, trong EMK, ( ) trong công thức 2.35 đƣợc thay thế bằng hàm kernel liên tục ( ) giúp đo độ tƣơng tự giữa hai véctơ đặc trƣng mức patch và một cách chính xác hơn. Khi đó hàm kernel trở thành:

(2.36)

Giả sử rằng ( )là kernel hữu hạn chiều (xem Định nghĩa 1), khi đó match kernel là:

(2.37)

Định nghĩa 1: (Kernel hữu hạn chiều[4]) Hàm kernel được gọi là hữu hạn chiều nếu ánh xạ đặc trưng là hữu hạn chiều.

(2.38) Match kernel đƣợc viết lại nhƣ sau:

(2.39)

Véctơ đặc trƣng trên các tập patch đƣợc tính tƣờng minh. Sau đó có thể áp dụng toàn bộ phân lớp tuyến tính vào các véctơ đặc trƣng đã đƣợc tính toán. Trong 2.38, là ánh xạ đặc trƣng xấp xỉ (2.25) ứng với kernel

( ) với tập véctơ cơ sở đƣợc sinh ra bởi CKSVD [4].

Sau khi các véctơ ứng với mỗi ô đƣợc tính toán, ta ghép chúng lại để tạo ra véctơ đặc trƣng mức ảnh. Cho một ảnh, gọi L là số layer. ở đây L=3. Số ô ở layer thứ t trong layer l). Một patch đƣợc coi là thuộc một ô khi tâm của patch đó thuộc vào ô. Ánh xạ đặc trƣng trên cấu trúc Pyramid là (2.40)

(2.40)

Trong công thức 2.40, là trọng số ứng với layer l.

Hình 2.6 minh họa cách tính toán đặc trƣng mwucs ảnh trên cấu trúc pyramid.

Match kernel giữa 2 ảnh trên cấu truc pyramid sẽ là:

trong đó là ánh xạ đặc trƣng trên cấu trúc Pyramid :

(2.42) Trong (2.42), trọng số ứng với layer l đƣợc xác định nhƣ sau:

(2.43)

Cuối cùng, chúng ta thu đƣợc véctơ đặc trƣng cho toàn bộ ảnh bằng cách ghép tất cả các véctơ đặc trƣng của tất cả các ô trong lớp layer của cấu trúc pyramid. Véctơ đặc trƣng này sẽ đƣợc đƣa vào bộ phận Multiclass SVM để thu đƣợc xác xuất một mẫu thuộc về từng lớp. Kết quả tra cứu đƣợc đƣa ra dựa trên việc sắp xếp theo giá trị xác xuất (thu đƣợc từ multiclass SVM)

2.5 Phân lớp ảnh lá cây

Có nhiều phƣơng pháp máy vectơ phân lớp nhƣ Hard Margin, Soft Margin, Kernel....Các phƣơng pháp máy vectơ phân lớp đều đƣợc xây dựng nhằm giải quyết bài toán Binary Classification, tức là bài toán phân lớp chỉ với 2 classes. Việc này cũng tƣơng tự nhƣ Percetron Learning Algorithm hay Logistic Regression. Các mô hình làm việc với bài toán có 2 classes còn đƣợc gọi là Binary classifiers. Một cách tự nhiên để mở rộng các mô hình anyf áp dụng cho các bài toán multi-class classification, tức là có nhiều lớp dữ liệu khác nhau, là sử dụng nhiều Binary classifiers và các kỹ thuật nhƣ one-vs-one hoặc one-vs-rest.

2.5.1 Máy véctơ hỗ trợ - SVM

Máy hỗ trợ vectơ hỗ trợ (SVM – viết tắt tiếng Anh support vector machine) là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phƣơng pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy. SMV dạng chuẩn dữ liệu vào và phân loại chúng vào hai

lớp khác nhau. Do đó SVM là một dạng thuật toán nhị phân. Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trƣớc, thuật toán luyện tập SVM xây dựng mô hình SVM là một các biểu diễn các điểm trong không gian và lựa

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát triển hệ thống tra cứu các loài thực vật quý hiếm tại khu bảo tồn thiên nhiên na hang tỉnh tuyên quang​ (Trang 33)