BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG CẢNH BÁO TÀI XẾ NGỦ GẬT TRÊN Ô TÔ – THI CÔNG, LẮP ĐẶT VÀ THỰC NGHIỆM HỆ THỐNG NGÀNH CÔNG NGHỆ KỸ THUẬT Ô TÔ GIẢNG VIÊN HƯỚNG DẪN TS NGUYỄN VĂN NHANH Sinh viên thực hiện MSSV Lớp Nguyễn Trung Hiếu 1711251926 17DOTC3 Cao Gia Bảo 1711251942 17DOTC3 Nguyễn Kế Thức 1711251939 17DOTC3 TP Hồ Chí Minh, tháng 9 năm 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ HỆ THỐNG CẢNH BÁO TÀI XẾ
NGỦ GẬT TRÊN Ô TÔ – THI CÔNG, LẮP ĐẶT
VÀ THỰC NGHIỆM HỆ THỐNG
NGÀNH: CÔNG NGHỆ KỸ THUẬT Ô TÔ
GIẢNG VIÊN HƯỚNG DẪN: TS NGUYỄN VĂN NHANH
Nguyễn Trung Hiếu 1711251926 17DOTC3
Nguyễn Kế Thức 1711251939 17DOTC3
TP Hồ Chí Minh, tháng 9 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ HỆ THỐNG CẢNH BÁO TÀI XẾ
NGỦ GẬT TRÊN Ô TÔ – THI CÔNG, LẮP ĐẶT
VÀ THỰC NGHIỆM HỆ THỐNG
NGÀNH: CÔNG NGHỆ KỸ THUẬT Ô TÔ
GIẢNG VIÊN HƯỚNG DẪN: TS NGUYỄN VĂN NHANH
Nguyễn Trung Hiếu 1711251926 17DOTC3
Nguyễn Kế Thức 1711251939 17DOTC3
TP Hồ Chí Minh, tháng 9 năm 2021
Trang 3iii
MỤC LỤC TRANG LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH ẢNH viii
LỜI MỞ ĐẦU 1
Chương 1: GIỚI THIỆU ĐỀ TÀI 2
1.1 Đặt vấn đề 2
1.2 Mục tiêu của đề tài 2
1.3 Nhiệm vụ của đề tài 3
1.4 Phương pháp nghiên cứu 3
1.5 Đối tượng nghiên cứu 3
1.6 Ý nghĩa đề tài 4
1.7 Bố cục đề tài 4
Chương 2: TỔNG QUAN GIẢI PHÁP 5
2.1 Ưu nhược điểm của hệ thống cảnh báo tài xế ngủ gật 5
2.2 Các phương án thực hiện cảnh báo tài xế ngủ gật trên ô tô 5
2.2.1 Phương pháp dựa vào sinh lý người lái xe 5
2.2.2 Phương pháp dựa vào HĐ và phản ứng điều khiển xe của người lái xe 6
2.3 Các hệ thống cảnh báo tài xế ngủ gật 6
2.3.1 Dạng đeo lên tai người lái xe 6
2.3.2 Dạng lắp đặt trên xe ô tô 6
2.4 Hệ thống cảnh báo ngủ gật của các hãng xe 7
2.4.1 Hãng Mercedes - Benz: thiết bị Attention 7
2.4.2 Hãng Hyundai: hệ thống chống ngủ gật DDREM cho tài xế 8
Trang 4iv
2.4.3 Hãng Honda: Hệ thống cảnh báo chống buồn ngủ Driver Attention Monitor 9
2.5 Các nghiên cứu hệ thống cảnh báo tài xế ngủ gật ở Việt Nam 10
2.5.1 Nghiên cứu thiết kế, chế tạo thiết bị nhúng kiểm soát trạng thái ngủ gật của lái xe 10
2.5.2 Thiết kế hệ thống cảnh báo lái xe ngủ gật bằng phương pháp xây dựng ứng dụng với thư viện mã nguồn OpenCV 13
2.6 Hướng phát triển đề tài 16
2.7 Kết luận 16
Chương 3: PHƯƠNG PHÁP GIẢI QUYẾT 17
3.1 Xác định những biểu hiện cơ bản và rút trích đặc trưng cơ bản xác định trạng thái ngủ gật 17
3.2 Xác định các thông số kỹ thuật cơ bản cho thiết bị giám sát trạng thái buồn ngủ của lái xe trong điều kiện giao thông và thời tiết ở Việt Nam 18
3.2.1 Xác định tư thế của đầu dựa vào phát hiện khuôn mặt trong các trường hợp đầu chuyển động 18
3.2.2 Tìm con ngươi từ khuôn mặt để xác định mắt nhắm hay mở 21
3.2.3 Xác định các thông số kỹ thuật cơ bản cho thiết bị giám sát trạng thái buồn ngủ của lái xe 23
3.3 Phần mềm xử lý ảnh 24
3.3.1 Thư viện OpenCV 24
3.3.2 Cách tổ chức thư viện OpenCV 24
3.3.3 Tổng quan phương pháp Haar-like 26
3.4 Kết luận 34
Chương 4: QUY TRÌNH THIẾT KẾ HỆ THỐNG CẢNH BÁO TÀI XẾ NGỦ GẬT 35
4.1 Mô hình hệ thống cảnh báo ngủ gật tài xế cần thiết kế 35
4.1.1 Yêu cầu của mô hình hệ thống 35
4.1.2 Mô tả về hệ thống cảnh báo ngủ gật tài xế cần thiết kế 35
Trang 5v
4.2 Thiết kế tính toán phần điện của mô hình 37
4.2.1 Tín hiệu đầu vào 37
4.2.2 Khối nguồn cho hệ thống 38
4.2.3 Bộ xử lý trung tâm 39
4.2.4 Khối cảnh báo 43
4.2.5 Khối hiển thị 44
4.3 Thiết kế thuật toán và phần mềm phát hiện ngủ gật 45
4.3.1 Thiết kế các thuật toán xác định trạng thái buồn ngủ của lái xe 45
4.3.2 Thiết kế phần mềm phát hiện ngủ gật bằng các thuật toán đã đề xuất 51
4.4 Cài đặt phần mềm vào bộ xử lý trung tâm 57
4.5 Kết luận 59
Chương 5: THI CÔNG, LẮP RÁP VÀ THỰC NGHIỆM 60
5.1 Thi công lắp ráp hệ thống cảnh báo tài xế ngủ gật lên xe ô tô 60
5.1.1 Lắp camera hồng ngoại 60
5.1.2 Lắp màn LCD theo dõi hoạt động của hệ thống 60
5.1.3 Lắp khối cảnh báo âm thanh 60
5.1.4 Lắp bộ xử lý trung tâm 61
5.1.5 Vị trí lấy nguồn 61
5.1.6 Mô hình sau khi lắp hoàn thiện 61
5.2 Xây dựng các trường hợp thực nghiệm 62
5.2.1 Điều kiện thực nghiệm 62
5.2.2 Các trường hợp đo đạc 63
5.2.3 Bảng số liệu 64
Chương 6: ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LUẬN 65
6.1 Đánh giá kết quả thực nghiệm 65
6.2 Kết luận 66
6.3 Kiến nghị 67
TÀI LIỆU THAM KHẢO 68
PHỤ LỤC 69
Trang 6GPS Global Positioning System
GPRS General Packet Radio Service
LED Light Emitting Diode
API Application Programming Interface
GIS Geographic Information System
GUI Graphical User Interface
XML eXtensible Markup Language
CPU Central Processing Unit
USB Universal Serial Bus
LCD Liquid-Crystal Display
LAN Local Area Network
LPDDR Low-Power Double Data Rate Synchronous Dynamic Random
Access Memory HDMI High-Definition Multimedia Interface
RAM Random Access Memory
Trang 7vii
DANH MỤC CÁC BẢNG BẢNG TRANG Bảng 3.1: Các thông số kỹ thuật cơ bản cho thiết bị giám sát trạng thái buồn ngủ của lái xe 23
Bảng 4.1: Cấu hình Chip BCM2837 40
Bảng 4.2: Thông số kỹ thuật khối xử lý trung tâm 41
Bảng 5.1: Bảng ghi và tổng hợp kết quả thực nghiệm 64
Bảng 6.1: Bảng tổng hợp kết quả đo trên xe KIA MORNING 66
Trang 8viii
DANH MỤC CÁC HÌNH ẢNH HÌNH TRANG Hình 2.1: Hệ thống chống ngủ gật DDREM (Nguồn Internet) 8
Hình 2.2: Mức cảnh báo chú ý được hiển thị theo từng cấp độ (Nguồn Internet) 9
Hình 2.3: Các mức cảnh báo buồn ngủ được hiển thị theo 4 cấp độ (Nguồn Internet) 10
Hình 2.4: Nhận dạng khuôn mặt và đôi mắt (Nguồn Internet) 15
Hình 3.1: Các phương pháp phát hiện trạng thái buồn ngủ (Nguồn Internet) 17
Hình 3.2: Gốc tọa độ của frame ảnh trong hệ trục tọa độ 19
Hình 3.3: Trạng thái khuôn mặt ở vị trí chuẩn 19
Hình 3.4: Khuôn mặt đang quay sang bên phải 20
Hình 3.5: Khuôn mặt quay sang trái 20
Hình 3.6: Khuôn mặt ngửa ra sau 21
Hình 3.7: Khuôn mặt cúi xuống dưới 21
Hình 3.8: Vị trí con ngươi trong trường hợp mắt đang mở 21
Hình 3.9: Vị trí con ngươi trong trường hợp mắt đóng 22
Hình 3.10: Giám sát trạng thái mắt 23
Hình 3.11: Tổ chức thư viện OpenCV (Nguồn Internet) 25
Hình 3.12: Tổng quan phương pháp phát hiện mặt người bằng Haar-like 26
Hình 3.13: Giá trị của ảnh tích hợp tại vị trí (x, y) (Nguồn Internet) 28
Hình 3.14: Mô tả cách tính toán ảnh tích hợp từ ảnh ban đầu (Nguồn Internet) 29
Hình 3.15: Ví dụ các điểm ảnh trong một vùng hình chữ nhật (Nguồn Internet) 29
Hình 3.16: Đặc trưng thứ nhất và thứ hai được lựa chọn bởi AdaBoost 30
Hình 3.17: Các đặc trưng Haar-like cơ bản (Nguồn Internet) 31
Hình 3.18: Một số đặc trưng cạnh (Nguồn Internet) 31
Hình 3.19: Một số đặc trưng đường (Nguồn Internet) 31
Hình 3.20: Đặc trưng xung quanh tâm (Nguồn Internet) 32
Trang 9ix
Hình 4.1: Sơ đồ khối thiết bị phát hiện và cảnh báo trạng thái ngủ gật 35
Hình 4.2: Bộ xử lý trung tâm CPU 36
Hình 4.3: Màn hình LCD 36
Hình 4.4: Hệ thống hoàn thiện 36
Hình 4.5: Camera hồng ngoại 38
Hình 4.6: Khối nguồn hệ thống 38
Hình 4.7: Sơ đồ kết nối chip BCM2837 trên Board Raspberry Pi 4 40
Hình 4.8: Khối xử lý trung tâm 43
Hình 4.9: Khối cảnh báo âm thanh 43
Hình 4.10: Khối cảnh báo ánh sáng 44
Hình 4.11: Màn hình LCD theo dõi hoạt động của hệ thống 44
Hình 4.12: Gốc tọa độ của frame ảnh trong hệ trục tọa độ 45
Hình 4.13: Trạng thái khuôn mặt ở vị trí chuẩn 45
Hình 4.14: Khuôn mặt quay sang trái 46
Hình 4.15: Khuôn mặt đang quay sang bên phải 47
Hình 4.16: Khuôn mặt ngửa ra sau 47
Hình 4.17: Khuôn mặt cúi xuống dưới 48
Hình 4.18: Cách tính diện tích khuôn mặt phát hiện được 48
Hình 4.19: Vị trí con ngươi trong trường hợp mắt đang mở 49
Hình 4.20: Vị trí con ngươi trong trường hợp mắt đóng 49
Hình 4.21: Xác định trạng thái mắt 50
Hình 4.22: Lưu đồ chương trình tổng quát phát hiện buồn ngủ của lái xe 53
Hình 4.23: Lưu đồ chương trình xác định vị trí đầu người lái xe 54
Hình 4.24: Lưu đồ chương trình xác định vùng mặt theo phát hiện vùng mũi 55
Hình 4.25: Lưu đồ thuật toán xác định vùng mắt và con ngươi 56
Hình 4.26: Cài đặt chương trình 57
Hình 4.27: Xây dựng code 57
Hình 4.28: Nạp code xuống thiết bị 58
Trang 10x
Hình 4.29: Chạy chương trình 58
Hình 4.30: Hình ảnh và Code xác định trạng thái của tài xế 59
Hình 5.1: Lắp camera hồng ngoại 60
Hình 5.2: Lắp màn hình LCD 60
Hình 5.3: Lắp loa cảnh báo 60
Hình 5.4: Lắp bộ xử lý trung tâm 61
Hình 5.5: Vị trí lấy nguồn hệ thống 61
Hình 5.6: Mô hình hệ thống sau khi lắp đặt hoàn thiện 61
Hình 5.7: Thiết bị hoạt động ở điều kiện ban ngày 62
Hình 5.8: Thiết bị hoạt động ở điều kiện ban đêm 63
Hình 6.1: Biểu đồ tổng hợp kết quả đo trên xe 5 chỗ của đơn vị 65
Trang 111 LỜI MỞ ĐẦU
Ngày nay ô tô được sử dụng rộng rãi như một phương tiện đi lại thông dụng, các trang thiết bị, bộ phận trên ô tô ngày càng hoàn thiện hơn và hiện đại đóng vai trò quan trọng đối với việc đảm bảo độ tin cậy, an toàn cho người vận hành và chuyển động của ô tô Là những sinh viên được đào tạo tại trường Đại Học Công Nghệ TP
Hồ Chí Minh chúng tôi được các thầy cô trang bị cho những kiến thức cơ bản về chuyên môn Để tổng kết và đánh giá quá trình học tập và rèn luyện tại trường tôi chọn đề tài báo cáo “Thiết kế hệ thống cảnh báo tài xế ngủ gật trên ô tô – Thi công, lắp đặt và thực nghiệm hệ thống” Trong quá trình thực hiện báo cáo, do trình độ và
sự hiểu biết còn hạn chế Nhưng được sự chỉ bảo của các thầy (cô) trong Viện kỹ thuật đặc biệt là TS Nguyễn Văn Nhanh, nay đề tài của chúng tôi đã được hoàn thành đúng thời hạn Tuy vậy đề tài còn nhiều thiếu sót, kính mong các thầy (cô) đóng góp
ý kiến để đề tài của chúng tôi được hoàn thiện hơn Tôi xin chân thành cảm ơn
Trang 122 Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Đặt vấn đề
Khoảng một thập niên trở lại đây, cùng với sự phát triển kinh tế xã hội nước ta thì người dân sở hữu ô tô ngày càng nhiều, đồng hành đó thì mạng lưới giao thông đường bộ cũng phát triển theo nhưng bên cạnh đó tình hình tai nạn giao thông xảy ra
có chiều hướng nghiêm trọng hơn Một trong những nguyên nhân chính gây ra tai nạn giao thông đó vấn đề mất tập trung của người lái, đó là dấu hiệu của buồn ngủ khi điều khiển phương tiện giao thông
Tại hội nghị khoa học thường niên Hội Hô hấp Việt Nam và Chương trình đào tạo y khoa liên tục 2015 được tổ chức tại TP Hồ Chí Minh, Giáo sư Telfilo Lee Chiong, Trung tâm National Jewish Health, Mỹ cho biết: “Thiếu ngủ là một trong những nguyên nhân chính gây ra tai nạn giao thông trên thế giới Ước tính khoảng 10-15% tai nạn xe liên quan đến thiếu ngủ Nghiên cứu về giấc ngủ của các tài xế 19 quốc gia Châu Âu cho thấy, tỷ lệ buồn ngủ khi lái xe cao, trung bình 17% Trong đó 10,8% người buồn ngủ khi lái xe ít nhất một lần trong tháng, 7% từng gây ra tai nạn giao thông do buồn ngủ, 18% suýt gây ra tai nạn do buồn ngủ”
Việc cảnh báo sớm tình trạng buồn ngủ của tài xế sẽ hạn chế được rất nhiều rủi
ro, đảm bảo tính mạng và an toàn đối với người lái, hay người ngồi trong xe Do đó, việc phát triển các ứng dụng để cảnh báo kịp thời tình trạng mất tập trung của tài xế hay có dấu hiệu buồn ngủ là rất cần thiếc
1.2 Mục tiêu của đề tài
Mục tiêu nhóm thực hiện đề tài để nghiên cứu, thiết kế và tìm hiểu rõ hơn về các tính năng an toàn được trang bị trên ô tô ngày nay nói chung Bên cạnh điều này nhóm tập làm quen và trao dồi học hỏi kinh nghiệm làm việc với một tập thể từ việc quản
lý phân công đến hỗ trợ giúp đỡ lẫn nhau Đây là một trong những không gian để sinh viên có thể học tập, thoải mái sáng tạo và học hỏi lẫn nhau Đây là một bài đồ án vô
Trang 133
cùng quan trọng đối với sinh viên chúng tôi nên cũng góp phần rất nhiều giúp cho chúng tôi có thêm kinh nghiệm làm báo cáo, thuyết trình, biện luận… từ những kinh nghiệm quý giá này sẽ góp phần để sau này chúng tôi khi đi làm không gặp khó khăn
mà thành công hơn
1.3 Nhiệm vụ của đề tài
− Tìm hiểu tổng quát về đề tài
− Khảo sát lựa chọn các bộ phận, cụm chi tiết phù hợp cho mô hình
− Xây dựng quy trình thi công, lắp ráp
− Lựa chọn phần mềm lập trình
− Xây dựng thuật toán điều khiển
− Lập trình hệ thống trên phần mềm
− Lựa chọn phương án thiết kế mô hình tối ưu nhất
− Mua thiết bị cho mô hình
− Thực nghiệm hệ thống trên xe thực tế
− Viết báo cáo đồ án tốt nghiệp
− Làm PowerPoint thuyết trình
1.4 Phương pháp nghiên cứu
− Thu thập và đọc hiểu các tài liệu liên quan như sách, các bài báo và internet
− Tìm hiểu dấu hiệu ngủ gật của người lái xe ô tô
− Nghiên cứu phần mềm lập trình điều khiển
− Lập trình phần mềm, kết nối phần cứng và chạy thử
− Đánh giá hiệu quả của hệ thống điều khiển
1.5 Đối tượng nghiên cứu
Theo thống kê của Ủy ban An toàn giao thông quốc gia, những vụ tai nạn giao thông liên quan tới giấc ngủ chiếm tới 30% tổng các vụ giao thông trong một năm Chỉ trong năm 2019, nhiều vụ tai nạn nghiêm trọng đã xảy ra do tài xế ngủ gật Vì vậy chúng tôi chọn đối tượng nghiên cứu là thiết bị cảnh báo tài xế ngủ gật dành cho những tài xế lái xe đường dài
Trang 144 1.6 Ý nghĩa đề tài
Hiện nay, một số hãng sản xuất ô tô như Luxus, Volvo, Volkswagen, Hyundai…
đã tích hợp một số thiết bị cảnh báo ngủ gật khi lái xe Tuy nhiên, đó là ở các nước phát triển như Mỹ, Châu Âu, Nhật Bản, còn ở Việt Nam thì chưa có nhiều các nghiên cứu hay thiết bị như vậy được áp dụng vào thực tế để giảm thiếu các tai nạn liên quan đến ngủ gật khi đang lái xe, trong khi số lượng và mức độ thiệt hại về người
và tài sản do các tai nạn như vậy gây ra ngày càng lớn
Do vậy, đề tài được thực hiện với mục đích nâng cao ý thức, về vấn đề mất an toàn do điều khiển phương tiện khi buồn ngủ Thiết bị tạo ra để giúp hạn chế phần nào các tai nạn đáng tiếc xảy ra với phương tiện, bản thân và những người xung quanh
do tình trạng buồn ngủ khi lái xe mà có thể ứng dụng trong điều kiện thực tế ở Việt Nam hiện nay và cũng góp phần thúc đẩy các nghiên cứu về các vấn để liên quan đến
ô tô
1.7 Bố cục đề tài
Nội dung báo cáo gồm 6 chương:
Chương 1: Giới thiệu đề tài
Chương 2: Tổng quan giải pháp
Chương 3: Phương pháp giải quyết
Chương 4: Quy trình thiết kế hệ thống cảnh báo tài xế ngủ gật
Chương 5: Thi công, lắp ráp và thực nghiệm
Chương 6: Đánh giá kết quả và kết luận
Trang 155 Chương 2 TỔNG QUAN GIẢI PHÁP
2.1 Ưu nhược điểm của hệ thống cảnh báo tài xế ngủ gật
− Ưu điểm:
+ Hạn chế tối đa các trường hợp tai nạn do tài xế ngủ gật khi lái xe
+ Thiết bị nhỏ gọn, tính năng làm việc cao
+ Công nghệ hiện đại, thông minh
− Nhược điểm:
+ Do chi phí còn cao, nên còn chưa lắp đạt đại trà lên các dòng xe
+ Tính ổn định của thiết bị còn hạn chế
2.2 Các phương án thực hiện cảnh báo tài xế ngủ gật trên ô tô
Trên thế giới và Việt Nam đã áp dụng nhiều phương pháp khác nhau để giải quyết việc cảnh báo sự mất tập trung do buồn ngủ của tài xế Những phương pháp chú yếu
đó là: dựa vào sinh lý người tài xế và dựa vào hoạt động, phản ứng diều khiển xe của người tài xế
2.2.1 Phương pháp dựa vào sinh lý người lái xe
Đây là phương pháp cho độ chính xác cao và được thực hiện qua hai kỹ thuật sau:
− Kỹ thuật thứ nhất: Theo dõi, đánh giá các thay đổi về sinh lý của người lái
xe như sự thay đổi nhịp tim, sóng não và nháy mắt Để thực hiện kỹ thuật này, các thiết bị sẽ được gắn trực tiếp lên cơ thể người lái xe Do đó, chúng gây cảm giác khó chịu cho người lái xe Mặt khác, trong quá trình hoạt động
cơ thể xuất hiện mổ hôi trên bề mặt da làm giảm độ chính xác của các thiết
bị
− Kỹ thuật thứ hai: Đây là phương pháp xác định và đo lường sự thay đổi trên
cơ thể như tư thế ngồi, vị trí nghiêng đầu, trạng thái nhắm mắt hoặc mờ mắt,
cử động miệng của lái xe Với kỹ thuật này thì không cần tác động trực tiếp vào cơ thể mà sử dụng các thiết bị ghi hình để ghi lại các thay đổi đó
Trang 166 2.2.2 Phương pháp dựa vào hoạt động và phản ứng điều khiển xe của người lái
xe
Đây là kỹ thuật được thực hiện bằng cách theo dõi chuyển động của tay lái, phanh
xe, tốc độ xe, sự di chuyển sang ngang,… Phương pháp này cũng không trực tiếp tác động vào người lái xe, tuy nhiên nó lại hạn chế bởi loại xe và điều kiện lái xe
2.3 Các hệ thống cảnh báo tài xế ngủ gật
Hiện nay, các hệ thống cảnh báo ngủ gật được sử dụng rộng rãi ở một số nước trên thể giới có hai dạng: dạng đeo lên tai lái xe và dạng gắn trên xe như một hệ thống
hỗ trợ người lái nhận biết dấu hiệu buồn ngủ
2.3.1 Dạng đeo lên tai người lái xe
Về cấu tạo, hệ thống chống ngủ gật đeo tai được làm từ vật liệu dẻo siêu nhẹ với phần móc cài qua tai giống như tai nghe nhạc headphone Khi được kích hoạt, chức năng cảm biến bên trong máy sẽ đo góc vuông khi đầu thẳng Thiết bị báo động thông bảo góc đo ở mức 0° khi lái xe tính táo (đầu giữ ở tư thế thẳng), Khi người lái có dấu hiệu gà gật, đầu ngã xuống, góc đo của máy cảm biển tự động tăng từ 00 – 150 hay
300, máy lập tức phát âm thanh để cảnh báo người dùng Âm thanh này được thiết lập
đủ lớn để đánh thức lái xe song không quá chói để tránh tình trạng người đeo choáng tỉnh và nhấn nhầm ga hay bẻ vô lăng do giật mình
Một số hãng sản xuất: Nap Zapper 1, No Nap, Doze Alert
Ưu điểm: nhỏ gọn, dễ dàng sử dụng, giá cả vừa phái
Nhược diểm: có thể cành báo trong những trường hợp không mong muốn hoặc gây giật mình cho lái xe khi âm lượng quá cao
2.3.2 Dạng lắp đặt trên xe ô tô
Dạng này thì các thiết bị được lắp đặt trên xe ô tô với hệ thống camera và màn hình cảm biến
Trang 177 2.4 Hệ thống cảnh báo ngủ gật của các hãng xe
2.4.1 Hãng Mercedes - Benz: thiết bị Attention
Cách hoạt động của Attention Assist:
− Attention Assist phân tích hành vi lái xe trong vài phút đầu tiên của chuyến đi
và đánh giá kỹ thuật lái xe cá nhân của bạn bằng cách sử dụng hơn 70 thông số
− Trong khi bạn đang lái xe, Attention Assist xác định một số hiệu chỉnh lái cho thấy buồn ngủ và mệt mỏi Attention Assist cũng xem xét các yếu tố bên ngoài, bao gồm điều kiện đường xá, điều kiện gió và sự tương tác của bạn với việc điều khiển xe
− Sau khi xem xét các yếu tố bên ngoài này, Attention Assist sẽ gửi cho bạn một cảnh báo đề nghị bạn tạm dừng lái xe nếu hệ thống xác định rằng hành vi lái
xe của bạn có dấu hiệu mệt mỏi
− Các cảnh báo của Attention Assist sẽ bắt đầu được kích hoạt trong dãy tốc độ
từ 60 km/h đến 200 km/h Nếu nhận thấy người lái đang có dấu hiệu mệt mỏi,
hệ thống lần lượt đưa ra các mức độ cảnh báo dựa trên các dữ liệu được thu thập và sự phản hồi của tài xế:
+ Mức độ 1: Trên bảng đồng hồ táp-lô sẽ thông báo “Take a break!”
+ Mức độ 2: Khi người lái không phản hồi: Tín hiệu âm thanh: Ding!Ding!Ding! và rung vô lăng để nhắc nhở người lái
− Người dùng chỉ có thể OFF các cảnh báo của hệ thống trước khi bắt đầu hành trình Khi các cảnh báo đã được đưa ra, tài xế sẽ không thể tắt được Thay vào
đó, tài xế buộc phải tấp vào lề, dừng xe, tắt máy, xuống xe và cuối cùng là đóng cửa lại để Attention Assist khởi động lại
Ưu điểm: Hệ thống cảnh báo mất tập trung – Attention Assist còn cho phép người điều khiển phương tiện kiểm tra mức độ tập trung thông qua màn hình táp
lô phía trước tài xế Khi tài xế chọn vào mục Attention Assist, trên màn hình sẽ hiển thị những thông tin sau:
− Chiều dài của hành trình kể từ lần nghỉ gần nhất
Trang 182.4.2 Hãng Hyundai: hệ thống chống ngủ gật DDREM cho tài xế
Hệ thống DDREM sử dụng một camera hồng ngoại để theo dõi và phân tích các chuyển động của mắt cũng như khuôn mặt để phát hiện dấu hiệu buồn ngủ của tài xế
Hệ thống này cũng giám sát hệ thống hỗ trợ lái xe để xem xe có đang đi chệch làn đường không và điều chỉnh sao cho xe đi đúng làn đường trở lại Nếu hệ thống xác nhận người lái đã ngủ và không phản hồi gì thì DDREM sẽ chuyển xe sang chế độ lái
tự động 4 để có thể tự tìm một nơi an toàn và dừng xe lại
Hình 2.1: Hệ thống chống ngủ gật DDREM (Nguồn Internet)
Công nghệ này tương tự chức năng cảnh báo của hệ thống tự lái cấp độ 3 trên chiếc Audi A8 Trong khi kích hoạt phím chức năng “hỗ trợ lái xe khi tắc đường” thì một camera kiểm tra xem người lái xe có chuẩn bị để tiếp tục công việc lái xe nếu cần thiết Camera này phân tích vị trí và chuyển động của đầu và mắt để tạo ra dữ liệu cho robot AI phân tích Nếu mắt của lái xe vẫn nhắm trong một khoảng thời gian dài, hệ thống sẽ nhắc người lái xe tiếp tục công việc lái xe, tránh trường hợp lái xe ngủ gục rất nguy hiểm
Trang 199
Đối với hệ thống cảnh báo ngủ gật DDREM của Hyundai là nó sử dụng phần cứng mà có trên hầu hết các xe đời mới, nên hệ thống DDREM sẽ dễ dàng trang bị phổ biến trên những mẫu xe phổ thông của Hyundai Hệ thống bao gồm: hệ thống trợ lực tay lái điện, camera, cảm biến radar và hệ thống định vị GPS
2.4.3 Hãng Honda: Hệ thống cảnh báo chống buồn ngủ Driver Attention Monitor
Hình 2.2: Mức cảnh báo chú ý được hiển thị theo từng cấp độ (Nguồn Internet)
Hệ thống cảnh báo chống buồn ngủ hoạt động khi lái xe trên đường cao tốc hay quốc lộ, căn cứ vào hoạt động của vô lăng để nhận diện mức độ tập trung của người lái xe giảm đi Hệ thống cảnh báo chống buồn ngủ sẽ phát ra tín hiệu cảnh báo theo mức độ thông qua: tin nhắn, âm thanh, rung tay lái
Mức hệ thống cảnh báo chống buồn ngủ được hiển thị theo 4 cấp độ từ 4 vạch đến 1 vạch (1 vạch là mức nguy hiểm nhất)
Trang 2010 Hình 2.3: Các mức cảnh báo buồn ngủ được hiển thị theo 4 cấp độ (Nguồn
Internet)
Hệ thống này vận hành khi xe ở tốc độ > 40km/h Hệ thống có thể không hoạt động khi thời gian lái xe ít hơn 30 phút, khi lái xe trên các đường ghồ ghề hoặc nhiều gió
Khi nguồn OFF, cấp độ cảnh báo sẽ được cài đặt lại và hệ thống sẽ được phát hiện từ cấp độ 4 Thậm chí ngay cả khi nguồn vẫn ở chế độ ON trong trường hợp xe đang dừng, không thắt dây đai an toàn, cửa xe bên lái mở, hệ thống sẽ cho rằng sẽ thay đổi người lái Hệ thống cũng sẽ bắt đầu phát hiện từ cấp độ 4
2.5 Các nghiên cứu hệ thống cảnh báo tài xế ngủ gật ở Việt Nam
2.5.1 Nghiên cứu thiết kế, chế tạo thiết bị nhúng kiểm soát trạng thái ngủ gật
của lái xe
Nhằm nghiên cứu thiết kế chế tạo máy giám sát trạng thái buồn ngủ của lái xe có tính năng kết nối mạng, nhỏ gọn, giá thành thấp Cung cấp cho các doanh nghiệp vận tải, góp phần giảm thiểu tai nạn giao thông gây bởi trạng thái buồn ngủ của lái xe và tiến tới tích hợp với hộp đen chế tạo trong nước để tạo sản phẩm ứng dụng mới, nhóm
nghiên cứu do TS Nguyễn Minh Sơn, Phân Viện Nghiên cứu Điện tử, Tin học, Tự
Trang 2111
động hóa tại Tp HCM đứng đầu đã tiến hành nghiên cứu đề tài: “Nghiên cứu thiết
kế, chế tạo thiết bị nhúng kiểm soát trạng thái ngủ gật của lái xe”
Nhóm nghiến cứu đã triển khai thực hiện các nội dung chính bao gồm:
− Nghiên cứu tổng quan khảo sát, phân tích một số thiết bị chống ngủ gật có
− Thiết kế phần cứng và phần mềm của thiết bị cảnh báo ngủ gật
− Chế tạo phần cứng, cài đặt phần mềm và thực nghiệm với thiết bị cảnh báo ngủ gật được thiết kế, chế tạo
− Đề xuất mô hình ứng dụng
− Kết quả đo đạc trên thiết bị VDAS-01 được thiết kế chế tạo như sau:
+ Khối thiết bị nhúng: Kích thước nhỏ (không quá 150 x 100 mm) lắp đặt được trong mọi loại ô tô
+ Sử dụng camera số: Kết nối với bộ xử lý nhúng
+ Phát hiện buồn ngủ: Theo 5 thông số quan sát đặc trưng: 1) mắt nhắm, 2) mắt không chớp, 3) góc nghiêng của đầu do ngủ gục, 4) chuyển động đột ngột của đầu, 5) sự không thay đổi tư thế của đầu trong khoảng thời gian
đủ dài
+ Thời gian cập nhật khuôn mặt lái xe: 10 giây, xử lý ảnh nhắm mắt 1,5 giây + Cập nhật tầm vóc tài xế tự động cập nhật thông số hình dạng đầu của tài
xế
+ Cảnh báo tại chỗ và truyền thông báo về trung tâm
Như vậy, đề tài thực hiện nhiệm vụ nghiên cứu, thiết kế, chế tạo và ứng dụng thử nghiệm một hệ thống giám sát và phát hiện từ xa trạng thái buồn ngủ của lái xe Trên
cơ sở rút trích 5 đặc trưng cơ bản phát hiện buồn ngủ, các tác giả đã xây dựng giải thuật và phần mềm có tính kết hợp để xác định các đặc trưng, nhằm giải quyết nhanh
Trang 22Nhóm nghiên cứu đề xuất mô hình ứng dụng như sau: Đối với công ty vận tải
hàng hoá đã có hệ thống tin học giám sát hành trình của xe vận tải, tín hiệu định vị của xe (qua GPS) được thể hiện trên bản đồ Hệ thống được xây dựng trên nền web,
sử dụng các công nghệ GIS, Google Maps API Trong đó GIS là một hệ thống thông tin mà nó sử dụng dữ liệu đầu vào, thao tác phân tích, cơ sở dữ liệu đầu ra liên quan
về mặt địa lý không gian, nhằm trợ giúp việc thu nhận, lưu trữ, quản lý, xử lý, phân tích và hiển thị các thông tin không gian từ thế giới thực để giải quyết các vấn đề tổng hợp thông tin cho các mục đích con người đặt ra Còn Google Maps API bao gồm các API hỗ trợ cho người dùng sử dụng các chức năng của google maps vào việc tạo lớp dữ liệu riêng cho ứng dụng của mình Dựa trên các công nghệ đó để xây dựng nên lớp bản đồ định vị xe cho hệ thống Người dùng có thể thao tác trên bản đồ xe buýt như: phóng to, thu nhỏ, kéo bản đồ, xem thông tin trên bản đồ,… Hệ thống phát hiện và cảnh báo ngủ gật của lái xe đối với hệ thống có sẵn này được cài đặt đơn giản Thiết bị phát hiện ngủ gật của lái xe đặt trong ca bin sẽ giám sát lái xe qua camera và khi phát hiện trạng thái ngủ gật sẽ cảnh báo tại chỗ và qua mạng gửi về trung tâm để thông báo Người điều hành trung tâm có thể có tác động cần thiết để nhắc nhở lái
xe Phần mềm giám sát trạng thái buồn ngủ của lái xe được cài đặt vào server trung tâm Trường hợp công ty xe tải chưa có hệ thống giám sát hành trình, Thiết bị phát hiện ngủ gật có chứa sẵn bộ định vị bằng GPS Tín hiệu định vị được gửi về trung tâm, với phần mềm sử dụng công nghệ GIS, vị trí của xe được thể hiện trên bản đồ, giúp cho trung tâm vừa giám sát trạng thái buồn ngủ của lái xe, vừa có tính năng giám
sát hành trình của xe
Trang 2313
Mô hình ứng dụng cho công ty xe khách đường dài: Tương tự như hệ thống quản
lý giám sát xe vận tải hàng hoá, thiết bị phát hiện ngủ gật lái xe đặt trên cabin sẽ theo dõi trạng thái lái xe, khi phát hiện có triệu chứng ngủ gật của lái xe sẽ cảnh báo về trung tâm Trường hợp công ty xe khách chưa có hệ thống giám sát hành trình, Thiết
bị phát hiện ngủ gật có chứa sẵn bộ định vị bằng GPS Tín hiệu định vị được gửi về trung tâm, với phần mềm sử dụng công nghệ GIS, vị trí của xe được thể hiện trên bản
đồ, giúp cho trung tâm vừa giám sát trạng thái buồn ngủ của lái xe, vừa có tính năng giám sát hành trình của xe Máy chủ của Công ty có thể kết nối mạng với máy chủ của bến xe Từ đây, máy chỉ bến xe kết nối mạng với hệ thống quản lý theo ngành của địa phương và trung ương Với sự phát triển hiện nay của điện thoại thông minh, máy tính bảng, dễ dàng biên soạn một phần mềm giao diện (GUI) để giám sát xe bằng phương tiện di động
2.5.2 Thiết kế hệ thống cảnh báo lái xe ngủ gật bằng phương pháp xây dựng ứng dụng với thư viện mã nguồn OpenCV
2.5.2.1 Mô hình đề xuất của ứng dụng với thư viện mã nguồn OpenCV
Hệ thống được xây dựng với 3 khối chức năng chính là: Khối thu nhận hình ảnh (camera), khối nhận diện (khuôn mặt và mắt), khối cảnh báo (xác định trạng thái ngủ gật và phát thông tin cảnh báo)
2.5.2.2 Các công nghệ sử dụng để xây dựng ứng dụng
Ứng dụng được xây dựng trên cơ sở:
− Ngôn ngữ lập trình C+
− Thư viện mã nguồn mở OpenCV
− Bộ phân loại Haar Cascade Classifiers
2.5.2.3 Triển khai ứng dụng với thư viện mã nguồn OpenCV
2.5.2.3.1 Thu nhận hình ảnh và tiền xử lý
Hình ảnh đầu vào được thu nhận bởi camera, sau đó phân tách video thành các khung hình và chuyển tất cả hình ảnh về ảnh xám
Trang 2414 2.5.2.3.2 Nhận diện khuôn mặt và đôi mắt
➢ Nhận diện khuôn mặt:
− Khởi tạo bộ dò tìm khuôn mặt:
Mă nguồn mở OpenCV đã tích hợp nhiều phân loại (Classifliers) phục vụ cho việc huấn luyện nhận dạng khuôn mặt, mắt, nụ cười, Dó là những file XML được lưu trữ trong thư mục: opencv/data/haarcascades
Ở đây sử dụng các bộ phân loại sau đây:
+ haarcascade_frontalface_alt_tree.xml: bộ đữ liệu huấn luyện (training) cho quá trình xử lý mặt
+ haarcascade mcs lefteve.xml, haarcascade eye_tree_eveglasses.xml, haarcascade eye.xml: các bộ dữ liệu huấn luyện (training) cho quá trình xử
lý đôi mắt
− Thực hiện dò tìm khuôn mặt:
Phương pháp nhận diện khuôn mặt dựa vào đặc trưng Ilaar-like kết hợp Adaboost được cài sẵn trong bộ thư viện OpenCV, Để sử dụng phương pháp này trong OpenCV, chương trình đã sử dụng hàm deteciMultiScale
Hàm detectMultiScale sau khi tìm kiếm xong sẽ trả về bộ giá trị gồm tọa độ gốc của khung chứa khuôn mặt x.y; chiều dài, rộng của khung w,h Các giá trị này năm trong mảng faces Sử dụng cấu trúc lặp để duyệt qua toàn bộ các bộ giá trị này, với mỗi bộ giá trị ta dùng hàm rectangle để vẽ một hình chữ nhật lên ảnh ban đầu img với tọa độ 2 điểm trái trên và phải dưới: (x.y), (x+w.y+h) (0,255,0) là màu sẽ vẽ hình chữ nhật
Trang 2515 2.5.2.3.3 Cảnh báo tình trạng buồn ngủ
➢ Phát hiện trạng thái nhấp nháy của mắt:
Để phát hiện trạng thái nhấp nháy mắt (eye blinking detection), cần biết trạng thái hiện tại của mắt là đang mở hay nhắm (open/closed)
Trong hệ thống này, quá trình đó sẽ được thực hiện như sau:
− Nếu đôi mắt thay đổi từ trạng thái nhắm mắt sang mở mắt, thi hệ thống sẽ xác định đó là một cái nháy mắt
− Và nếu trạng thái của mắt tiếp tục nhắm trong một khoảng thời gian nhất định (2 giây trong hệ thống này và có thể tùy chỉnh để phù hợp điều kiện thực tế), thì mắt sẽ được phát hiện là nhắm
OpenCV hỗ trợ một số bộ huấn luyện (traning) có thể phát hiện đôi mắt trong hai trạng thái khác nhau như sau:
Phát hiện mắt ở trạng thái nhắm hoặc mở: Với bộ traning cascade đầu vào là haarcaseade_mcs_lefteye.xml và haarcascade_mcs_righteve.xml
Chi phát hiện mắt ở trạng thái đang mở: Với bộ traning cascade đầu vào là haarcascade eye.xml hoặc haarcascade_eve_tree_eyeglas.ses.x ml (sử dụng cho trường hợp có đeo kinh)
Hình 2.4: Nhận dạng khuôn mặt và đôi mắt (Nguồn Internet)
a – Không đeo kính; b – Có đeo kính
➢ Phát hiện và cảnh báo tình trạng buồn ngủ:
Chương trình sẽ thực hiện thuật toán xác định trạng thái nhấp nháy mắt trên suốt thời gian thực để có thể cảnh báo nếu người lải xe rơi vào trạng thái buồn ngủ và mất tập trung Bất cứ khi nào phát hiện lái xe đang nhắm hẳn mắt, hệ thống sẽ kích hoạt
Trang 2616
âm thanh cảnh báo và đồng thời tiếp tục theo dõi Sau đó nếu trạng thái mở mắt của người lái xe được phát hiện trở lại, chương trình sẽ ngừng cảnh báo tiếp tục theo dõi
2.6 Hướng phát triển đề tài
Đề tài sẽ được phát triển theo hướng sử dụng camera để phát hiện trạng thái nhấm
mở mắt và góc nghiêng của đầu bằng phương pháp xây dựng ứng dụng với thư viện
mã nguồn OpenCV
2.7 Kết luận
Đề tài thiết kế hệ thống chống tài xế ngủ gật của chúng em xây dựng trên cơ sở thuật toán OpenCV để thiết kế hệ thống này
Trang 2717 Chương 3 PHƯƠNG PHÁP GIẢI QUYẾT
3.1 Xác định những biểu hiện cơ bản và rút trích đặc trưng cơ bản xác định trạng thái ngủ gật
Để phát hiện trạng thái buồn ngủ có nhiều phương pháp khác nhau như trình bày trên Hình 3.1, bao gồm:
− Giám sát mô hình lái: Thu nhận các thông số hành vi lái Tín hiệu góc lái từ ESP hoặc hệ thống trợ lực điện, âm thanh nghe được, sự rung động của xe
− Vị trí của xe trong máy theo dõi làn đường: Giám sát từ hành vi giữ làn đường, sử dụng camera đa năng (MPC)
− Giám sát mắt và khuôn mặt lái xe: Phân tích hành vi nhắm mắt, phát hiện ngáp
− Đo lường các hiệu ứng sinh lý học về hoạt động não, nhịp tim, độ dẫn điện của da, Tác động điện bằng các cơ khung xương,… sử dụng điện não đồ (EEG), điện tâm đồ (EMG), tác động điện giải (EDA)
Hình 3.1: Các phương pháp phát hiện trạng thái buồn ngủ (Nguồn Internet)
Trang 2818
Các mô hình chỉ báo buồn ngủ nêu trên dựa trên đặc tính của con người khi buồn ngủ như sau: Khi mất tập trung, các kỹ năng vận động của con người cũng sẽ kém đi, dẫn đến việc không chỉnh tay lái và hành vi lái xe không còn chính xác Trong trường hợp cực đoan của hiện tượng ngủ gật, ta có thể quan sát được chuỗi các phản ứng liên quan đến hoạt động của con người
− Góc lái không đổi
− Mí mắt sẽ được đóng lại hoặc mở nhìn chằm chằm không chớp mắt
− Vị trí định hướng lái của xe không bình thường
− Điều chỉnh quá mức góc lái
Các mô hình chỉ báo này cũng có thể xảy ra trong điều kiện lái xe bình thường, nhưng sẽ xuất hiện thường xuyên hơn khi tăng mức độ buồn ngủ
Trong các phương pháp nêu trên Hình 3.1, hầu hết đều cần nhiều thiết bị mà ta khó thực hiện trong thực tế vì không thể đặt các thiết bị này trên xe Vì vậy, phương pháp dùng camera để giám sát mắt, con ngươi, vị trí đầu của lái xe - là phương pháp
có nhiều ưu thế để phát hiện trạng thái buồn ngủ của lái xe Tuy nhiên, phương pháp này gặp trở ngại thực tế là hình ảnh thu được từ camera phụ thuộc thời tiết, ánh sáng mặt trời, ngày hay đêm, vị trí đặt camera, …
3.2 Xác định các thông số kỹ thuật cơ bản cho thiết bị giám sát trạng thái buồn ngủ của lái xe trong điều kiện giao thông và thời tiết ở Việt Nam
Để xác định trạng thái không tập trung, buồn ngủ của tài xế lái xe cần xác định những biểu hiện trạng thái cơ bản sau:
3.2.1 Xác định tư thế của đầu dựa vào phát hiện khuôn mặt trong các trường hợp đầu chuyển động
Xác định gốc tọa độ khuôn mặt hay tư thế tài xế ở vị trí tiêu chuẩn khi phát hiện mặt ở vị trí ổn định Trong xử lý ảnh thì gốc tọa độ của frame ảnh sẽ được biểu diễn theo hệ trục tọa độ sau (hình 3.2):
Trang 2919 Hình 3.2: Gốc tọa độ của frame ảnh trong hệ trục tọa độ
Từ đó gọi O0 (x, y) là gốc tọa độ khuôn mặt ở vị trí tiêu chuẩn của tài xế (Hình 3.3) Gốc tọa độ này sẽ được xác định khi tài xế ngồi vào vị trí lái xe trong khoảng thời gian 10 giây và vị trí tương đối ổn định
Hình 3.3: Trạng thái khuôn mặt ở vị trí chuẩn
Để xác định vị trí khuôn mặt tài xế cần dựa vào độ lệch của khuôn mặt tại vị trí hiện tại so với khuôn mặt ở vị trí tiêu chuẩn nhờ công thức sau:
− Gọi ∆Ox1, ∆Ox2, ∆Oy1, ∆Oy2 là độ lệch vị trí khuôn mặt hiện tại so với khuôn mặt ở vị trí tiêu chuẩn
∆Ox1 = O1x − Ox
∆Ox2 = Ox − O1x
∆Oy1 = O1y − Oy
∆Oy2 = Oy − O1y
Trang 3020
Trong đó:
Ox, Oy là tọa độ khuôn mặt tại vị trí chuẩn
O1x, O1y là tọa độ khuôn mặt tại vị trí hiện tại so với vị trí chuẩn Trục Ox biểu diễn cho trục ngang (bên trái, bên phải) nên:
− Nếu ∆Ox1 > width * 0,25 thì khuôn mặt quay sang bên phải (Hình 3.4)
− Nếu ∆Ox2 > width * 0,25 thì khuôn mặt quay sang bên trái (Hình 3.5)
Hình 3.4: Khuôn mặt đang quay sang bên phải
Hình 3.5: Khuôn mặt quay sang trái
Trục Oy biểu diễn cho trục dọc (lên,xuống) nên:
− Nếu ∆Oy1 > height * 0,05 thì khuôn mặt đang ngửa ra phía sau (Hình 3.6)
− Nếu ∆Oy2 > height * 0,2 thì khuôn mặt đang cúi xuống phía dưới (Hình 3.7)
Trang 3121 Hình 3.6: Khuôn mặt ngửa ra sau
Hình 3.7: Khuôn mặt cúi xuống dưới 3.2.2 Tìm con ngươi từ khuôn mặt để xác định mắt nhắm hay mở
Dựa trên vùng mặt đã phát hiện, ta xác định được vùng mắt và con ngươi từ đó xác định được trạng thái nhắm mở của mắt → Đưa ra cảnh báo buồn ngủ trong trường hợp mắt nhắm
Để xác định mắt nhắm hay mở trước tiên xác định được vùng mắt sau đó xác định con ngươi (Hình 3.8)
Hình 3.8: Vị trí con ngươi trong trường hợp mắt đang mở
Trang 32He = Nheight * α * 0,01
We = Nwidth * β * 0,01 Trong đó:
α = 35; β = 30
He; We lần lược là chiều cao, chiều rộng vùng mắt
Fheight; Fwidth lần lượt là chiều cao, chiều rộng vùng mặt
Nheight; Nwidth lần lượt là chiều cao, chiều rộng vùng mũi phóng lớn để xác định vùng mặt
Hình 3.9: Vị trí con ngươi trong trường hợp mắt đóng
Xác định vị trí con ngươi ta dựa trên tỉ lệ vùng mắt vừa xác định được Nếu con ngươi nằm giữa vùng mí mắt trên tới chân mày thì mắt đang ở trạng thái đóng (nhắm), nếu con ngươi nằm trong vùng mắt chứa con ngươi thì mắt đang ở trạng thái mở (Hình 3.10)
Trang 3323 Hình 3.10: Giám sát trạng thái mắt
Hạn chế: Khoảng cách từ thiết bị tới vùng mắt phải gần khoảng từ 20 ÷ 30 cm
thì độ chính xác sẽ cao, khi khoảng cách càng xa thì vùng con ngươi càng bé nên khó phát hiện chính xác con ngươi
3.2.3 Xác định các thông số kỹ thuật cơ bản cho thiết bị giám sát trạng thái buồn ngủ của lái xe
Bảng 3.1: Các thông số kỹ thuật cơ bản cho thiết bị giám sát trạng thái
buồn ngủ của lái xe
Nội dung Thiết bị giám sát trạng thái lái xe dự kiến của Đề tài
Chip điều khiển Broadcom BCM2837, Quad core Cortex-A53 ARM 64-bit SoC Thiết bị nhúng sử dụng chip điều khiển xây dựng trên
@ 1.2GHz tích hợp trên Raspberry Pi 4
Bộ nhớ
Tín hiệu đầu vào
Sử dụng camera số kết nối với bộ xử lý nhúng
Sử dụng camera hồng ngoại để hoạt động tốt vào ban đêm và khi lưu thông trong đường hầm
USB 2 cổng USB 3.0 và 2 cổng USB 2.0
Thuật toán điều
khiển
Thuật toán phát hiện buồn ngủ theo các thông số quan sát đặc trưng:
− Tìm con ngươi từ khuôn mặt để xác định mặt nhắm hay mở
− Xác định vùng tai trái, vùng tai phải đề phát hiện tài xế đang quay phải hay trái
Thời gian xử lý mắt 1,5 giây Thời gian cập nhật khuôn mặt lái xe: 10 giây, xử lý ảnh nhắm
Trang 3424
Hệ thống bảo vệ và giảm thiểu tiếng ồn Mạch bảo vệ điện áp quá áp/quá dòng, cắm ngược điện nguồn Nguồn mạch Làm việc với cả nguồn 12 V và 24 V, phù hợp cho mọi loại xe Công suất Công suất tiêu thụ 6 W
Tránh chói Loại bỏ sự phản xạ bất thường của ánh mặt trời bằng cách sử
dụng các bộ lọc đặc biệt
3.3 Phần mềm xử lý ảnh
3.3.1 Thư viện OpenCV
OpenCV (Open Computer Vision library) do Intel phát triển, được giới thiệu năm
1999 và hoàn thiện thành phiên bản 1.0 năm 2006 Nó là một thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát triển về thị giác máy tính, tối ưu hóa và xử lý các ứng dụng trong thời gian thực Nó giúp cho việc xây dựng các ứng dụng xử lý ảnh, thị giác máy tính, trở nên nhanh hơn
Thư viện OpenCV gồm khoảng 500 Hàm, được viết bằng ngôn ngữ lập trình C/C++ và tương thích với các hệ điều hành Windows, Linux, Mac OS đóng vai trò xác lập chuẩn giao tiếp, dữ liệu, thuật toán cho lĩnh vực Computer Vision và tạo điều kiện cho mọi người tham gia nghiên cứu và phát triển ứng dụng
Trước đây OpenCV không có một công cụ chuẩn nào cho lĩnh vực xử lý ảnh Các đoạn mã đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn định Các bộ công cụ thương mại như Matlab, Simulink, Halcon, v.v lại có giá cao chỉ thích hợp cho các công ty phát triển các ứng dụng lớn Ngoài ra còn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mã đóng và được thiết kế riêng cho từng thiết bị, rất khó khăn cho việc mở rộng ứng dụng
3.3.2 Cách tổ chức thư viện OpenCV
Tổ chức thư viện OpenCV khá đơn giản, bao gồm 4 module chính và 2 module
mở rộng, được mô tả ở Hình 3.11
CXCORE chứa các định nghĩa kiểu dữ liệu cơ sở Ví dụ như các cấu trúc dữ liệu cho ảnh, điểm và hình chữ nhật được định nghĩa trong cxtypes.h CXCORE cũng chứa đại số tuyến tính và các phương pháp thống kê, chức năng duy trì và điều khiển chuỗi Một số ít các chức năng đồ họa để vẽ trên ảnh cũng được đặt ở đây
Trang 3525 Hình 3.11: Tổ chức thư viện OpenCV (Nguồn Internet)
CV chứa các thuật toán về xử lý ảnh và xác định kích cỡ camera Các chức năng
đồ họa máy tính cũng được đặt ở đây
CVAUX được mô tả trong tài liệu của OpenCV chứa các mã cũ đã thử nghiệm Tuy nhiên, các giao diện đơn giản cho việc nhận diện ảnh được đặt ở trong module này Mã nguồn sau này được sử dụng và ứng dụng rộng rãi cho việc nhận diện khuôn mặt
HighGUI được đặt trong thư mục là “otherlibs” HighGUI chứa các giao diện nhập/xuất cơ bản, nó cũng chứa các khả năng mở rộng khác và nhập/xuất video Kèm theo thư viện là tài liệu hướng dẫn và các ví dụ mẫu thể hiện một phần các chức năng của công cụ OpenCV
Các chức năng của OpenCV tập trung vào thu thập ảnh, xử lý ảnh và các thuật toán phân tích dữ liệu ảnh, bao gồm:
− Truy xuất ảnh và phim: đọc ảnh số từ camera, từ file, ghi ảnh và phim
− Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: ma trận, vector, chuỗi, xâu và cây
− Xử lý ảnh căn bản: các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh sửa màu, phóng to thu nhỏ, và hiệu chỉnh histograms
Trang 3626
− Xử lý cấu trúc: tìm viền, nhận chuyển động, thay đổi trong không gian 3D, đối chiếu bản mẫu, làm tròn các đơn vị hình học cơ sở như mặt phẳng, đa giác, ellipse, đường thẳng
− Phân tích dữ liệu ảnh: nhận dạng thực thể, theo dõi các chi tiết và phân tích chuyển động
− Tạo giao diện đơn giản: hiển thị ảnh, thao tác bàn phím, chuột, thanh trượt
để chỉnh thông số (nếu cần thiết, có thể tự tạo thêm các phím điều khiển thông qua thao tác chuột, hoặc tích hợp thêm các thư viện về giao diện như wxWidgets)
− Chức năng vẽ, chú thích lên ảnh
3.3.3 Tổng quan phương pháp Haar-like
Có rất nhiều phương pháp để giải quyết bài toán xác định khuôn mặt người trên ảnh 2D dựa trên các hướng tiếp cận khác nhau Phương pháp Haar-like – Adaboost (viết tắt HA) của hai tác giả Paul Viola và Michael J.Jones là phương pháp xác định mặt người dựa theo hướng tiếp cận trên diện mạo (Hình 3.12)
Hình 3.12: Tổng quan phương pháp phát hiện mặt người bằng Haar-like
(Nguồn Internet)
Trang 3727
Hướng tiếp cận trên diện mạo là hệ thống nhận dạng khuôn mặt theo cách học các mẫu của khuôn mặt từ một tập ảnh mẫu Sau khi quá trình học hay huấn luyện (training) này thực hiện xong, hệ thống sẽ rút ra được những tham số để phục vụ cho quá trình nhận dạng Vì vậy tiếp cận trên diện mạo còn được biết đến với tên gọi tiếp cận theo phương pháp học máy Đề tài tập trung chủ yếu vào quá trình nhận dạng (sau khi đã thực hiện quá trình học)
Trong Hình 3.12, về tổng quan, phương pháp HA được xây dựng dựa trên sự kết hợp, lắp ghép của 4 thành phần, đó là:
− Các đặc trưng Haar−like: các đặc trưng được đặt vào các vùng ảnh để tính toán các giá trị của nó Khi đưa những giá trị đặc trưng này vào bộ phân loại Adaboost ta sẽ xác định được ảnh có khuôn mặt hay không
− Ảnh tích hợp (Integral Image): là một công cụ giúp việc tính toán các giá trị đặc trưng Haar−like nhanh hơn
− Adaboost (Adaptive Boost): bộ phân loại (bộ lọc) hoạt động dựa trên nguyên tắc kết hợp các bộ phân loại yếu để tạo nên bộ phân loại mạnh Adaboost sử dụng giá trị đặc trưng Haar−like để phân loại ảnh là mặt hay không phải mặt
− Cascade of Classifiers: bộ phân loại tầng với mỗi tầng là một bộ phân loại Adaboost, có tác dụng tăng tốc độ phân loại
Như vậy bài toán xác định mặt người trong ảnh cũng chính là bài toán phân loại ảnh thành hai lớp: mặt hoặc không phải mặt
3.3.3.1 Tiền xử lý
Một lưu ý là phương pháp HA thực hiện trên ảnh xám (gray image) Mỗi điểm ảnh (pixel) sẽ có giá trị mức xám từ 0 đến 255 (không gian màu 8 bit) Như vậy phương pháp HA sẽ không khai thác những đặc điểm về màu sắc khuôn mặt để nhận dạng song vẫn hiệu quả Ảnh màu sẽ được chuyển về ảnh xám để nhận dạng, việc chuyển đổi này khá đơn giản, thực hiện bằng một hàm chuyển đổi và sử dụng chỉ với một câu lệnh trong OpenCV
Trang 3828
Sau khi chuyển thành ảnh xám, ảnh lại tiếp tục được chuyển thành “ảnh tích hợp” Trong bước đầu tiên của quá trình nhận dạng, các đặc trưng Haar−like sẽ làm việc trực tiếp trên ảnh tích hợp
3.3.3.2 Ảnh tích hợp
➢ Ảnh tích hợp:
Như đã trình bày ở phần trên, số lượng đặc trưng Haar-like là rất nhiều và khối lượng tính toán giá trị các đặc trưng này là rất lớn Vì vậy ảnh tích hợp được đưa ra nhằm tính toán nhanh chóng các đặc trưng, giảm thời gian xử lý
Ảnh tích hợp được định nghĩa theo công thức:
ii(x, y) = ∑ i(x', y')
x' ≤ x; y' ≤ y Giá trị của ảnh tích hợp tại vị trí (x, y) là tổng các điểm ảnh thuộc hình chữ nhật xác định bởi góc trái trên là (0, 0) và góc phải dưới (x, y) – Hình 3.13
Hình 3.13: Giá trị của ảnh tích hợp tại vị trí (x, y) (Nguồn Internet)
Trên thực tế khi chuyển một ảnh thành ảnh tích hợp ta dùng công thức truy hồi sau:
s(x, y) = s(x, y − 1) + i(x, y) ii(x, y) = ii(x −, y) + s(x, y)
Ví dụ chuyển một ảnh 3 3 có giá trị xám như bên dưới thành ảnh tích hợp (Hình 3.14):
Trang 3929
Hình 3.14: Mô tả cách tính toán ảnh tích hợp từ ảnh ban đầu (Nguồn Internet)
Ở ví dụ Hình 3.14, ảnh ban đầu chứa giá trị pixel “1” Để tính giá trị cho ảnh tích hợp, ta áp dụng công thức truy hồi Sau khi tính toán ảnh cần nhận dạng thành ảnh tích hợp, việc tính toán giá trị các đặc trưng Haar−like sẽ rất đơn giản Vấn đề sẽ được trình bày rõ ở hơn ở mục áp dụng Haar−like vào ảnh tích hợp
A, B, C, D là tổng giá trị các điểm ảnh trong từng vùng
P1; P2; P3; P4 là giá trị của ảnh tích hợp tại 4 đỉnh của D
Nhìn Hình 3.15, nếu như là ảnh xám bình thường thì để tính D ta phải tính tổng tất cả các giá trị điểm ảnh trong D, miền D càng lớn thì số phép cộng càng nhiều Nhưng với ảnh tích hợp dù miền D có kích thước như thế nào thì D cũng chỉ cần tính thông qua 4 giá trị tại 4 đỉnh Ta có:
P1 = A; P2 = A + B; P3 = A + C; P4 = A + B + C + D
Trang 40− Đặc trưng hai hình chữ nhật (đặc trưng cạnh) được tính thông qua 6 giá trị điểm ảnh tích hợp
− Đặc trưng ba hình chữ nhật (đặc trưng đường) và đặc trưng tâm - xung quanh được tính thông qua 8 giá trị điểm ảnh tích hợp
− Đặc trưng 4 hình chữ nhật (đặc trưng chéo) được tính thông qua 9 giá trị điểm ảnh tích hợp
Trong khi đó, nếu tính như định nghĩa thì các giá trị cần tính toán lên tới hàng trăm Điều này làm tăng tốc độ xử lý một cách đáng kể
➢ Đặc trưng Haar−like:
Trên ảnh, vùng khuôn mặt là tập hợp các điểm ảnh có những mối quan hệ khác biệt so với các vùng ảnh khác, những mối quan hệ này tạo lên các đặc trưng riêng của khuôn mặt Tất cả khuôn mặt người đều có chung những đặc điểm sau khi đã chuyển qua ảnh xám, ví dụ như sau (Hình 3.16):
− Vùng hai mắt sẽ tối hơn vùng má và vùng trán, tức mức xám của vùng này cao hơn vượt trội so với hai vùng còn lại
− Vùng giữa sống mũi cũng tối hơn vùng hai bên mũi
Hình 3.16: Đặc trưng thứ nhất và thứ hai được lựa chọn bởi AdaBoost
(Nguồn Internet)