Các cách tiếp cận cho bài toán phát hiện mặt người...4 CHƯƠNG 2 : CÁC THÀNH PHẦN CỦA MỘT HỆ THỐNG PHÁT HIỆN TRẠNG THÁI NGỦ GẬT CỦA NGƯỜI LÁI XE...7 Chương này trình bày về các thành phần
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO Bài tập lớn Học phần Xử lý ảnh
Mã HP: …….
Lớp HP:
TÊN BÀI TẬP LỚNNGHIÊN CỨU PHƯƠNG PHÁP PHÂN TÍCH ẢNH MẶT NGƯỜI CHO BÀI TOÁN PHÁT HIỆN TRẠNG THÁI NGỦ
GẬT CỦA LÁI XE Ô TÔ
Sinh viên thực hiện: Nguyễn Văn Tèo
Mã SV: …
Hải Phòng, tháng 4 2024 /
Trang 2MỤC LỤC
GIỚI THIỆU VỀ BÀI TOÁN … 1
1 Sự cần thiết của việc giải quyết bài toán 1
2 Các phương pháp giải quyết bài toán 1
3 Mục đích của bài toán … 2
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT CỦA BÀI TOÁN … 3
Trình bày các thuật toán, kỹ thuật lập trình để giải quyết bài toán – phần lý thuyết 3
1.1 Giới thiệu 3
1.2 Các vấn đề của bài toán phát hiện mặt người 4
1.3 Các cách tiếp cận cho bài toán phát hiện mặt người 4
CHƯƠNG 2 : CÁC THÀNH PHẦN CỦA MỘT HỆ THỐNG PHÁT HIỆN TRẠNG THÁI NGỦ GẬT CỦA NGƯỜI LÁI XE 7
Chương này trình bày về các thành phần của hệ thống nếu có/phức tạp: có thể có hoặc không 7
2.1 Hệ thống phát hiện trạng thái ngủ gật của người lái xe 7
2.2 Chuẩn hóa ánh sáng với bộ lọc CLAHE 8
2.3 Phát hiện mặt người và mắt người sử dụng đặc trưng Haar-like 10
2.4 Phát hiện mặt người sử dụng đặc trưng HOG 13
2.5 Phát hiện trạng thái ngủ gật bằng cách phân tích mắt người 17
CHƯƠNG 3 : XÂY DỰNG HỆ THỐNG … 18
3.1 Thư viện OpenCV và dlib 18
3.1.1 Thư viện OpenCV 18
3.1.2 Thư viện dlib 22
i
Trang 3
3.2 Dữ liệu và giao thức đánh giá hiệu năng của hệ thống 27
3.3 Kết quả thực nghiệm 28
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 32
Trang 4DANH SÁCH BẢNG BIỂU
iii
Trang 5DANH SÁCH HÌNH ẢNH
Hình 1.1: Các thông tin có trong ảnh mặt người 1
Hình 2.1: Các bước trong hệ thống phát hiện tình trạng ngủ gật của lái xe 1
Hình 2.2: Minh họa hàm biến đổi của thuật toán AHE 1
Hình 2.3: Kết quả của việc tiền xử lý với bộ lọc CLAHE 1
Hình 2.4: Kết quả của việc tiền xử lý với bộ lọc CLAHE 1
Hình 2.4: Ví dụ về ảnh và các đạo hàm của nó 1
Hình 2.6: Kết quả minh họa thuật toán phát hiện mặt người sử dụng HOG 1
Hình 3.1: Cấu trúc cơ bản của thư viện OpenCV 1
Hình 3.2: Cấu trúc của thư viện dlib 1
Hình 3.3: Một số ảnh từ cơ sở dữ liệu DrivFace 1
iv
Trang 6DANH SÁCH THUẬT NGỮ, CHỮ VIẾT TẮT
HOG – Histogram of Oriented Gradient 2
ADAS Advanced Driver-Assistance System– 2
AHE – Adaptive Histogram Equalization 7
CLAHE – Contrast Limit Adaptive Histogram Equalization 14
v
Trang 7Thuyết minh đề tài NCKH cấp trường 2017
GIỚI THIỆU VỀ BÀI TOÁN …
1 Sự cần thiết của việc giải quyết bài toán
Hiện nay, theo thống kê của tổ chức y tế thế giới, mỗi năm có khoảng1,24 triệu người chết vì các tai nạn xe cộ (có nghĩa là 2.4 người chết sau mỗiphút), chưa kể tới 50 triệu người bị thương Trong đó 80% nguyên nhân gây tainạn bao gồm: lái xe khi mệt mỏi (fatigue), lái xe trong tình trạng ngủ gật(drowsiness) và không tập trung khi lái xe, các hành vi này gọi chung là khôngchú ý khi lái xe [1] Tính riêng nguyên nhân tài xế ngủ gật là 35% Đề tài nàytập trung nghiên cứu một hệ thống phần mềm dựa trên các kiến thức của ngànhthị giác máy tính nhằm phát hiện tình trạng ngủ gật của người lái xe ô tô dựatrên việc phân tích hình ảnh thu được từ webcam đặt trên xe để đưa ra các cảnhbáo nhằm giảm nguy cơ gây ra tai nạn giao thông Một cách khách quan đề tài
có tính cất thiết, thực tế và khoa học
2 Các phương pháp giải quyết bài toán
Có nhiều cách tiếp cận khác nhau cho bài toán phát hiện tình trạng ngủgật của người lái xe ô tô Từ việc phân tích chuyển động của vùng da bao quanhmắt, cho tới việc áp dụng các phương pháp trích chọn đặc trưng cao cấp nhưngphân tích sóng nhỏ Gabor hay mẫu nhị phân cục bộ LBP, sử dụng các đặt trưngHaar cho việc nhận dạng tình trạng của mắt hay dựa trên việc xác định cảm xúc
để đưa ra kết luận về việc người lái xe có ngủ gật hay không Một phương phápkhác là phát hiện hướng của khuôn mặt và truy vết Bên cạnh đó, một số tác giả
sử dụng các phương pháp học đại diện, phương pháp SVM, phương pháp họctrạng thái của mắt, phân tích biểu hiện nháy mắt (eye blink) để đưa ra các giảipháp cho bài toán Tiếp đến, một số cách tiếp cận khác lại sử dụng phân tíchFourier nhanh, học sâu, phân tích hình ảnh của phần hàm kết hợp với việc pháthện mắt có nháy không để đưa ra kết luận cuối cùng
Có thể tóm tắt lại một số điểm chung trong các cách tiếp cận trên là: việcđầu tiên là phát hiện mặt người trong hình ảnh thu nhận được Sau đó phát hiệnhình ảnh của mắt người trong ảnh Bên cạnh đó là một số các thành phần khác
Trang 8Thuyết minh đề tài NCKH cấp trường 2017
của khuôn mặt như cằm, hướng nhìn Trạng thái của mắt (nhấp nháy, đóng …)sau đó được xem là nhân tố chính để kết luận về trạng thái của người lái xe
3 Mục đích của bài toán …
Đề tài nhằm xây dựng một hệ thống xác định tình trạng ngủ gật của ngườilái xe dựa trên việc phân tích ảnh mặt người thu nhận được từ camera đặt chínhđiện với người lái
Hệ thống sử dụng kết hợp các phương pháp phát hiện mặt người trong ảnhđựa trên các đặc trưng HOG, Haar-like và phương pháp phát hiện mắt người dựavào đặc trưng Haar-like Trạng thái ngủ ngật của người lái xe được xác định dựatrên việc mắt người nhắm hay mở trong một ngưỡng thời gian Hệ thống sẽ gồmcác module: xác định mặt người, xác định mắt người, xác định trạng thái củamắt và đưa ra cảnh báo
Trang 9Thuyết minh đề tài NCKH cấp trường 2017
CHƯƠNG 1:
CƠ SỞ LÝ THUYẾT CỦA BÀI TOÁN …
Trình bày các thuật toán, kỹ thuật lập trình để giải quyết bài toán – phần lýthuyết
1.1 Giới thiệu
Phát hiện mặt người (Face detection) là một bài toán con của bài toántổng quát phát hiện đối tượng (Object detection) là một chủ đề nghiên cứu quantrọng của ngành Thị giác máy tính (Computer Vision) được phát triển từ nhữngnăm đầu thập kỷ 90 của thế kỷ trước Hiện nay, phát hiện đối tượng vẫn là mộtchủ đề nghiên cứu chính và sôi động, có sự quan tâm của nhiều cơ sở nghiêncứu hàng đầu trên thế giới Giống như nhận dạng mặt người, phát hiện mặtngười cũng đòi hỏi kiến thức từ nhiều lĩnh vực khác như Nhận dạng mẫu(Pattern Recognition), học máy (Machine Learning), thống kê (Statistics), sinhtrắc học (Biometrics)
Đầu vào của bài toán phát hiện mặt người là một bức ảnh, đầu ra là vị trícủa các vùng ảnh mặt người (nếu có) trong ảnh Phát hiện mặt người đóng vaitrò rất quan trọng vì nó là tiền đề để có thể thực hiện các bước tiếp theo của một
hệ thống thị giác máy tính Một thuật toán phát hiện mặt người tốt sẽ cho mộtbức ảnh mặt với đầy đủ các thành phần của khuôn mặt, được căn chỉnh tốt Điều
đó sẽ dẫn tới kết quả nhận dạng chính xác hơn cho các bước sau đó
Hình 1.1: Các thông tin có trong ảnh mặt người
Trang 10Thuyết minh đề tài NCKH cấp trường 2017
Trong đề tài này, phát hiện mặt người là một bước quan trọng để tiếnhành các bước phân tích tiếp theo Nếu hệ thống không phát hiện được mặtngười trong ảnh, một cảnh báo sẽ được đưa ra vì điều đó tương ứng với không
có người lái xe Nếu ảnh mặt người được phát hiện, hệ thống sẽ phân tích vàphát hiện vị trí của mắt người trong ảnh Tiếp đến hệ thống sẽ phân tích xemmắt người ở trạng thái đóng hay mở Nếu mắt người mở trong một khoảng thờigian vượt quá ngưỡng thiết lập, một cảnh báo sẽ được đưa ra vì khi đó có thểngười lái xe đang ở trạng thái ngủ gật
1.2 Các vấn đề của bài toán phát hiện mặt người
Để xây dựng một hệ thống phát hiện mặt người có hiệu năng tốt (luônphát hiện được chính xác vị trí của khuôn mặt trong ảnh) không phải là một điềuđơn giản Nguyên nhân là do có rất nhiều các yếu tố khách quan và chủ quanảnh hưởng tới quá trình làm việc của hệ thống, có thể kể ra đây một vài vấn đềđiển hình có ảnh hưởng lớn nhất như sau:
+ ánh sáng (light conditions) Ánh sáng là yếu tố ảnh hưởng lớn nhất tớikết quả phát hiện mặt người vì các bức ảnh chụp trong các điều kiện ánh sángkhông tốt hầu như không làm việc được
+ hướng của khuôn mặt (pose variations) Các bức ảnh chụp ở góc nhìnthẳng (frontal) có kết quả phát hiện tốt trong khi các bức ảnh chụp với góc chụplớn hơn 45 cho kết quả tệ hơn rất nhiều.o
+ cảm xúc khuôn mặt (facial expresion variations) Ở điều kiện cảm xúctrung tính (neutral), việc phát hiện mặt cho kết quả tốt Nhưng khi khuôn mặt cóthay đổi về cảm xúc, các bộ phận của khuôn mặt thay đổi hình dáng (mắt, mồm,
cả khuôn mặt) dẫn tới việc phát hiện có thể bị sai
+ che khuất (occlusions) Khuôn mặt người có thể bị che khuất bởi cácyếu tố khách quan (vật cản) hoặc chủ quan (các phụ kiện như kính mắt, khăn,trang điểm, tóc) và làm ảnh hưởng tới thuật toán phát hiện khuôn mặt
Trang 11Thuyết minh đề tài NCKH cấp trường 2017
1.3 Các cách tiếp cận cho bài toán phát hiện mặt người
Hiện nay có 2 cách tiếp cận cho bài toán phát hiện mặt người: cách tiếpcận truyền thống dựa vào các đặc trưng bất biến như Haar-like, LBP, HOG vàcách tiếp cận mới dựa vào các phương pháp học sâu Các cách tiếp cận truyềnthống cho hiệu năng khá tốt, ổn định và có thời gian thực hiện nhanh, có thểtriển khai trên các hệ thống phần cứng khiêm tốn Trong khi đó cách tiếp cậndựa trên học sâu đòi hỏi dữ liệu học lớn, thời gian học lâu và yêu cầu phần cứngmạnh (hỗ trợ GPU) mới có thể triển khai được Chính vì vậy đề tài này tập trungvào các phương pháp pháp hiện mặt truyền thống
Phương pháp phát hiện mặt đầu tiên, rất nổi tiếng là dựa vào các đặc trưngHaar-like và bộ phân lớp tăng cường Adaboost [2] trong đó các tác giả dựa trênbiến đổi Haar wavelets và sử dụng các bộ phân lớp yếu để tạo thành một bộphân lớp mạnh cho phép nhanh chóng phát hiện ra một vùng của ảnh có phải làkhuôn mặt hay không Vùng ảnh được xác định dựa trên một cửa sổ trượt dichuyển qua toàn bộ miền không gian của ảnh input để tìm vùng có tỉ lệ đáng tincao nhất Với mỗi vị trí của cửa sổ trượt, một tỉ lệ giữa điểm trắng và điểm đencủa ảnh (trong biến đổi Haar) được tính và so sánh với ngưỡng, nếu nó nằmtrong ngưỡng là khuôn mặt người thì kết luận đó chính là một ảnh mặt người,nếu không thì quá trình lại tiếp tục
Một phương pháp tương tự nhưng sử dụng biến đổi mẫu nhị phân cục bộđược đề xuất bởi các tác giả trong [3] Tuy nhiên thay vì dùng bộ phân lớpAdaboost, bộ phân lớp dựa trên mạng nơ ron đã được sử dụng So với phươngpháp sử dụng đặc trưng Haar, phương pháp sử dụng LBP nhanh hơn về tốc độnhưng lại có hiệu năng kém hơn (tỉ lệ sai nhiều hơn)
Phương pháp thứ ba sử dụng các đặc trưng HOG [4] So với hai phươngpháp trước, phương pháp này chậm hơn về tốc độ nhưng cho kết quả tốt hơn.Như đã nói ờ phần đầu chương, một hệ thống trợ giúp người lái ở dạngcảnh báo luôn bắt đầu bằng bước phát hiện mặt người trong ảnh Nếu có sự hiệndiện của người lái, bước tiếp theo là phát hiện vị trí của mắt người, đây là bài
Trang 12Thuyết minh đề tài NCKH cấp trường 2017
toán hoàn toàn giống với bước phát hiện mặt, chỉ có đối tượng cần phát hiện làthay đổi Sau đó là bước phân tích trạng thái của mắt người để đưa ra cảnh báonếu cần thiết
Trong đề tài này, chúng tôi tập trung xây dựng một hệ thống cảnh báodành cho người lái xe ô tô dựa trên phân tích hình ảnh mặt người, mắt ngườinhằm phát hiện trạng thái ngủ gật với các chức năng chính như sau:
+ Phát hiện khuôn mặt trong ảnh thu nhận từ camera sử dụng đặc trưngHOG
+ tiền xử lý: sử dụng phương pháp chuẩn hóa ánh sáng nhằm tăng tỉ lệphát hiện mặt người và mắt người trong ảnh
+ phát hiện vị trí của mắt người dựa vào các đặc trưng Haar-like và bộphân lớp SVM
+ Phân tích vị trí và trạng thái của mắt người để cảnh báo nếu người lái xe
ở trạng thái ngủ gật
Trong chương này, các vấn cơ bản đề liên quan tới bài toán phát hiện mặtngười và các bước cơ bản để xây dựng một hệ thống cảnh báo dựa trên phân tíchtrạng thái ngủ gật của người lái xe đã được trình bày Trong chương tiếp theochúng tôi sẽ đi sâu vào việc phân tích các chi tiết thuật toán liên quan và phầncài đặt
Trang 13Thuyết minh đề tài NCKH cấp trường 2017
CHƯƠNG 2:
CÁC THÀNH PHẦN CỦA MỘT HỆ THỐNG PHÁT HIỆN TRẠNG
THÁI NGỦ GẬT CỦA NGƯỜI LÁI XE
Chương này trình bày về các thành phần của hệ thống nếu có/phức tạp: cóthể có hoặc không
2.1 Hệ thống phát hiện trạng thái ngủ gật của người lái xe.
Hình 2.2: Các bước trong hệ thống phát hiện tình trạng ngủ gật của lái xe.
Mục tiêu của đề tài là xây dựng một hệ thống phát hiện trạng thái ngủ gậtcủa người lái xe dựa trên việc phân tích ảnh mặt người thu nhận được từ mộtcamera số đặt trong xe Các bước của hệ thống được mô tả như trong hình 2.1
Từ dữ liệu video ban đầu, hệ thống sẽ xử lý từng frame một và tiến hành phân
Trang 14Thuyết minh đề tài NCKH cấp trường 2017
tích để đưa ra các cảnh báo thích hợp Ở bước đầu tiên, ảnh sẽ được chuẩn hóabằng thuật toán cân bằng histogram thích nghi giới hạn độ tương phản CLAHE(Contrast Limited Adaptive Histogram Equalization) Sau đó ảnh được chuẩnhóa ánh sáng sẽ được đưa vào bước tiếp theo để thực hiện phát hiện mặt người
Ở đây chúng tôi sử dụng cả hai cách tiếp cận là phát hiện mặt người dựa vào cácđặc trưng Haar – like và các đặc trưng HOG, nếu không phát hiện được ảnh mặtngười với phương pháp thứ nhất, phương pháp thứ hai sẽ được sử dụng Điềunày nhằm đảm bảo việc phát hiện mặt người được chính xác hơn Tiếp đến, hệthống sẽ thực hiện phát hiện phần mắt người Sau đó, vùng ảnh mắt người sẽđược phân tích để kết luận xem nó tương ứng với trạng thái mắt nhắm hay mở.Nếu là mắt nhắm thì hệ thống sẽ đếm trong khoảng 3-5 giây và đưa ra cảnh báo
về trạng thái ngủ gật của người lái xe
Các phần tiếp theo của chương này sẽ trình bày về các thuật toán liênquan tương ứng với các bước của hệ thống
2.2 Chuẩn hóa ánh sáng với bộ lọc CLAHE
Cân bằng histogram thích nghi (Adaptive histogram equalization – AHE)
là một thuật toán xử lý ảnh được dùng để cải thiện độ tương phản của ảnh số.Thuật toán này khác với thuật toán cân bằng histogram thông thường ở chỗ nóthực hiện tính nhiều histogram tương ứng với các vùng tách biệt của ảnh và sau
đó sử dụng chúng để tái phân bố độ sáng của các điểm ảnh Thuật toán này do
đó thích hợp cho việc cải thiện độ tương phản cục bộ và chất lượng biên của ảnh
ở các vùng
Tuy nhiên nhược điểm của phương pháp AHE là nó có xu hướng làm tăngnhiễu trong các vùng đồng nhất của ảnh Để giải quyết vấn đề này, một biến thểcủa thuật toán ra đời nhằm hạn chế việc khuếch đại các giá trị nhiễu, thuật toán
đó chính là CLAHE (Contrast limited adaptive histogram equalization).Thuật toán cân bằng histogram nguyên bản sử dụng một biến đổi từhistogram của ảnh để ánh xạ các giá trị cường độ sáng mới cho tất cả các điểmảnh Thuật toán làm việc tốt khi phân bố của các giá trị điểm ảnh là tương tự
Trang 15Thuyết minh đề tài NCKH cấp trường 2017
trên cả bức ảnh Tuy nhiên khi bức ảnh chứa các vùng sáng hoặc tối hơn nhiều
so với phần còn lại của bức ảnh, độ tương phản của các vùng này sẽ không đượccải thiện đủ tốt
Thuật toán AHE cải thiện nhược điểm của thuật toán cân bằng histogramthông thường bằng cách biến mỗi điểm ảnh bằng một hàm biến đổi nhận được từvùng lân cận của nó giống như hình 2.2 dưới đây
Hình 2.3: Minh họa hàm biến đổi của thuật toán AHE.
Các điểm ảnh nằm gần biên được xử lý đặc biệt vì nó không có các điểmlân cận nằm hoàn toàn trong ảnh Một phương pháp thường được sử dụng làthêm các hàng và cột giả với các giá trị là phản chiếu của các đường và cột ở cácbiên
Các thuộc tính của thuật toán AHE:
+ Kích thước của các vùng lân cận là một tham số của thuật toán Với giátrị lớn thì các vùng lớn sẽ có độ tương phản giảm còn với các giá trị nhỏ thì độtương phản cả các vùng nhỏ sẽ được tăng cường
+ Khi vùng ảnh chứa các giá trị điểm ảnh khá đồng nhất, histogram của
nó sẽ tạo thành các đỉnh mạnh và hàm ánh xạ sẽ thực hiện ánh xạ một giá trị nhỏcủa các điểm ảnh và cả vùng lớn của ảnh kết quả và làm cho các nhiễu của cácvùng đồng nhất lớn này bị khuếch đại
Kỹ thuật CLAHE thực hiện giới hạn độ tương phản để không làm cácnhiễu bị khuếch đại Điều này được thực hiện bằng cách cắt các histogram tạimột giá trị xác định trước trước khi tính toán các hàm phân bố histogram và do
Trang 16Thuyết minh đề tài NCKH cấp trường 2017
đó được gọi là clip limit, giá trị xác định trước này phụ thuộc vào việc chuẩnhóa histogram và do đó phụ thuộc vào kích thước của vùng lân cận Thường giátrị giới hạn nằm giữa 3 và 4 Kết quả là thuật toán không bỏ đi phần histogramvượt giá giới hạn mà tái phân bố chính một cách cân bằng giữa tất cả các giá trịhistogram
Trong hình 2.3 là một số kết quả minh họa cho thuật toán CLAHE khi ápdụng để chuẩn hóa ánh sáng cho các bức ảnh trước khi đưa sang bước phát hiệnkhuôn mặt Có thể nhận thấy thuật toán có 2 tác dụng chính như sau:
+ Chuẩn hóa cường độ sánh của các bức ảnh, đưa chúng về điều kiện sángtương tự nhau
+ Tăng cường các đường nét quan trọng phục vụ cho thao tác phát hiệnmặt người, là bước đầu tiên của hệ thống mà đề tài nhắm tới
Hình 2.4: Kết quả của việc tiền xử lý với bộ lọc CLAHE.
2.3 Phát hiện mặt người và mắt người sử dụng đặc trưng Haar-like
Phương pháp phát hiện mặt người sử dụng đặc trưng Haar-like dựa trêncác đặc trưng Haar-like và bộ phân lớp Haar Các đặc trưng Haar-like thay vì sửdụng các giá trị cường độ sáng của các điểm ảnh lại sử dụng giá trị sai khác giữacác giá trị độ tương phản giữa các nhóm điểm ảnh nằm trong các hình chữ nhật
Trang 17Thuyết minh đề tài NCKH cấp trường 2017
liền kề nhau Các giá trị phương sai của độ tương phản giữa các nhóm điểm ảnhđược sử dụng để xác định các vùng tối (dark) và sáng (light) tương ứng Haihoặc ba nhóm liền kề với một giá trị sai khác về độ tương phản tương đối tạothành một đặc trưng Haar-like Các đặc trưng Haar-like, có thể xem minh họatrong hình 2.4, được sử dụng để phát hiện đối tượng trong ảnh Các đặc trưngHaar-like có thể thay đổi kích thước bằng cách tăng hoặc giảm kích thước củanhóm điểm ảnh tương ứng, điều này cho phép chúng có thể được sử dụng đểphát hiện các đối tượng có kích thước khác nhau
Hình 2.5: Một số mẫu đặc trưng Haar-like phổ biến
Ảnh tích hợp (Integral image): Các đặc trưng hình chữ nhật của một bức
ảnh có thể được tính toán bằng cách sử dụng một phương pháp biểu diễn trunggian của ảnh gọi là ảnh tích hợp Ảnh tích hợp là một mảng chứa tổng của cáccường độ sáng của các điểm ảnh nằm từ vị trí phía trên bên trái cho tới vị trítương ứng Ví dụ nếu gọi A là ảnh gốc và AI là ảnh tích hợp thì điểm ảnh tại vịtrí (x, y) của ảnh tích hợp sẽ được tính như sau:
AI [ x , y ]= ∑
x '
≤x , y ' ≤ y
A (x ' , y ')
Trang 18Thuyết minh đề tài NCKH cấp trường 2017
Có thể thấy rằng việc tính giá trị của ảnh tích hợp tại mỗi trị trí (x, y) cóthể thực hiện một cách hiệu quả và nhanh chóng bằng cách sử dụng phươngpháp quy hoạch động
Sử dụng nhiều bộ phân lớp theo kiểu dòng thác (Classifiers cascaded): mặc dù việc tính một đặc trưng Haar-like là rất hiệu quả và nhanh
chóng nhưng để tính 180000 đặc trưng chứa trong một ảnh con kích thước24x24 là không khả thi Rất may mắn là chỉ một phần nhỏ trong số các đặc trưngnày là cần thiết để xác định xem một ảnh có tiềm năng chứa đối tượng cần pháthiện hay không Để loại bỏ càng nhiều ảnh con càng tốt, chỉ một số ít các đặctrưng xác định đối tượng được sử dụng khi phân tích các ảnh con Mục tiêu làloại bỏ một số lượng đáng kể (khoảng 50%) các ảnh con không chứa đối tượng.Quá trình này tiếp diễn và tăng số lượng đặc trưng cần dùng để phân tích ảnhcon ở mỗi bước
Môt hình kiểu dòng thác của các bộ phân lớp chỉ cho pháp các ảnh con cóxác xuất cao nhất được phân tích sử dụng tất cả các đặc trưng Haar để phát hiệnmột đối tượng Nó cũng cho pháp điều chỉnh độ chính xác của một bộ phân lớpbằng cách tăng cả tỉ lệ báo lỗi sai và tỉ lệ chính xác có thể bằng cách tăng số pha.Quá trình ngược lại thì không đúng Viola và Jones đã đạt được độ chính xác95% khi thực hiện phát hiện mặt người mà chỉ sử dụng 200 đặc trưng đơn giản[2]
Trong đề tài này phần phát hiện mặt người trong ảnh sử dụng các đặctrưng Haar-like được cài đặt bằng cách sử dụng thư viện OpenCV với các dữliệu đã được xây dựng từ các bộ ảnh có sẵn Phần phát hiện mắt người cũngđược thực hiện bằng phương pháp tương tự với các đặc trưng Haar-like
Để huấn luyện các bộ phân lớp, cần có 2 tập ảnh Một tập gồm các ảnhkhông chứa các đối tượng cần phát hiện (mặt và mắt người) gọi là tập negative.Tập thứ hai gọi là tập positive chứa các ảnh của đối tượng cần phát hiện Vị trícủa đối tượng trong tập positive cần phải được xác định trước Để phát hiện mặt
và mắt người, một tập huấn luyện gồm 5000 ảnh negative có kích thước nhỏ
Trang 19Thuyết minh đề tài NCKH cấp trường 2017
nhất 1 Mb đã được sử dụng Các ảnh này bao gồm nhiều loại đối tượng khácnhau như kẹp giấy, ảnh phong cảnh tự nhiên Trong khi đó chỉ 1500 ảnh của tậppositive được sử dụng
Một cách hoàn toàn tương tự, việc phát hiện mắt người để từ đó kết luận
về trạng thái ngủ gật (không phát hiện được mắt người nhưng phát hiện mặtngười) cũng được thực hiện bằng cách sử dụng đặc trưng Haar-like như trongphần phát hiện mặt người ở trên
2.4 Phát hiện mặt người sử dụng đặc trưng HOG
Phương pháp trích xuất đặc trưng HOG [5] được phát triển nhằm giảiquyết bài toán phát hiện người (human detection) nhưng sau đó được phát triển
và ứng dụng rất hiệu quả trong các bài toán phát hiện đối tượng nói chung(object detection) Các đặc trưng HOG được xây dựng dựa trên việc đếm tần sốxuất hiện của các hướng đạo hàm (gradient orientation) của các vùng cục bộ củaảnh
Cơ sở của HOG dựa trên thực tế là các thông tin về hình dáng và vẻ bềngoài của các đối tượng trong ảnh có thể được biểu diễn qua việc dùng cácthông tin về sự phân bố của các cường độ gradient (intensity gradients) hoặchướng của các biên (edge directions) Các toán tử HOG được thực hiện qua việcchia một bức ảnh thành các vùng nhỏ gọi là các “tế bào” (cells) Mỗi cell sẽ cómột histogram về các hướng của gradients được tính cho các điểm nằm trongcell.Các histogram được ghép lại với nhau để tạo thành một mô tả cho ảnh banđầu Để nâng cao kết quả nhận dạng, các histogram cục bộ được chuẩn hóa về
độ tương phản với ngưỡng cường độ được tinh strong một vùng lớn hơn của ảnhgọi là khối Kết quả là vector HOG chuẩn hóa có tính bất biến cao hơn với thayđổi của ánh sáng
Việc tính một vector HOG của một ảnh gồm các bước sau: Tính gradient,gán hướng, tính histogram của các khối và chuẩn hóa các khối
Tính gradient: Bước này là bước thứ nhất và được thực hiện qua việc
nhân chập hai nhân sau với ảnh gốc: