Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3

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ử lý ả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 môi trên và 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.

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3 trang 1

Trang 1

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3 trang 2

Trang 2

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3 trang 3

Trang 3

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3 trang 4

Trang 4

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3 trang 5

Trang 5

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3 trang 6

Trang 6

pdf 6 trang baonam 10640
Bạn đang xem tài liệu "Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3

Xây dựng hệ thống cảnh báo ngủ gật trên Kit Raspberry PI 3
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 
 Lê 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ử lý ả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 môi trên và 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ộ có ảnh hưởng rất lớn đến cá nhân, cộng đồng và cả quốc 
gia. Nó sẽ tiêu tốn một khoảng chi phí lớn để chăm sóc sức khỏe và 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 và 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] 
 Có nhiều lý do gâ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 nguyên nhân 
khách quan là việc mệt mỏi do làm việc quá sức dẫn đến tình trạng ngủ gật và mấ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 có thể được chia thành hai loại cơ bản: kỹ thuật dựa trên sự 
thay đổi biểu hiện sinh lý 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 lý của cơ thể như tư 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 là Kit Raspberry Pi 
3, Module Pi camera và 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 và liên tục theo dõi mắt và miệng của người lái xe. 
Raspberry Pi 3 phân tích các khung hình liên tục và 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 
có thể dễ dàng trang bị trong bất kỳ các loại xe ô tô. Ngoài ra hệ thống này là 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ế và 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 và 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 là Máy dò Viola-Jones. 
Phương thức huấn luyện về cơ bản là so khớp tất cả các Haar-like features mẫu sẵn có 
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 máy tính rút trích và 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 là ở 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 là 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 đó là 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 HỌC 2018-2019 
P a g e 42 | 82 
2.1.2. HOG-Histogram of Oriented Gradients[4] 
 Là một công cụ mô tả tính năng có 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 và 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 nà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 có gương mặt hay không. 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. 
Bản chất của phương pháp HOG là 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) để mô tả các đối tượng 
trong ảnh. Cá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 là 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 có 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 lý của con người. Mặc dù phương pháp này mang lại 
kết quả chính xác nhất, nhưng nó đò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í mắt vì nó 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 xe và ngườ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 mô tả đối tượng hình dạng do đó tốt cho phát hiện người có 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 có 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 này, chúng tôi sử dụng ngôn ngữ Python kết hợp với các thư viện mã 
nguồn mở là OpenCV và Dlib trên nền tảng phần cứng của máy tí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 có trong video; 
- Xác định vị trí các điểm mắt và miệng trên khuôn mặt; 
- Tính tỉ lệ của mắt và miệng và 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ện và dự đ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 là mặt người. Điều nà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 là có 
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 
Để có thể xác định được 68 điểm nà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 
là 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 HỌC 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í 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ệ này dưới một ngưỡng nào đó mà ta đã xác định(đã thực nghiệm với một số 
người Việt Nam tỉ lệ nhắm mắt là 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. Sơ đồ khối của hệ thống 
Hình 6. Sơ đồ khối mô tả hệ thống 
KỶ YẾU NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2018-2019 
P a g e 45 | 82 
3. KẾT LUẬN 
Bài viết tập trung trình bày một giải pháp để cảnh báo người lái xe trước khi tai nạn xảy 
ra là phát hiện dấu hiệu tài xế buồn ngủ, đó là một trong những nguyên nhân chính gây ra tai 
nạn đường bộ, đây là trong các phương pháp giảm tỉ lệ tử vong và bị thương ở một mức độ 
lớn. Trình phân loại HOG được sử dụng bằng cách tính tỷ lệ khung hình mắt và miệng. Do đó 
hệ thống này phát hiện buồn ngủ và cảnh báo người lái xe chính xác trong thời gian thực. 
Tài liệu tham khảo 
[1]. WHO. Road Safety: Basic Facts; 2016 
[2]. Ủy ban An toàn giao thông Quốc gia Việt Nam 2019. 
[3]. Paul Viola and Michael Jones, Rapid Object Detection using a Boosted Cascade of 
Simple Features, 2001. 
[4]. Paul Viola and Michael Jones, Rapid Object Detection using a Boosted Cascade of 
Simple Features, 2001. 
[5]. Kazemi and Sullivan, One Millisecond Face Alignment with an Ensemble of Regression 
Trees paper, 2014. 
[6]. Dalal and Triggs in their seminal 2005 paper, Histogram of Oriented Gradients for 
Human Detection. 
[7]. Tereza Soukupova and Jan´Cech, Real-Time Eye Blink Detection using Facial 
Landmarks, 2016. 

File đính kèm:

  • pdfxay_dung_he_thong_canh_bao_ngu_gat_tren_kit_raspberry_pi_3.pdf