Tổng quan về Google image search.docx

37
Lời nói đầu Tìm kiếm bằng hình ảnh không phải là một đề tài mới mẻ song cũng chưa có nhiều báo cáo về vấn đề này. Bài báo cáo về công cụ Google Images search hay tìm kiếm hình ảnh của Google có mục đích giới thiệu chung về cách thức hoạt động cũng như mô tả về một số giải thuật sử dụng trong bộ máy tìm kiếm hình ảnh của Google. Trong các giải thuật được Google sử dụng, chúng em xin trình bày kĩ hơn về giải thuật SIFT (Scale-Invarian Feature Transform, David Lowe 1999 và 2004). Giải thuật được đánh giá khá cao trong việc tìm ra các điểm đặc trưng của một bức ảnh, từ đó nâng cao hiệu quả tìm kiếm và làm cho các kết quả truy vấn được chính xác hơn. Tuy rằng giải thuật trên không phải là giải thuật chính và vẫn còn nhiều nhược điểm cần khắc phục, nhưng nó là một giải thuật khá quan trọng được Google Images search sử dụng và kết hợp với các giải thuật khác để đáp ứng được nhu cầu tìm kiếm hình ảnh của người dùng như hiện nay. 1

description

Google image search - research, Vietnamese

Transcript of Tổng quan về Google image search.docx

Page 1: Tổng quan về Google image search.docx

Lời nói đầu

Tìm kiếm bằng hình ảnh không phải là một đề tài mới mẻ song cũng chưa có nhiều báo cáo về

vấn đề này. Bài báo cáo về công cụ Google Images search hay tìm kiếm hình ảnh của Google

có mục đích giới thiệu chung về cách thức hoạt động cũng như mô tả về một số giải thuật sử

dụng trong bộ máy tìm kiếm hình ảnh của Google. Trong các giải thuật được Google sử dụng,

chúng em xin trình bày kĩ hơn về giải thuật SIFT (Scale-Invarian Feature Transform, David

Lowe 1999 và 2004). Giải thuật được đánh giá khá cao trong việc tìm ra các điểm đặc trưng

của một bức ảnh, từ đó nâng cao hiệu quả tìm kiếm và làm cho các kết quả truy vấn được chính

xác hơn. Tuy rằng giải thuật trên không phải là giải thuật chính và vẫn còn nhiều nhược điểm

cần khắc phục, nhưng nó là một giải thuật khá quan trọng được Google Images search sử dụng

và kết hợp với các giải thuật khác để đáp ứng được nhu cầu tìm kiếm hình ảnh của người dùng

như hiện nay.

1

Page 2: Tổng quan về Google image search.docx

M c l cụ ụI. Tổng quan về Google Images search................................................................................................3

1. Khái niệm.......................................................................................................................................3

2. Lịch sử của Google Images search................................................................................................3

3. Google Images search làm việc như thế nào?..............................................................................3

II. Giới thiệu chung về thuật toán thường sử dụng trong Search by Image...................................7

1. SIFT(Scale Invariant feature transform).....................................................................................7

2. PCA- SIFT (Principal Component Analysis – SIFT ).....................................................................9

3. SURF ( Speeded Up Robust Feature).........................................................................................10

3.1 Phát hiện đặc trưng................................................................................................................11

3.2 Mô tả đặc trưng.....................................................................................................................12

3.3 So khớp đặc trưng.....................................................................................................................14

4. So sánh và đánh giá giữa ba thuật toán.....................................................................................15

III. Giải thuật SIFT............................................................................................................................16

1. Nội dung giải thuật......................................................................................................................16

1.1. Dò tìm cực trị cục bộ.............................................................................................................16

1.2. Định vị keypoint....................................................................................................................19

1.3. Gắn hướng cho các keypoint..................................................................................................22

1.4. Tạo bộ mô tả cục bộ...............................................................................................................23

2. Kĩ thuật đối sánh..........................................................................................................................24

2

Page 3: Tổng quan về Google image search.docx

I. Tổng quan về Google Images search.

1. Khái niệm.

Google Images là một dịch vụ tìm kiếm được của Google được ra đời vào năm 2001. Nó

cho phép người dùng tìm kiếm nội dung hình ảnh trên các website. Từ khóa cho việc tìm

kiếm hình ảnh được dựa trên tên file của hình ảnh, tên liên kết và đoạn văn mô tả đi kèm

theo hình ảnh. Khi tìm kiếm, một hình nhỏ (thumbnail) của mỗi kết quả tìm kiếm được

hiện ra. Khi người dùng click vào các thumbnail, hình ảnh được hiện ra trong một khung

và kèm theo link website chứa nó. Từ đó thì người dùng có thể truy nhập vào website

chứa hình ảnh đang tìm kiếm và thấy được kích cỡ thật của hình ảnh đó.

2. Lịch sử của Google Images search.

- Năm 2001, 250 hình ảnh được đánh chỉ mục. Năm 2005, con số đó đã tăng tới một

triệu và tới năm 2010 thì đã là 10 triệu hình ảnh.

- Vào 27/10/2009, Google Images đã thêm vào một tính năng cho công cụ tìm kiếm

hình ảnh : tìm kiếm hình ảnh tương tự.

- 6/2011, Google Images bắt đầu cho phép tìm kiếm hình ảnh trực tiếp trong thanh tìm

kiếm. Với chức năng này, người dùng có thể tải hình ảnh từ máy tính cá nhân hoặc

đưa vào thanh tìm kiếm một địa chỉ URL của hình ảnh để thực hiện quá trình tìm

kiếm.

- Vào 11/12/2012, công cụ Google Images search một lần nữa thay đổi các giải thuật

tìm kiếm với hi vọng ngăn chặn các hình ảnh khiêu dâm. Tất nhiên những hình ảnh

này sẽ vẫn có thể xuất hiện khi các từ khóa tìm kiếm có chứa nội dung khiêu dâm.

3. Google Images search làm việc như thế nào?

3

