TỔNG QUAN
Tổng quan chung về lĩnh vực nghiên cứu
Ngày nay, sự phát triển mạnh mẽ của ngành công nghiệp ô tô đã dẫn đến việc cải tiến các hệ thống thông minh nhằm đáp ứng nhu cầu ngày càng cao về an toàn của người lái Trong bối cảnh đó, Pre-Collision System (PCS) đã trở thành một giải pháp quan trọng, giúp nâng cao mức độ an toàn so với việc chỉ dựa vào dây an toàn Trước đây, dây an toàn chỉ đảm bảo an toàn một cách thụ động, nhưng nhiều vụ tai nạn vẫn xảy ra ngay cả khi người lái tuân thủ Do đó, PCS được thiết kế để theo dõi liên tục quá trình điều khiển và các điều kiện xung quanh, phát hiện nguy cơ tai nạn trước vài giây và thực hiện các biện pháp cảnh báo và can thiệp, từ đó giảm thiểu khả năng xảy ra tai nạn và bảo vệ người lái.
Hệ thống PCS có độ phức tạp cao do tính tự động và sự bất ngờ của các vụ tai nạn, đòi hỏi quy trình tinh chỉnh và kiểm tra kỹ lưỡng trước khi áp dụng trên ô tô Việc điều chỉnh hệ thống để đảm bảo hoạt động chính xác, phản ứng kịp thời với các tình huống và tránh can thiệp nhầm là vô cùng quan trọng.
Mặc dù xe đã được trang bị nhiều hệ thống thông minh để phát hiện và cảnh báo nguy cơ tai nạn, nhưng tai nạn vẫn xảy ra chủ yếu do sự thiếu tập trung của tài xế, đặc biệt là hiện tượng ngủ gật Hiện tượng này thường xuất hiện khi tài xế làm việc liên tục trong thời gian dài, dẫn đến mệt mỏi và căng thẳng Để giải quyết vấn đề này, nhiều phương pháp đã được nghiên cứu, bao gồm theo dõi hoạt động lái xe và phản ứng của tài xế Một trong những phương pháp hiệu quả nhất là nhận dạng cử chỉ khuôn mặt, đặc biệt là mắt, để phát hiện tình trạng ngủ gật Qua việc phân tích dữ liệu từ hoạt động của mắt, hệ thống có thể cảnh báo tài xế khi phát hiện dấu hiệu buồn ngủ, từ đó giúp giảm thiểu tình trạng mất tỉnh táo và góp phần giảm số vụ tai nạn giao thông hàng năm.
Nhóm chúng tôi đã tiến hành nghiên cứu đề tài "Ứng dụng xử lý ảnh sử dụng phần mềm LabVIEW để cảnh báo va chạm sớm và tình trạng ngủ gật trên xe" nhằm giải quyết những vấn đề quan trọng đã được nêu.
Các đề tài nghiên cứu trong và ngoài nước
1.2.1 Các đề tài nghiên cứu trong nước
Nghiên cứu "Xây dựng hệ thống nhúng phát hiện và cảnh báo lái xe ngủ gật dựa trên kỹ thuật xử lý ảnh" được khởi động vào tháng 1 năm 2014 và dự kiến hoàn thành vào tháng 12 năm 2016 Đề tài này là nghiên cứu cấp bộ do TS Vũ Đức Thái tại Trường Đại học Công nghệ Thông tin và Truyền thông, thành phố Thái Nguyên thực hiện.
Nghiên cứu mang tên “Ứng dụng sóng não phát hiện dấu hiệu buồn ngủ và đưa ra tín hiệu cảnh báo đối với người lái” của ThS Đỗ Văn Dũng, thuộc Đại học Sư phạm Kỹ thuật, tập trung vào việc sử dụng sóng não để nhận diện tình trạng buồn ngủ ở tài xế Luận văn này không chỉ đóng góp vào việc nâng cao an toàn giao thông mà còn mở ra hướng nghiên cứu mới trong lĩnh vực ứng dụng công nghệ vào đời sống.
TP.HCM đã hoàn thành việc thu thập và xử lý tín hiệu EEG từ thiết bị Emotiv EPOC Headset, đồng thời xây dựng một mô hình hệ thống nhận diện và cảnh báo cơn buồn ngủ với giá thành hợp lý Điều này mở ra cơ hội cho các nghiên cứu tiếp theo trong lĩnh vực cảnh báo an toàn, thông qua việc theo dõi sinh lý của người lái xe.
- “ Học sinh sáng chế thiết bị chống ngủ gật cho tài xế ô tô ”[3] , bắt đầu từ đầu năm
Từ năm 2015 đến tháng 1 năm 2017, học sinh lớp 12 Nguyễn Ngọc Đức ở Thanh Hóa đã nghiên cứu và phát triển thiết bị chống ngủ gật cho tài xế ô tô nhằm giảm thiểu tai nạn giao thông do tình trạng này Đức đã nhận Giấy chứng nhận giải thưởng từ Bộ GD-ĐT trong cuộc thi khoa học kỹ thuật cấp quốc gia năm học 2015-2016 Thiết bị hoạt động dựa trên nguyên lý nhận diện khuôn mặt qua camera, xác định các điểm đặc trưng như mắt, mũi, tai để phân biệt trạng thái tỉnh táo hay buồn ngủ của tài xế Sau khi nhận diện, máy sẽ cảnh báo bằng giọng nói nhẹ nhàng trước khi phát còi báo động, giúp tài xế lấy lại sự tập trung mà không bị giật mình.
- Luận văn tốt nghiệp “ Nhận diện chớp mắt và cảnh báo buồn ngủ khi lái xe trên nền
Windows và Android ”[4] được thực hiện bởi nhóm sinh viên Lê Thế Hải và Lê Thanh
Hòa, sinh viên chuyên ngành Viễn thông tại khoa Điện-Điện tử, trường Đại học Bách khoa TP.HCM, dưới sự hướng dẫn của PGS.TS Hoàng Đình Chiến, đã nghiên cứu một ứng dụng của xử lý ảnh để phát hiện và cảnh báo tình trạng buồn ngủ thông qua việc nhận diện trạng thái mở và đóng của mắt Hệ thống sẽ phát ra âm thanh cảnh báo ngay khi người lái xe nhắm mắt, nhằm đảm bảo an toàn Tuy nhiên, đề tài vẫn còn tồn tại một số hạn chế cần khắc phục.
Hệ thống cảnh báo ngủ gật sử dụng GPGA được phát triển bởi Nguyễn Thế Đức và Hồ Văn Chương từ khoa Điện-Điện tử, Đại học Duy Tân, dưới sự hướng dẫn của Thạc sĩ Trần Lê Thăng Đồng và Kỹ sư Tạ Quốc Việt Dự án áp dụng bộ công cụ Terasic DE10-Nano kết hợp với công nghệ học máy và xử lý ảnh, sử dụng thuật toán SVM để phát hiện trạng thái nhấp nháy mắt trong thời gian thực Hệ thống giám sát qua camera sẽ so sánh khuôn mặt với cơ sở dữ liệu để phân tích độ mở của mắt với tần suất 5 khung hình/giây Khi phát hiện tài xế có dấu hiệu buồn ngủ, hệ thống sẽ phát tín hiệu cảnh báo qua loa, đồng thời theo dõi tần suất mệt mỏi của tài xế theo giờ.
4 thống lưu lại và tính toán xác suất để đưa ra cảnh báo trước, giúp ngăn ngừa xảy ra tai nạn giao thông
Đề tài luận văn "Nhận dạng trạng thái mắt ứng dụng trên Pandaboard" được thực hiện bởi Trần Lê Anh Chương và Nguyễn Khắc Hiếu, sinh viên chuyên ngành Viễn thông, khoa Điện-Điện tử, trường Đại học Bách khoa TP.HCM Dự án này sử dụng một camera đặt ở phía trước để ghi lại hình ảnh khuôn mặt của người lái xe, sau đó hình ảnh sẽ được phân tích qua chương trình Nếu phát hiện mắt đang nhắm, chương trình sẽ đếm thời gian theo cài đặt trước; nếu sau khoảng thời gian đó mắt vẫn nhắm, chương trình sẽ phát ra âm thanh cảnh báo qua loa.
Năm 2013, nhóm nghiên cứu từ Khoa Điện tử Viễn Thông, Đại học Bách khoa Hà Nội, đã phát triển thiết bị chống ngủ gật cho lái xe với chi phí thấp, phù hợp với điều kiện Việt Nam Thiết bị nhỏ gọn, có khả năng phát hiện các yếu tố gây buồn ngủ như thời điểm, quãng đường và thời gian lái xe liên tục Nó xác định mức độ tỉnh táo của lái xe thông qua thời gian trả lời các câu hỏi trắc nghiệm, với thời gian trả lời tỷ lệ nghịch với mức độ tỉnh táo Cuối cùng, thiết bị sẽ phát ra tín hiệu cảnh báo chống ngủ gật bằng ánh sáng chớp, âm thanh và dòng điện xung.
1.2.2 Các nghiên cứu ngoài nước
Lái xe chỉ cần chi khoảng 10 đến 20 USD (tương đương 222.000 – 444.000 đồng) để sở hữu máy chống ngủ gật đeo tai từ các thương hiệu như Nap Zapper, No Nap hay Doze Alert Thiết bị này sẽ phát ra âm thanh cảnh báo khi phát hiện lái xe có dấu hiệu buồn ngủ, giúp họ tỉnh táo hơn trong quá trình lái xe.
Stopsleep là một thiết bị đeo trên ngón tay, sử dụng độ dẫn điện của da để phản ánh hoạt động của não Sản phẩm này có khả năng phát hiện tình trạng buồn ngủ, giúp người dùng nhận biết khi nào họ cần nghỉ ngơi.
5 người lái xe Tuy nhiên, nhà sản xuất chưa bao giờ cung cấp tài liệu kỹ thuật hay tỷ lệ phát hiện buồn ngủ
Công ty Holux3 đã phát triển một thiết bị gắn trên dây thắt an toàn, có khả năng phát hiện tình trạng mệt mỏi và buồn ngủ thông qua việc phân tích nhịp tim biến thiên.
1.2.2.2 Tại một số hãng xe
Một số các hãng xe ô tô lớn cũng đã tích hợp các thiết bị chống ngủ gật an toàn trên các loại xe của họ :
Hãng xe Mercedes-Benz trang bị thiết bị Attention Assist, sử dụng bộ điều khiển động cơ để theo dõi các thay đổi trong việc điều khiển vô lăng và hành vi lái xe của tài xế, đồng thời phát ra cảnh báo khi cần thiết.
Hãng xe Volvo trang bị hệ thống Driver Alert Control, một công nghệ tiên tiến giúp giám sát và hỗ trợ lái xe duy trì đúng làn đường Hệ thống này sẽ cảnh báo tài xế khi phát hiện dấu hiệu lấn làn, góp phần nâng cao an toàn khi lái xe.
Hãng Lexus đã trang bị camera trên bảng táp lô để theo dõi gương mặt của tài xế, giúp phát hiện các dấu hiệu buồn ngủ Công nghệ này không chỉ ghi nhận biểu cảm mà còn cảnh báo người lái khi có dấu hiệu mệt mỏi, từ đó nâng cao an toàn khi lái xe.
Hãng Saab đã phát triển một hệ thống an toàn tiên tiến bằng cách sử dụng hai camera trong buồng lái để theo dõi cử động mắt của tài xế Nếu phát hiện tài xế có dấu hiệu buồn ngủ, hệ thống sẽ cảnh báo bằng thông điệp chữ hiển thị trên bảng táp lô và âm thanh để nhắc nhở tài xế.
Mục đích của đề tài
Mục đích của đề tài là nghiên cứu và phát triển thuật toán nhằm cảnh báo sớm va chạm và tình trạng ngủ gật, ứng dụng công nghệ xử lý ảnh thông qua phần mềm LabVIEW.
Trong bài viết này, chúng tôi sẽ khám phá lý thuyết về các hệ thống an toàn, cùng với cấu trúc và cách thức hoạt động của hệ thống cảnh báo nguy hiểm Bên cạnh đó, chúng tôi cũng sẽ nghiên cứu các nội dung liên quan để cung cấp cái nhìn tổng quan về hiệu quả và ứng dụng của những hệ thống này trong việc bảo vệ con người và tài sản.
- Thuật toán xác định khoảng cách từ xe đến vật cản thông qua quá trình quét của 2 camera
- Các phương pháp nhận diện khuôn mặt người được hỗ trợ trên nền tảng thư viện mã nguồn mở OpenCV
- Các thuật toán nhận diện khuôn mặt và phần mắt sử dụng Haar Cascade Classifiers trong OpenCV
- Thuật toán phát hiện tình trạng người lái xe buồn ngủ dự trên cử chỉ gương mặt.
Đối tượng và phạm vi của đề tài
- Ngôn ngữ lập trình Python
- Thư viện mã nguồn mở OpenCV
- Giải thuật nhận dạng một đối tượng sử dụng Haar Cascade Classifiers
- Các thuật toán và kỹ thuật phát hiện tình trạng buồn ngủ dựa trên cử chỉ gương mặt
- Thuật toán xác định khoảng cách
Nghiên cứu đã chỉ ra nhiều phương pháp phát hiện và cảnh báo tình trạng buồn ngủ của người lái xe trên toàn cầu, thông qua các bài báo và nghiên cứu khoa học Những phương pháp này không chỉ giúp nâng cao an toàn giao thông mà còn góp phần giảm thiểu tai nạn do buồn ngủ khi lái xe Các giải pháp công nghệ hiện đại, như cảm biến và hệ thống cảnh báo, đang được áp dụng rộng rãi để theo dõi tình trạng tỉnh táo của người lái.
- Chương trình demo sử dụng ngôn ngữ lập Python, thư viện mã nguồn mở OpenCV trên nền tảng hệ điều hành Windows.
Phương pháp nghiên cứu
1.5.1 Nghiên cứu lý thuyết Đọc, phân tích, tổng hợp tài liệu từ những bài báo và những nghiên cứu khoa học liên quan đã được công bố ở Việt Nam và trên thế giới
- Nghiên cứu và xây dựng một chương trình mô phỏng lập trình bằng ngôn ngữ lập trình Python và thư viện mã nguồn mở OpenCV
- Phân tích dữ liệu từ các công trình nghiên cứu
- Thí nghiệm và đánh giá kết quả thực nghiệm
- Hiệu chỉnh sau thực nghiệm để tìm được các yếu tố cần thiết và quan trọng, nhằm ổn định hệ thống
CƠ SỞ LÝ THUYẾT
Cơ sở lý thuyết xử lí ảnh xác định đối tượng theo phân loại tầng
Phương pháp xác định đối tượng theo phân loại tầng dựa trên tính năng Haar, được đề xuất bởi Paul Viola và Michael Jones vào năm 2001, sử dụng Machine Learning để phân tích hình ảnh Quá trình này yêu cầu một tập hợp hình ảnh để đào tạo máy tính, bao gồm hình ảnh tích cực (Positive picture) chứa đối tượng cần xác định và hình ảnh tiêu cực (Negative picture) không chứa đối tượng đó Sau khi được đào tạo, máy tính có khả năng nhận diện đối tượng trong các hình ảnh khác.
Để nhận dạng khuôn mặt, chúng ta cần một lượng lớn ảnh dương (có mặt người) và ảnh âm (không có mặt người) để đào tạo bộ phân loại Sau khi hoàn thành quá trình đào tạo, chúng ta sẽ trích xuất tính năng phân loại Hình ảnh đầu vào sẽ được phân tầng, với mỗi tầng có giá trị độc lập được xác định bằng cách lấy số pixel từ hình chữ nhật màu đen trừ đi tổng pixel của hình chữ nhật màu trắng Dưới đây là một số dạng phân tầng.
Hình 2.1: Các kiểu phân tầng cơ bản thường được sử dụng
Với cách tính hiện tại, số lượng giá trị độc lập rất lớn, ví dụ như một hình ảnh 24x24 có tới 160.000 giá trị Để xác định kích thước pixel của ô trắng và đen, các nhà nghiên cứu đã giới thiệu khái niệm hình ảnh tích phân Tuy nhiên, với hình ảnh có kích thước lớn, họ đã tối ưu hóa tính toán bằng cách chỉ xem xét bốn pixel xung quanh một pixel nhất định.
Mặc dù các giá trị phân tầng được tạo ra, phần lớn chúng không có sự liên kết với nhau Lấy ví dụ từ một bức ảnh khuôn mặt với hình ảnh tích cực, hai hình ở phía trên cùng cho thấy sự tách biệt trong các giá trị này.
Các đặc điểm nhận diện khuôn mặt thường tập trung vào vùng mắt, với đặc tính mắt tối hơn so với vùng mũi và má Hình ảnh thứ hai được chọn dựa vào đặc điểm này, tuy nhiên, điều này cũng áp dụng cho các vùng khác trên khuôn mặt, dẫn đến sự không đồng nhất trong các đặc điểm nhận diện.
Để khắc phục sự khác biệt giữa vùng mắt và các bộ phận khác trên mặt, mỗi tầng trong quá trình phân loại khuôn mặt sẽ tìm ra ngưỡng tối ưu để phân loại thành vùng positive và negative Quá trình này bắt đầu với việc gán trọng số bằng nhau cho mỗi hình ảnh, sau đó trọng số của các hình ảnh bị phân loại sai sẽ tăng lên sau mỗi lần phân loại Quá trình này được lặp lại nhiều lần, đồng thời tính toán tỷ lệ lỗi của từng tầng Quá trình tiếp tục cho đến khi đạt được độ chính xác hoặc tỷ lệ lỗi yêu cầu, thường với kích thước hình ảnh 24x24 có thể tạo ra khoảng 6000 tầng đáp ứng tiêu chí.
Cơ sở lý thuyết thuật toán ước lượng khoảng cách từ hệ camera quan sát đến vật cản
2.2.1 Sơ đồ nguyên lý được sử dụng để ước lượng khoảng cách từ hệ camera đến vật cản
Để ước lượng khoảng cách từ hệ thống camera quan sát đến vật cản, có thể áp dụng nhiều phương pháp như sóng siêu âm, sóng laser và sóng hồng ngoại Nghiên cứu này sử dụng mô hình hai camera và kết hợp với các thuật toán xử lý ảnh, bao gồm việc hiệu chỉnh hệ camera, nhằm xác định khoảng cách chính xác từ hệ thống camera đến vật cản.
Hình 2.3: Sơ đồ nguyên lý được sử dụng để ước lượng khoảng cách từ hệ camera đến vật cản
2.2.2 Phương pháp hiệu chỉnh camera (Camera calibration)
Quá trình chuyển đổi ảnh từ không gian thực sang không gian hình ảnh thường gặp khó khăn do sự không đồng nhất và méo (distortion) của ảnh thu được từ hai camera Nếu không có thông tin về mối liên hệ giữa hai camera, việc tìm điểm tương ứng trên ảnh bên trái ở ảnh bên phải sẽ yêu cầu quét toàn bộ ảnh bên phải.
Nếu có mối liên hệ giữa hai camera, việc xác định điểm ảnh tương ứng giữa ảnh bên phải và ảnh bên trái có thể thực hiện thông qua việc dò tìm trên một đường cong epipolar duy nhất.
Khi hai camera được đặt song song và đồng trục trên mặt phẳng với cùng thông số tiêu cự và độ méo, đường cong epipolar sẽ được điều chỉnh thành các đường thẳng Điều này dẫn đến việc điểm ảnh trên ảnh bên trái sẽ nằm trên cùng một đường thẳng với ảnh bên phải Kỹ thuật để thực hiện điều này gọi là hiệu chỉnh camera (camera calibration), thường được thực hiện bằng cách chụp các mẫu bàn cờ ở nhiều góc độ khác nhau để xác định các thông số nội của camera Dựa vào các thông số này, chúng ta có thể hiệu chỉnh độ méo của ảnh bằng một giải thuật phù hợp.
Zisserman, 2000), đồng thời hiệu chỉnh độ méo các ảnh để biến các đường cong epipolar thành các đường thẳng
Mô hình quan sát và đo khoảng cách bằng hai camera được thiết kế với hai camera đồng trục trên cùng một mặt phẳng, cách nhau một khoảng b Cả hai camera được hiệu chỉnh để có cùng thông số nội, tiêu cự f và góc nhìn Ɵ0 Hình ảnh của đối tượng quan sát T xuất hiện tại hoành độ x1 trên ảnh bên trái và x2 trên ảnh bên phải Áp dụng nguyên lý đồng dạng, chúng ta có thể phân tích mối quan hệ giữa các thông số hình ảnh.
- f là tiêu cự của camera chúng ta tìm thấy sau khi thực hiện Calibration
- b là khoảng cách giữa 2 camera (đơn vị m , hằng số)
- x2 là hoành độ của tâm mục tiêu do camera bên phải quan sát được
- x1 là hoành độ của tam mục tiêu do camera bên trái quan sát được
- D là khoảng cách từ camera tới đối tượng cần đo (vật cản)
GIỚI THIỆU CHƯƠNG TRÌNH PHÁT HIỆN VÀ CẢNH BÁO NGỦ GẬT VỚI VA CHẠM SỚM Error! Bookmark not defined 3.1 Giới thiệu chương trình dùng để phát hiện và cảnh báo ngủ gật
Giới thiệu chương trình cảnh báo va chạm sớm trên xe ô tô
Khi tham gia giao thông, tài xế thường gặp phải những tình huống bất ngờ như người đi bộ băng qua đường hoặc xe phía trước dừng đột ngột, dễ dẫn đến tai nạn Để giảm thiểu rủi ro này, cần có một chương trình cảnh báo giúp tài xế có thời gian xử lý tình huống Chương trình cảnh báo va chạm sớm yêu cầu phát hiện và xác định khoảng cách tới vật cản trong thời gian ngắn Dưới đây là hình ảnh minh họa cho một chương trình cảnh báo va chạm sớm với vật cản là xe ô tô phía trước, được phát triển bằng Python kết hợp với LabVIEW.
Hình 3.4: Chương trình dùng để phát hiện và cảnh báo va chạm sớm trên Python
Hình 3.5: Chương trình dùng để phát hiện và cảnh báo va chạm sớm trên Python
Hình 3.6: Chương trình dùng để phát hiện và cảnh báo va chạm sớm trên Python
Hình 3.7: Chương trình dùng để phát hiện và cảnh báo va chạm sớm trên Python
Chương trình này xác định khoảng cách giữa vật cản và hệ camera, cung cấp cảnh báo khi vượt quá khoảng cách an toàn Đầu tiên, nó nhận diện xem đối tượng có phải là xe ô tô hay không Nếu đúng, hai camera sẽ xác định tọa độ của tâm vật cản phía trước Sau khi có tọa độ, thuật toán tính toán khoảng cách từ xe đến vật cản, có thể là xe ô tô hoặc con người Thông số này được gửi qua phần mềm Labview để so sánh với điều kiện an toàn đã thiết lập Nếu khoảng cách nhỏ hơn điều kiện an toàn, hệ thống sẽ cảnh báo người lái để giảm tốc độ Ngược lại, nếu khoảng cách lớn hơn mức cho phép, hệ thống sẽ không cảnh báo nhằm giảm thiểu sự phân tâm cho người lái khi tham gia giao thông.
Để xác định chính xác vật cản trong trường hợp này là xe ô tô và con người, nhóm chúng tôi đã sử dụng OpenCV Thư viện này cho phép nhận diện đối tượng một cách nhanh chóng, giúp tiết kiệm thời gian trong quá trình nghiên cứu Trong nghiên cứu, nhóm chúng tôi áp dụng hai phương pháp khác nhau để đạt được kết quả tốt nhất.
17 thư viện là fullbody.xml và cars.xml.Cách sử dụng thư viện opencv thì rất đơn giản chỉ cần theo thứ tự các bước sau:
- Khai báo thư viện opencv bằng câu lệnh: import cv2
- Dẫn đường link đến nơi chứa thư viện cần đọc: car_cascade=cv2.CascadeClassifier(‘D:/car.xml’) human_cascade=cv2.CascadeClassifier(‘D:/fullbody.xml’)
Để xác định tọa độ tâm của vật trong thư viện Opencv, trước tiên cần vẽ một box chứa vật đó Từ thông số hoành độ và tung độ của box, ta có thể dễ dàng tìm ra tọa độ tâm của vật, vì tọa độ tâm của vật trùng với tọa độ tâm của box Vậy câu hỏi đặt ra là làm thế nào để xác định box chứa vật? Opencv đã cung cấp công cụ hỗ trợ cho việc này thông qua các câu lệnh.
Như vậy ta đã xác định được tọa độ tâm của vật
Từ hoành độ truy xuất của hai camera, chúng ta có thể tính toán khoảng cách giữa vật cản (xe ô tô) phía trước và hệ thống camera bằng công thức cụ thể.
- f là tiêu cự của camera chúng ta tìm thấy sau khi thực hiện Calibration
- b là khoảng cách giữa 2 camera (đơn vị m , hằng số)
- x2 là hoành độ của tâm mục tiêu do camera bên phải quan sát được
- x1 là hoành độ của tam mục tiêu do camera bên trái quan sát được
- D là khoảng cách từ camera tới đối tượng cần đo (vật cản)
Để xác định khoảng cách từ vật cản đến hệ camera, việc biết rõ tiêu cự của các camera là rất quan trọng Chúng ta có thể xác định tiêu cự này thông qua một chương trình được viết bằng ngôn ngữ Python.
Hình 3.8: Chương trình dùng để tính tiêu cự camera
Hình 3.9: Chương trình dùng để tính tiêu cự camera
Hình 3.10:Chương trình dùng để tính tiêu cự camera
Sau khi đã tính được tiêu cự của camera ta dễ dàng tính ra được khoảng cách từ vật cản đến hệ camera
Trong bài viết này, chúng ta xác định khoảng cách giới hạn an toàn là 5m Phần mềm LabVIEW sẽ so sánh dữ liệu khoảng cách đã tính toán với giới hạn an toàn này Nếu khoảng cách tính được nhỏ hơn 5m, hệ thống sẽ phát ra cảnh báo để tài xế có thể điều chỉnh kịp thời Dưới đây là chương trình LabVIEW được sử dụng để thực hiện việc so sánh khoảng cách.
Hình 3.11: Giao diện Block Diagram trong phần mềm LabVIEW
Bằng cách sử dụng các công cụ trong LabVIEW, người dùng có thể lập trình chương trình cảnh báo cơ bản, trong đó dữ liệu cần thiết được truy xuất từ Python Để đảm bảo chương trình hoạt động ổn định và chính xác, việc xử lý dữ liệu đầu vào trong LabVIEW là rất quan trọng Giao diện của chương trình cũng được thiết kế đơn giản, như hình bên dưới.
Hình 3.12: Giao diện Front Panel trong phần mềm LabVIEW
THỰC NGHIỆM, KẾT QUẢ NGHIÊN CỨU
Thực nghiệm hệ thống cảnh báo ngủ gật … … ….… ….….….….….…
Hệ thống cảnh báo ngủ gật sử dụng một camera để nhận diện khuôn mặt của người lái xe, từ đó so sánh tình trạng của hai mắt để xác định xem người lái xe đang mở hay nhắm mắt Nếu phát hiện người lái xe có dấu hiệu ngủ gật, hệ thống sẽ đưa ra cảnh báo để đánh thức họ Quá trình thực nghiệm được thực hiện trong hai trường hợp khác nhau.
4.1.1 Trường hợp nhận diện được người lái xe và xác định người lái xe không ngủ gật
Trong nghiên cứu này, nhóm em đã yêu cầu người lái xe đeo khẩu trang để kiểm tra khả năng nhận diện của hệ thống Kết quả cho thấy hệ thống vẫn có thể nhận diện khuôn mặt người lái xe hiệu quả, bằng cách vẽ một hình chữ nhật màu đỏ xung quanh khuôn mặt Hơn nữa, hệ thống cũng đánh giá được trạng thái bình thường của người lái xe thông qua việc nhận diện và so sánh tình trạng hai mắt, cho thấy hai mắt của người lái xe vẫn mở như thực tế.
Hình 4.1: Nhận diện mở mắt từ python
Sau khi Python xác định khuôn mặt và tình trạng bình thường của người lái xe, tín hiệu sẽ được truyền qua LabVIEW để đánh giá Cửa sổ Front Panel sẽ hiển thị dòng chữ “ĐÃ PHÁT HIỆN TÀI XẾ” khi nhận diện được khuôn mặt người lái, và dòng chữ “BÌNH THƯỜNG” cho tình trạng lái Đồng thời, đèn báo cảnh báo sẽ không được bật để tránh làm mất tập trung và gây khó chịu cho người lái.
Hình 4.2: Xử lý thông tin người lái không ngủ gật bằng labview
4.1.2 Trường hợp nhận diện được người lái xe và xác định người lái xe ngủ gật Đối với người tham gia giao thông thì tầm nhìn là điều rất quan trọng,khi không đủ tầm nhìn thì người lái rất khó điều khiển phương tiện một cách an toàn dễ gây ra nguy hiểm cho người khác cũng như chính bản thân người lái xe.Vậy câu hỏi đặt ra là làm thế nào để đánh giá người lái là ngủ gật hay không.Để đảm bảo an toàn cho người tham gia giao thông cũng như người lái xe nhóm em xét hai trường hợp sau đây đều vào nhóm ngủ gật.Trường hợp người lái xe nhắm hai mắt và trường hợp người lái xe nhắm một mắt vì khi nhắm một mắt người lái không đủ tầm nhìn để điều khiển phương tiện một cách an toàn
Trong trường hợp người ngủ gật chỉ nhắm một mắt, hệ thống gặp khó khăn trong việc nhận biết Do đó, nhóm chúng tôi tập trung vào việc thực nghiệm tình huống này nhằm tối ưu hóa khả năng đánh giá của hệ thống Tương tự, trường hợp cả hai mắt đều nhắm cũng sẽ được xem xét.
Để xác định người lái xe có đang ngủ gật hay không, điều quan trọng đầu tiên là hệ thống cần nhận diện khuôn mặt của tài xế Chỉ khi khuôn mặt được xác định, chúng ta mới có thể kiểm tra tình trạng của mắt, tức là mắt đang mở hay nhắm Hệ thống sẽ so sánh số lượng mắt đang mở với tổng số mắt trên khuôn mặt của người lái Nếu số lượng mắt mở ít hơn số lượng mắt trên khuôn mặt, điều này cho thấy tài xế có thể đang ngủ gật Trong nghiên cứu, nhóm đã giả định tài xế nhắm một mắt và thực hiện thử nghiệm để kiểm tra độ ổn định của hệ thống Kết quả cho thấy thuật toán Python xác định chính xác tài xế đang ngủ gật khi số lượng mắt mở ít hơn tổng số mắt trên khuôn mặt.
Hình 4.3: Nhận diện nhắm mắt nhắm từ python
Sau khi nhận diện khuôn mặt và phát hiện tình trạng ngủ gật của người lái, tín hiệu sẽ được truyền từ Python sang Labview để cảnh báo Hệ thống không chỉ dựa vào tín hiệu nhắm mắt mà còn sử dụng thuật toán Labview để đếm thời gian nhắm mắt Nếu thời gian nhắm mắt vượt quá 5 giây, hệ thống sẽ hiển thị cảnh báo "TAI XE NGU GAT" trên ô TINH TRANG LAI trong cửa sổ Front Panel và đồng thời bật đèn để đánh thức người lái.
Hình 4.4: Cảnh báo tài xế ngủ gật trên labview 4.2 Thực nghiệm hệ thống cảnh báo va chạm sớm
Hệ thống cảnh báo va chạm sớm giúp tài xế tránh va chạm không mong muốn bằng cách đo khoảng cách từ xe đến vật cản phía trước, đặc biệt là con người Khi khoảng cách này nhỏ hơn 5m, hệ thống sẽ cảnh báo tài xế thông qua đèn và còi lắp trên xe Ngược lại, nếu khoảng cách lớn hơn 5m, hệ thống sẽ không cảnh báo để tránh làm mất tập trung và gây khó chịu cho người lái Quá trình cảnh báo được thực hiện liên tục để đảm bảo an toàn cho người lái và những người xung quanh.
Nhóm em sử dụng thư viện OpenCV kết hợp với thuật toán Python để nhận diện con người, nhằm xác định vật cản Việc này được thực hiện thông qua file Fullbody.xml có sẵn trong thư viện Để tính chính xác khoảng cách từ xe đến vật cản, cần phải xác định đúng vật cản, do đó, nhóm em đặt ra yêu cầu tạo ra file xml với độ chính xác cao, giúp nhận diện tốt hơn mà không bị ảnh hưởng nhiều bởi ánh sáng Sử dụng thư viện OpenCV là lựa chọn tối ưu cho nhiệm vụ này.
Hình 4.5: Xác định khoảng cách từ xe đến vật bằng python
Khi cả hai camera cùng nhận diện vật cản, khoảng cách được tính toán chính xác nhất Như hình 4.5 cho thấy, khi hai camera phát hiện vật cản, khoảng cách được hiển thị trên khung hình và thực nghiệm cho thấy khoảng cách gần bằng 4.1m Tuy nhiên, các giá trị khác như 3.7m cũng xuất hiện do hình ảnh từ hai camera không được ghi lại đồng thời, dẫn đến sai số Để xác minh tính chính xác của dữ liệu mà thuật toán cung cấp, nhóm em đã sử dụng thước đo để kiểm tra và tính xác suất trong trường hợp không có cả hai camera cùng ghi nhận.
27 được cùng lúc.Thông qua đó có thể thấy được tính ổn định cũng như độ chính xác của hệ thống có trong khoảng cho phép hay không
Hình 4.6: Xác định khoảng cách từ người đến xe trên thực tế
Hình 4.7: Xác định khoảng cách từ người đến xe trên thực tế
Kết quả thực tế cho thấy khoảng cách từ xe đến vật cản là 4.1m, phù hợp với kết quả tính toán bằng thuật toán Python Mặc dù vẫn còn một số sai số do hệ thống và thuật toán chưa được tối ưu, những sai số này nằm trong khoảng cho phép và không ảnh hưởng nhiều đến kết quả Với khoảng giá trị từ 3.7-4.1m, xác suất tính đúng đạt trên 80% Sau khi xác định khoảng cách từ vật đến xe, giá trị này sẽ được gửi về LabVIEW để so sánh với giá trị ban đầu đã được chọn sẵn (trong trường hợp này là 5m).
Hình 4.8:Cảnh báo va chạm trên labview
Khi khoảng cách từ xe đến vật cản nhỏ hơn 5m, hệ thống sẽ tự động kích hoạt đèn và còi để cảnh báo tài xế Trong trường hợp này, giá trị được tính toán từ Python là 4.1m, cho thấy có vật cản trong khoảng nguy hiểm Do đó, LabVIEW sẽ so sánh giá trị này với mức an toàn 5m và nhận thấy rằng khoảng cách an toàn bị vi phạm, từ đó kích hoạt các tín hiệu cảnh báo cho người lái.
Hệ thống cảnh báo va chạm khi lắp trên xe mô hình mini
Nhóm em đã thực nghiệm hệ thống cảnh báo va chạm sớm bằng cách xây dựng mô hình xe mini chạy bằng bình ắc quy, được điều khiển qua thuật toán LabVIEW Mô hình giúp hiểu rõ cách hoạt động của hệ thống cảnh báo va chạm và có thể áp dụng cho ô tô hiện đại Mạch điều khiển bao gồm board Arduino UNO R3, module điều khiển động cơ 12V-30A và động cơ RS 550 12V-15000 vòng/phút Để tiết kiệm kinh phí, nhóm em sử dụng laptop làm máy chủ xử lý Tín hiệu xử lý từ LabVIEW sẽ được truyền xuống Arduino, điều khiển chiều quay và vận động của động cơ thông qua module điều khiển.
Hình 4.9:Mô hình xe không người lái
Thuật toán điều khiển xe mô hình mini bằng Labview cho phép đưa ra cảnh báo bằng đèn hoặc còi, đồng thời có thể can thiệp để xe dừng lại khi phát hiện vật cản phía trước Khi chương trình được chạy, giá trị khoảng cách sẽ được truyền để thực hiện các chức năng này.
Giá trị được truyền từ Python sang LabVIEW sẽ được so sánh với giá trị an toàn đã đề cập ở phần 4.2 Nếu giá trị lớn hơn giá trị an toàn, thuật toán trả về True, cho phép động cơ hoạt động và xe có thể di chuyển, với vận tốc được điều khiển qua module điều khiển động cơ, Arduino và thuật toán như hình 4.9 Ngược lại, nếu giá trị nhỏ hơn giá trị an toàn, thuật toán sẽ trả về False, khiến xe dừng lại ngay lập tức và còi sẽ kêu.
Kết quả thực nghiệm
Trong nghiên cứu về hệ thống cảnh báo ngủ gật và cảnh báo va chạm sớm, chúng tôi đã thực hiện 100 lần thử nghiệm cho mỗi hệ thống, với độ chính xác đạt từ 60-65% Một trong những nguyên nhân chính ảnh hưởng đến độ chính xác là ánh sáng Ánh sáng đóng vai trò quan trọng trong việc xử lý ảnh, quyết định độ ổn định và khả năng nhận diện của hệ thống Khi thiếu ánh sáng hoặc ánh sáng quá mạnh, hình ảnh thu được từ camera sẽ kém chất lượng, dẫn đến sai lệch trong quá trình nhận dạng Kết quả là hệ thống sẽ đưa ra các quyết định không chính xác.