Hàm Naka-Rushton [13] đượ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:
𝑌 = 𝑋
𝑋 + 𝑋0
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 thức của hàm Naka-Rushton ở trên) như sau:
𝐼𝑙𝑎1 = (max(𝐼) + 𝐹1(𝑝)) 𝐼(𝑝) 𝐼(𝑝) + 𝐹1(𝑝) 𝐼𝑙𝑎2 = (max(𝐼𝑙𝑎1) + 𝐹2(𝑝)) 𝐼𝑙𝑎1(𝑝)
𝐼𝑙𝑎1(𝑝) + 𝐹2(𝑝)
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:
𝐹1(𝑝)) = 𝐼(𝑝) ∗ 𝐺1+𝐼̅ 2 𝐹2(𝑝)) = 𝐼𝑙𝑎1(𝑝) ∗ 𝐺2+𝐼̅̅̅̅̅𝑙𝑎1
2
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 trung bình, G1, G2 là các bộ lọc Gaussian tương ứng với hai độ lệch chuẩn 𝜎1 và 𝜎2
như sau: 𝐺1(𝑥, 𝑦) = 1 2𝜋𝜎12𝑒 𝑥2+𝑦2 2𝜎12 , và 𝐺2(𝑥, 𝑦) = 1 2𝜋𝜎22𝑒− 𝑥2+𝑦2 2𝜎22 ,
Ả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:
𝐼𝑑𝑜𝑔 = 𝐷𝑜𝐺 ∗ 𝐼𝑙𝑎2
trong đó DoG được tính theo công thức:
𝐷𝑜𝐺1 = 1 2𝜋𝜎𝑝ℎ2 𝑒− 𝑥2+𝑦2 2𝜎𝑝ℎ2 − 1 2𝜋𝜎𝐻2𝑒− 𝑥2+𝑦2 2𝜎𝐻2
Với 𝜎𝑃ℎ = 0.5 và 𝜎𝐻 = 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:
𝐼𝑛𝑜𝑟𝑚 =𝐼𝑑𝑜𝑔 − 𝐼̅̅̅̅̅𝑑𝑜𝑔 𝑠𝑡𝑑(𝐼𝑑𝑜𝑔) = 𝐼𝑑𝑜𝑔 𝑠𝑡𝑑(𝐼𝑑𝑜𝑔) 𝐼𝑟𝑒𝑠𝑢𝑙𝑡(𝑝) = {max (𝑇ℎ, |𝐼𝑛𝑜𝑟𝑚(𝑝)|𝑛ế𝑢 𝐼𝑛𝑜𝑟𝑚(𝑝) ≥ 0 −max (𝑇ℎ, |𝐼𝑛𝑜𝑟𝑚(𝑝)|𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖
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 mặt được thu nhận trong các điều kiện sáng khác nhau có thể thấy trong hình minh họa 2.15. Có thể thấy rằng kết quả của bộ lọc này khá tốt và đạt được 2 mục đích:
+ Đưa các bức ảnh mặt có điều kiện ánh sáng khác nhau 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 nhận dạng mặt người, chẳng hạn như lông mày, mắt, mũi và mồm.
2.6. Phương pháp phân lớp SVM
SVM (Support Vector Machine) là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy.
SVM là một thuật toán phân loại nhị phân, SVM nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau. Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng một mô hình SVM để phân loại các ví dụ khác vào hai thể loại đó.
Hàm mục tiêu của một máy phân lớp SVM nhị phân có thể được phát biểu như sau: [15]
𝑔(𝑥) = 𝑤. 𝛷(𝑥) + 𝑏 (4)
Trong đó, véc tơ đầu vào 𝑥 ∈ 𝑅𝐷 , w là véc tơ chuẩn của siêu phẳng phân cách trong không gian đặc trưng được sinh ra từ ánh xạ Φ(x): 𝑅𝐷 – 𝑅𝐹 (F > D, Φ(x) có thể tuyến tính hoặc phi tuyến) và b là độ lệch so với gốc tọa độ. Ban đầu, SVM được thiết kế cho bài toán phân lớp nhị phân, do đó dấu của g(x) cho biết véc tơ x thuộc lớp +1 hay lớp -1.
Cho tập mẫu {(𝑥1, 𝑦1,),...,( 𝑥𝑁,, 𝑦𝑁,)} trong đó xi∈𝑅𝐷 và yi∈{±1}, mục tiêu của phương pháp phân lớp SVM là tìm một siêu phẳng phân cách sao cho khoảng cách lề (margin) giữa hai lớp đạt cực đại (Hình 2.16).
Khoảng cách lề giữa hai lớp là 2
𝑊.𝑊 = 2
‖𝑤‖2 Để nới lỏng điều kiện phân lớp, thêm vào một số yếu tố cân bằng và việc huấn luyện SVM chính là giải bài toán tối ưu có ràng buộc: min 𝑤,𝑏 1 2𝑤. 𝑤 + 𝐶 ∑𝑁𝑖=1𝜉𝑖 (5) Sao cho 𝑦𝑖(𝑤. 𝛷(𝑥𝑖) + 𝑏) ≥ 1 − 𝜉𝑖
𝜉𝑖 ≥ 0, ∀i, trong đó C là tham số nới lỏng điều kiện phân lớp [15]
Thay vì giải bài toán (5), ta giải bài toán đối ngẫu của nó bằng cách giải bài toán qui hoạch toàn phương (QP-Quadratic programming):
max ( 𝛼
𝛼1−1
2𝛼𝑇𝐻𝛼) (6) thỏa mãn: 0 ≤ 𝛼 ≤ 𝐶, ∀𝑖 và ∑𝑁𝑖=1𝛼𝑖𝑦𝑖 = 0
trong đó 𝛼 = [𝛼1, . . . , 𝛼𝑁] 𝑇và H là ma trận kích thước N×N được gọi là ma trận nhân (kernel matrix) với mỗi phần tử 𝐻(𝑖, 𝑗) = 𝑦𝑖𝑦𝑗𝛷(𝑥𝑖). 𝛷(𝑥𝑗).
Giải bài toán QP (6) ta thu được:
𝑤 = ∑𝑁𝑖=1𝛼𝑖𝑦𝑖𝛷(𝑥𝑖) (7)
Mỗi mẫu huấn luyện xi tương ứng với một hệ số Lagrange 𝛼𝑖. Sau khi huấn luyện, các mẫu có 𝛼𝑖>0 được gọi là véc tơ hỗ trợ.
Thế (7) vào (4), ta có :
𝑔(𝑥) = ∑𝑁 𝛼𝑖𝑦𝑖𝛷(𝑥𝑖)
𝑖=1 . 𝛷(𝑥) + 𝑏 (8)
Giả sử 𝛷(𝑥𝑖). 𝛷(𝑥𝑗) = 𝐾(𝑥𝑖, 𝑥𝑗). Nghĩa là, tích vô hướng trong không gian đặc trưng tương đương với một hàm nhân K của không gian đầu vào. Vì vậy, ta không cần phải tính trực tiếp các giá trị Φ(𝑥𝑖), Φ(𝑥𝑗) mà chỉ cần tính tích vô hướng <Φ(𝑥𝑖).Φ(𝑥𝑗)> gián tiếp thông qua hàm nhân K(𝑥𝑖, 𝑥𝑗). Nếu sử dụng hàm nhân là hàm tuyến tính thì SVM được gọi là SVM tuyến tính, ngược lại thì gọi là SVM phi tuyến. Như vậy, hàm mục tiêu cho bài toán phân lớp SVM nhị phân có dạng:
Chỉ có các véc tơ hỗ trợ tham gia vào việc xây dựng siêu phẳng phân cách, do đó một mẫu x sẽ được phân lớp theo hàm quyết định:
𝑓(𝑥) = 𝑠𝑔𝑛(∑𝑁𝑆𝑉𝛼𝑖𝑦𝑖𝐾
𝑖=1 (𝑥𝑖, 𝑥) + 𝑏) (10)
Trong đó, NSV là số véc tơ hỗ trợ.
Các bước để phát hiện mặt người với đăc trưng HOG
1. 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
2. Chuẩn bị N mẫu là ảnh 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 bức ảnh này
3. Sử dụng bộ phân loại SVM tuyến tính để học với các vector của các mẫu đúng (Positive) và mẫu sai (Negative) đã chuẩn bị
4. Đối với mỗi bức ảnh trong bộ ảnh mẫu đúng, 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 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 cùng với xác xuất phân lớp
5. Lấy các mẫu nhận dạng sai ở bước 4 xắp sếp chúng theo mức nhận dạng sai và cho bộ phân lớp học lại sử dụng các mẫu sai này
6. Áp dụng bộ phân lớp đã được học lại với các ảnh cần phát hiện mặt người
Tổng kết chương 2
Trong chương này, chúng tôi đã trình bày đặc trưng HOG, phương pháp phát hiện mặt người sử dụng đặc trưng HOG, các bước rút trích đặc trưng HOG trong ảnh, chuẩn hóa vector đặc trưng cho từng block, tích phân ảnh Integral Image, chuẩn hóa ánh sáng với bộ lọc Retinal filter, phương pháp phân lớp SVM trong việc kết hợp với HOG phát hiện mặt người.
Chương 3, luận văn sẽ trình bày xây dựng chương trình, môi trường thử nghiệm, dữ liệu thử nghiệm, kết quả thử nghiệm và đánh giá kết quả. Giao diện và hoạt động của chương trình.
CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH, THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
3.1. Môi trường thử nghiệm
Chương trình được cài đặt trong môi trường Visual Studio, sử dụng các thư viện C++ cho việc biểu diễn, lưu trữ và thao tác dữ liệu, thư viện opencv để thực hiện các thao tác xứ lý ảnh cơ bản, thư viện Scikit-Leam cho việc thử nghiệm các mô hình học máy (mạng neural, mô hình SVM...). Chương trình được thử nghiệm trên hệ điều hành Windows 10, máy PC tốc độ 2.4GHz, bộ nhớ 4GB.
3.2. Dữ liệu thử nghiệm
Hiệu quả của mô hình nhận dạng được đánh giá trên các bộ cơ sở dữ liệu chuẩn (chứa các khung hình được thu nhận từ các thiết bị camera, webcam khác nhau), được công bố dùng chung cho các nhóm nghiên cứu trên thế giới, được cung cấp tại http://www.face-rec.org/databases, Đây là các CSDL dùng chung cho các nhóm nghiên cứu. Thông tin của CSDL mẫu được mô tả cụ thể như sau:
3.2.1. Cơ sở dữ liệu UOF
Được cung cấp bởi trường đại học Essex của Anh (University of Essex, UK), bao gồm 4 tập dữ liệu: faces94, faces95, faces96 và grimace. Ảnh trong cơ sở dữ liệu là ảnh màu 24 bít định dạng dạng JPEG. Tập dữ liệu chứa một tập hợp các hình ảnh khuôn mặt gôm 395 cá nhân (cả nam và nữ) với 20 ảnh cho mỗi cá nhân, tổng cộng có 7900 hình ảnh. Tất cả khuôn mặt chủ yếu được thực hiện bởi các sinh viên đại học năm đầu tiên có độ tuổi từ 18 đến 20 và một số người lớn tuổi, một số cá nhân đeo kính và có râu, thuộc nhiều chủng tộc khác nhau (hình 3.1).
Hình 3.1: Cơ sở dữ liệu mẫu UOF 3.2.2. Cơ sở dữ liệu FEI
Bao gồm các tập dữ liệu: Fei_Pl, Fei_P2 và Fei_P3, với các ảnh khuôn mặt được chụp từ tháng 6 năm 2005 đến tháng 3 năm 2006 tại Phòng thí nghiệm Trí tuệ nhân tạo FEI ở Paulo, Brazil. Bao gồm 200 cá nhân (100 nam, 100 nữ), với 14 ảnh cho mỗi cá nhân, tổng cộng 2800 hình ảnh. Tất cả khuôn mặt chủ yếu được thực hiện bởi các sinh viên và nhân viên của FEI, có độ tuổi từ 19 đến 40, với ngoại hình, kiểu tóc và đồ trang điểm khác biệt, đều được chụp trên nền ảnh mầu trắng, ở vị trí đứng thẳng đứng và quay vòng lần lượt tới 1800. Kích thước của mỗi ảnh là 640x480 pixel (hình 3.2).
Hình 3.2: Cơ sở dữ liệu mẫu FEI 3.2.3. Cơ sở dữ liệu JAFFE
Chứa các khuôn mặt nữ Nhật Bản, được chụp tại khoa tâm lý học của Đại học Kyushu, Nhật Bản, bao gồm 213 hình ảnh của 7 biểu hiện khuôn mặt (6 biểu hiện
cảm xúc cơ bản trên khuôn mặt + 1 trung tính), được chụp bởi 10 người phụ nữ Nhật Bản (Hình 3.3).
Hình 3.3: Cơ sở dữ liệu mẫu JAFFE 3.2.4. Cơ sở dữ liệu LFW
Bao gồm những khuôn mặt được gắn nhãn trong tự nhiên. Bộ dữ liệu gồm 13233 hình ảnh khuôn mặt của 5749 người được thu thập từ web. Mỗi khuôn mặt được gắn nhãn với tên của người đó, trong đó 1680 người có từ 2 hình ảnh khác biệt trở lên (hình 3.28).
Hình 3.4: Cơ sở dữ liệu mẫu LFW
3.3. Kết quả thử nghiệm
Quá trình đánh giá thực nghiệm được chia thành 2 công đoạn: Đánh giá hiệu quả của mô hình phát hiện khuôn mặt người trên khung hình webcam và đánh giá
độ chính xác nhận dạng. Hiệu quả của mô hình phát hiện khuôn mặt được đánh giá dựa trên các độ đo được định nghĩa cụ thể trong phần sau đây:
■ Độ chính xác phát hiện khuôn mặt DP (Detection Precision):
DP = Số vùng khuôn mặt phát hiện đúng trên tổng số khuôn mặt cần phát hiện ■ Khả năng tìm hết DR (Detection Recall):
DR = Số vùng khuôn mặt phát hiện đúng /(Số vùng khuôn mặt phát hiện đúng + Số vùng không được phát hiện)
■ Độ trung bình điều hòa DM (Dectection F-Measure): DM = (2xFDP*FDR)/(FDP+FDR)
Bên cạnh đó, để các kết quả thực nghiệm chính xác và trực quan, trong quá trình thử nghiệm, chúng tôi đã so sánh hiệu quả của mô hình phát hiện khuôn mặt bằng đặc trưng HOG với mô hình phát hiện khuôn mặt sử dụng đặc trưng Haar wavelet và bộ phân lớp AdaBoost (được quy ước gọi tên là phương pháp Haar wavelet AdaBoost) [2]. Các kết quả thực nghiệm được mô tà cụ thể trên Bảng 3.1.
Dữ liệu thử nghiệm
Số mẫu
Sử dụng đặc trưng HOG Đặc trưng Harr wavelet
DP DR DM DP DR DM Faces96 3040 98,3 99,1 98,7 93,6 94,4 94,2 FEI_P1 700 98,33 98,43 98,43 80,71 80,73 80,71 FEI_P2 700 99,14 99,14 99,14 83,2 83,11 84 FEI_P3 700 97,43 97,43 97,43 79,43 79,5 79,45 JAFFE 213 100 100 100 100 100 100 LFW 13233 99,74 99,74 99,74 93,3 93,27 93,51
Bảng 3.1: Đánh giá hiệu quả phát hiện khuôn mặt
Hiệu quả của mô hình phát hiện được đánh giá dựa trên độ chính xác phát hiện, được định nghĩa cụ thể như sau:
Quá trình đánh giá thực nghiệm được thực hiện lần lượt trên từng tập dữ liệu. Mỗi tập dữ liệu được chia ngẫu nhiên thành 2 tập training và testing theo tỷ lệ 90/10 (90% số mẫu để huấn luyện mô hình và 10% số mẫu còn lại để kiểm thử).
Việc huấn luyện mô hình gồm 2 công đoạn: Huấn luyện bộ trích chọn đặc trưng (mô hình mạng neural học sâu FaceNet) và huấn luyện bộ phân lớp SVM. Quy trình huấn luyện được tiến hành cụ thể như sau: Từ tập mẫu huấn luyện đầu vào, trước tiên bộ phát hiện khuôn mặt sẽ tiến hành tìm kiếm, định vị và crop vùng ảnh khuôn mặt trên mỗi khung hình. Toàn bộ tập ảnh khuôn mặt crop sau đó sẽ được sử dụng làm đầu vào để huấn luyện mô hình trích chọn đặc trưng. Tập đặc trưng đầu ra của mô hình trích chọn đặc trưng sẽ được sử dụng làm đầu vào để huấn luyện mô hình phân lớp SVM. Các kết quả thực nghiệm được mô tả cụ thể trên Bảng 3 hiệu quả của phương pháp sử dụng đăc trưng HOG
Dữ liệu thử nghiệm Số khuôn mặt cần phát hiện R_Precision (%) sử dụng đặc trưng HOG Faces96 3040 98,03 FEI_P1 700 98,16 FEI_P2 700 98,74 FEI_P3 700 97,55 JAFFE 213 99,04 LFW 13233 95,26
Bảng 3.2: Đánh giá độ chính xác phát hiện mặt người
Từ các kết quả thực nghiệm cho thấy phương pháp sử dụng HOG đạt được độ chính xác cao (trên 95%) trên tất cả các tập dữ liệu thử nghiệm.
Giao diện và hoạt động của chương trình
Chương trình thực nghiệm được cài đặt trong môi trường Visual Studio, sử dụng các thư viện C++ cho việc biểu diễn, lưu trữ và thao tác dữ liệu, thư viện opencv để thực hiện các thao tác xứ lý ảnh cơ bản
- Giao diện khi chương trình bắt đầu:
Hình 3.5: Giao diện chương trình
- Giao diện khi thực hiện chạy chương trình phát hiện khuôn mặt:
KẾT LUẬN
Luận văn đề xuất sử dụng đặc trưng HOG kết hợp với SVM trong việc phát hiện mặt người từ ảnh và video. Trong đó tập trung chính vào công đoạn phát hiện mặt người trên video. Hiệu quả của đặc trưng đã được đánh giá trên các tập dữ liệu chuẩn, dùng chung cho cộng đồng nghiên cứu về phát hiện và nhận dạng khuôn mặt người trên thế giới bao gồm cơ sở dữ liệu UOF, FEI, JAFFE và LFW.
Quá trình đánh giá thực nghiệm được chia thành 2 bước, trong đó hiệu quả là phương pháp phát hiện khuôn mặt được đánh giá dựa trên 3 độ đo là độ chính xác (Precision), khả năng tìm hết (recall) và độ đo F-measure, hiệu quả của mô hình phát hiện khuôn mặt được đánh giá dựa trên độ chính xác phát hiện.
Sau một thời gian tìm hiểu nghiên cứu, luận văn đã trình bày được các vấn đề: - Nghiên cứu Haar wavelet và Adaboost;
- Nghiên cứu thuật toán Viola - Johns; - Nghiên cứu đặc trưng HOG;
- Nghiên cứu cách sử dụng đặc trưng HOG với SVM trong phát hiện mặt người.
- Xây dựng bộ dữ liệu khuôn mặt để thử nghiệm; - Thực hiện huấn luyện và test;
- Phân tích, đánh giá kết quả thu được; so sánh kết quả thu được với kết quả của một số phương pháp nhận diện đã được công bố.
Hướng phát triển của đề tài:
Các kết quả thực nghiệm cho thấy mô hình đạt được độ chính xác cao và ổn định trong môi trường thực tế, có thể ứng dụng mô hình để giải quyết các bài toán ứng dụng điển hình như hệ thống camera giám sát cho phép phát hiện, nhận dạng và cảnh báo các đối tượng lạ mặt đột nhập tại các khu vực an ninh, nhà ga, sân bay, các cơ quan chính phủ, tòa nhà, chung cư, tra cứu thông tin tội phạm, chấm công, điểm danh tự động tại các khu công nghiệp, nhà máy, công trường, lớp học… cải thiện chất lượng của các thuật toán giao tiếp người-máy…
Một lần nữa học viên xin được cảm ơn Thầy giáo TS. Nguyễn Toàn Thắng đã tận tình giúp đỡ, hướng dẫn trong thời gian thực hiện đề tài, cảm ơn sự giúp đỡ của gia đình, bạn bè và các đồng nghiệp trong thời gian qua.
Thái Nguyên ngày tháng năm 2018
Người thực hiện
DANH MỤC TÀI LIỆU THAM KHẢO I.Tài liệu Tiếng Anh
[1] A. Yilmaz and M. Shah, "Object Tracking: A Survey," ACM Computing