Page 4: Tổng quan về Google image search.docx

Ở đây có thể phân chia thành 2 loại : tìm kiếm hình ảnh bằng text và tìm kiếm hình ảnh

bằng hình ảnh.

Đối với tìm kiếm hình ảnh bằng text (keyword – từ khóa) : khi chúng ta gõ từ khóa vào

thanh tìm kiếm thì bộ máy tìm kiếm của Google sẽ thực hiện truy vấn với các siêu dữ liệu

được đánh chỉ mục trong cơ sở dữ liệu. Từ đó hiển thị các kết quả cho người dùng. Sau đây

là cụ thể hóa các công việc để thực hiện truy vấn.

- Google sử dụng các bot hoặc các spider (là những chương trình tự động hóa) để tìm

kiếm trong các website. Các bot hoặc spider này tự động dò tìm và phân tích các

trang web với mục đích tìm kiếm thông tin của các hình ảnh trong đó. Và quá trình

này được lặp đi lặp lại với mục đích bổ sung dữ liệu hoặc cập nhật dữ liệu cho hình

ảnh đó. Tần suất của việc cập nhật có thể là mỗi giờ, mỗi ngày hoặc thậm chí là vài

tháng. Việc lặp lại như thế phụ thuộc vào việc website đó có thường xuyên được cập

nhật hay không.

- Công cụ tìm kiếm của Google tìm kiếm như một người mù. Vì rõ ràng các bot hay

spider không thể biết nội dung của bức ảnh mà chúng tìm được. Chúng chỉ có thể dò

tìm và cập nhật nội dung của bức ảnh thông qua các nội dung các thẻ như <alt> hay

qua tên file và qua nội dung văn bản mô tả cho bức ảnh. Từ đây chúng đưa các thông

4

Page 5: Tổng quan về Google image search.docx

tin vào cơ sở dữ liệu và lưu như meta data. Trong đó có lưu các thông tin về ảnh, về

website chứa ảnh, liên kết… cần thiết cho việc truy vấn.

- Sau khi truy vấn thì với hàng trăm nghìn hoặc có thể lên tới hàng triệu kết quả, thì

Google sử dụng bộ lọc và Page rank checker để hiển thị các kết quả theo một thứ tự

nhất định.

Tuy nhiên, đó là thực hiện tìm kiếm với từ khóa, công cụ của Google sẽ không phải

quan tâm đến màu sắc hay kết cấu của ảnh.. Bắt đầu với tìm hình ảnh tương tự và cho

đến bây giờ là tìm hình ảnh bằng địa chỉ URL hay upload một file hình ảnh lên thì

Google đã thêm vào các giải thuật để phân tích hình ảnh như SURF, SIFT, PCA-SIFT,

FAST, BRIEF… để tìm kiếm theo nội dung của ảnh hay còn gọi là truy vấn theo nội

dung ảnh.

Để phân tích được hình ảnh thì cần nắm rõ hình ảnh có những đặc trưng nào. Ta có thể

liệt kê một số đặc trưng như : màu sắc, kết cấu, hình dạng, các đặc trưng cục bộ..

- Đặc trưng màu sắc : Màu sắc là một đặc trưng nổi bật và được sử dụng phổ biến nhất

trong tìm kiếm ảnh theo nội dung. Mỗi một điểm ảnh (thông tin màu sắc) có thể

được biểu diễn như một điểm trong không gian màu sắc ba chiều. Các không gian

màu sắc thường dùng là: RGB, CIE, HSV. Tìm kiếm ảnh theo màu sắc tiến hành tính

toán biểu đồ màu cho mỗi ảnh để xác định tỉ trọng các điểm ảnh của ảnh mà chứa

các giá trị đặc biệt (màu sắc). Các nghiên cứu gần đây đang cố gắng phân vùng ảnh

theo các màu sắc khác nhau và tìm mối quan hệ giữa các vùng này.

- Đặc trưng kết cấu : Trích xuất nội dung ảnh theo kết cấu nhằm tìm ra mô hình trực

quan của ảnh và cách thức chúng được xác định trong không gian. Kết cấu được biểu

diễn bởi các texel mà sau đó được đặt vào một số các tập phụ thuộc vào số kết cấu

được phát hiện trong ảnh. Các tập này không chỉ xác định các kết cấu mà còn chỉ rõ

vị trí các kết cấu trong ảnh. Việc xác định các kết cấu đặc biệt trong ảnh đạt được

chủ yếu bằng cách mô hình các kết cấu như những biến thể cấp độ xám 2 chiều.

5

Page 6: Tổng quan về Google image search.docx

- Đặc trưng hình dạng : Hình dạng của một ảnh hay một vùng là một đặc trưng quan

trong trong việc xác định và phân biệt ảnh trong nhận dạng mẫu. Mục tiêu chính của

biểu diễn hình dạng trong nhận dạng mẫu là đo thuộc tính hình học của một đối

tượng được dùng trong phân lớp, so sánh và nhận dạng đối tượng.

- Đặc trưng cục bộ bất biến : mỗi ảnh đều có những đặc trưng cục bộ như là điểm nhô

ra (salient points) hay các điểm hấp dẫn Haris (interest points) và những điểm này sẽ

thể hiện đặc điểm chính hay nội dung chính của bức ảnh.

Khi tìm kiếm theo nội dung ảnh như trên thì với mỗi ảnh được upload lên, bộ máy làm

việc của Google sẽ dùng các giải thuật để tìm các keypoints trong ảnh và so sánh nó với

siêu dữ liệu trong cơ sở dữ liệu đã được đánh chỉ mục trước đó. Việc đánh chỉ mục cho

các hình ảnh trong cơ sở dữ liệu được các bot và spider thực hiện trước đó bao gồm cả

việc phân tích trực tuyến các ảnh trên các website và lưu trữ các keypoints vào các file

XML. Quá trình thu thập thông tin này được thực hiện trong khoảng thời gian dài và

