KỶ YẾU NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2018-2019
P a g e 40 | 82
XÂY DỰNG HỆ THỐNG CẢNH BÁO NGỦ GẬT TRÊN KIT RASPBERRY PI 3
Giảng viên hướng dẫn: ThS. Võ Thiện Lĩnh
Sinh viên thực hiện: Nguyễn Minh Tiến Lớp: CQ.57.KTĐTTH
Trung Phương Lớp: CQ.57.KTĐTTH
Tóm tắt: Trong khuôn khổ bài báo này, chúng tôi xây dựng một hệ thống phát hiện tình trạng
ngủ gật của tài xế dựa trên các kỹ thuật xử ảnh. Với một camera dùng để quan sát gương mặt tài
xế, hệ thống xử lý hình ảnh bằng Kit Raspberry Pi 3 sẽ phát âm thanh cảnh báo khi tài xế có biểu hiện
ngủ gật dựa vào trạng thái mắt nhắm cũng như miệng ngáp. Đề tài sử dụng phương pháp phát hiện
trạng thái nhắm mắt là: phương pháp xác định tỉ lệ khoảng cách giữa hai mí mắt và tỉ lệ khoảng cách
giữa i trên môi dưới khi ngáp. Chúng tôi sử dụng tập dữ liệu đã được huấn luyện để trích xuất
ra 68 điểm đặc trưng trên khuôn mặt và công cụ “frontal face detector” có trong thư viện Dlib để xác
định các vị trí mắt và miệng cần thiết để tiến hành nhận dạng. Thực nghiệm trên một nhóm người Việt
Nam cho thấy độ chính xác của hệ thống là khá cao.
Từ khóa: xử lý ảnh; nhận dạng khuôn mặt;phát hiện ngủ gật.
1. ĐẶT VẤN ĐỀ
Tai nạn giao thông đường bộ ảnh hưởng rất lớn đến nhân, cộng đồng cả quốc
gia. sẽ tiêu tốn một khoảng chi phí lớn để chăm sóc sức khỏe gây nên tình trạng
thường xuyên quá tải trong hệ thống bệnh viện. Năm 2016 Theo báo cáo của WHO, 1,24
triệu ca tử vong giao thông đường bộ xảy ra mỗi năm trên thế giới, điều này làm cho tai nạn
giao thông trở thành nguyên nhân s một của cái chết trong số những người độ tuổi 15-29.
Con số này được dự đoán sẽ tăng đến khoảng 1,9 triệu vào năm 2030 trở thành một trong
bảy nguyên nhân hàng đầu gây tử vong của con người[1]
Thông báo hôm 8/2 của Ủy ban An toàn giao thông Quốc gia Việt Nam nói trong 7 ngày
nghỉ Tết Nguyên đán Kỷ Hợi 2019 cả nước xảy ra 214 vụ tai nạn giao thông, làm chết 135
người, bị thương 189 người[2]
nhiều do y ra tai nạn giao thông, nguyên nhân chủ quan như do ý thức của
người điều khiển, sử dụng điện thoại, sử dụng rượu bia chất kích thích hay do ngun nhân
khách quan việc mệt mỏi do làm việc quá sức dẫn đến tình trạng ngủ gậtmất tập trung.
Ngày nay, nhiều kỹ thuật phát hiện tình trạng ngủ gật đã được nghiên cứu. Các kỹ
thuật phát hiện tình trạng ngủ gật thể được chia thành hai loại bản: kỹ thuật dựa trên sự
thay đổi biểu hiện sinh như sóng não, nhịp tim,...; kỹ thuật dựa trên sự thay đổi các biểu
hiện vật của thể n thế, độ nghiêng của đầu, trạng thái nhắm/mở mắt, chớp mắt,
ngáp,…
Hệ thống phát hiện ngủ gật đề cập đây bao gồm ba thành phần Kit Raspberry Pi
3, Module Pi camera một chiếc loa để phát ra âm thanh cảnh báo. Camera gắn trong xe
bắt giữ khuôn mặt của người lái xe liên tục theo dõi mắt miệng của người lái xe.
Raspberry Pi 3 phân ch các khung hình liên tục cảnh báo người lái xe trong thời gian
KỶ YẾU NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2018-2019
P a g e 41 | 82
thực nếu phát hiện bất thường, để người lái trở lại tập trung. Do cấu trúc nhỏ gọn của nó, nên
thể dễ dàng trang bị trong bất kỳ các loại xe ô tô. Ngoài ra hệ thống này tương đối rẻ
hơn các biện pháp an toàn khác được trang bị trong xe.
Để thực hiện điều đó cần xác định khuôn mặt của tài xế xác định được các vị trí
đặc trưng trên khuôn mặt đó.
2. CÁC NỘI DUNG CHÍNH
2.1. Các phương pháp xác định khuôn mặt
2.1.1. Trình phân loại Haar Cascade
Được đề xuất vào năm 2001 bởi Paul Viola Michael Jones[3] để tìm đồ vật trong
những bức ảnh hay cả trong video thời gian thực. Họ đã sử dụng một loạt các tính năng để
phát hiện nhanh chóng đối tượng. Haar Cascade còn được gọi Máy dò Viola-Jones.
Phương thức huấn luyện về bản so khớp tất cả các Haar-like features mẫu sẵn
vào ảnh gốc đã được xám hoá và chuẩn hoá (chỉnh lại kích thước theo yêu cầu), các Haar-like
features phù hợp sẽ được y tính t trích chọn ra mức ngưỡng (threshold) tối ưu nhất
theo 8-bit mức xám.
Hình 1. Haar-like features
Bộ phân loại thác đổ (Cascade classifiers) dựa trên đặc trưng Haar (Haar feature)[4]
Tất cả các đặc trưng Haar-like sau khi đã được huấn luyện sẽ được quét khắp bức ảnh
đầu vào, tức mọi pixels trong ảnh đều sẽ ít nhất một lần bị nhân Haar-like trượt qua,
những khu vực so sánh được cho giống với nhiều đặc trưng Haar-like nhất sẽ được đánh
dấu lại và phát hiện đó gương mặt.
Hình 2. So khớp để tạo ra bộ đặc trưng
KỶ YẾU NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HC 2018-2019
P a g e 42 | 82
2.1.2. HOG-Histogram of Oriented Gradients[4]
một công cụ tả tính năng chức năng tạo nên hình thái khác của đối tượng
trong không gian vector bằng cách trích xuất ra những đặc trưng HOG (HOG descriptors) của
đối tượng đó, hạn chế những thông tin không hữu ích làm nổi lên được phần viền đối
tượng nhờ đặc tính dốc của đường bao đối tượng (intensity gradient). Đối với bài toán nhận
dạng mặt người, những thông tin hữu ích y sau đó sẽ đi qua máy phân lớp SVM, kết quả
đầu ra sẽ dự đoán kết quả trong ảnh gương mặt hay không. vậy, HOG được sử dụng
chủ yếu để tả hình dạngsự xuất hiện của một đối tượng trong ảnh.
Bản chất của phương pháp HOG sử dụng thông tin về sự phân bố của các cường độ
gradient (Intensity Gradient) hoặc của hướng biên (Edge Directins) để tả các đối tượng
trong ảnh.c toán tử HOG được triển khai bằng cách chia nhỏ một bức ảnh thành các cells,
mỗi cell (8x8px) sẽ rút ra được một histogram về các hướng của gradients cho các điểm nằm
trong cell. Để tăng cường hiệu năng nhận dạng, các histogram sẽ được chuẩn hóa về độ tương
phản bằng cách tính một ngưỡng cường độ trong một vùng lớn hơn cell, gọi blocks (4
cells) và sử dụng giá trị ngưỡng đó để chuẩn hóa tất cả các cells trong khối. Kết quả sau bước
chuẩn hóa giúp HOG khả năng ổn định cao với sự thay đổi độ sáng trong toàn bộ bức ảnh.
Hình 3. Hình thái khác của đối tượng trong không gian vector
2.2. Phương pháp đề xuất
2.2.1. Nhận dạng trạng thái ngủ gật
Trong số tất cả các biện pháp xác định trạng thái ngủ gật của lái xe, kỹ thuật chính xác
nhất phụ thuộc vào các biện pháp sinh của con người. Mặc phương pháp này mang lại
kết quả chính xác nhất, nhưng đòi hỏi phải đặt các thiết bị trên đầu, tay hay ngực gây cảm
giác khó chịu cho người lái xe. Ngoài ra các thiết bị đó cần phải được đặt rất cẩn thận nơi
thích hợp để cho kết quả hoàn hảo.
Do đó, chúng tôi sẽ chủ yếu tập trung vào hành vi nhắm mắt qua tỷ lệ nhắm hay mở giữa
hai mắt cung cấp nhiều thông tin chính xác về việc buồn ngủ. Do đó không làm ảnh
hưởng đến người lái xengười lái xe cảm thấy hoàn toàn thoải mái với hệ thống này.
2.2.2. Bộ phân loại được sử dụng
HOG rất tốt trong việc tả đối tượng hình dạng do đó tốt cho phát hiện người tỉ lệ
chính xác cao. Trong khi đó Haar cho tốc độ phát hiện đối tượng nhanh hơn.
KỶ YẾU NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2018-2019
P a g e 43 | 82
Khi kết hợp chúng thể dẫn đến kết quả tốt hơn hiệu suất. Do đó, chúng tôi đang sử
dụng HOG trong hệ thống này.
2.3. Xây dựng hệ thống
Trong nghiên cứu y, chúng tôi sử dụng ngôn ngữ Python kết hợp với các thư viện
nguồn mở OpenCV Dlib trên nền tảng phần cứng của máy nh nhúng Raspberry Pi 3
model B+ để nhận dạng tình trạng ngủ gật của tài xế. Hệ thống chúng tôi đang nghiên cứu
vận hành theo các bước sau:
- Nhận nguồn video từ buồng lái;
- Xác định khuôn mặt trong video;
- Xác định vị trí các điểm mắtmiệng trên khuôn mặt;
- Tính tỉ lệ của mắtmiệng so sánh với giá trị ngưỡng định trước(ngưỡng tỉ lệ mắt
nằm trong khoảng mắt nhắm);
- Phát hiệndự đoán tình trạng ngủ gật;
- Phát âm thanh cảnh báo nếu phát hiện được tình trạng ngủ gật.
Đầu tiên, chúng tôi quét tìm đối tượng mong muốn đây mặt người. Điều y được
thực hiện bằng công cụ HOG kết hợp với bộ phân lớp SVM để cho kết quả đầu ra
khuôn mặt người hay không.
Sau khi đã xác định được khuôn mặt chúng tôi tiếp tục sử dụng thư viện Dlib để tiến
hành nhận dạng các điểm trên khuôn mặt. Thư viện Dlib hỗ trợ nhận biết 68 điểm trên khuôn
mặt được thực thi qua hàm Facial Landmark[5]
Hình 4. Đánh dấu 68 điểm
Để thể xác định được 68 điểm y trên khuôn mặt người, bộ xác định Facial
Landmark của dlib được huấn luyện với bộ dataset iBUG 300-W, tập dữ liệu training đầu vào
1000 ảnh mặt người được đánh dấu 68 điểm hoàn toàn thủ công.
KỶ YẾU NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HC 2018-2019
P a g e 44 | 82
Tiếp theo hệ thống sẽ tiến hành tính tỉ lệ khoảng cách giữa hai mắt theo công thức[7]:
EAR =||𝑝2−𝑝6||+||𝑝3−𝑝5||
2||𝑝1−𝑝4||
Hình 5. Tỉ lệ mắt nhắm hay mở
Nếu tỉ lệ y dưới một ngưỡng nào đó ta đã xác định(đã thực nghiệm với một số
người Việt Nam tỉ lệ nhắm mắt 0.22) trong khoảng 30 khung hình của camera thì hệ thống
cảnh báo sẽ được kích hoạt.
2.4. đồ khối của hệ thống
Hình 6. đồ khối tả hệ thống