Một khi một điểm khóa ứng cử được tìm thấy bằng việc so sánh một điểm ảnh với các láng giềng của nó, thì bước tiếp theo là thực hiện điều chỉnh chi tiết với dữ liệu lân cận cho vị trí, tỷ lệ, và tỷ lệ của các độ cong chủ yếu. Thông tin này cho phép loại bỏ các điểm có độ tương phản thấp hoặc được định vị kém dọc biên. Thực thi ban đầu của hướng tiếp cận này đã định vị một cách đơn giản các điểm khóa ở vị trí và tỷ lệ của điểm mẫu trung tâm. Tuy nhiên, gần đây người ta sử dụng một phương pháp khác đó là làm phù hợp một hàm bậc hai 3D cho các điểm mẫu địa phương để xác định vị trí nội suy của điểm cực đại, và các thử nghiệm đã cho thấy rằng phương pháp này mang lại sự cải tiến đáng kể cho việc so khớp và độ ổn định. Phương pháp này sử dụng phép khai triển Taylor (tối đa là dạng bậc hai) của hàm không gian tỷ lệ, D(x,y,), được thay đổi để ảnh gốc ở vị trí điểm mẫu: [5,6,7]
2 T 2 1 (x) x x x x 2 x T D D D D (2.12)
Trong đó D và các đạo hàm của nó được định giá ở điểm mẫu đó và x( , , )x y T là offset từ điểm này. Vị trí của cực trị, x, được xác định bằng việc lấy đạo hàm theo x và thiết lập nó bằng 0, ta thu được:
2 1 2 x x x D D
Hình 2.3. Các giai đoạn lựa chọn các điểm khóa. Nhận xét:
(a) Ảnh gốc với 233189 điểm ảnh.
(b) 832 vị trí điểm khóa ban đầu ở các điểm cực đại và cực tiểu của hàm Difference-of-Gaussian. Các điểm khóa được thể hiện như các vectơ cho biết tỷ lệ, hướng và vị trí.
(c) Sau khi áp dụng một ngưỡng lên độ tương phản tối thiểu, còn lại
729 điểm khóa.
(d) 536 điểm khóa cuối cùng được giữ lại sau khi áp dụng một ngưỡng
cho tỷ lệ của các độ cong chủ yếu.
Theo đề xuất của Brown thì ma trận Hessian và đạo hàm của D được xấp xỉ bằng việc sử dụng các độ chênh lệch giữa các điểm mẫu lân cận. Nếu
offset x
lớn hơn 0.5 ở bất kỳ chiều nào, thì có nghĩa là cực trị đó nằm gần với một điểm mẫu khác hơn. Trong trường hợp này, điểm mẫu được thay đổi và thực hiện phép nội suy thay cho điểm đó. Offset cuối cùng x
được cộng thêm về hướng vị trí điểm mẫu của nó để có được sự ước lượng nội suy cho vị trí của cực trị đó.
Giá trị hàm ở cực trị, D(x), có ích cho việc loại bỏ các cực trị không ổn định có độ tương phản thấp. Có thể đạt được điều này bằng việc thế phương trình (2.13) vào (2.12), ta được: 1 (x) x 2 x T D D D
Thông qua các thí nghiệm người ta nhận thấy rằng, tất cả các cực trị có giá trị |D(x)| nhỏ hơn 0.03 đều được loại bỏ.
Hình 2.3 cho thấy hiệu quả của việc lựa chọn điểm khóa trên một ảnh tự nhiên. Để tránh quá nhiều sự lộn xộn, sử dụng một ảnh có độ phân giải thấp với 233189 điểm ảnh và các điểm khóa được thể hiện như các vectơ cho biết vị trí, tỷ lệ, và hướng của mỗi điểm khóa (việc gán hướng được miêu tả ở sau). Hình 2.3 (a) thể hiện ảnh gốc, ảnh này được thể hiện với độ tương phản thấp dần ở các hình tiếp theo. Hình 2.3 (b) chỉ ra 832 điểm khóa ở tất cả các điểm cực đại và cực tiểu được phát hiện bởi hàm Difference-of-Gaussian, trong khi đó hình 2.3(c) chỉ ra 729 điểm khóa còn lại sau khi loại bỏ các điểm có |D(x)| nhỏ hơn 0.03. Phần (d) sẽ được giải thích trong mục tiếp theo.
* Loại bỏ các đáp ứng biên
Đối với tính ổn định, không đủ để loại bỏ các điểm khóa có độ tương phản thấp. Dù vị trí dọc theo biên được xác định tồi nhưng hàm Difference-of-
Gaussian [5,6,7] vẫn có một đáp ứng mạnh dọc theo các biên và vì vậy không ổn định khi có các lượng nhỏ tạp nhiễu.
Đỉnh được xác định tồi trong hàm Difference-of-Gaussian sẽ có một độ cong lớn chủ yếu ngang qua biên ngoại trừ độ cong nhỏ ở hướng trực giao. Các độ cong chủ yếu có thể được tính từ ma trận Hessian 22, H, được tính ở vị trí và tỷ lệ của điểm khóa:
xx xy xy yy D D D D H
Các đạo hàm được ước lượng bằng việc lấy các độ chênh lệch giữa các điểm mẫu láng giềng.
Các giá trị riêng của ma trận H tương ứng với các độ cong chủ yếu của
D. Lấy là giá trị riêng với cường độ lớn nhất và là giá trị riêng với cường độ nhỏ hơn. Khi đó, ta có thể tính tổng các giá trị riêng từ dấu vết của H và tích của chúng được tính từ giá trị của định thức:
Tr(H) = Dxx + Dyy = + , Det(H) = DxxDyy – (Dxy)2 = .
Trong trường hợp không chắc xảy ra đó là định thức có giá trị âm, các độ cong có các dấu hiệu khác nhau vì vậy điểm bị loại bỏ không phải là một cực trị. Lấy r là tỷ lệ giữa giá trị riêng có cường độ lớn nhất và giá trị riêng có cường độ nhỏ hơn, để = r. Khi đó,
2 2 2 2 2 Tr( ) ( ) ( ) ( 1) Det( ) r r r r H H (2.15) (2.16) (2.17)
Biểu thức (r+1)2/r nhận giá trị cực tiểu khi hai giá trị riêng bằng nhau và nó tăng cùng với r. Vì vậy, để kiểm tra xem tỷ lệ của các độ cong chủ yếu có ở dưới một ngưỡng r nào đó không, ta chỉ cần kiểm tra:
2 2 Tr( ) ( 1) Det( ) r r H H
Các thí nghiệm cho thấy sử dụng giá trị r = 10, sẽ loại bỏ được các điểm khóa có tỷ lệ giữa các độ cong chủ yếu lớn hơn 10. Sự chuyển tiếp từ Hình 2.3(c) sang Hình 2.3(d) thể hiện các tác động của thao tác này.
2.2.3 Gán hƣớng cho các điểm khóa (Oriented Assignment)
Bằng việc gán một hướng thích hợp cho mỗi điểm khóa dựa trên các đặc tính ảnh cục bộ, bộ mô tả điểm khóa được trình bày ở phần sau có liên quan tới hướng này và vì vậy đạt được sự bất biến đối với phép quay ảnh.
Để gán một hướng cục bộ cho mỗi điểm khóa ta sử dụng hướng gradient của ảnh. Tỷ lệ của điểm khóa được dùng để lựa chọn ảnh được làm trơn Gaussian, L, với tỷ lệ gần nhất, để thực hiện tất cả các tính toán theo kiểu bất biến tỷ lệ. Đối với mỗi mẫu ảnh, L(x,y), ở tỷ lệ này, cường độ gradient,
m(x,y), và hướng, (x,y), được tính toán trước sử dụng độ chênh lệch giữa các điểm ảnh: 2 2 ( , ) ( ( 1, ) ( 1, )) ( ( , 1) ( , 1)) m x y L x y L x y L x y L x y 1 ( , )x y tan (( ( ,L x y 1) L x y( , 1)) /( (L x 1, )y L x( 1, )))y
Một biểu đồ hướng được thiết lập từ các hướng gradient của các điểm mẫu trong phạm vi một vùng lân cận xung quanh điểm khóa. Biểu đồ hướng có 36 bin bao phủ 360 độ của tất cả các hướng. Mỗi mẫu được thêm vào biểu (2.18)
(2.19) (2.20)
đồ được gán trọng số bởi độ lớn gradient của nó và bởi một cửa sổ hình tròn Gaussian với gấp 1.5 lần tỷ lệ của điểm khóa đó.
Các đỉnh trong biểu đồ hướng tương ứng với các hướng bao quát các gradient cục bộ. Dựa vào biểu đồ hướng ta có thể xác định được đỉnh cao nhất trong biểu đồ và khi đó bất kỳ đỉnh cục bộ nào khác nằm trong phạm vi 80% so với đỉnh cao nhất đều được dùng để tạo ra một điểm khóa với cùng hướng đó. Vì vậy, đối với các vị trí có nhiều đỉnh có cường độ tương tự nhau, thì sẽ có nhiều điểm khóa được tạo ra ở cùng vị trí và tỷ lệ đó nhưng các hướng thì khác nhau. Chỉ có khoảng 15% điểm được gán nhiều hướng, nhưng những điểm này góp phần đáng kể cho tính ổn định của việc so khớp. Cuối cùng, một đường parabol được làm phù hợp với 3 giá trị của biểu đồ gần với mỗi đỉnh nhất để nội suy vị trí của đỉnh đó để mang lại độ chính xác tốt hơn.
2.2.4. Bộ mô tả ảnh cục bộ (Keypoint Description)
Các thao tác ở trên đã gán vị trí, tỷ lệ và hướng cho mối điểm khóa. Các tham số này áp đặt cho hệ tọa độ 2D cục bộ để mô tả một vùng ảnh cục bộ. Bước tiếp theo là tính toán một bộ mô tả cho vùng ảnh cục bộ đó để có thể bất biến đối với các thay đổi còn lại như thay đổi độ sáng hoặc điểm nhìn 3D.
Bộ mô tả điểm khóa [5,6,7] được tạo ra bằng cách: đầu tiên tính toán độ lớn và hướng gradient ở mỗi điểm mẫu trong một vùng xung quanh vị trí điểm khóa, như hình bên trái. Các hướng này được gán trọng số bởi một cửa sổ Gaussian, được biểu thị bởi đường tròn phủ ngoài. Sau đó các mẫu này được gom lại thành các biểu đồ hướng tóm tắt nội dung trên 44 vùng con, được thể hiện ở hình phải, với chiều dài mỗi mũi tên tương đương với tổng các cường độ gradient gần với hướng đó trong phạm vi của vùng đó.
Hình 2.4 minh họa cho việc tính toán bộ mô tả điểm khóa. Đầu tiên các độ lớn và hướng gradient ảnh được lấy mẫu quanh vị trí điểm khóa, sử dụng tỷ lệ của điểm khóa để lựa chọn mức mờ Gaussian cho ảnh. Để đạt đến sự bất biến về hướng, thì các tọa độ của bộ mô tả và các hướng gradient bị quay có liên quan tới hướng của điểm khóa. Để thuận tiện trong việc tính toán bộ mô tả, các gradient phải được tính trước cho tất cả các mức của hình chóp. Các gradient này được minh họa bởi các mũi tên nhỏ ở mỗi vị trí mẫu ở hình bên trái của hình 2.4.
Hàm gán trọng số Gaussian với bằng một nửa chiều rộng của cửa sổ bộ mô tả được dùng để gán một trọng số cho cường độ của mỗi điểm mẫu. Điều này được minh họa bằng một cửa sổ hình tròn thể hiện ở hình bên trái của hình 2.4. Mục đích của cửa sổ Gaussian này là tránh các thay đổi đột ngột trong bộ mô tả khi có các thay đổi nhỏ ở vị trí của cửa sổ, và ít quan tâm đến các gradient ở xa vị trí trung tâm của bộ mô tả.
Hình bên phải của hình 2.4 thể hiện bộ mô tả điểm khóa. Nó chú ý đến sự thay đổi đáng kể ở các vị trí gradient bằng việc tạo ra các biểu đồ hướng trên 44 vùng mẫu. Hình này thể hiện 8 hướng cho mỗi biểu đồ, với chiều dài của mỗi mũi tên tương ứng với độ lớn của mỗi mục (entry) của biểu đồ.
Để tránh tất cả các ảnh hưởng biên là điều thật sự quan trọng, ở đó bộ mô tả thay đổi đột ngột vì một mẫu thay đổi liên tục từ một biểu đồ này sang một biểu đồ khác hoặc từ một hướng này sang hướng khác. Vì vậy, sử dụng phép nội suy tuyến tính bậc 3 để phân bố giá trị của mỗi mẫu gradient vào các bin biểu đồ gần kề. Mặt khác, mỗi entry trong một bin được tăng lên nhiều lần bởi trọng số là 1d cho mỗi chiều, trong đó d là khoảng cách của mẫu từ giá trị trung tâm của bin đó được đo dưới dạng các đơn vị của khoảng cách bin biểu đồ.
Bộ mô tả được tạo nên từ một vectơ chứa các giá trị của tất cả các entry
của biểu đồ hướng, tương ứng với các chiều dài của các mũi tên ở hình bên phải của hình 2.4. Hình này thể hiện một mảng 44 các biểu đồ với 8 bin hướng. Vì vậy, một vectơ đặc trưng có 448 =128 phần tử để mô tả cho mỗi điểm khóa.
Cuối cùng, vectơ đặc trưng được sửa đổi để giảm các tác động của sự thay đổi về độ sáng. Đầu tiên, vectơ được chuẩn hóa theo chiều dài đơn vị. Sự thay đổi về độ tương phản của ảnh tức là mỗi giá trị điểm ảnh được nhân với một hằng số sẽ làm tăng các gradient bởi cùng hằng số đó, cho nên phép chuẩn hóa vectơ sẽ xóa bỏ được sự thay đổi về độ tương phản. Thay đổi độ sáng tức là một hằng số được thêm vào mỗi điểm ảnh, điều này sẽ không ảnh hưởng đến các giá trị gradient, vì giá trị gradient được tính từ các độ chênh lệch của điểm ảnh. Bởi vậy, bộ mô tả bất biến đối với các thay đổi affine về độ sáng. Tuy nhiên, các thay đổi độ sáng phi tuyến tính cũng có thể xảy ra dựa trên sự bão hòa của camera hoặc dựa trên các thay đổi về sự chiếu sáng mà chúng ảnh hưởng đến các bề mặt 3D với các hướng khác nhau bởi các lượng khác nhau. Các ảnh hưởng này có thể gây nên sự thay đổi lớn ở các cường độ
hướng gradient. Vì vậy, giảm được tác động của các cường độ gradient lớn bằng việc lấy ngưỡng đối với các giá trị trong vectơ đơn vị đặc trưng cho mỗi cường độ là không vượt quá 0.2, sau đó chuẩn hóa lại chiều dài đơn vị. Điều này có nghĩa là việc so khớp các cường độ đối với các gradient lớn không còn quan trọng nữa, và sự phân bố của các hướng có tầm quan trọng rất lớn. Giá trị 0.2 được xác định bằng thực nghiệm sử dụng các ảnh có các độ chiếu sáng khác nhau cho cùng các đối tượng 3D.
2.3. Một số hƣớng cải tiến, phát triển thuật toán SIFT 2.3.1. Giảm số lƣợng keypoint trích xuất ở mỗi ảnh
Một trong những hạn chế lớn của SIFT là chi phí đối sánh tập keypoint khá lớn do số lượng keypoint trích xuất được khá lớn. Để khắc phục nhược điểm này ngoài cải thiến thuật toán đối sánh thì nên giảm số lượng các điểm keypoint trích xuất được.
Cụ thể sẽ tối giản tập keypoint theo các bước:
- Hạn chế các điểm keypoint mà tại đó biên độ Gradient biến đổi không rõ rệt, tức là tại đó độ biến thiên màu sắc là nhỏ, các điểm lân cận có mức xám gần tương tự nhau. Hạn chế những điểm này không làm giảm tính đặc trưng của tập keypoint do một trong số các điểm lân cận của nó có biên độ Gradient biến đổi rõ rệt hơn và được chọn làm keypoint sẽ đại diện tính đặc trưng cục bộ cho điểm bị loại bỏ và điểm được chọn sẽ đồng thời tăng tính đặc trưng cục bộ.
- Kết hợp với việc dò biên ảnh để hạn chế các điểm keypoint nằm gần biên do càng gần biên sẽ càng dễ bị ảnh hưởng bởi nhiễu và các phép biến đổi thông thường. Việc dò biên sẽ áp dụng kỹ thuật dò biên Candy cho đường biên mảnh và hiệu quả.
2.3.2. Dùng lƣợc đồ màu loại trừ trƣớc các ảnh ít khả năng tƣơng đồng
Trước khi thực hiện tìm kiếm trong cơ sở dữ liệu ảnh ta sẽ dùng lược đồ màu để loại các ảnh có màu sắc quá khác nhau, tức là tính tương tự nhau là rất ít. Các ảnh này sẽ bị bỏ qua trong quá trình tìm kiếm để giảm chi phí đối sánh, tìm kiếm ảnh tương đồng
2.3.3. Trích xuất đối tƣợng ra khỏi ảnh theo đối tƣợng mẫu
Sau khi nhận dạng đối tượng trong ảnh theo một đối tượng mẫu ta có thể trích xuất đối tượng đó ra khỏi ảnh nhờ việc điều chỉnh hướng cho từng cặp keypoint so khớp cho chúng đồng bộ nhau và thực hiện dò vết theo các chốt là các keypoint so khớp để lần theo biên đối tượng và thực hiện trích xuất được đối tượng ra khỏi ảnh.
Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1. Bài toán nhận dạng đối tƣợng
3.1.1. Phát biểu bài toán
Cho trước hai bức ảnh, bức ảnh thứ nhất chứa nhiều đối tượng, bức ảnh thứ hai chỉ chứa một đối tượng duy nhất,yêu cầu xác định xem trong bức ảnh thứ nhất có chứa đối tượng như trong bức ảnh thứ hai không, xác định vị trí của đối tượng đó trong bức ảnh thứ nhất.
(a) (b)
Hình 3.1. Ví dụ về bài toán nhận dạng đối tượng: xác định xem đối tượng trong ảnh (b) có trong ảnh (a) không?
3.1.2. Cách giải quyết bài toán