được lặp đi lặp lại, bất kể người dùng có truy vấn đến bức ảnh hay không thì quá trình

này vẫn xảy ra, đảm bảo cho hiệu năng tìm kiếm được nâng cao. Sau đó thì quá trình lọc

kết quả và hiển thị hình ảnh tới người dùng thì y hệt như tìm kiếm hình ảnh theo text.

6

Page 7: Tổng quan về Google image search.docx

II. Giới thiệu chung về thuật toán thường sử dụng trong Search by Image.

1. SIFT(Scale Invariant feature transform).

Một thuật toán tiêu biểu và có hiệu quả khá cao là dựa theo các đặc trưng cục bộ

bất biến trong ảnh: SIFT (Scale-invariant Feature Transform) do David Lowe đưa ra từ

năm 2004 và đến nay đã có nhiều cải tiến trong thuật toán. Đặc trưng được trích chọn

trong SIFT là các keypoint. Key point là một điểm hoặc một vùng trong ảnh chứa rất

nhiều thông tin cục bộ và không bị thay đổi bới các hoạt động nhiễu toàn cục hay địa

phương, như là: biến đổi hình học affine, tỉ lệ, quay, độ chiếu sáng…

SIFT bao gồm bốn bước chính :

- Phát hiện các điểm cực trị Scale-Space (Scale-Space extrema detection):

Bước đầu tiên này tiến hành tìm kiếm các keypoint trên tất cả các tỉ lệ và

vị trí của ảnh. Nó sử dụng hàm different-of-Gaussian để xác định tất cả

các keypoint tiềm năng mà bất biến với quy mô và hướng của ảnh.

7

Page 8: Tổng quan về Google image search.docx

- Định vị các keypoint (keypoint localization): Một hàm kiểm tra sẽ được

đưa ra để quyết định xem các keypoint tiềm năng có được lựa chọn hay

không?

- Gắn hướng cho các keypoint (Orientation assignment): Xác định hướng

cho các điểm hấp dẫn được chọn

- Mô tả các keypoint (Keypoint descriptor): Các keypoint sau khi được

xác định hướng sẽ được mô tả dưới dạng các vector đặc trưng nhiều

chiều.

Hình 1 Minh họa các bước trong thuật toán SIFT.

Tập các keypoint thu được thường phụ thuộc rất ít vào các phép biến đổi cơ

bản như xoay, phóng to, thu nhỏ, tăng giảm cường độ sáng, vì vậy có thể xem đây

là các đặc trưng mang tính cục bộ của ảnh. Để đối sánh và nhận dạng hai ảnh thì ta

tìm tập keypoint giống nhau trong hai ảnh, dựa vào hướng và tỉ lệ để có thể biết

đối tượng trong ảnh gốc đã xoay, thu phóng bao nhiêu so với ảnh đem đối sánh.

Thuật toán này dựa vào điểm bất biến cục bộ của ảnh, chúng được trích xuất ra,

được định hướng và mô tả sao cho hai keypoint ở hai vùng khác nhau thì khác

nhau. Tuy nhiên một yếu tố ảnh hưởng không nhỏ đến tốc độ thuật toán là số

8

Page 9: Tổng quan về Google image search.docx

lượng các keypoint được lấy ra là không nhỏ. Trung bình một ảnh kích thước 500

x 500 pixels thì sẽ trích xuất được khoảng 1000 điểm (số lượng điểm này phụ

thuộc vào tùy từng ảnh và tham số lọc khác nhau). Số lượng các keypoint có một

tầm quan trọng trong vấn đề nhận dạng đối tượng. Để nhận dạng một đối tượng

nhỏ trong một ảnh chứa tập hợp các đối tượng hỗn độn thì cần ít nhất ba keypoint

giống nhau để phát hiện và và bóc tách đối tượng.

Đối với vấn đề xây dựng một cơ sở dữ liệu ảnh và thực hiện nhận dạng đối

tượng bất kì thì ban đầu thường sử dụng SIFT để tạo một hệ dữ liệu các đặc trưng

(keypoints) được trích xuất từ dữ liệu ảnh gốc. Sau đó với mỗi ảnh đối tượng đem

nhận dạng ta dùng giải thuật SIFT trích xuất tập đặc trưng từ ảnh và đem đối sánh

với hệ dữ liệu đặc trưng để tìm ra tập keypoint giống nhau, từ đó nhận dạng đối

tượng trong cơ sở dữ liệu ảnh ban đầu. Tuy nhiên việc đối sánh này cần chi phí đối

sánh rất lớn đối với cơ sở dữ liệu ảnh có số lượng lớn do số lượng các đặc trưng ở

mỗi ảnh là lớn.

2. PCA- SIFT (Principal Component Analysis – SIFT ).

PCA (Principal Component Analysis) là một giải thuật đưa dữ liệu nhiều

nhiều chiều về không gian có số chiều nhỏ hơn. Nói cách khác mục tiêu của  PCA

là tìm một không gian mới (với số chiều nhỏ hơn không gian cũ). PCA gồm có

các đặc tính sau :

- Giúp giảm số chiều của dữ liệu.

- Thay vì giữ lại các trục tọa độ của không gian cũ, PCA xây dựng một

không gian mới ít chiều hơn, nhưng lại có khả năng biểu diễn dữ liệu tốt

tương đương không gian cũ, đảm bảo độ biến thiên (variability) của dữ

liệu trên mỗi chiều mới.

- Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của không

gian cũ, do đó về mặt ngữ nghĩa, PCA xây dựng đặc trưng (feature)

9

Page 10: Tổng quan về Google image search.docx

mới dựa trên các đặc trưng đã quan sát được. Điểm hay là những đặc

trưng này vẫn biểu diễn tốt dữ liệu ban đầu.

- Trong không gian mới, các liên kết tiềm ẩn của dữ liệu có thể được

khám phá, mà nếu đặt trong không gian cũ thì khó phát hiện hơn, hoặc

những liên kết như thế không thể hiện rõ.

