Các mẫu ảnh đƣợc dùng để huấn luyện nhận dạng, đƣợc đƣa vào window phát hiện 64x128pixel (rộng 64pixel x cao 128pixel.). Chia window cần tính HOG thành lƣới các cell bằng nhau (các ơ vng nhƣ hình 2.7), mỗi cell có độ rộng 8 pixel. Nhƣ vậy mỗi cell ch a 8x8 = 64 pixel. Một khối (block) gồm 2x2=4 cell. Các block này trƣợt chồng lên nhau 1 cell.
Hình 2.7. Ví dụ cửa sổ nhận dạng cao 128 pixel x rộng 64 pixel.
Tiến hành trích rút đặc trƣng HOG nhƣ sau:
Bƣớc 1: Chuyển ảnh màu qua ảnh đa m c xám. Đầu tiên chuyển ảnh trong không gian RGB sang ảnh dạng GRAYSCALE, sau đó chuẩn hóa gamma trên ảnh GRAY SCALE để giảm đi ảnh hƣởng c a sự thay đổi ánh sáng.
Bƣớc 2: Tính sự thay đổi cƣờng độ sáng tại tất cả các pixel c a ảnh GRAYSCALE theo chiều X [-1 0 1] và theo chiều Y [-1 0 1]T và thu đƣợc 2 ảnh gradient-x và gradient-y có kích thƣớc bằng kích thƣớc ảnh GRAYSCALE cho thấy sự biến thiên cƣờng độ.
Mỗi cell ch a 8x8=64 pixel gồm 8 pixel ngang x 8 pixel dọc
Chiều rộng cửa sổ = 64 pixel =64pixel/8pixel =8 cell Chiều cao cửa sổ = 128 pixel =128pixel/8pixel =16 cell
(a) (b) (c)
Hình 2.8. Ví dụ về (a) Ảnh xám ; (b) Ảnh gradient X; (c) Ảnh gradient Y.
Bƣớc 3: Trong mỗi cell 8x8 pixel, ta tính vector gradient tại mỗi pixel.
o Độ lớn: 2 2 y x G G G (2.5) o Hƣớng (góc): tan 1( ) x y G G (2.6) Gy θ Gx G
Hình 2.9. Tính góc và biên độ theo X-gradient và Y-gradient
Bƣớc 4: Đặt các vector gradient c a mỗi cell vào một biểu đồ 9 bin. Các khoảng c a biểu đồ từ 00 đến 1800, do đó mỗi bin là 200 (kích thƣớc bin khoảng 20o cho kết quả tốt nhất -Dalal and Triggs). Đối với mỗi vector gradient, nó là phần góp cho biểu đồ đƣợc cho bởi độ lớn c a vector (do đó gradient mạnh hơn có ảnh hƣởng lớn hơn đến biểu đồ). Ta chia phần góp giữa hai bin gần nhất. Ví dụ, nếu một vetor gradient có góc là 800 độ thì cộng thêm 1/2 biên độ c a nó vào bin có tâm tại 700, và
1/2 biên độ c a nó vào bin có tâm tại 900. Nhƣng nếu một vetor gradient có góc là 850 độ thì cộng thêm 1/4 biên độ c a nó vào bin có tâm tại 700, và 3/4 biên độ c a nó vào bin có tâm tại 900.
Bƣớc 5: Tính vector đặc trƣng cho từng cell (kích thƣớc 8x8). Vector đặc trƣng c a mỗi cell sẽ gồm 9 thành phần tƣơng ng với 9 bin, và giá trị tại thành phần i bằng tổng giá trị c a các điểm trong bin i mà có tọa độ nằm trong cell đó.
(a) (b)
1800 1600
Hướng (Orientation)
Hình 2.10. Mơ tả 9 bin hƣớng c a HOG (a) và ví dụ về HOG c a một cell ảnh
(8x8 pixels)
Bƣớc 6: Tính vector đặc trƣng cho từng block (gồm 2x2=4 cell). Ta chỉ cần ghép các vector đặc trƣng c a từng cell trong block lại với nhau để đƣợc vector đặc trƣng c a một block và chuẩn hóa lại vector đặc trƣng c a block này. Nhƣ vậy vector đặc trƣng c a block sẽ gồm 9 bin x 4 cell = 36 phần tử.
Chuẩn hóa các block: Dùng chuẩn hóa L2-norm : gọi v là vector ch a các histogram c a một block cho trƣớc, v 2là chuẩn hóa c a v và giá trị Ɛ là một hằng số rất bé.
Khi đó: 2 2 2 v v v
v . Theo Dalal và Triggs, chuẩn hóa L2-norm cho kết
quả tốt. Chuẩn hóa L1-norm làm giảm hiệu suất 5%, khơng chuẩn hóa giảm hiệu suất 27%.
Hướng (Orientation)
Hình 2.11. Ví dụ về HOG c a một block ảnh (2x2 cells)
Bƣớc 7: Tính vector đặc trƣng cho toàn bộ window (64x128). Ta chỉ cần ghép các vector đặc trƣng c a từng block lại với nhau để đƣợc vector đặc trƣng c a cả window. Lƣu ý rằng các block không đặt tách biệt nhau mà gối lên nhau, cách nhau một khoảng bằng kích thƣớc c a cell theo mỗi chiều. Window nhận dạng 64x128 pixels sẽ chia thành 7 blocks ngang và 15 blocks dọc thành tổng cộng 7x15=105 blocks. Mỗi block ch a 4 cells với một hisrogram 9 bins cho mỗi cell, cho tổng 36 phần tử cho mỗi block. Do đó kích thƣớc c a vecor cuối cùng cho window là 105 blocks x 36 phần tử = 3780 phần tử.
Cơng th c tổng qt tính chiều c a bộ mơ tả [18]:
) ).(
.( .
_size bs2 nb vcell bs hcell bs
Desc (2.7)
Trong đó: nb: số bin;
s
b : kích thƣớc block (theo cell);
: khoảng trƣợt giữa các block (theo cell);
cell
v : chiều rộng window (theo cell);
cell
(a) (b) (c)
Hình 2.12. Ảnh (a) và hình dung (Visualization) HOG c a ảnh: (b) kích thƣớc cell
8x8 pixel, (c) kích thƣớc cell 16x16 pixel. Mơ tả tồn bộ q trình trích rút đặc trƣng HOG nhƣ hình 2.13 .
Hình 2.13. Mơ tả tồn bộ q trình trích rút đặc trƣng HOG.
2.3.4. Các biến thể của phƣơng pháp HOG
Các biến thể c a phƣơng pháp HOG [19] gồm: R – HOG (rectangular HOG), C-HOG (circular HOG), center-surround HOG, R2 –HOG.
- R-HOG (Rectangular HOG): Các block là lƣới các cell vuông giống nhƣ bộ mô tả đặc trƣng SIFT. Trong mỗi cell, hƣớng mỗi pixel đƣợc đánh dựa vào trọng số Gaussian.
- C-HOG (Circular HOG): Các cell trong block đƣợc định nghĩa là những hình dạng cực theo bán kính và các góc. Cell trung tâm c a block đƣợc chia thành các bin theo góc và bán kính. Các bin góc đƣợc phân bố đều theo hình trịn. Các bin bán kính đƣợc tính theo tỉ lệ log, dẫn đến kết quả làm tăng kích thƣớc bin khi khoảng cách tăng so với trung tâm. Phƣơng pháp biểu diễn C-HOG khá giống phƣơng pháp Shape-Context.
- Centre-Surround HOG: Cấu trúc dựa trên R-HOG và C-HOG. Phƣơng pháp này không đánh trọng số Gaussian nên các cell chỉ đƣợc chuẩn hóa một lần. Do đó, cách tiếp cận này cho phép tính tốn nhanh c a HOG.
- R2-HOG: Sử dụng gradient theo cạnh, tính thêm đạo hàm bậc hai, nối hai kết quả histogram c a gradient này lại với nhau để tạo thành vector đặc trƣng.
Hình 2.14. Các biến thể c a bộ mô tả HOG tĩnh [19]. (a) Bộ mô tả R-HOG với các
block 3 × 3 cells. (b) Bộ mơ tả C-HOG với cell trung tâm đƣợc chia thành các phần nhỏ theo góc nhƣ trong shape contexts. (c) Bộ mô tả C-HOG với một cell đơn trung
tâm.
2.3.5. Các bộ mô tả đặc trƣng khác
Một Haar-wavelet dựa trên hệ thống phát hiện ngƣời đi bộ dùng các đáp ng cải thiện từ việc hoàn tất ba bậc đầu tiên c a Haar-wavelet
1 1 1 1 , 1 1 1 1 , 1 1 1 1 nhƣ là một dãy đặc trƣng. - Shape Contexts
Shape contexts gốc dùng biên hiện có (nhị phân) bầu chọn cho các bin histogram không gian cực, không quan tâm đến hƣớng biên. Dalal và Trigs dùng bộ mô tả C-HOG với chỉ 1 bin hƣớng. Có hai biến thể cƣờng độ gradient (GShapeC) và biên hiện có (E-ShapeC). Trong trƣờng hợp E-ShapeC, ngƣỡng biên đƣợc chọn tự động để cực đại hiệu suất phát hiện. Các giá trị đƣợc chọn là biến thay đổi nào đó, trong vùng 20–50 m c xám. Cả hai biến thể đều đƣợc chuẩn hóa cục bộ để đạt đƣợc bất biến độ chói nhƣ trong CHOG.
(a) Gradient shape context (b) Edge shape context
Hình 2.15. Hai biến thể cƣờng độ gradient (GShapeC) và biên hiện có (E-ShapeC)
chỉ dùng 1bin hƣớng [19].
- PCA-SIFT
Bộ mô tả PCA-SIFT giống bộ mô tả SIFT (Scale Invariant Feature Transform) nhƣng đƣợc áp dụng PCA (Principal Components Analysis) cho các patch ảnh gradient đã chuẩn hóa.
Hình 2.16. Mơ tả hiệu quả c a HOG tốt hơn so với các phƣơng pháp trƣớc đó [19].
(a) thực hiện trên tập dữ liệu c a MIT; (b) thực hiện trên tập dữ liệu c a INRIA.
2.4. Cải thiện cách tính đặc trƣng HOG:
Bộ mô tả đặc trƣng sử dụng đa tỉ lệ MHOG [20] đƣợc dùng nhƣ một không gian đặc trƣng mở rộng cho phép thu đƣợc các đặc trƣng phân biệt cao giúp phát hiện tốt hơn. Bộ mô tả đặc trƣng MHOG dựa trên cơ sở bộ mô tả đặc trƣng HOG gốc bằng cách dùng đa tỉ lệ blocks. Các m c đa tỉ lệ HOG đƣợc tính lặp lại nhiều lần quanh một vùng mẫu. Do đó, để tăng tốc hệ thống, dùng phƣơng pháp tổng tích l y c a gradients để tính nhanh bộ mơ tả đặc trƣng. Tƣơng tự, histogram c a mỗi gradient hƣớng trong một vùng bất kỳ đƣợc tính với bốn lối vào dùng bảng tổng tích l y các gradients ng hộ. Tùy vào đặc trƣng c a bảng tổng tích l y, các gradients đƣợc tách thành các các nhóm dựa theo hƣớng góc, mỗi nhóm đƣợc tổ ch c thành một bảng để tính các tổng tích l y. Mỗi bảng tích l y đƣợc dùng để tính histogram c a các gradients đối với mỗi khoảng góc, ví dụ, 200 cho mỗi nhóm đƣợc coi là một lớp nhƣ mô tả trong hình 2.17 [20]. Cuối cùng biểu đồ gradient trong khối bất kỳ chỉ yêu cầu 4 toán tử / một lớp x 9 lớp = 36 phép truy xuất cho 9 nhóm c a gradient hƣớng.
Hình 2.17. Xử lý gradient theo hƣớng c a ảnh đối với phƣơng pháp tổng tích l y.
Bộ mơ tả đặc trƣng c ng nhƣ tính tốn nhanh dựa trên tổng tích l y các độ lớn gradient đƣợc mô tả trong hình 2.18 [20].
Ảnh vào Chuẩn hóa màu Tính gradient Tách gradient thành các bảng Tính tổng tích l y cho mỗi bảng Cấu trúc vector đặc trƣng Chuẩn hóa các
vector khối HOG Tính các
khối HOG
Hình 2.18. Sơ đồ cải thiện tính đặc trƣng HOG
Các giá trị gradient tại mỗi pixel trong ảnh mẫu đƣợc tính bằng phép đạo hàm rời rạc. Các hàm nhân bộ lọc trung tâm [-1 0 1] và [-1 0 1]T đƣợc dùng để tính đạo hàm rời rạc lần lƣợt theo phƣơng x và phƣơng y.
Gx= I[-1 0 1] (2.8) Gy= I[-1 0 1]T (2.9)
Trong đó I là một ảnh xám, là phép toán chập và Gx, Gy lần lƣợt là các gradient theo các hƣớng trục x và trục y. Độ lớn và hƣớng c a gradient đƣợc tính nhƣ biểu th c (2.5) và (2.6).
Độ lớn gradient bây giờ đƣợc tách thành 9 bảng dựa trên hƣớng c a chúng. Góc khơng dấu c a các gradient (từ 10
đến 1800 tƣơng ng với 9 bins, 200/bin) đƣợc dùng để cấu trúc histogram c a các gradient hƣớng nhƣ mơ tả trong hình 2.17. Mỗi bảng gradient đƣợc dùng để tính tổng tích l y c a các gradient ng hộ. Cuối cùng 9 bảng tổng tích l y Mk (lƣu gradient) với k=1, ,9. đƣợc dùng để tính các blocks HOGBs và cấu trúc vector đặc trƣng đƣa vào huấn luyện và phân loại.
Phƣơng pháp tính nhanh đƣợc mơ tả nhƣ sau: Tổng tích l y c a các gradient ng hộ c a lớp gradient hƣớng th k đƣợc tính cộng dồn và lƣu trong bảng tổng tích l y CS (cumulative sum) theo cơng th c sau [20]:
i x j y k k i j M x y CS 1 1 ) , ( ) , ( (2.10)
Trong đó Mk(x,y) là ng hộ c a gradient tại (x,y) cho lớp gradient hƣớng th k. Thừa hƣởng các thành phần đã tính trƣớc đó, sử dụng lại những giá trị cộng dồn phía trƣớc nó c a bảng CS cùng với giá trị gradient tại pixel hiện tại để tính nhanh, cơng th c tổng tích l y các gradient ng hộ đƣợc viết lại nhƣ sau [20]:
) , ( ) 1 , 1 ( ) , 1 ( ) 1 , ( ) , (i j CS i j CS i j CS i j M i j CSk k k k k (2.11) Trong đó CS(1)(i,0) =0; CS(1)(0,i) =0; với tất cả i và j.
Các bảng CS đƣợc dùng để tính gradient cho một histogram c a bin th k trong một vùng [20]: ) 1 , 1 ( ) 1 , 1 ( ) 1 , 1 ( ) 1 , 1 ( ) , , , (x y wh CS xw yh CS x yh CS xw y CS x y Hk k k k k (2.12) Trong đó (x,y) là tọa độ góc trái phía trên c a một vùng trong lớp th k và w, h lần lƣợt là chiều rộng và chiều cao c a vùng đó. Giá trị Hk(x,y,w,h) c a lớp th k là giá trị histogram c a các gradient hƣớng c a bin th k trong vùng cell đặt tại (x,y,x+w- 1,y+h-1).
Trong quá trình phát hiện ngƣời trong ảnh, ảnh ban đầu thƣờng đƣợc lấy ở nhiều tỉ lệ khác nhau trong khi các window trƣợt qua tất cả các vị trí c a ảnh khơng thay đổi kích thƣớc. Việc tính HOG thơng thƣờng sẽ đƣợc lặp lại nhiều lần qua các ảnh tỉ lệ. Ngƣợc lại, với phƣơng pháp cải thiện, việc tính gradient chỉ đƣợc thực hiện một lần và lƣu lại để dùng cho các ảnh tỉ lệ phía sau.
Với cách th c tổ ch c lƣu trữ gradient và các kỹ thuật tính tốn HOG nhanh đƣợc đề xuất, khi cần xử lý nhận dạng với nhiều m c kích thƣớc khác nhau, việc tính HOG trở nên nhanh hơn rất nhiều. Kết quả đánh giá hiệu quả c a phƣơng pháp biểu diễn đặc trƣng ảnh theo phƣơng pháp HOG gốc và phƣơng pháp HOG cải thiện nhằm nâng cao chất lƣợng nhận dạng đƣợc trình bày ở phần 3.2.2. (chƣơng 3).
2.5. Máy vector hỗ trợ SVM (Support Vetor Machines)2.5.1. Giới thiệu 2.5.1. Giới thiệu
Thuật toán SVM là một thuật toán phân loại nhị phân, thuộc phƣơng pháp học
có giám sát. SVM nhận dữ liệu vào và phân loại chúng thành hai lớp khác nhau. Với một tập dữ liệu c a hai lớp cho trƣớc, thuật toán huấn luyện SVM xây dựng một mơ hình SVM để phân loại hai lớp dữ liệu đó. Thuật tốn SVM ban đầu đƣợc tìm ra bởi Vladimir N.Vapnik [21] và dạng chuẩn hiện nay sử dụng lề mềm đƣợc tìm ra bởi Vapnik và Corinna Cortes năm 1995.
x1 x2 H2 H3 H1 H4 H5
Hình 2.19. Có vơ số đƣờng thẳng có thể phân chia tuyến tính, tuy nhiên với
Thuật tốn đƣợc cho trƣớc một số điểm dữ liệu cùng với nhãn c a chúng thuộc các lớp cho trƣớc (dữ liệu huấn luyện). Mục tiêu c a thuật toán là xác định xem một điểm dữ liệu mới sẽ đƣợc thuộc về lớp nào (Phân loại).
Trong nhiều trƣờng hợp, không thể phân chia các lớp dữ liệu một cách tuyến tính trong không gian ban đầu, cần phải ánh xạ dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc phân tách chúng trở nên dễ dàng hơn trong khơng gian mới.
Hình 2.20. Khơng thể phân chia các lớp dữ liệu một cách tuyến tính. Ánh xạ
dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn.
Ph c tạp trong khơng gian ít chiều Đơn giản trong không gian nhiều chiều
Ánh xạ đặc trƣng dữ liệu
Siêu phẳng phân tách
2.5.2. Siêu phẳng (hyperplane)
Siêu phẳng [22] là một yếu tố quan trọng c a thuật tốn SVM. Giả sử có hai lớp dữ liệu đã đƣợc phân loại nhƣ trong hình 2.19. Một cách trực quan, ta thấy có vơ số đƣờng thẳng có thể phân chia hai lớp dữ liệu thành hai miền khác nhau, các đƣờng này đƣợc gọi là siêu phẳng. Tuy nhiên với đƣờng phân chia H5, đã có một điểm bị phân loại nhầm. Nhƣ vậy, cần tìm ra siêu phẳng tốt nhất để phân lớp dữ liệu. Siêu phẳng mà SVM tìm kiếm là siêu phẳng có giá trị lề lớn nhất, hay cịn gọi là siêu phẳng với lề cực đại (maximal margin hyperplane).
Lề cực đại (maximal margin) là khoảng cách lớn nhất c a siêu phẳng biên song song với siêu phẳng mà không ch a điểm dữ liệu nào bên trong nó.
Các vector hỗ trợ (support vectors) là các điểm dữ liệu gần nhất với siêu phẳng phân cách, những điểm này nằm trên siêu phẳng biên, nhƣ trong hình 2.22.
x1 x2
Support vector Support vector
Hình 2.22. Các siêu phẳng phân chia tập mẫu thành hai lớp và support vector
trong SVM.
Để phân loại tốt nhất thì phải xác định siêu phẳng tối ƣu (Optimal hyperplane) nằm ở càng xa các điểm dữ liệu c a tất cả các lớp càng tốt. Lề càng lớn thì sai số tổng qt hóa c a thuật tốn phân loại càng bé. Muốn các điểm dữ liệu có
thể đƣợc chia tách một cách tuyến tính, cần xác định hai siêu phẳng biên sao cho khơng có điểm nào ở giữa chúng và khoảng cách giữa chúng là lớn nhất.
2.5.3. Phân loại tuyến tính với lề cực đại (maximum-margin linear classifier)
Xây dựng một hàm tuyến tính để phân tách một tập dữ liệu phân loại hai lớp rời nhau. Dữ liệu phân loại hai lớp là một tập các đối tƣợng S gồm l phần tử, trong
đó mỗi phần tử đƣợc mơ tả bởi một vector d chiều và một giá trị nhãn +1 hoặc −1:
S = (xi, yi), xi ∈ Rd, yi ∈ {−1, 1} , i = 1, ..., l . (2.13)
Giả sử phân tách đƣợc các mẫu có nhãn +1 (các hình trịn đặc) ra khỏi các mẫu