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.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
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
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:
- xay_dung_he_thong_canh_bao_ngu_gat_tren_kit_raspberry_pi_3.pdf