PCA- SIFT là một phương pháp mở rộng của SIFT. Giải thuật này kết hợp

với PCA với mục đích để giảm các chiều (high dimemtionally) của vector đặc

trưng .

3. SURF ( Speeded Up Robust Feature).

SURF là một phương pháp tìm kiếm đặc trưng cục bộ mạnh mẽ, được đưa

ra bởi Herbert Bay vào năm 2006. SURF được sử dụng để nhận dạng đối tượng .

Phương pháp phát hiện đặc trưng của SURF hoạt động dựa trên phương pháp phát

hiện Hessian Blob.

Đặc trưng SIFT có một khuyết điểm là thời gian tính toán chậm nên không

thể áp dụng cho những ứng dụng thực tế thời gian thực . Đặc trưng SURF tối ưu cả

hai giai đoạn phát hiện đặc trưng (detector) và mô tả đặc trưng (descriptor) về mặt

thời gian tính toán nhưng vẫn giữ được tính bền vững của đặc trưng. Bộ phát hiện

đặc trưng của SURF sử dụng phép xấp xỉ trên ma trận Hessian và Integral Image

( hay còn gọi là bảng tổng diện tích - summed area table) để làm giảm thời gian tính

toán một cách đáng kể. Bộ mô tả đặc trưng tương tự như đặc trưng SIFT, sử dụng

vector 64 chiều chứa thông tin biến thiên trên ảnh dựa trên sự phân phối bậc nhất

Haar wavelet tác động trên trục x và y, kết hợp với ảnh tích lũy làm tăng tốc độ tính

toán. SURF được mô tả bởi vector có số chiều ít hơn SIFT nên tốc độ so khớp

nhanh hơn, tuy nhiên độ bền vững vẫn được đảm bảo. Hơn thế nữa, bằng việc đánh

chỉ mục dựa trên dấu của Laplacian, đặc trưng SURF không chỉ tăng tính bền vững

cho đặc trưng mà còn làm tăng tốc độ so khớp (tăng gấp 2 trong trường hợp tốt

nhất).

10

Page 11: Tổng quan về Google image search.docx

3.1 Phát hiện đặc trưng.

Bộ phát hiện đặc trưng của SURF dựa trên ma trận Hessian. Cho trước một

x=[x , y ] trên ảnh I , ma trận Hessian H (x ,σ )trên điểm x tại tỉ lệ σ được xác định

bằng công thức[SURF]:

H ( x , σ )=[Lxx Lxy

Lxy Lyy]

Trong đó, Lxx( x , σ )là tích chập (convolution) đạo hàm cấp hai hàm Gaussian

∂ g (σ )∂2 x

với ảnh I tại tại điểm x và tương tự với Lxy(x , σ ) và Lyy(x , σ ). Nếu như SIFT

xấp xỉ việc tính Laplacian của hàm Gaussian (LoG) bằng việc tính Difference của

hàm Gaussian (DoG) thì SURF xấp xỉ việc tính đạo hàm cấp 2 của hàm Gaussian

bằng các hộp lọc (box filters). Dưới đây là một ví dụ của việc tính xấp xỉ đạo hàm

cấp hai của hàm Gaussian với hệ số tỉ lệ thấp nhất bằng hộp lọc:

Hình 3.1 Xấp xỉ đạo hàm cấp 2 hàm Gaussian bằng hộp lọc

Trong hình 3.1, ảnh thứ nhất là đạo ma trận đạo hàm cấp 2 Gaussian theo

trục y, ảnh thứ hai theo trục x và trục. Ảnh thứ ba và thứ tư lần lượt là các hộp lọc

xấp xỉ với hai trường hợp của ảnh một và hai. Phép tích chập xoắn của ảnh I với các

hộp lọc này được thực hiệc rất nhanh bằng việc sử dụng kết hợp với ảnh tích lũy.

Ta xác định vị trí và hệ số tỉ lệ tương ứng của điểm đặc trưng dựa trên định

thức của ma trận Hessian. Công thức tính xấp xỉ định thức ma trận Hessian:

11

Page 12: Tổng quan về Google image search.docx

det ( H x ấ p xỉ )=D xx D yy−(w . D xy)2

Trong đó w là trọng số cần bằng của biểu thức định thức ma trận Hessian tùy

thuộc vào hệ số tỉ lệ. D xx , D yy , D xy là các hộp lọc xấp xỉ Gaussian như đã nói ở trên.

Đối với tỉ lệ σ=1.2, kích thước hộp lọc là 9x9 thì giá trọng số w được tính bằng:

w=¿ Lxy(1.2)∨¿F

¿D yy(9)∨¿F

¿ Lyy(1.2)∨¿F ¿ D xy(9)∨¿F=0.912 ≈ 0.9¿¿¿¿

Vị trí, tỉ lệ và không gian ảnh mà điểm đặc trưng được xác định bằng cách áp

dụng thuật toán non-maximum suppression 3x3x3 neigbourhood Error: Reference

source not found].

3.2 Mô tả đặc trưng

Đầu tiên là xác định vùng hình trong xung quanh điểm đặc trưng vừa tìm

được, gán một giá trị hướng duy nhất cho điểm đặc trưng. Kích thước của hình tròn

phụ thuộc và hệ số tỉ lệ tương ứng trong không gian ảnh mà điểm đặc trưng tìm

được. Ở đây các tác giả chọn bán kính của hình tròn là 6 s, trong đó s là tỉ lệ mà tại

đó điểm đặc trưng được tìm thấy. Hướng của đặc trưng được tính bằng Haar

wavelet tác động theo hai hướng x và y (Hình). Kích thước của wavelet cũng phụ

thuộc vào hệ số tỉ lệ s , ở đây các tác giả chọn4 s. Haar wavelet có thể được tính một

cách nhanh chóng bằng cách sử dụng ảnh tích lũy, một kỹ thuật khá hiệu quả được

sử dụng phổ biến sau bài báo của Viola và Jones, tương tự như hộp lọc xấp xỉ của

