Chuẩn hóa ánh sáng với bộ lọc Retinal filter

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát hiện giới tính qua hình ảnh ứng dụng cho công tác quản lý học sinh nội trú của trường phổ thông dân tộc nội trú tỉnh quảng ninh​ (Trang 29)

Bộ lọc Retinal filter ban đầu được phát triển như một bộ lọc ảnh thông thường dựa vào việc mô phỏng các bước trong hệ thống phát hiện hình ảnh của con người. Sau đó nó được áp dụng cho bài toán phát hiện mặt với mục chuẩn hóa ánh sáng ở các bước tiền xử lý và đã chứng tỏ được tính hiểu quả của mình. Về cơ bản bộ lọc thực hiện mô phỏng hoạt động của hai lớp chính của hệ thống thị giác của con người là lớp Photoreceptor và Outer Plexiform bằng cách áp dụng liên tiếp hai hàm phi tuyến, bọ lọc DoG và một hàm cắt hậu xử lý như được minh họa sau:

Hình 2.4 Các bước trong bộ lọc Retinal filter.

Hàm Naka-Rushton được sử dụng để tăng cường độ tương phản cục bộ của bức ảnh theo công thức sau:

Y = 𝑋

𝑋+𝑋0 (1)

Trong đó X là ảnh input, X0 là tác nhân điều chỉnh và có giá trị thay đổi với mỗi điểm ảnh còn Y là ảnh output.

Từ ảnh input I ban đầu, bộ lọc Retinal filter sử dụng hai bộ lọc thông thấp liên tiếp với công thức (xuất phát từ công chức của hàm Naka-Rushton ở trên) như sau:

Ila1 = (max(I) + F1(p)) 𝐼(𝑝)

𝐼(𝑝)+𝐹1(𝑝) (2) Ila2 = (max(Ila1) + F2(p)) 𝐼𝑙𝑎1(𝑝)

𝐼𝑙𝑎1(𝑝)+𝐹2(𝑝) (3)

Trong đó các biểu thức (max(I) + F1(p)) và (max (Ila1) + F2(p)) đóng vai trò là các nhân tố chuẩn hóa và hàm max là hàm trả về giá trị cường độ sáng lớn nhất của ảnh. Hai biểu thức F1(p) và F2(p) được tính theo các công thức sau:

F1(p) = I(p)*G1 + 𝐼̅

2 (4)

F2(p) = Ila1(p)*G2 + 𝐼̅̅̅̅̅𝑙𝑎1

2 (5)

Ký hiệu “*” là ký hiệu của phép nhân chập, ̅là ký hiệu của hàm tính

bình, G1, G2 là các bộ lọc Gaussian tương ứng với hai độ lệch chuẩn σ1 = 1 và σ2 = 3 như sau: G1(x, y) = 1 2𝜋σ12 𝑒− 𝑥2+ 𝑦2 2σ12 , và (6) G1(x, y) = 1 2𝜋σ22 𝑒− 𝑥2+ 𝑦2 2σ22 (7)

Ảnh Ila2 sau đó được xử lý bằng một bộ lọc Dog để cải thiện các thuộc tính sắc nét như sau:

DoG = 1 2𝜋σ𝑃ℎ2 𝑒− 𝑥2+ 𝑦2 2σ𝑃ℎ2 - 1 2𝜋σ𝐻2 𝑒− 𝑥2+ 𝑦2 2σ𝐻2 . (9)

Với σPh = 0.5 và σH = 4. Vì bộ lọc DoG làm giảm độ tương phản toàn cục của bức ảnh nhận được nên một bước cắt bỏ các giá trị quá lớn sẽ được thực hiện sau khi ảnh được chuẩn hóa để có giá trị trung bình bằng 0 như sau:

Inorm = 𝐼𝑑𝑜𝑔 −𝐼̅̅̅̅̅̅ 𝑑𝑜𝑔

𝑠𝑡𝑑(𝐼𝑑𝑜𝑔) = 𝐼𝑑𝑜𝑔

𝑠𝑡𝑑(𝐼𝑑𝑜𝑔) (10)

