Thứ Ba, 21 tháng 9, 2010

[CV][Descriptor] Histogram of Oriented gradients (HoG)

1. Tác giả, năm ra đời, paper gốc
Đề xuất bởi Navneet Dalal và Bill Triggs (INRIA-France) trong paper [2] năm 2005 trong bài toán human detection.

2. Ý tưởng chính của HoG
-HOG dựa trên kết hợp và khắc phục điểm mạnh và yếu của Shape Context , SIFT để tạo ra một edge descriptor mạnh.
-Điểm đặc biệt là Dalal đã sử dụng hướng tiếp cận chia dense grid và lấy HOG tại mỗi đỉnh (các HOG hai đỉnh lân cận có thể overlap với nhau) cho phép mô tả tốt thông tin cạnh của đối tượng.

Đã áp dụng thành công cho bài toán:
- Human detetion/recognition, object recognition
(cần bổ sung thêm)

3. Các biến thể của HOG
HOG có hai loại: static HOG (cho ảnh tĩnh) và motion HOG (cho video).

Static HOG
Tác giả giới thiệu 4 biến thể gồm: R - HOG (rectangular HOG), C - HOG (circular HOG), center - surround HOG, R2 - HOG. C
ác phiên bản static HOG khác nhau ở cách lấy cell trong một block. Hình 1 mô tả hai kiểu lấy HOG: R-HOG (a) và C-HOG (có 2 kiểu cho C-HOG là chia thành những cell nhỏ đối với cell trung tâm (b) và không chia (c))
Hình 1: Các dạng HOG

- R-HOG (Rectangular HOG) :một block chia ô lưới bàn cờ giống như SIFT. Trong mỗi cell, hướng mỗi pixel được đánh dựa vào trọng số Gaussian.
- C-HOG (Circular HOG): chia thành những cell theo bán kính và các góc. Kích thước bin theo hướng angular là như nhau nhưng theo hướng bán kính (radius) tăng dẫn theo bán kính. C-HOG khá giống Shape-Context
- Center-Surround HOG: cách này không đánh trọng số Gaussian nên các cell chỉ được chuẩn hóa một lần, vì vậy đây là phiên bản tính toán nhanh của HOG.
- R2-HOG: bên cạnh gradient, tính toán thêm đạo hàm bậc hai (second order derivative), hai kết quả (histogram) này sẽ được nối lại với nhau.

Motion HOG
Tương tự như static HOG, tuy nhiên motion HOG thay giai đoạn tính toán gradient bằng hai bước tính toán optical flow cho hai frame liên tiếp rồi tính toán differential flow của hai ảnh flow đó.

4. Cài đặt R-HOG và kết quả
Theo thực nghiệm của tác giả, trong các phiên bản của HOG, R - HOG (cùng với C - HOG) cho kết quả tốt và bền nhất (xem Hình 3), do đó ở đây chỉ trình bày cài đặt của R - HOG.

Cài đặt cho R - HOG ([3:page 22, 23, 49])
a) Bước xử lý ban đầu:
- Chuẩn hóa gamma/color normalization: square root gamma correction được dùng cho cả 3 channel (ảnh input là ảnh 3 channel)
- Gradient Computation:Kernel $[-1, 0, 1]$ và $[-1, 0, 1]^T$ được dùng để tính đạo hàm ảnh cho mỗi kênh màu và lấy giá trị có norm lớn nhất làm vector gradient.

b) Tính toán block descriptor
Các tham số:
+$\eta \times \eta$ : số cell trên một block
+$\varsigma \times \varsigma$: số pixels cho mỗi cell
+$\beta$: số bin của histogram

b.1 Sub-windows được phân chia thành là một grid (dense sampling). Lần lượt tại mỗi đỉnh của grid áp block $\eta\varsigma \times \eta\varsigma$ với tâm tại đỉnh đó

b.2 Mỗi gradient của mỗi pixel trong block sẽ được đánh trọng số bởi hàm Gaussian với $\sigma = 0.5 \times \varsigma \eta$