đạo hàm cấp 2 hàm Gaussian. Vector hướng nào trội nhất sẽ được ước lượng và gắn

vào thông tin của điểm đặc trưng. Hình 3.2 mô tả hướng và vùng ảnh hưởng của đặc

trưng.

12

Page 13: Tổng quan về Google image search.docx

Hình 3.2 Vùng hình tròn xung quanh và hướng đại diện cho điểm đặc trưng.

Hình 3.3 Lọc Haar wavelet để tính sự ảnh hưởng trên hai hướng x và

y. Vùng tối có trọng số là -1, vùng sáng là +1

Bước tiếp theo, xây dựng các vùng hình vuông xung quanh điểm đặc trưng

men theo vector hướng vừa ước lượng được ở bước trước đó. Vùng hình vuông này

được chia nhỏ thành 4x4 hình vuông con để ghi nhận thông tin của trên miền không

gian ảnh lân cận. Haar wavelet được rút trích trên toàn bộ không gian điểm ảnh.

Wavelet tác động trên hai hướng ngang và dọc được cộng dồn các giá trị d x và d y

trên mỗi hình vuông con. Hơn thế nữa, các giá trị tuyệt đối ¿d x∨¿ và ¿d y∨¿ cũng

được cộng dồn để lấy thông tin về độ lớn của sự thay đổi cường độ sáng trên ảnh.

Như vậy mỗi hình vuông con sẽ được mô tả bởi một vector 4 chiều V=¿. Như vậy

vector mô tả cho tất cả 4x4 hình vuông con là một vector 64 chiều (4x4x4) (Hình

3.3). Đây cũng chính là mô tả đặc trưng chuẩn của SURF (hay còn gọi là SURF-64).

13

Page 14: Tổng quan về Google image search.docx

Ngoài ra còn có các phiên bản khác dựa trên cách chia hình vuông con như SURF-

36, SURF-128… Tuy nhiên thực nghiệm của các tác giả cho thấy rằng SURF-64

cho tốc độ tính toán tốt nhất mà vẫn đảm bảo tính bền vững của đặc trưng. Haar

wavelet bất biến với sự thay đổi của ánh sáng và sự tương phản khi ta chuẩn hóa

vector mô tả đặc trưng về chiều dài đơn vị.

Hình 3.4 4x4 hình vuông con xung quanh điểm đặc trưng Error: Reference source

not found]

3.3 So khớp đặc trưng

Đặc điểm quan trọng của đặc trưng SURF là quá trình rút trích đặc trưng

nhanh do sử dụng kỹ thuật ảnh tích lũy và thuật toán non-maximum suppression.

Quá trình so khớp đặc trưng cũng nhanh hơn rất nhiều chỉ bằng một bước đánh chỉ

mục đơn giản dựa trên dấu của Laplacian (trace của ma trận Hessian). Ta không

phải tốn chi phí tính toán trong bước này do trong quá trình phát hiện đặc trưng đã

được tính sẵn. Dấu của Laplacian giúp phân biệt đốm (blob) sáng trên nền tối và

đốm tối trên nền sáng. Điểm đặc trưng sáng chỉ có thể khớp với điểm đặc trưng sáng

khác, tương tự cho đặc trưng tối (Hình 3.5). Kỹ thuật này có thể giúp cho quá trình

so khớp nhanh gấp đôi trong trong trường hợp tốt nhất do không phải tốn chi phí

tính toán dấu của Laplacian.

14

Page 15: Tổng quan về Google image search.docx

Hình 3.5 Ví dụ về đốm sáng trên nền tối hơn và đốm tối trên nền sáng hơn

4. So sánh và đánh giá giữa ba thuật toán.

Kết quả thực nghiệm 3 thuật toán SIFT, PCA-SIFT, và SURF với các loại

ảnh co giãn (scale), ảnh mờ (blur), ảnh xoay(rotation), ảnh có cường độ sáng cao

(illumination), ảnh affine và đánh giá thời gian xử lý được thể hiện ở bảng sau:

Method Time Scale Rotation Blur Illumination Affine

SIFT Kém Tốt Tốt Tốt Kém Trung

bình

PCA-SIFT Trung

bình

Kém Trung

bình

Kém Trung bình Trung

bình

SURF Tốt Trung

bình

Kém Trung

bình

Tốt Trung

bình

Kết quả ở trên cho thấy với thời gian xử lý thì thuật toán SURF là tốt nhất ,

và SIFT là kém nhất . Nhưng bù lại giải thuật SIFT tìm kiếm các keypoint tốt nhất

đối với các ảnh scale , rotation và blur , Tuy nhiên đối với những ảnh có cường độ

sáng cao ( illumination) thì giải thuật SURF là tốt nhất . Còn với ảnh affine thì cả

3 thuật toán đều có kết quả như nhau.

Nói chung SIFT thì có hiệu quả cao khi tìm kiếm đối với các ảnh scale ,

rotation ,blur. Nhưng về mặt thời gian thì SIFT lại không đáp ứng thời gian thực.

15

Page 16: Tổng quan về Google image search.docx

Còn đối với SURF thì tuy không tìm kiếm được nhiều keypoint như SIFT nhưng

nó có thời gian xử lý truy vấn dữ liệu nhanh chóng. Còn đối với giải thuật PCA-

SIFT thì kết quả tìm kiếm không khả thi, do nó sử dụng các PCA để làm giảm số

chiều của các vector đặc trưng vô tình làm giảm luôn cả keypoint.

Chính vì thế Với Search by Image của Google, do SURF đáp ứng được thời

gian thực nên giải thuật này được dùng để xác định các keypoints từ ảnh được

upload bởi người dùng trong quá trình tìm kiếm. Với giải thuật SIFT thì Google

Search by Image dùng Bot để đánh chỉ mục các tìm keypoint của tất cả các ảnh

trên Internet trong quá trình thu thập dữ liệu.

III. Giải thuật SIFT.

1. Nội dung giải thuật.

1.1. Dò tìm cực trị cục bộ.