Iresult(p) = {max (𝑇ℎ, |𝐼𝑛𝑜𝑟𝑚(𝑝)|𝑛ế𝑢 𝐼𝑛𝑜𝑟𝑚(𝑝) ≥ 0

− max (𝑇ℎ, |𝐼𝑛𝑜𝑟𝑚(𝑝)|𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖 (11)

Kết quả của bộ lọc Retina filter trong việc chuẩn hóa ánh sáng của các ảnh được thu nhận trong các điều kiện ánh sáng khác nhau. Có thể thấy rằng kết quả của bộ lọc này khá tốt và đạt 2 mục đích:

+ đưa các bức ảnh mặt có điều kiện ánh sáng khác nhua về cùng một vùng giá trị khá gần nhau.

+ tăng cường các đường nét quan trọng của khuôn mặt khi áp dụng cho bài toàn phát hiện mặt người, chẳng hạn như lông mày, mắt, mũi và mồm.

(a)Input images

(b)Output images

2.2.2 Đặc trưng HOG trong phát hiện mặt người.

Các đặc trưng HOG ban đầu được thiết kế phát hiện người (human detection) trong dữ liệu ảnh nhưng sau đó được mở rộng và được sử dụng rỗng rãi cho các bài toán phát hiện đối tượng nói chung (object detection). Phương pháp HOG dựa trên việc đếm số lần xuất hiện của các hướng đạo hàm (Gradient orientation) trong các vùng cục bộ của ảnh.

Thuật ngữ khi tìm hiểu về HOG

- Feature Descriptor: Bộ mô tả đặc trưng, là một phép biến đổi dữ liệu thành các đặc trưng giúp ích cho phân loại hoặc nhận diện vật thể. Các phương pháp có thể kể đến như HOG, SUFT, SHIFT.

- Histogram: Là biểu đồ histogram biểu diễn phân phối của các cường độ màu sắc theo khoảng giá trị[1].

- Gradient: Là đạo hàm của véc tơ cường độ màu sắc giúp phát hiện hướng di chuyển của các vật thể trong hình ảnh.

- Local cell: Ô cục bộ. Trong thuật toán HOG, một hình ảnh được chia thành nhiều cells bởi một lưới ô vuông. Mỗi cell được gọi là một ô cục bộ. - Local portion: Vùng cục bộ. Là một vùng trước trích xuất ra từ ô vuông trên hình ảnh. Trong phần trình bày về thuật toán thì vùng cục bộ còn được gọi là block.

- Local normalization: Phép chuẩn hóa được thực hiện trên một vùng cục bộ. Thường là chia cho norm chuẩn bậc 2 hoặc norm chuẩn bậc 1. Mục đích của việc chuẩn hóa là để đồng nhất các giá trị cường độ màu sắc về chung một phân phối. Ta sẽ làm rõ hơn trong phần trình bày thuật toán.

- Gradient direction: Phương gradient là độ lớn góc giữa véctơ gradient x và y giúp xác định phương thay đổi cường độ màu sắc hay chính là phương đổ bóng của hình ảnh. Giả sử Gx,Gy lần lượt là giá trị gradient theo lần lượt phương x và y của hình ảnh. Khi đó phương gradient được tính như sau:

θ = acrtan(𝐺𝑦

𝐺𝑥) (12)

- Gradient magnitude: Độ lớn gradient. Là chiều dài của véc tơ gradient theo phương x và phương y. Biểu diễn phân phối histogram của véc tơ này theo véc tơ phương gradient sẽ thu được véc tơ mô tả đặc trưng HOG. Độ lớn gradient được tính như sau:

|G| = √𝐺𝑥2+ 𝐺𝑦2 (13)

HOG là viết tắt của Histogram of Oriented Gradient - một loại “feature descriptor”. Mục đích của “featura descriptor” là trừu tượng hóa đối tượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi những thông tin không hữu ích. Vì vậy, HOG được sử dụng chủ yếu để mô tả hình dạng và sự xuất hiện của một đối tượng trong ảnh.

Phương pháp HOG sử dụng các thông tin về hình dáng và vẻ bề ngoài của các đối tượng cục bộ trong ảnh có thể được mô tả bằng cách sử dụng thông tin về sự phân bố của các cường độ gradient (intensity gradients) hoặc của các hướng biên (edge directions). Các toán tử HOG được cài dặt bằng cách chia nhỏ một bức ảnh thành các vùng con được gọi là các “tế bào” (cell) và với mỗi cell đó một histogram về các hướng của gradients sẽ được tính cho các điểm nằm trong cell. Ghép các histogram này lại ta sẽ có một biểu diễn cho bức ảnh ban đầu. Để tăng cường hiệu năng phát hiện, các histogram cục bộ có thể được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng cường độ để chuẩn

hóa tất cả các cell trong khối (blocks) và sử dụng giá trị ngưỡng đó để chuẩn hóa tất cả các cell trong khối. Kết quả của bước chuẩn hóa này là vector đặc trưng sẽ có tính bất biến cao hơn đối với các thay đổi về điều kiện ánh sáng.

Các bước cơ bản của việc tính một vector HOG cho một ảnh gồm:  Tiền xử lý

 Tính gradient

 Tính vector đặc trưng cho từng ô (cells)  Chuẩn hóa khối (blocks)

 Tính toán vector HOG

Bước 1: Tiền xử lý (pre-processing image)

Để thuận tiện cho việc chia đều hình ảnh thành các khối, ô và tính toán đặc trưng ở các bước tiếp theo, chúng ta cần resize kích thước tất cả các hình ảnh trong tập dữ liệu về một kích thước chung.

Hình 2.6 Tiền xử lý ảnh

Bước này được thực hiện bằng cách nhân chập ảnh input với hai nhân 1 chiều tương ứng cho việc lấy đạo hàm theo hai hướng Ox và Oy, cụ thể giá trị của hai nhân là:

Dx = [-1 0 1] và Dy = [1 0 -1]T, (14) Trong đó T là ký hiệu của phép toán lấy ma trận chuyển vị.

Với một ảnh input I sẽ có 2 đạo hàm được tính là Ix = I * Gx, Iy = I * Gy. Tiếp đến hai thành phần cường độ (magnitude) và hướng (orientation) sẽ được tính theo các công thức:

|G| = sqrt(Ix2 + Iy2), θ = arctan(Iy, Ix) (15) Ví dụ: Giả sử ta có một điểm ảnh như sau

Chúng ta sẽ áp dụng các công thức trên để tính được gradient của điểm ảnh này: Ix = I*Dx=[56 x 94]*[ −1 0 1 ] = [38] (16) Iy = I* Dy = [ 93 𝑦 55 ]*[1 0 – 1] = [38] (17) Cường độ: |𝐺| = √𝐼𝑥2+ 𝐼𝑦2 = √382 + 382 ≈ 53,74 (18)

Hướng: θ = arctan 𝐼𝑥

𝐼𝑦 = arctan(38)

38 ≈ 2.33

Đối với hình ảnh mầu, grandient của ba kênh (red, green và blue) được đánh giá. Độ lớn của grandient tại một điểm ảnh là giá trị lớn nhất của cường độ grandient của ba kênh và góc là góc tương ứng với grandient tối đa.

Bước 3: Gán hướng, tính vector đặc trưng cho từng ô (cells)

Sau khi tính đạo hàm, ta có thành phần hướng ở các điểm ảnh trong mỗi cell của ảnh input, ta sẽ nhóm các giá trị hướng khác nhau trong mỗi vùng của khoảng [00, 360] thành một nhãn duy nhất đại diện cho nhóm đó. Cụ thể sẽ có 9 nhãn từ 0 tới 8 tương ứng với các vùng giá trị của các hướng từ [00, 3600/9], [3600/9, 2*3600/9],… Sau đó histogram của các cell sẽ được tính dựa trên số lần xuất hiện của các nhãn được gán.

Để xác định các block, chúng ta sẽ sử dụng công thức sau: (19) nblock_image = (𝑊𝑖𝑚𝑎𝑔𝑒 − 𝑊𝑏𝑙𝑜𝑐𝑘∗𝑊𝑐𝑒𝑙𝑙

𝑊𝑐𝑒𝑙𝑙 + 1) * (𝐻𝑖𝑚𝑎𝑔𝑒 − 𝐻𝑏𝑙𝑜𝑐𝑘 ∗ 𝐻𝑐𝑒𝑙𝑙

𝐻𝑐𝑒𝑙𝑙 + 1)

trong đó:

𝑊𝑖𝑚𝑎𝑔𝑒, 𝑊𝑏𝑙𝑜𝑐𝑘, 𝑊𝑐𝑒𝑙𝑙 : lần lượt là chiều rộng của ảnh, khối, ô 𝐻𝑖𝑚𝑎𝑔𝑒, 𝐻𝑏𝑙𝑜𝑐𝑘, 𝐻𝑐𝑒𝑙𝑙 : lần lượt là chiều dài của ảnh, khối, ô

Sau khi xác định số block và kích thước mỗi block, cell, để tính toán vector đặc trưng cho từng cell, chúng ta cần:

- Chi không gian hướng thành p bin (số chiều vector đặc trưng của ô). - Rời rạc hóa góc hướng nghiêng tại mỗi điểm ảnh vào trong các bin. Giả sử góc nghiêng tại pixel ở vị trí (x, y) có độ lớn là alpha (x, y)

B(x,y) = round (p∗α(x,y)

𝜋 ) mod p (20) - Trường hợp rời rạc hóa signed-HOG với p = 18:

B(x,y) = round (p∗α(x,y)

2𝜋 ) mod p (22)

Giá trị bin được định lượng bởi tổng cường độ biến thiên của các pixels thuộc về bin đó. Sau khi tính toán đặc trưng ô, ta sẽ nối các vector đặc trưng ô để thu được vector đặc trưng khối. Số chiều vector đặc trưng khối tính theo công thức:

Sizeblock = n * size cell (23)

Trong đó:

n là số ô trong khối :

sizecell là số chiều của vector đặc trưng ô (sizecell = 9 nếu sử dụng “unsigned-HOG” và sizecell = 18 nếu sử dụng “signed-HOG”)

Bước 4: Chuẩn hóa khối (blocks)

Để đáp ứng tốt hơn với các thay đổi về điều kiện ánh sáng và độ tương phản, các giá trị gradient cần phần được chuẩn hóa cục bộ, điều này đòi hỏi việc nhóm các cell thành các vùng liên kết không gian với nhau gọi là các khối. Vector HOG do đó sẽ là tổng hợp các histogram của các cell đã được chuẩn hóa từ tất cả các khối. Các khối sẽ được chia và không tách biệt nhau, nói cách khác mỗi cell sẽ đóng góp thông tin về hướng (tại các điểm ảnh của nó) nhiều hơn 1 lần.

Bước 5: Tính toán vector HOG

Có nhiều phương pháp có thể được dùng cho việc chuẩn khóa khối. Gọi

v là vector cần chuẩn hóa chứa tất cả các histogram của một khối, ‖𝑣𝑘‖ là giá trị chuẩn của nó theo các chuẩn k = 1, 2 và e là một hằng số nhỏ, khí đó các giá trị chuẩn hóa có thể tính bằng 1 trong các công thức sau:

L2-norm: f = 𝑣 √‖𝑣‖22+𝑒2 (24) L1-norm: f = 𝑣 √‖𝑣‖2+𝑒 (25) L1-sqrt: f = 𝑣 √‖𝑣‖2+𝑒 (26)

Phát hiện mặt người với các đặc trưng HOG: để phát hiện mặt người với các đặc trưng HOG ta tiến hành các bước như sau:

-Chuẩn bị P mẫu là ảnh mặt người và trích xuất các vector đặc trưng HOG từ các bức ảnh này.

-Chuẩn bị N mẫu không phải là ảnh mặt người (N rất lớn so với P) và trích xuất các vector HOG từ các ảnh này.

-Sử dụng một bộ phận SVM tuyến tính để học với các vector của các mẫu tích cực (là ảnh mặt người) và tiêu cực (các ảnh không phải mặt người) đã chuẩn bị.

-Đối với mỗi bức ảnh trong bộ ảnh tiêu cực, sử dụng một cửa sổ trượt di chuyển qua tất cả các vị trí có thể của ảnh input. Tại mỗi vị trí cửa số trượt, tính vector HOG của cửa sổ và đưa vào bộ phân lớp. Nếu bộ phân lớp phân

lớp sai một cửa sổ là ảnh mặt thì ghi lại vector tương ứng với xác suất phân lớp.

-Lấy các mẫu phát hiện sai ở bước 4 và sắp xếp chúng theo mức xác suất phát hiện sai và cho bộ phân lớp học lại sử dụng các mẫu sai này.

-Áp dụng bộ phân lớp đã được học lại với các ảnh phát hiện mặt người.

2.2.3 Trích chọn đặc trưng LPQ

Phương pháp LPQ dựa trên tính bất biến đối với độ mờ của thành phần phổ pha trong biểu diễn Fourier của ảnh. Phương pháp này sử dụng các thông tin cục bộ về pha được trích xuất bằng cách sử dụng các biến đổi DFT 2 chiều, hay cụ thể hơn, một biến đổi Fourier “ngắn hạn” (short-term), ký hiệu là STFT, được tính trên một vùng lân cận kích thước MxM ký hiệu là Nx tại mỗi vị trí điểm ảnh x của f(x) và được xác định bởi công thức[2]:

F(u,x) = ∑yϵNx f(x – y)𝒆𝒊𝒋𝝅𝑻𝒚 = 𝒘𝒖𝒇 fx (26)

Trong đó wu vector cơ sở của biến đổi DFT 2 chiều tại tần số u, và fx là

một vector khác chứa tất cả M2 mẫu từ Nx

Có thể thấy được từ công thức tên một cách hiệu quả khác để cài đặt kỹ thuật STFT là sử dụng các phép nhân chấp 2 chiều f(x)* 𝐞− 𝐢𝐣𝛑𝐓𝐱 với tất cả các giá trị tần số u. Vì các hàm cơ sở là có thể tách biệt nên việc tính toán có thể thực hiện hiệu quả hơn nữa bằng cách sử dụng các phép nhân chập 1 chiều cho các hàng và các cột một cách liên tiếp.

Trong LPQ chỉ có 4 hệ phức được sử dụng tương ứng với 4 tần số 2 chiều là u1= [a, 0]T, u2= [0, a]T ,u3= [a, a]T, u2= [a, -a]T. Trong đó a là một tần số vô hướng thỏa mãn điều kiện bất biến với độ mờ của ảnh.

𝐅𝐱𝒄 = [F(u1,x), F(u2,x), F(u3,x), F(u4,x)] và (28)

Fx = [Re{𝐅𝐱𝒄}, Im{𝐅𝐱𝒄}

Với Re{.} làm I{.} là các hàm trả về phần thực và ảo của một số phức tương ứng. Ma trận biến đổi có kích thước 8xM2 sẽ là:

W = [Re{wu1, wu2, wu3, wu4,}, Im{ wu1, wu2, wu3, wu4}]T (29)

Để các thuộc tính của phương pháp LPQ mạnh hơn các bài toán phát hiện, một quá trình chuẩn hóa sẽ được sử dụng để tách sự tương quan của các hệ số Fx như sau:

Gx = VTFx (31)

Trong đó V, một ma trận trực giao, sẽ được tính bằng cách sử dụng một biến đổi SVD từ ma trận D như sau:

D = U∑VT (32)

D là ma trận hiệp phương sai của các hệ số Fx và được tính như sau:

D = WCWT

Trong đó C, là ma trận hiệp phương sai kích thước MxM của mẫu trong Nx, được tính bằng công thức sau:

C = ( 1 𝜎1,2 … 𝜎1,𝑀2 𝜎2,1 1 … 𝜎2,𝑀2 … … … … 𝜎𝑀2,1 𝜎𝑀2,2 … 1 ) (33)

Mỗi phần tử của m ma trận C, được xác định bằng công thức

𝜎i,j = 𝜌‖𝑥𝑖− 𝑥𝑗‖ (‖. ‖ Là ký hiệu của hàm chuẩn hóa L2 và 𝜌 là hệ số tương quan giữa các giá trị điểm ảnh lân cận khi giả sử rằng hàm ảnh f(x) là kết quả của

một chuỗi Markov bậc 1 và phương sai của mỗi mẫu bằng 1), chính là hiệp phương sai giữa hai vị trí x1 và xj của Nx

Từ các hệ số đã được tách biệt Gx, một ảnh LPQ sẽ được sinh bằng cách lượng tử hóa các thành phần của nó theo thông thức:

LPQimage = ∑8k=1qk2k-1 (34)

trong đó qk là một toán tử lượng tử hóa thực hiện trên thành phần thứ k của Gx theo công thức:

qk = { 1 𝑛ế𝑢 𝑔𝑘 ≥ 0 0 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖

Hình 2.7 Một số ảnh LPQ thu được từ toán tử LPQ

Hình 2.7 là một số ảnh LPQ thu được từ các toán tử LPQ với các tham

số khác nhau.

Tiếp đến, từ ảnh LPQ nhận được, các vùng con không giao nhau của ảnh sẽ được sử dụng để tính histogram cục bộ. Các histogram cục bộ sẽ được ghép lại với nhau để tạo thành vector LPQ cho ảnh input ban đầu. Toàn bộ quá trình này được minh họa trong hình sau:

Hình 2.8 Các bước của tính vector LPQ trong một ảnh mặt người.

Phương pháp LPQ gồm các bước sau:

Bước 1: Sinh các nhân (kernels) tương ứng với 4 tần số sử dụng các tham số đầu vào là kích thước một số cửa số STFT (một số lẻ) và số 𝜌

Bước 2: Thực hiện sinh 4 phép nhân chập ảnh input với 4 nhân vừa tạo

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát hiện giới tính qua hình ảnh ứng dụng cho công tác quản lý học sinh nội trú của trường phổ thông dân tộc nội trú tỉnh quảng ninh​ (Trang 29)