b.3 Độ lớn gradient (đã được đánh trọng số) của mỗi pixel trong mỗi cell sẽ được vote vào histogram hướng ứng với cell đó (nội suy tam tuyến tính - tri-linear interpolation được dùng trong quá trình vote)

b.4 Các histogram hướng của các cell trong block sẽ được nối lại với nhau

c) Chuẩn hóa histogram của block

c.1 Dùng chuẩn hóa L2-Hys hoặc L1-sqrt cho mỗi block (block histogram sau khi đã được chuẩn hóa chính là HOG descriptor)

c2. Nối tất cả các histogram đã chuẩn hóa của các block lại với nhau tạo thành descriptor vector.
Hình 2: Các bước tính toán HOG

Kết quả:
Cho bài toán human detection thì thứ tự các descriptor như sau (độ tốt giảm dần):HOG>Haar-wavelet >PCA-SIFT> Shape Context (xem Hình 3 - đường nào càng gần gốc tọa độ càng tốt). Hình 4 cho thấy các các cell có trọng số lớn nhất tập trung tại biên của đối tượng.

Hình 3: Kết quả HOG cho bài toán Human detection

Hình 4: HOG cho human detection. Các ảnh bên phải
(trong bộ 3 cho thấy các hướng các cell nằm ở biên đối tượng)

5. Các tính chất của HOG
- Mức độ khó khi cài đặt: bình thường (đánh giá cá nhân :D)
- Khả năng bất biến

IlluminationTransitionRotationScaleAffine
HOGx
HOG+Sub-Windowxx
x
x: có khả năng
HOG chống được illumination là do gamma normalization, constant normalization, edge information.

6. Nhận xét (của cá nhân, cần phải check lại)
- Nên dùng R-HOG (dễ cài đặt, kết quả cao)
- Thực sự hiệu quả của HOG là do kết hợp quá trình chia lưới + overlapping block + cell được biểu diễn trong nhiều block --> cho phép biểu diễn biên đối tượng kể có khi biên đối tượng có sự biến đổi nhất định

Những loại đối tượng có thể áp dụng:
- Do chỉ dùng thông tin cạnh nên HOG có thể dùng cho những đói tượng có sự biến đổi lớn về màu sắc bên trong đối tượng (người mặc quần áo, loài vật có nhiều màu lông khác nhau, xe có nhiều màu sơn v.v...)
- Xử lý được những đối tượng biến đổi hình dạng những yêu cầu vẫn giữ được hình dạng chính, ví dụ:
+ Đối với người đi bộ, tư thế tay có thể thay đổi tuy nhiên vẫn có hình dạng chính giống cái này (không biết gọi là cái gì).
+ Học đối tượng với 1 view cố định

7. Phân biệt với SIFT, Shape Context

R-HOG vs SIFT
- Giống nhau: tương đối giống nhau: chia thành các ô, tính histogram hướng cho mỗi cell rồi chuẩn hóa--> do cách sử dụng histogram nên cả 2 sẽ có khả năng chịu được sự sai lệch nhỏ về vị trí vùng describe.

-Khác nhau:
Thực chất HOG và SIFT phục vụ cho hai bài toán khác nhau (HOG dùng để mô tả nguyên mọt object dùng với subwindow cho object detection trong khi SIFT dùng để mô tả một point trong bài toán matching dưới nhiều phép biến đổi) nên có thể thấy những điểm khác biệt cơ bản giữa HOG và SIFT:
+ SIFT có chuẩn hóa hướng chính (HOG không) --> SIFT bất biến rotation (HOG không)
+ SIFT bất biến transition & scale do interest point detector trong khi HOG bất biến transition & scale nhờ sub-window

HOG vs Shape Context (sẽ được cập nhật)

8. Cài đặt, source code
- Bản cài đặt HoG của tác giả được cung cấp cùng với bộ công cụ INRIA Object Detection and Localization Toolkit


Tài liệu tham khảo:
[2] Navneet Dalal and Bill Triggs. "Histograms of Oriented Gradients for Human Detection". International Conference on Computer Vision & Pattern Recognition.June 2005.
[3] Navneet Dalal's PhD thesis (Chapter 3, 4)


Không có nhận xét nào:

Đăng nhận xét