Như đã nêu ở trên, bước đầu tiên sẽ tìm các điểm tiềm năng có thể trở thành điểm

đặc trưng bằng phương pháp lọc theo tầng dựa vào việc thay đổi tham số bộ lọc

Gaussisan. Trong bước này, ta cần dò tìm các vị trí và các số đo (kích cỡ) mà chúng bất

biến trong các khung nhìn khác nhau của cùng một đối tượng. Các vị trí đó bất biến về số

đo có thể được dò tìm bằng cách tìm kiềm các đặc trưng ổn định trên toàn bộ các số đo có

thể, sử dụng một hàm liên tục về số đo vốn rất nổi tiếng có tên là hàm không gian đo

(Witkin 1983).

Theo các công bố của Koenderink (1984) và Lindeberg(1994) thì hàm Gaussian là

hàm tốt nhất để biễu diễn không gian đo của ảnh 2 chiều. Vì vậy, không gian đo của một

ảnh sẽ được định nghĩa như là một làm L(x,y,ó) được tạo ra bằng cách nhân chập ảnh gốc

I(x,y) với môt hàm Gaussian G(x,y,ó) có tham số về số đo ó thay đổi.

L(x,y,ó) = G(x,y, ó) * I(x,y)

Trong đó toán hạng * là phép nhân chập các ma trận 2 chiều x,y. Và G(x,y, ó) hàm

Gaussian :

16

Page 17: Tổng quan về Google image search.docx

G(x,y,ó) =

Để tìm những keypoint có tính bất biến cao, thuật toán được sử dụng là tìm cực trị

cục bộ của hàm sai khác DoG (Difference-of-Gaussian), kí hiệu là D(x,y,ó ). Hàm này

được tính toán từ sự sai khác giữa 2 không gian đo cạnh nhau của một ảnh với tham số đo

lệch nhau một hằng số k.

D(x,y,ó) = L(x,y,kó) – L(x,y,ó) = (G(x,y,kó) – G(x,y, ó)) * I(x,y)

Các lý do lựa chọn hàm Gaussian là vì nó là kỹ thuật rất hiệu quả để tính toán L

(cũng như làm tăng độ mịn của ảnh), mà L thì luôn phải được tính rất nhiều để mô tả đặc

trưng trong không gian đo, và sau đó, D sẽ được tính một cách đơn giản chỉ với phép trừ

ma trận điểm ảnh với chi phí thực hiện thấp.

Hình 2. Quá trình tính không gian đo (L) và hàm sai khác D

Hơn nữa, hàm sai khác DoG có thể được sử dụng để tạo ra một sự xấp xỉ gần với

đạo hàm bậc hai Laplace có kích thước chuẩn của hàm Gaussian (ó22G) do tác giả

17

Page 18: Tổng quan về Google image search.docx

Lindeberg đề xuất năm 1994. Ông đã chỉ ra rằng việc chuẩn hóa đạo hàm bậc hai với hệ

số ó2 là cần thiết cho bất biến đo trở nên đúng. Cụ thể, ông đã công bố rằng các giá trị cực

đại và cực tiểu của ó22G chính là những giá trị có tính ổn định nhất (bất biến cao) so với

một loạt các hàm đánh giá khác như : gradient, Hessian hay Harris.

Mối quan hệ giữa D và ó22G được biễu diễn như sau :

(2.1.4)

Như vậy, 2G có thể được tính thông qua việc xấp xỉ sự sai khác hữu hạn

tại các tham số đo gần nhau kó và ó :

(2.1.5)

Do đó : (2.1.6)

Từ công thức này, ta thấy khi mà hàm sai khác DoG được tính toán tại các tham số

đo lệch nhau một hằng số k, thì ta có thể sử dụng DoG để xấp xỉ đạo hàm bậc hai Laplace

của Gaussian. Vì hệ số (k-1) trong phương trình trên là hằng số trong mọi không gian đo

nên nó sẽ không ảnh hưởng đến việc tìm các vị trí cực trị. Sai số trong việc xấp xỉ đạo

hàm bậc 2 tiến về 0 khi k gần với 1. Tuy nhiên, các kết quả thử nghiệm của tác giả cho

thấy quá trình xấp xỉ đạo hàm không ảnh hưởng đến việc dò tìm các vị trí cực trị thậm chí

ngay cả khi chọn k khá xa, ví dụ k= .

Sau khi áp dụng hàm DoG ta thu được các lớp kết quả khác nhau (scale) từ ảnh

gốc, bước tiếp theo là tìm các cực trị trong các lớp kết quả theo từng miền cục bộ. Cụ thể

là tại mỗi điểm trên các lớp kết quả sẽ được so sánh với 8 điểm lân cận trên cùng lớp và 9

điểm lân cận trên mỗi lớp khác (hình dưới).

18

2

Page 19: Tổng quan về Google image search.docx

Hình 3. Quá trình tìm điểm cực trị trong các hàm sai khác DoG

Trong hình trên: điểm đánh dẫu x sẽ được so sánh với 26 điểm lân cận (đánh dấu

vòng tròn xanh). Điểm này sẽ được lấy làm điểm tiềm năng (điểm có thể làm keypoint –

candidate keypoint) nếu nó có giá trị lớn nhất hoặc nhỏ nhất so với 26 điểm lân cận như

trên. Giải pháp cho việc tìm các điểm tiềm năng này là sử dụng thuật toán blob detection

(dò tìm điểm) do Lindeberg đề xuất.

Vì số lượng các cực trị là rất lớn, vì vậy để tăng sự hiệu quả khi dò tìm các điểm

cực trị (dò các điểm cực trị tốt nhất thay vì phải dò hết), ta cần xác định tần số lấy mẫu

trong không gian đo và tần số lấy mẫu trong không gian quan sát (không gian ảnh). Thật

không may là ta không thể xác định cả 2 loại tần số này một cách động trong mỗi tiến

trình dò tìm. Thay vì vậy, các tần số này sẽ được xác định offline thông qua phương pháp

