Tải bản đầy đủ (.docx) (25 trang)

Tổng quan về google image search

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (782.12 KB, 25 trang )

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


Mục lục

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.
2


-

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?

Ở đâ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

3


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
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
4


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.
Đặ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.

5


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.

6


-

Đị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ố
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ụ
7


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)

8


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).

9


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
trên ảnh , ma trận Hessian trên điểm tại tỉ lệ được xác định bằng công thức[SURF]:

Trong đó, là tích chập (convolution) đạo hàm cấp hai hàm Gaussian với ảnh
tại tại điểm và tương tự với và . 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 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:

10


Trong đó 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ệ. là các hộp lọc xấp xỉ Gaussian như đã nói ở trên. Đối với tỉ
lệ , kích thước hộp lọc là 9x9 thì giá trọng số được tính bằng:

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à , trong đó 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ệ , ở đây các tác giả chọn. 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.

11


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ị và trên
mỗi hình vuông con. Hơn thế nữa, các giá trị tuyệt đối và 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 . 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). Ngoài ra còn có các
12


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.
13


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

SIFT

Kém

Tốt


Tốt

Tốt

Illuminatio
n
Kém

Kém

Trung
bình
Kém

Kém

Trung bình

Trung
bình

Tốt

PCA-SIFT Trung
bình
SURF
Tốt

Trung

bình

Affine
Trung
bình
Trung
bình
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.
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 PCA14


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 :
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

15


đượ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 (ó 2∇2G) do tác giả
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 ó2∇2G 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à ó2∇2G được biễu diễn như sau :

16


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

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=

.
2

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).

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 –
17


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 :
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ị
hàm của hàm trên với đối số X và tiến dần đến 0 :

18

được xác định bằng cách lấy đạo


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ó.


19


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 ó.
1.2.3. Loại bỏ các điểm dư thừa theo biên.
20


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 :

(2.3.1)
21


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.

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
22


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.

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.

23


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,

24


5,
6, />7, Tài liệu môn thị giác máy tính : />%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, />9, />10, />
25


×