thử nghiệm. Sau khi thử nghiệm với nhiều nguồn dữ liệu ảnh khác nhau, tác giả đã chỉ ra

tần số lấy mẫu trong không gian đo tốt nhất là 3 (giữ lại 3 lớp trong mỗi bộ 8 lớp), và tần

số lấy mẫu ó = 1.6.

1.2. Định vị keypoint.

Sau bước 1 sẽ thu được rất nhiều điểm tiềm năng có thể làm keypoint, tuy nhiên

một số trong chúng là không cần thiết. ở bước tiếp theo này sẽ loại bỏ các điểm có độ

tương phản kém (nhạy cảm với nhiễu) hoặc tính đặc trưng cục bộ ít hơn các điểm khác

hoặc có xu hướng là đường biên đối tượng. Bước thực hiện này gồm 3 công đoạn :

19

Page 20: Tổng quan về Google image search.docx

1.2.1. Phép nội suy lân cận cho vị trí đúng của điểm tiềm năng:

Phép nội suy lân cận () sử dụng mở rộng Taylor (Taylor expansion) cho hàm

Difference-of-Gaussian D(x,y,ó) :

(2.2.1)

Trong đó : D và đạo hàm của nó được tính tại một điểm tiềm năng và X = (x,y,ó)

là khoảng cách từ điểm đó. Vị trí của điểm cực trị được xác định bằng cách lấy đạo

hàm của hàm trên với đối số X và tiến dần đến 0 :

Hình 4 : Mô phỏng sử dụng công thức mở rộng của Taylor cho hàm DoG

(2.2.2)

Nếu > 0.5 theo một chiều nào đó thì nó có chỉ số cực trị không gần với các điểm

tiềm năng khác, nó sẽ bị thay đổi và phép nội suy sẽ thay thế vai trò của nó bằng điểm

khác gần nó.

20

Page 21: Tổng quan về Google image search.docx

Hình 5. Minh họa các bước của quá trình lựa chọn các điểm keypoints. (a) là ảnh

gốc. (b) mô tả 832 điểm keypoints tìm được, các điểm keypoints được vẽ ở dạng

một vector thể hiện 3 thông tin : vị trí, hướng và độ dài. (c) sau khi đặt ngưỡng

tương phản tổi thiểu, ta giữ lại được 729 điểm. (d) Giữ lại 536 điểm sau khi áp một

ngưỡng nữa về hệ số độ cong.

1.2.2. Loại trừ các điểm có tính tương phản kém.

Các điểm nhạy cảm với độ sáng và nhiễu thì không được trở thành keypoint và cần

loại bỏ khỏi danh sách điểm tiềm năng. Trong khai triển Taylor mở rộng ở trên, nếu điểm

tiềm năng nào có giá trị < 0.03 thì điểm đó sẽ bị loại, ngược lại thì nó được giữ lại theo

vị trí mới (y+ ) và tùy biến ó, với y là vị trí cũ của nó cùng giá trị biến ó.

21

Page 22: Tổng quan về Google image search.docx

1.2.3. Loại bỏ các điểm dư thừa theo biên.

Sử dụng hàm DoG sẽ cho tác động mạnh đến biên khi vị trí của biên là khó xác

định và vì vậy các điểm tiềm năng trên biên sẽ không bất biến và bị nhiễu. Và để tăng sự

ổn định cho các điểm sẽ được chọn làm keypoint ta sẽ loại trừ các điểm tiềm năng khó

định vị (tức là vị trí dễ thay đổi khi có nhiễu do nằm ở biên).

Sau khi áp dụng hàm DoG sẽ làm đường biên ảnh không rõ ràng và độ cong chính

sẽ có giá trị lớn hơn nhiều so với độ cong dọc theo biên vì vậy cần loại bỏ bớt các điểm

đặc biệt dọc theo cùng một biên. Giải pháp cho việc này là sử dụng giá trị của ma trận

Hessian cấp 2 :

(2.2.3)

Các giá trị riêng của H tỉ lệ thuận với độ cong của D, các giá trị riêng â (giá trị

nhỏ) và á (giá trị lớn) có tỉ lệ r = á/â sẽ được sử dụng. Các phần tử của H là Dxx và Dyy

1.3. Gắn hướng cho các keypoint

Bằng việc gán một hướng cho mỗi điểm keypoint dựa vào các thuộc tính ảnh cục

bộ, bộ mô tả keypoint có thể được biễu diễn tương đối so với hướng này và do đó đặt

được tính bất biến đối với các hiện tượng quay ảnh. Cách tiếp cận này ngược lại với các

bộ mô tả bất biến hướng của Schmid (1997) ở chỗ mỗi thuộc tính ảnh sẽ dựa vào một độ

đo bất biến về hướng. Nhược điểm của cách tiếp cận này đó là nó giới hạn số lượng các

bộ mô tả được sử dụng và bỏ qua các thông tin về ảnh bởi vì nó không yêu cầu mọi độ đo

đều phải dựa trên một hướng nhất quán.

Sau đây là kỹ thuật gán hướng cục bộ cho các keypoint. Độ đo của các điểm đặc

trưng được sử dụng để tìm ra một ảnh đã lọc Gaussian L với kích thước gần nhất sao cho

mọi tính toán sẽ được thực hiện trong cùng một cách bất biến về độ đo. Với mỗi mẫu ảnh

L(x,y) này, gọi m(x,y) là biên độ gradient, (x,y) là hướng. Hai giá trị cuối được tính

toán như sau :

22

Page 23: Tổng quan về Google image search.docx

(2.3.1)

1.4. Tạo bộ mô tả cục bộ.

Các phép xử lý trên đây đã thực hiện dò tìm và gán tọa độ, kích thước, và hướng

cho mỗi điểm keypoint. Các tham số đó yêu cầu một hệ thống tọa độ địa phương 2D có

thể lặp lại được để mô tả vùng ảnh địa phương và nhờ vậy tạo ra sự bất biến đối với các

tham số đó. Bước tiếp theo đây sẽ tính toán một bộ mô tả cho môt vùng ảnh cục bộ mà có

tính đặc trưng cao (bất biến với các thay đổi khác nhau về độ sáng, thu – phóng ảnh,

xoay).

Một cách tiếp cận đơn giản đó là lấy mẫu mật độ ảnh cục bộ lân cận điểm

đặc trưng ở một độ đo thích hợp, và đối sánh các mật độ này sử dụng độ đo tương quan

chuẩn. Tuy nhiên, hê số tương quan đơn giản thì lại rất nhạy cảm với sự thay đổi mà gây

ra sự đăng ký nhầm các mẫu, chẳng hạn như các biến đổi Affine, phối cảnh 3D, hoặc bóp

méo mềm. Cách tiếp cận tốt hơn nhiều được đưa ra bởi Edelman, Intrator và Poggio

(1997). Cách tiếp cận này dựa trên một mô hình thị giác sinh học, cụ thể là mô hình

noron phức tạp trong hệ thống não bộ. Các noron sẽ tương ứng với một gradient tại một

hướng và tần số không gian cụ thể, nhưng vị trí của gradient trên võng mạc được phép

trượt trên một phạm vi nhỏ của khung nhìn. Dựa trên cách tiếp cận này, tác giả đã cài đặt

bộ mô tả mới trong đó cho phép việc trượt vị trí sử dụng một cách tính toán khác.

Hình sau mô phỏng quá trình tính toán các bộ mô tả theo cách tiếp cận mới.

23

Page 24: Tổng quan về Google image search.docx

Hình 6 : Mô tả tạo bộ mô tả cục bộ

Ảnh trái là mô phỏng biên độ gradient và hướng tại mỗi mẫu ảnh trong một vùng

lân cận với điểm keypoint. Các giá trị đó tập trung trong một cửa sổ gaussian (nằm bên

trong vòng tròn). Các mẫu này sau đó được gom lại thành một lược đồ hướng mô tả vắn

tắt nội dung trong 4x4 vùng con như được mô tả ở bên phải với độ dài của mỗi hàng

tương ứng với tổng biên độ gradient gần hướng đó bên trong một vùng.

2. Kĩ thuật đối sánh.

Trước hết để đối sánh các ảnh với nhau thì cần trích xuất tập keypoint tương ứng từ

mỗi ảnh bằng các bước đã chỉ ra ở trên. Sau đó việc đối sánh sẽ thực hiện trên các tập

keypoint này. Bước chính trong kĩ thuật đối sánh sẽ thực hiện tìm tập con keypoint so

khớp nhau ở hai ảnh, để thực hiện việc này sẽ tìm các cặp keypoint trùng nhau lần lượt ở

hai ảnh. Tập con các keypoint so khớp chính là vùng ảnh tương đồng.

Các bước đối sánh trên là gần giống vét cạn, đối với việc đối sánh trong CSDL lớn

các ảnh sẽ gặp rất nhiều khó khăn do chi phí thực hiện đối sánh là rất lớn. Giải pháp cho

vấn đề này là tạo chỉ mục (index) cho các tập keypoint, cụ thể là các keypoint được sắp

xếp sẵn theo một tiêu chí dựa trên các giá trị của bộ mô tả và hướng của nó. Để thêm một

tập keypoint mới sẽ tự động sắp xếp và tạo chỉ mục cho nó. Việc thực hiện tìm kiếm một

keypoint so khớp trên CSDL sẽ áp dụng tìm kiếm nhị phân trên các tập keypoint đã được

sắp xếp và đánh chỉ mục. Việc tìm kiếm tập keypoint so khớp sẽ trở nên đơn giản hơn với

chi phí tính toán thấp hơn nhiều.

24

Page 25: Tổng quan về Google image search.docx

Kết luận :

Search by Image là một công cụ tìm kiếm ảnh mạnh mẽ và hữu ích hiện nay. Nó được ứng

dụng trong nhiều lĩnh vực của cuộc sống. Bài báo cáo đã cho thấy cách thức hoạt động của

Google Images search engine, từ đó có thể giúp ích cho các tổ chức, doanh nghiệp có phương

pháp để đạt thứ hạng cao hơn trong kết quả tìm kiếm từ Google Images search. Bên cạnh đó,

chúng ta có thể thấy các ưu nhược điểm của các thuật toán được sử dụng bởi Google và biết

cách vận dụng linh hoạt các thuật toán cũng như đưa ra các biện pháp cải thiện các nhược điểm

của chúng một cách tốt hơn.

25

Page 26: Tổng quan về Google image search.docx

Tài liệu tham khảo :

1, Lowe, D. “Distinctive image features from scale-invariant keypoints” International

Journal of Computer Vision, 60, 2 (2004).

2, A Comparison of SIFT, PCA-SIFT and SURF - Luo Juan, Oubong Gwun

3, Implementing the Scale InvariantFeature T ransform(SIFT)Method – YUMENG và Dr .

Bernard Tiddeman(supervisor)

4, http://phvuresearch.wordpress.com

5, http://en.wikipedia.org

6, http://www.ragepank.com/articles/38/optimise-for-google-image-search/

7, Tài liệu môn thị giác máy tính : http://www.ddth.com/showthread.php/521371-T

%C3%ACm-t%C3%A0i-li%E1%BB%87u-gi%E1%BA%A3i-thu%E1%BA%ADt-SIFT-ti

%E1%BA%BFng-vi%E1%BB%87t-m%C3%B4n-th%E1%BB%8B-gi%C3%A1c-m

%C3%A1y-t%C3%ADnh

8, http://www.jidul.com/wp/tools/sift-algorithm/?lang=en

9, http://www.vlfeat.org/overview/sift.html

10,http://www.quora.com/Algorithms/What-is-the-algorithm-used-by-Google-Search-by-

Image-1

26

Page 27: Tổng quan về Google image search.docx

27