1.3.1 Các kết quả nghiên cứu trong nước Tình hình nghiên cứu về cảnh báo ngủ gật và giám sát phương tiện giao thông trong nước đang dần được nhiều người quan tâm, đặc biệt là trong bối
GIỚI THIỆU
Trong một xã hội ngày càng hiện đại và sôi động, vấn đề an toàn giao thông luôn được đặt lên hàng đầu Tai nạn giao thông không chỉ gây tổn thương về người mà còn gây thiệt hại về tài sản cũng như gây ảnh hưởng xấu đến sự phát triển của một quốc gia Do đó, việc áp dụng công nghệ để giảm thiểu nguy cơ tai nạn giao thông và nâng cao an toàn cho người tham gia giao thông trở nên vô cùng cấp bách và quan trọng
Theo báo cáo “The Impact of Driver Inattention on Near-Crash/Crash Risk:
An Analysis Using the 100-Car Naturalistic Driving Study Data” [1] của tác giả Klauer và đồng nghiệp, các nhà nghiên cứu chỉ ra rằng có 4 loại hoạt động thiếu chú ý khi lái xe bao gồm: Lái xe khi đang buồn ngủ, người lái xe tham gia vào các nhiệm vụ phụ không cần thiết, mất tập trung liên quan đến việc lái xe trên đường phía trước, mất tập trung không liên quan đến lái xe Nghiên cứu đã chỉ ra rằng, người lái xe khi buồn ngủ có khả năng suýt va chạm hoặc đâm xe gấp 4 đến 6 lần so với tình trạng tỉnh táo, khả năng tai nạn cao hơn so với 3 hoạt động nêu trên Điều này là do sự mất tập trung và thời gian phản ứng kém hơn khi người lái xe đang trong trạng thái mệt mỏi và buồn ngủ
Bên cạnh đó theo quy định hiện hành tại điều 65 Luật Giao thông đường bộ
2008, thời gian làm việc của tài xế ô tô không được quá 10 giờ trong một ngày và không được lái xe liên tục quá 4 giờ Khi lái xe sau mỗi 4 giờ, tài xế phải nghỉ ít nhất 15 phút [2]
Vì thế đồ án "XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO CHO
TÀI XẾ ĐƯỜNG DÀI ỨNG DỤNG PHẦN CỨNG JETSON NANO" được thiết kế nhằm giải quyết vấn đề về nguy cơ ngủ gật của người lái, bên cạnh đó hệ
2 thống theo dõi hoạt động của phương tiện giao thông trong quá trình di chuyển Với sự kết hợp giữa trí tuệ nhân tạo và công nghệ cảm biến đồ án hứa hẹn mang lại giải pháp hiệu quả và tiên tiến, có thể áp dụng vào thực tế để phục vụ cho tài xế lái xe đường dài
Trong phần giám sát phương tiện giao thông, đồ án áp dụng cảm biến gia tốc để phát hiện rung lắc, công nghệ định vị GPS để thu thập và phân tích thông tin về trạng thái hoạt động của phương tiện Việc này giúp cung cấp cái nhìn toàn diện về cách thức di chuyển trên đường và kiểm soát thời gian lái xe, từ đó có thể đề xuất các biện pháp giảm thiểu và cải thiện tình huống xấu xảy ra Đối với phần cảnh báo ngủ gật, đồ án sử dụng hệ thống camera và máy tín nhúng JETSON NANO nhằm xử lý ảnh để nhận diện dấu hiệu của người lái đang mất tập trung hoặc ngủ gật trong khi lái xe Cảnh báo sẽ được kích hoạt kịp thời khi phát hiện nguy cơ để người lái có thể phản ứng, từ đó giảm nguy cơ xảy ra tai nạn Bên cạnh đó, các cảnh báo sẽ được gửi về điện thoại, và cùng với dữ liệu, sẽ được gửi lên cơ sở dữ liệu để xây dựng Website, giúp người quan sát có thể giám sát trực quan nhằm đưa ra những biện pháp xử lý kịp thời
Tóm lại, đồ án không chỉ là một nỗ lực để áp dụng công nghệ vào việc cải thiện an toàn giao thông mà còn là sự chứng minh về sự tiến bộ và sáng tạo trong lĩnh vực này, hướng tới một môi trường giao thông an toàn và hiệu quả hơn.
MỤC TIÊU ĐỀ TÀI
Mục đích của đề tài là phát triển hệ thống cảnh báo ngủ gật và giám sát phương tiện giao thông do đó nhóm chúng tôi đưa ra các tiêu chính sau:
- Sử dụng các công nghệ như xử lý ảnh, thuật toán nhận diện để phát hiện dấu hiệu của người lái mệt mỏi như ngáp hoặc ngủ gật khi lái xe
- Kích hoạt cảnh báo kịp thời để cảnh báo người lái nhằm giảm nguy cơ tai nạn giao thông và gửi cảnh báo cho bên theo dõi, độ trễ giữa hiện phát hiện và đưa ra cảnh báo phải nhỏ hơn 1 giây
- Sử dụng cảm biến gia tốc, công nghệ GPS để phát hiện rung lắc, thu thập dữ liệu về vị trí của phương tiện, giám sát hành trình của phương tiện
- Thiết lập truyền các dữ liệu ổn định lên Database để xây dựng giao diện người dùng
- Thiết kế mô hình phần cứng để chạy thực nghiệm.
TÌNH HÌNH NGHIÊN CỨU HIỆN NAY
Các kết quả nghiên cứu trong nước
Tình hình nghiên cứu về cảnh báo ngủ gật và giám sát phương tiện giao thông trong nước đang dần được nhiều người quan tâm, đặc biệt là trong bối cảnh nhu cầu nâng cao an toàn giao thông hiện nay Các nghiên cứu này thường tập trung vào việc áp dụng công nghệ thông tin và trí tuệ nhân tạo vào lĩnh vực này, với sự tham gia của các tổ chức nghiên cứu, và các đơn vị trong lĩnh vực công nghệ thông tin và giao thông vận tải.
Trong lĩnh vực cảnh báo ngủ gật, các nhóm nghiên cứu thường tiến hành nghiên cứu về các phương pháp nhận diện và phát hiện dấu hiệu của người lái mất tập trung hoặc ngủ gật khi lái xe Công nghệ thông tin và trí tuệ nhân tạo thường được áp dụng để phát triển các hệ thống cảnh báo sớm, giúp giảm thiểu nguy cơ tai nạn giao thông do ngủ gật gây ra Ví dụ như bài báo “HỆ THỐNG PHÁT HIỆN TÌNH TRẠNG NGỦ GẬT CỦA LÁI XE” [3] Trong phạm vi của nghiên cứu này, một hệ thống được phát triển để phát hiện tình trạng ngủ gật của tài xế sử dụng các kỹ thuật thị giác máy tính Hệ thống này sử dụng một camera (webcam) để quan sát gương mặt của tài xế và phát ra âm thanh cảnh báo khi phát hiện các dấu hiệu của việc ngủ gật, như là mắt nhắm lại hoặc số lần chớp mắt Nghiên cứu này áp dụng hai phương pháp để xác định trạng thái nhắm mắt, bao gồm cách đo khoảng cách giữa mắt và chân mày, cũng như phương pháp đo độ cong của đường tiếp giáp hai mí mắt Ngoài ra, nghiên cứu cũng đề xuất một phương pháp mới để xác định trạng thái nhắm mắt, sử dụng đo độ cong của đường tiếp giáp hai mí mắt Đội
4 ngũ nghiên cứu đã phát triển một thuật toán để nhận diện hành động chớp mắt dựa trên ba frame ảnh liên tiếp
Trong lĩnh vực giám sát phương tiện bằng GPS, các nghiên cứu thường tập trung vào việc phát triển các hệ thống theo dõi và quản lý hành vi lái xe dựa trên dữ liệu GPS Các giải pháp công nghệ này không chỉ giúp theo dõi vị trí và tình trạng của phương tiện một cách hiệu quả mà còn cung cấp thông tin chi tiết về hành vi lái xe, từ tốc độ di chuyển đến mô hình lái xe, giúp tăng cường an toàn và hiệu suất của giao thông đường bộ Ở bài báo “XÂY DỰNG HỆ THỐNG ĐỊNH
VỊ, DẪN ĐƯỜNG VÀ GIÁM SÁT TRỰC TUYẾN” [4] nhóm tác giả đã đề xuất một giải pháp sử dụng công nghệ định vị và dẫn đường để giám sát các đối tượng di động như con người và xe cộ Hệ thống này sử dụng thiết bị định vị vệ tinh để xác định vị trí và gửi thông tin về máy chủ giám sát tại Trung tâm điều hành Thông tin này sau đó được xử lý và hiển thị trên màn hình giúp quản lý theo dõi và đưa ra các quyết định phù hợp Điều này giúp tối ưu hóa việc sử dụng nguồn lực và nâng cao hiệu quả trong quản lý và giám sát
Tuy nhiên, để tối ưu hóa an toàn giao thông và giám phương tiện giao thông, việc kết hợp cảnh báo ngủ gật và giám sát phương tiện bằng GPS có thể là một hướng phát triển tiềm năng Bằng cách kết hợp thông tin từ cảnh báo ngủ gật và hệ thống giám sát phương tiện, có thể tạo ra một hệ thống tổng hợp cho phép phát hiện nguy cơ ngủ gật và giám sát phương tiện giao thông, nhằm giúp người dùng có thể đưa ra các biện pháp kịp thời để hạn chế tai nạn giao thông
Thông qua hệ thống cảnh báo ngủ gật, nó có thể phát hiện tình trạng người lái mất tập trung hoặc ngủ gật Khi đấy, nó có thể tạo ra cảnh báo âm thanh để cảnh báo tài xế và nhắc nhở an toàn Kết hợp việc theo dõi về tình trạng rung lắc của phương tiện khi chạy đường dài, hệ thống sẽ gửi tín hiệu về cả thiết bị điện thoại và giao diện Website của người theo dõi cùng với vị trí hiện tại của phương tiện thông qua việc thu thập được từ GPS
Hơn nữa, thông qua việc phân tích dữ liệu từ cảnh báo ngủ gật và giám sát phương tiện, hệ thống có thể cung cấp thông tin chi tiết về hành vi lái xe trong thời gian thực và thông kế tần suất Điều này có thể hỗ trợ việc tạo ra báo cáo tổng thể
5 về hiệu suất lái xe, phát hiện các mô hình lái xe không an toàn, và đưa ra các biện pháp cải thiện hiệu quả
Tuy nhiên, đối với việc triển khai và ứng dụng thực tế của các hệ thống này, cần quan tâm đến vấn đề bảo mật và quyền riêng tư Thu thập và sử dụng dữ liệu về hành vi lái xe và trạng thái của tài xế đòi hỏi sự đảm bảo về quyền riêng tư và tuân thủ các quy định pháp lý liên quan
Tổng quan, nghiên cứu về cảnh báo ngủ gật và giám sát phương tiện bằng GPS đang tiếp tục phát triển và đem lại tiềm năng lớn cho việc tăng cường an toàn giao thông và quản lý hiệu suất phương tiện.
Các kết quả nghiên cứu ở nước ngoài
Tình hình nghiên cứu ngoài nước về cảnh báo ngủ gật và giám sát phương tiện bằng GPS đã thu hút sự chú ý đặc biệt của cộng đồng nghiên cứu về an toàn giao thông Trong lĩnh vực cảnh báo ngủ gật, nghiên cứu “Real-Time Deep Learning- Based Drowsiness Detection: Leveraging Computer-Vision and Eye-Blink Analyses for Enhanced Road Safety” [5] tập trung vào phát triển và triển khai một hệ thống phát hiện buồn ngủ thời gian thực sử dụng kỹ thuật học sâu
Bài báo nhấn mạnh tầm quan trọng của việc xử lý tình trạng buồn ngủ của người lái xe như một yếu tố quan trọng trong an toàn giao thông Bài báo thảo luận về những hạn chế của các phương pháp truyền thống trong việc phát hiện buồn ngủ, chẳng hạn như đo các tín hiệu sinh lý, nhưng nhược điểm là không thể đáp ứng được yêu cầu giám sát thời gian thực Do đó, các tác giả đề xuất một phương pháp dựa trên thị giác máy tính và phân tích nháy mắt sử dụng các thuật toán học sâu để phát hiện buồn ngủ trong thời gian thực Đối với lĩnh vực giám sát phương tiện bằng GPS, nghiên cứu “GPS Based Vehicle Tracking System” [6] đã trình bày việc sử dụng GPS để định vị vị trí phương tiện nhờ đó giám sát hành trình một cách chính xác Trong bài báo này, các tác giả đã phân tích và mô tả cách thức sử dụng công nghệ GPS để xác định vị trí chính xác của các phương tiện di chuyển trên đường Bằng cách kết hợp dữ liệu từ GPS với các hệ thống thông tin địa lý (GIS), họ đã tạo ra một hệ thống giám sát hiệu quả nhằm quản lý giao thông đô thị mang lại hiệu quả lớn
6 Tác giả đã chỉ ra rằng việc sử dụng GPS không chỉ giúp quản lý vận hành phương tiện một cách hiệu quả hơn mà còn cung cấp thông tin quan trọng về lưu lượng giao thông, độ chật chội của các con đường và thời gian di chuyển trung bình Những thông tin này có thể được sử dụng để tối ưu hóa lộ trình di chuyển và giảm thiểu kẹt xe trong các khu vực đông dân cư
Bên cạnh đó, nghiến cứu ở bài báo “Vehicle Vibration Monitoring System Using Accelerometer Sensors for Long-Distance Transport” [7] về các cảm biến gia tốc được tích hợp vào hệ thống của xe để liên tục giám sát rung lắc và xác định các mẫu bất thường có thể chỉ ra các vấn đề tiềm ẩn với hệ thống treo của xe hoặc điều kiện đường xá cũng là một khả năng quan trọng khi tích hợp vào mô hình.
PHƯƠNG PHÁP NGHIÊN CỨU
Để thực hiện đề tài này, trước tiên nhóm sẽ thực hiện việc tìm hiểu về các nghiên cứu trước đó và các công trình nghiên cứu liên quan đến cảnh báo ngủ gật và giám sát phương tiện bằng GPS Điều này bao gồm việc đọc và phân tích các bài báo khoa học, sách vở, và tài liệu tham khảo để hiểu rõ về các phương pháp, công nghệ, và kết quả nghiên cứu đã được đề xuất và áp dụng trong lĩnh vực này Sau đấy sẽ thiết kế chi tiết các khối trong từng thành phần của hệ thống để phục vụ việc phát triển và triển khai các mô hình phần cứng và phần mềm Sau cùng, khi đưa sản phẩm ra thực tế, nhóm sẽ tìm hiểu về ưu điểm, hạn chế, và tiềm năng của từng phương pháp và công nghệ, từ đó đề xuất các giải pháp và hướng nghiên cứu trong tương lai.
BỐ CỤC ĐỀ TÀI
Giới thiệu khái quát và tổng quan về tình hình nghiên cứu cũng như các phương pháp nghiên cứu của đề tài
Giới thiệu mô tả về các mô hình học máy, các công nghệ đã sử dụng để hoàn thành hệ thống
Từ mục tiêu của đề tài, chọn lựa các thiết bị, linh kiện phù hợp với bài toán, trình bày các sơ đồ khối hệ thống, nguyên lý hoạt động của các khối thành phần hệ thống
Kết quả và nhận xét đánh giá Đánh giá các chức năng, trình bày kết quả cuối cùng đạt được từ phần cứng và phần mềm
Kết luận và hướng phát triển
Kết luật, hạn chế của đề tài đối với những kết quả đạt được và nêu hướng phát triển
PHÁT HIỆN ĐỐI TƯỢNG
Phát hiện đối tượng là một tác vụ trong thị giác máy tính nó xác định những đối tượng và tọa độ vị trí của các đối tượng trong frame ảnh Một hệ thống phát hiện đối tượng sẽ trả về tọa độ vị trí của những đối tượng trong một hình ảnh mà nó được training nhận diện Hệ thống cũng sẽ trả về giá trị của độ tin cậy, điều này cho thấy sự chính xác trong dự đoán của hệ thống Vật thể được nhận diện sẽ được giới hạn trong 1 bounding box được vẽ bao quanh vật thể Ví dụ phát hiện nhiều đối tượng trong một khung ảnh như hình 2.1 dưới đây mô tả đầu ra của bài toán phát hiện đối tượng
Hình 2 1: Phát hiện đối tượng
Có 2 phương pháp phát hiện đối tượng chính đó là phương pháp một giai đoạn (one-stage) và phương pháp 2 giai đoạn (two-stage):
Phương pháp một giai đoạn ưu tiên tốc độ xử lý chuyên giải quyết các bài toán nhận diện cần tốc độ realtime ví dụ bao gồm YOLO, SSD, RetiaNet
Phương pháp hai giai đoạn ưu tiên độ chính xác cao ví dụ bao gồm Faster R-CNN, Mask R-CNN và Cascade R-CNN.
GIỚI THIỆU YOLO
Grid system
Đối với YOLO cần phân tách hình ảnh đầu vào thành một lưới các ô SxS (S: Grid size) mỗi ô sẽ chịu trách nhiệm dự đoán bounding box nếu tâm của nó nằm trong ô Mỗi ô lưới chỉ dự đoán duy nhất một đối tượng, tâm của đối tượng được xác định nằm trong ô nào thì ô lưới đó sẽ chứa đối tượng đó
Hình ảnh đầu vào được chia thành một lưới SxS các ô vuông Mỗi ô vuông này được gọi là một grid cell Ví dụ, nếu chúng ta có một hình ảnh với độ phân giải 448x448 và chia nó thành một lưới 7x7, mỗi ô lưới sẽ có kích thước 64x64 pixel
Hình 2 3: Grid System Mỗi Grid Cell này sẽ thực hiện dự đoán cho Bounding box và cả Class của đối tượng nằm trong ô đó Mỗi Grid Cell sẽ dự đoán B bounding box Mỗi bounding box có 5 giá trị (x,y,w,h,p), (x,y) là tọa độ tâm bounding box so với Grid Cell hiện tại, (w,h) là chiều rộng và chiều cao của bounding box, p là xác suất đối tượng có trong bounding box đó hay còn được gọi là confidence score Cuối cùng là C – đại diện cho phân bố xác suất về các loại object Như vậy output là một ma trận 3 chiều có kích thước
11 Hình 2 4: Phương thức dự đoán (Nguồn: Bạn chỉ nhìn một lần (YOLO) (1) | Trang web của Zhang Handuo)
Ví dụ bức ảnh đầu vào ở hình 2.4 được chia lưới 7x7, dự đoán 2 hộp bounding box với 4 class được sử dụng áp dụng công thức ta sẽ thu được kết quả out 7x7x14
Hình 2 5: Output Grid Cell (Nguồn: Bạn chỉ nhìn một lần (YOLO) (1) | Trang web của Zhang Handuo)
Hàm tính IOU
IOU (Intersection over Union) là một chỉ số quan trọng trong lĩnh vực phát hiện đối tượng (object detection), được sử dụng để đánh giá mức độ chính xác của các bounding boxes dự đoán so với các bounding boxes thực tế (ground truth) IOU được định nghĩa là tỷ lệ giữa diện tích phần giao nhau và diện tích phần hợp nhất của hai bounding boxes
Hình 2 6: Tính toán Intersection over Union (Nguồn: Intersection over Union (IoU) for object detection - PyImageSearch)
Loss Function
Trong YOLO (You Only Look Once), hàm lỗi (loss function) đóng vai trò quan trọng trong việc huấn luyện mô hình để dự đoán chính xác vị trí, kích thước, và lớp của các đối tượng trong hình ảnh Hàm lỗi của YOLO được thiết kế để tối ưu hóa cả ba khía cạnh: dự đoán loại đối tượng (classification), dự đoán tọa độ bounding box (localization), và độ tin cậy của dự đoán (confidence)
Classification loss đánh giá độ chính xác của mô hình trong việc dự đoán lớp của đối tượng Sử dụng hàm lỗi Cross-Entropy tính toán cho các grid cell có chứa đối tượng [9]
1 𝑖 𝑜𝑏𝑗 : Hàm indicator có giá trị 0,1 nhằm xác định xem cell i có chứa vật thể hay không Bằng 1 nếu chứa vật thể và 0 nếu không chứa
𝑝 𝑖 (𝑐): Xác suất thực tế của lớp c trong grid cell i
𝑝̂ 𝑖 (𝑐): Xác suất dự đoán của lớp c trong grid cell i
Localization loss đánh giá độ chính xác của mô hình trong việc dự đoán tọa độ bounding box (x, y) và kích thước (w, h) so với vị trí thực tế từ tập dataset Lưu ý nên chuẩn hóa về [0, 1] so với tâm của bounding box Việc chuẩn hóa này giúp cải thiện tốc độ và độ chính xác của các dự đoán, so với việc sử dụng các giá trị không chuẩn hóa từ ảnh gốc Hãy cùng xem một ví dụ: [9]
Hình 2 7: Chuẩn hóa pixel cho bounding box (Nguồn: Tìm hiểu về YOLO trong bài toán real-time object detection)
𝑐𝑜𝑜𝑟𝑑 : Hệ số điều chỉnh, thường được đặt giá trị cao hơn để nhấn mạnh tầm quan trọng của localization loss
1 𝑖,𝑗 𝑜𝑏𝑗 : Cho biết bounding box thứ j của cell i có chứa đối tượng
𝑥 𝑖 𝑦 𝑖 , 𝑤 𝑖 , ℎ,: Tọa độ trung tâm và kích thước thực tế của bounding box
𝑥̂ 𝑖 , 𝑦̂ 𝑖 , 𝑤̂ 𝑖 , ℎ̂ 𝑖 : Tọa độ trung tâm và kích thước dự đoán của bounding box
Confidence loss đánh giá độ chính xác của mô hình trong việc dự đoán liệu một bounding box có chứa đối tượng hay không Bao gồm cả positive examples (có đối tượng) và negative examples (không có đối tượng) [9]
𝑛𝑜𝑜𝑏𝑗 : Hệ số điều chỉnh quan trọng được sử dụng để kiểm soát trọng số của phần lỗi liên quan đến các bounding box không chứa đối tượng (no-object)
1 𝑖,𝑗 𝑛𝑜𝑜𝑏𝑗 : Cho biết bounding box thứ j của cell i không chứa đối tượng
𝐶 𝑖 : Độ tin cậy thực tế (1 nếu có đối tượng, 0 nếu không có)
𝐶̂ 𝑖 : Độ tin cậy dự đoán
Hàm lỗi tổng thể của YOLO là tổng hợp của ba thành phần trên:
Non-max suppression
Non-Maximum Suppression (NMS) là một kỹ thuật được sử dụng trong các bài toán phát hiện đối tượng để loại bỏ các bounding boxes dư thừa dự đoán cùng một đối tượng, chỉ giữ lại bounding box có độ tin cậy (confidence score) cao nhất NMS giúp làm giảm số lượng các bounding boxes không cần thiết và làm sạch kết quả đầu ra của mô hình
Quy trình cơ bản của Non-Maximum Suppression bao gồm các bước sau:
Mô hình phát hiện đối tượng đưa ra nhiều bounding boxes với các giá trị độ tin cậy khác nhau
Sắp xếp các bounding boxes theo thứ tự giảm dần của giá trị độ tin cậy
Bắt đầu với bounding box có giá trị độ tin cậy cao nhất và thêm nó vào danh sách kết quả cuối cùng
Tính Intersection over Union (IoU) giữa bounding box đã chọn và các bounding boxes còn lại
Nếu IoU lớn hơn một ngưỡng xác định trước (ví dụ: 0.5), các bounding boxes này được loại bỏ vì chúng có khả năng dự đoán cùng một đối tượng
Lặp lại các bước trên cho đến khi tất cả các bounding boxes được xử lý
YOLOv8
Các Tính năng của YOLOv8
Các tính năng chính của YOLOv8:
YOLOv8 sử dụng một backbone và neck hiện đại, dẫn đến việc cải thiện hiệu suất trích xuất đặc trưng và phát hiện đối tượng
YOLOv8 áp dụng phương pháp chia tách không anchor của Ultralytics ở phần head, góp phần nâng cao độ chính xác và hiệu quả của quá trình phát hiện so với các phương pháp tiếp cận dựa trên anchor
YOLOv8 tập trung vào việc duy trì sự cân bằng tối ưu giữa độ chính xác và tốc độ, phù hợp cho các tác vụ phát hiện đối tượng theo thời gian thực trong các lĩnh vực ứng dụng đa dạng
YOLOv8 cung cấp một loạt các mô hình pre-trained để phục vụ cho các nhiệm vụ và yêu cầu hiệu suất khác nhau, giúp người dùng dễ dàng tìm thấy mô hình phù hợp cho trường hợp sử dụng cụ thể của mình
Mô hình sử dụng hàm mất mát mới
Tương thích và có thể mở rộng với tất cả phiên bản trước đó của YOLO
API thân thiện với người dùng
Mô hình có thể thực hiện các nhiệm vụ phát hiện đối tượng, phân đoạn và phân loại hình ảnh
Kiến trúc mạng Yolov8
Hình 2 9: Kiến trúc mạng của YOLOv8 (Nguồn: YOLOv8_c3模块和c2f模块对比-CSDN博客) Một thay đổi quan trọng khác là YOLOv8 áp dụng cấu trúc Decoupled-Head, tách biệt các nhiệm vụ phân loại và định vị thành các đầu riêng biệt để cải thiện độ chính xác trong việc phát hiện đối tượng Bên cạnh đó, YOLOv8 chuyển từ phương pháp dựa trên Anchor truyền thống sang phương pháp Anchor-Free, giúp đơn giản hóa quy trình phát hiện và có thể nâng cao hiệu suất [10]
Về hàm tổn thất, YOLOv8 cập nhật với VFL Loss cho phân loại và kết hợp DFL Loss với CIOU Loss cho định vị, nhằm tăng cường tính ổn định và độ chính
18 xác trong quá trình huấn luyện Cuối cùng, YOLOv8 sử dụng phương pháp gán mẫu Task-Aligned Assigner thay cho phương pháp dựa trên IOU hoặc phân phối tỷ lệ đơn lẻ, giúp cải thiện hiệu quả việc gán các hộp thực tế với các hộp dự đoán, từ đó nâng cao hiệu suất tổng thể
Những cải tiến này giúp YOLOv8 trở nên mạnh mẽ hơn, hiệu quả hơn và chính xác hơn trong các nhiệm vụ phát hiện đối tượng so với các phiên bản trước.
GIAO THỨC TRUYỀN THÔNG UART
Cách hoạt động của UART
Dữ liệu được truyền từ CPU tới bộ UART dưới dạng song song
UART chuyển đổi dữ liệu này thành dạng nối tiếp và thêm một bit start trước khi truyền
Sau khi bit start, các bit dữ liệu được truyền đi tuần tự, thường là từ bit ít quan trọng nhất (LSB) đến bit quan trọng nhất (MSB)
Tiếp theo là bit parity (nếu được sử dụng) để kiểm tra lỗi
Cuối cùng, một hoặc hai bit stop được thêm vào để báo hiệu kết thúc của frame [11]
UART nhận dữ liệu nối tiếp từ kênh truyền thông
Bộ thu xác định bit start để đồng bộ hóa với dữ liệu đến
Sau khi nhận các bit dữ liệu, UART kiểm tra lỗi bằng bit parity (nếu được sử dụng)
Các bit stop báo hiệu kết thúc của frame, và dữ liệu được chuyển đổi trở lại dạng song song và gửi đến CPU.
Cấu trúc Frame UART
Cấu trúc của một frame Uart được chia làm bốn phần như hình 2.11
Hình 2 11: Cấu trúc frame Uart
Bit Start (1 bit): Bắt đầu của frame, luôn ở mức logic thấp (0)
Bits Dữ liệu (5-9 bits): Thông tin dữ liệu chính
Bit Parity (1 bit, tùy chọn): Dùng để phát hiện lỗi
Bit Stop (1-2 bits): Kết thúc của frame, luôn ở mức logic cao (1).
HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS)
Hệ điều hành thời gian thực (Real-time Operating System - RTOS) được thiết kế để sử dụng trong các ứng dụng nhúng và yêu cầu xử lý dữ liệu cũng như sự kiện theo thời gian thực Nguyên tắc hoạt động của RTOS tập trung vào việc cung cấp phản hồi kịp thời và có thể dự đoán được đối với các sự kiện và nhiệm vụ [12]
20 Hình 2 12: Nguyên tắc hoạt động của RTOS Dưới đây là một số điểm cụ thể:
Quản lý tác vụ: RTOS phân chia ứng dụng thành các tác vụ nhỏ hơn, mỗi tác vụ đại diện cho một chức năng hoặc hoạt động cụ thể Điều này giúp tổ chức và quản lý công việc một cách hiệu quả
Lập lịch dựa trên mức độ ưu tiên: RTOS sử dụng lập lịch dựa trên mức độ ưu tiên để đảm bảo rằng các tác vụ có mức độ ưu tiên cao hơn được ưu tiên hơn trong việc thực thi, đáp ứng các yêu cầu về thời gian của các nhiệm vụ quan trọng Chuyển đổi ngữ cảnh: RTOS có khả năng nhanh chóng chuyển đổi giữa các tác vụ trong khi vẫn duy trì trạng thái thực thi của chúng Điều này giúp hệ thống phản ứng kịp thời với các sự kiện và có khả năng đa nhiệm
Xử lý ngắt: RTOS có thể xử lý hiệu quả các ngắt phần cứng được kích hoạt bởi các sự kiện bên ngoài Khi có ngắt xảy ra, RTOS có thể tạm dừng tác vụ hiện đang chạy, thực hiện quy trình dịch vụ ngắt và sau đó tiếp tục tác vụ bị gián đoạn Timer và Clock: RTOS sử dụng bộ hẹn giờ và đồng hồ để quản lý các khía cạnh thời gian của các tác vụ và sự kiện, cho phép thực hiện định kỳ các nhiệm vụ và đồng bộ hóa các hoạt động trong hệ thống
Giao tiếp giữa các tác vụ: RTOS tạo điều kiện cho giao tiếp giữa các tác vụ, cho phép chúng trao đổi dữ liệu và đồng bộ hóa hành động của chúng
21 Quản lý tài nguyên: RTOS cung cấp các cơ chế quản lý tài nguyên dùng chung, chẳng hạn như bộ nhớ, thiết bị I/O và các kênh liên lạc để tránh xung đột và đảm bảo đồng bộ hóa phù hợp
Hành vi xác định: RTOS cung cấp hành vi xác định, nghĩa là các tác vụ được thực thi trong giới hạn thời gian đã biết và thời gian phản hồi đối với các sự kiện có thể dự đoán được
Những nguyên tắc và tính năng này làm nền tảng cho việc triển khai các ứng dụng nhúng phức tạp và yêu cầu độ chính xác và đáng tin cậy cao.
GIAO THỨC TRUYỀN THÔNG MQTT
MQTT, viết tắt của Message Queuing Telemetry Transport, là một giao thức kết nối máy tính cho các thiết bị trong mạng IoT MQTT cho phép các thiết bị trong mạng kết nối và truyền tải thông tin với nhau một cách dễ dàng, thông qua hình thức publish-subscribe và cơ chế truyền thông nhẹ Điều này làm cho MQTT trở nên rất hữu ích trong nhiều tình huống, bao gồm các môi trường không ngừng cũng như trong giao tiếp giữa các thiết bị trong mạng IoT
MQTT có những đặc tính riêng biệt, khó tìm thấy trong các giao thức khác Một số đặc điểm của MQTT bao gồm:
Là giao thức kết nối máy tính cho các thiết bị trong mạng IoT
Được thiết kế với hình thức truyền thông đơn giản và nhẹ, sử dụng cơ chế xuất bản-đăng ký để trao đổi thông tin giữa client và server
Không yêu cầu client và server phải thiết lập kết nối cùng lúc
Cung cấp tốc độ truyền dữ liệu nhanh, tương tự như WhatsApp/Messenger
Cho phép client đăng ký theo các topic cụ thể để nhận thông tin mà họ đang quan tâm
22 Hình 2 13: Cơ chế hoạt động của giao thức MQTT
Một Client kết nối với Broker Lúc này, Client có thể gửi các thông điệp (publish) tới một hoặc nhiều chủ đề (Topic) cụ thể Các chủ đề đề cập đến các từ khóa mà Broker sử dụng để lọc các thông điệp cho các Client Các chủ đề được tổ chức theo cấp bậc, tương tự như đường dẫn đến tệp hoặc thư mục Khi Broker nhận được một thông điệp, nó sẽ chuyển thông điệp đó tới các Client đăng ký (subscribe) vào các chủ đề mà nó quan tâm Điều này giúp đảm bảo rằng các thông điệp chỉ được gửi tới các Client mà thực sự cần nhận thông điệp đó
THIẾT KẾ VÀ THI CÔNG
YÊU CẦU HỆ THỐNG
Về phần cứng, hệ thống cần dùng 1 Camera được đặt cố định trước vô lăng của xe và chiếu trực tiếp vào tài xế, khoảng cách đặt camera tới khuôn mặt cần nằm trong khoảng 50 - 70cm để đảm bảo nhận diện tốt nhất Ăng ten bắt GPS cần để đặt tên táp lô, với trường hợp xe có phim cách nhiệt cản sóng GPS thì cần cắt góc nhỏ vừa đủ để bắt sóng GPS tốt Phần cứng Jetson Nano và các linh kiện khác cần thiết kế để trong hộp cứng và cố định an toàn
Hệ thống được thiết kế để đáp ứng những yêu cầu sau:
Dữ liệu thu thập được từ camera cần chính xác và xử lý nhanh chóng, việc nhận diện cần ổn định và đáng tin cậy trong nhiều điều kiện thời tiết và môi trường lái xe Cảnh báo chính xác các trạng thái buồn ngủ và ngủ gật của tài xế, đồng thời đảm bảo độ trễ của việc nhận diện ít hơn 1 giây
Thiết kế phần cứng có thể thu thập các thông số như GPS, gia tốc một cách tin cậy, nhanh chóng, từ đó khai thác để giám sát phương tiện giao thông và truyền dữ liệu lên cơ sở dữ liệu Hệ thống cần có khả năng lưu trữ dữ liệu một cách an toàn và có thể truy xuất để phục vụ cho việc phân tích và báo cáo sau này
Thiết kế Front-end với giao diện Responsive Web, kết nối với cơ sở dữ liệu để người dùng có thể theo dõi các cảnh báo và các thông số đã thu thập từ phần cứng Đảm bảo các thông số được cập nhật để quan sát liên tục và độ trễ thấp
ĐẶC TẢ HỆ THỐNG
Chức năng của hệ thống
Dựa vào những yêu cầu hệ thống thì nhóm chúng tôi đã thiết kế và xây dựng hệ thống gồm những chức năng như sau:
Hệ thống có thể đưa ra cảnh báo từ chuông và đèn hiệu để cảnh báo tài xế khi phát hiện trạng thái buồn ngủ, ngủ gật Các cảnh báo như tin nhắn, gọi điện sẽ thực thi trực tiếp đến thiết bị của người theo dõi
Hệ thống có thể thu thập dữ liệu từ GPS, cảm biến gia tốc để tính toán nhằm mục đích giám sát phương tiện, cụ thể có thể biết được vị trí hiện tại, hành trình di chuyển, vận tốc và phát hiện được va chạm của xe
Website của hệ thống có chức năng đăng nhập, đăng xuất dựa trên tài khoản được cấp Người dùng có thể theo dõi các cảnh báo, thông số từ Website, có thể điều chỉnh các thông số để phần cứng thực thi.
Mô hình tổng quát của hệ thống
Dựa trên những yêu cầu hệ thống, nhóm đã thiết kế được mô hình tổng thể của toàn bộ hệ thống như sau:
Hình 3 1: Mô hình tổng quát hệ thống
Khối Device: Khối Device là phần cứng được cài đặt trực tiếp trên phương tiện cần được theo dõi Phần cứng có chức năng giám sát ngủ gạt và tích hợp các module cảm biến và thu thâp dữ liệu từ các cảm biến đó
Khối Server: Khối này bao gồm các thành phần chính như MQTT Broker – thực hiện giao tiếp truyền nhận dữ liệu với thiết bị; Database nhằm lưu trữ cơ sở dữ liệu;
Khối User Application: Khối này bao gồm Website, có tác dụng cung cấp cho người dùng thông số vị trí của thiết bị gắn trên xe dưới dạng vị trí trên bản đồ vào thời điểm tuỳ chọn Bên cạnh đó, còn hiển thị các thông số sau tính toán, cảnh báo thời gian thực và xem lịch sử các cảnh báo Nó đóng vai trò quan trọng trong việc cung cấp giao diện trực quan và dễ sử dụng cho người dùng cuối trong hệ thống IoT, giúp họ sử dụng các tính năng và tiện ích mà hệ thống cung cấp.
Hoạt động của hệ thống
Hệ thống dưới phần cứng có 2 phần hoạt động riêng biệt nhau, dưới đây là mô tả về quá trình hoạt động của hệ thống:
Phần nhận diện ngủ gật: Jetson Nano đóng vai trò xử lý quá trình nhận diện ngủ gật từ dữ liệu thu được từ Webcam Quá trình nhận diện ngủ gật được thực hiện bằng việc sử dụng các thuật toán và mô hình học sâu đã được triển khai trên Jetson Nano Kết quả của việc nhận diện sẽ được truyền qua ESP32 qua giao thức UART
Phần giám sát phương tiện: ESP đóng vài trò làm MCU để đọc các giá trị thu được từ cảm biến định vị Neo-6M GPS, phân tích gói tin NMEA, từ đó trích xuất các giá trị như kinh độ, vĩ độ,vận tốc và với cảm biến gia tốc ADXL345 sẽ thực hiện tính toán độ lớn của gia tốc và cảnh báo qua buzzer khi các giá trị vượt ngưỡng
Dữ liệu sẽ được từ ESP32 gửi lên AWS IoT Core, nó đóng vai trò làm MQTT BROKER qua giao thức MQTT Dữ liệu sau đó chuyển đến AWS Lambda Function để xử lý và lưu dữ liệu vào Database (Dynamo DB)
26 Database này đóng vai trò lưu trữ dữ liệu và phục vụ để truy xuất dữ liệu để xây dựng giao diện ngươi dùng
Sau khi dữ liệu được lưu trữ trong DynamoDB, quá trình tạo giao diện người dùng sẽ được thực hiện như sau:
Truy xuất dữ liệu từ DynamoDB: Dữ liệu từ DynamoDB sẽ được truy xuất bằng cách sử dụng AWS SDK for JavaScript (hoặc @aws- sdk/client-dynamodb) trong Node.js Chuẩn bị dữ liệu để tạo các API
Tạo API Endpoint bằng Node.js: Sử dụng Express framework trong Node.js để tạo các API Endpoint Các API này sẽ trả về dữ liệu được lọc từ DynamoDB dưới dạng JSON
Tạo giao diện người dùng: Sử dụng dữ liệu được trả về từ các API Endpoint để tạo giao diện người dùng Giao diện lúc này muốn truy cập thì cần được xác thực tài khoản người dùng lưu ở Database, sau xác thực thành công có thể theo dõi các thông số thu thập được, định vị được vị trí hiện tại, vị trí cũ và các cảnh báo thời gian thực và lịch sử cảnh báo từ phần cứng gửi lên
Hình 3 2: Sơ đồ khối hệ thống phần cứng
THIẾT KẾ PHẦN CỨNG
Khối đọc ảnh
Hệ thống cảnh báo ngủ gật trên ô tô đòi hỏi một camera có độ phân giải cao và khả năng tái tạo hình ảnh màu sắc chính xác Đặc biệt, chất lượng hình ảnh cần được bảo đảm trong điều kiện ánh sáng khác nhau Khối đọc ảnh phải cung cấp độ sáng ổn định để thu và xử lý hình ảnh một cách chính xác và đáng tin cậy Với những yêu cầu này, Webcam Rapoo XW180 được lựa chọn vì có những ưu điểm phù hợp
Webcam được trang bị độ phân giải Full HD 1080P, mang lại chất lượng hình ảnh sắc nét, rõ ràng và màu sắc chính xác
Hỗ trợ cổng kết nối USB 3.0, giúp kết nối dễ dàng với Jetson Nano và thuận tiện trong việc lập trình
Giá cả phải chăng và kích thước nhỏ gọn
Hình 3 3: Hình ảnh Webcam Rapoo XW180
Webcam Rapoo XW180 là một sản phẩm webcam với những tính năng và thông số kỹ thuật sau:
Độ phân giải video: Webcam này hỗ trợ độ phân giải video lên đến 1080P Full HD, mang lại chất lượng hình ảnh sắc nét và mượt mà
Tốc độ khung hình: Webcam Rapoo XW180 cho phép quay video ở tốc độ 30 khung hình/giây, giúp tái tạo hình ảnh mượt mà và tự nhiên
Công nghệ Noise Reduction: Webcam này có tính năng Noise Reduction, giúp giảm nhiễu và cải thiện chất lượng hình ảnh trong điều kiện ánh sáng yếu
Thiết kế linh hoạt: Webcam Rapoo XW180 được thiết kế nhỏ gọn và linh hoạt Với khả năng xoay 360 độ, nó cho phép bạn dễ dàng điều chỉnh góc quay để tương tác với máy tính thông qua cổng USB.
Khối xử lý ảnh
Hệ thống cần một bộ điều khiển mạnh mẽ để xử lý tín hiệu từ camera và đưa ra tín hiệu cảnh báo khi người dùng thể hiện dấu hiệu của việc ngủ gật Dựa trên các yêu cầu trên, nhóm đã chọn Jetson Nano để làm bộ điều khiển cho hệ thống cảnh báo ngủ gật với các tính năng sau:
Hiệu suất tính toán cao, đáp ứng tốt cho việc xử lý tín hiệu từ camera và phân tích hình ảnh
Có các cổng I/O mở rộng, như GPIO và CSI, cho phép kết nối với các cảm biến và camera
Tiêu thụ điện năng thấp, giúp tiết kiệm năng lượng và phù hợp cho các ứng dụng cảnh báo di động
Hỗ trợ JetPack SDK của NVIDIA, cung cấp các thư viện cần thiết cho việc phát triển và triển khai các ứng dụng Trí tuệ Nhân tạo
Kích thước nhỏ gọn, dễ dàng tích hợp vào hệ thống và mang lại tính di động cao
Giá cả phù hợp và hiệu suất tốt, là lựa chọn lý tưởng cho dự án cảnh báo ngủ gật
Tổng quan về máy tính nhúng Jetson Nano
Bộ phát triển NVIDIA Jetson Nano mang lại hiệu suất tính toán mạnh mẽ cho Trí tuệ Nhân tạo ở quy mô nhỏ, với công suất và chi phí hợp lý Các nhà phát triển, học viên và người làm thủ công có thể chạy các ứng dụng Trí tuệ Nhân tạo như phân loại hình ảnh, nhận diện đối tượng, phân đoạn và xử lý giọng nói Bộ phát triển này được trang bị các cổng I/O mở rộng, từ GPIO đến CSI, giúp kết nối với nhiều loại cảm biến khác nhau một cách dễ dàng Với tiêu thụ điện năng chỉ cần 5 watt, Jetson Nano là một giải pháp hiệu quả về năng lượng Bên cạnh đó, nó được hỗ trợ bởi NVIDIA JetPack, bao gồm BSP, Linux OS, CUDA, cuDNN và TensorRT, giúp đơn giản hóa việc triển khai và phát triển các ứng dụng Trí tuệ Nhân tạo SDK JetPack này cũng tương thích hoàn toàn với nền tảng Trí tuệ Nhân tạo hàng đầu của NVIDIA, giúp giảm bớt độ phức tạp và nỗ lực cho các nhà phát triển
Hiệu suất mạnh mẽ trong một mô-đun kích thước bỏ túi:
Chỉ với kích thước 100 x 80 x 29 mm, mô-đun Jetson Nano này đã sẵn sàng cho việc triển khai Trí tuệ Nhân tạo
Jetson Nano cung cấp 472 GFLOPs cho các thuật toán Trí tuệ Nhân tạo hiện đại Nó có thể chạy đồng thời nhiều mạng nơ-ron và xử lý các cảm biến độ phân giải cao
Phát triển, đổi mới với Trí tuệ Nhân tạo, thị giác máy tính, tính toán hiệu suất cao mạnh mẽ và hiệu quả với chỉ 5 đến 10 watt
Hình 3 4: Jetson Nano Bảng 3 1: Bảng thông số kỹ thuật của Jetson Nano
CPU Quad-Core ARM A57 @ 1.43 GHz
Memory 4 GB 64-bit LPDDR4 25.6 GB/s
USB connector 4x USB 3.0, 1x Micro-USB port 5V power input or for Device mode
Camera 2x MIPI CSI-2 DPHY lanes
Input Power DC Jack, 5VDC-3A
Khối xử lý trung tâm
Module xử lý trung tâm của khối giám sát rất quan trọng Nó thu thập và xử lý dữ liệu từ các cảm biến và khối xử lý ảnh Module có nhiệm vụ truyền dữ liệu đến lưu trữ vào cơ sở dữ liệu và nhận tín hiệu điều khiển từ web để điều chỉnh hoạt động của khối vận hành Để thực hiện các chức năng này, nhóm đã chọn sử module ESP32-WROOM-
32 Module này được tích hợp cả WiFi và Bluetooth, cung cấp khả năng kết nối mạng và truyền dữ liệu một cách linh hoạt Việc hỗ trợ tự động tải chương trình qua MicroUSB giúp việc phát triển mô hình IoT trở nên nhanh chóng và tiện lợi hơn, đồng thời giúp tiết kiệm thời gian và công sức cho những người thực hiện dự án
Hình 3 5: Module Wifi ESP32-WROOM-32
32 Bảng 3 2: Bảng thông số kỹ thuật Module Wifi ESP32-WROOM-32 Điện áp hoạt động 3.0 V~3.6 V
Dòng điện hoạt động ~ 90 mA
Nhân xử lý trung tâm ESP32-D0WDQ6 Dual-core low power
SD card, UART, SPI, SDIO, I2C, LED PWM, Motor PWM, I2S, IR, pulse counter, GPIO, cảm biến cảm ứng điện dung, ADC, DAC
Cảm biến tích hợp Hall sensor
Tần số dao động tích hợp 40 MHz
Bộ nhớ flash SPI tích hợp 4 MB
Phạm vi nhiệt độ hoạt động -40 °C ~ +85 °C
Khối cảnh báo
Còi buzzer được lựa chọn cung cấp chất lượng âm thanh chính xác và rõ ràng, giúp cảnh báo ngủ gật trở nên hiệu quả và đáng tin cậy, với nguồn cung cấp là 5V còi buzzer này dễ dàng kết nối và tích hợp với ESP32 thông qua cổng GPIO Với kích thước nhỏ gọn, còi buzzer này không chỉ dễ dàng lắp đặt mà còn không chiếm nhiều không gian trong không gian nội thất của ô tô Còi buzzer này có giá thành phải chăng, phù hợp với ngân sách của dự án, mà vẫn đảm bảo chất lượng và tính năng phù hợp
33 Hình 3 6: Còi BUZZER 5V Bảng 3 3: Bảng thông số kỹ thuật còi BUZZER Điện áp vào 3.5 ~ 5.5V
Dòng điện làm việc 80 dB
Kích thước Đường kính 12mm, cao 9,7mm
Bảng 3 4: Sơ đồ nối chân còi BUZZER và ESP32
Hình 3 7: Sơ đồ nối chân còi BUZZER và ESP32
Khối giám sát
CẢM BIẾN GIA TỐC ADXL345
Cảm biến gia tốc ADXL345 là một thiết bị 3 trục có khả năng giao tiếp qua giao diện I2C và SPI Các bo mạch Breakout của nó được thiết kế để hoạt động với điện áp 3.3V và có thể được điều chỉnh để tương thích với vi điều khiển 5V như Arduino ADXL345 có 4 dải đo từ ±2G đến ±16G và có khả năng đầu ra dữ liệu với tốc độ từ 10Hz đến 3200Hz Đây là một lựa chọn lý tưởng cho các ứng dụng di động Nó có thể sử dụng để phát hiện sự nghiêng trong đo gia tốc tĩnh của trọng lực và đo các chuyển động hoặc va chạm gây ra bởi gia tốc động Với độ phân giải cao (4mg / LSB), nó có thể đo được thay đổi góc dưới 1,0°
Hình 3 8: Cảm biến gia tốc ADXL345 Bảng 3 5: Bảng thông số kỹ thuật ADXL345 Điện áp hoạt động 3.3 ~ 5VDC
Tốc độ lấy mẫu ~ 3200 Hz
35 Bảng 3 6: Sơ đồ nối chân ADXL345 và ESP32
Hình 3 9: Sơ đồ nối chân ADXL345 và ESP32
MODULE ĐỊNH VỊ NEO-6M GPS
Mạch định vị GPS NEO 6M là một module GPS sử dụng hệ thống vệ tinh GPS của Mỹ Nó cung cấp khả năng xác định vị trí nhanh chóng và chính xác, đồng thời tiết kiệm năng lượng, phù hợp để ứng dụng trong điều kiện năng lượng hạn chế Module này sử dụng board điều khiển từ hãng U-BLOX, một nhà sản xuất có nhiều kinh nghiệm trong việc sản xuất các module định vị toàn cầu
Bảng 3 7: Bảng thông số kỹ thuật MODULE NEO-6M GPS Điện áp hoạt động 3 ~ 5VDC
Tốc độ baud mặc định 9600bps
Cold Start : 27s Warm Start : 27s Hot Start: 1s
Tần số Timepulse 0.25 Hz ~ 1 kHz
Kích thước module 23 mm x 30 mm
Bảng 3 8: Sơ đồ nối chân MODULE NEO-6M GPS và ESP32
37 Hình 3 11: Sơ đồ nối chân MODULE NEO-6M GPS và ESP32
Module Sim 4G A7680C là một thiết bị viễn thông di động được thiết kế để cung cấp kết nối dữ liệu 4G LTE và chức năng giao tiếp dựa trên SIM Thiết bị này có thể được sử dụng trong nhiều ứng dụng, từ giám sát tới theo dõi và điều khiển từ xa
Module hỗ trợ kết nối 4G LTE, cung cấp tốc độ truyền dữ liệu cao và ổn định, phù hợp cho các ứng dụng yêu cầu sự liên tục và nhanh chóng
Với khả năng sử dụng SIM Card, A7680C có thể kết nối với mạng di động, mang lại tính linh hoạt và tiện lợi trong triển khai và quản lý
38 Hình 3 12: MODULE SIM 4G A7680C Bảng 3 9: Bảng thông số kỹ thuật Module Sim 4G A7680C Điện áp vào 5 ~ 12VDC
Băng tần LTE-CAT 1 10Mbps
Giao thức mạng TCP/UDP/MQTT/HTTP
Bảng 3 10: Sơ đồ nối chân Module Sim 4G A7680C và ESP32
39 Hình 3 13: Sơ đồ nối chân Module Sim 4G A7680C và ESP32
Khối nguồn
Mục tiêu của hệ thống là thiết kế hệ thống cảnh báo và giám sát cho tài xế lái xe đường dài nên chúng tôi đã lựa chọn một adapter chuyển đổi nguồn xoay chiều về nguồn DC 5V-6A để có thể đáp ứng được điện áp cũng như dòng điện cho hệ thống hoạt động đủ công suất của mình
Bảng 3 11: Công suất hoạt động hệ thống Tên linh kiện Điện áp hoạt động Dòng điện tiêu thụ
Sơ đồ kết nối phần cứng
Dựa trên việc định nghĩa các khối chức năng, nhóm đã sử dụng các thông tin đó để thiết kế sơ đồ nguyên lý riêng cho từng khối Sau khi hoàn thành các sơ đồ nguyên lý cho các khối chức năng riêng lẻ, nhóm tiến hành kết hợp chúng lại để tạo ra sơ đồ nguyên lý tổng thể cho toàn bộ hệ thống phần cứng
Hình 3 14: Sơ đồ kết nối phần cứng
THIẾT KẾ PHẦN MỀM
Thiết kế phần mềm cảnh báo ngủ gật
Thu thập dataset: Để xây dựng một hệ thống cảnh báo ngủ gật hiệu quả sử dụng Jetson, việc thu thập dataset là một bước cực kỳ quan trọng để đảm bảo hiệu suất và độ chính xác của hệ thống Dữ liệu hình ảnh được sử dụng để huấn luyện mô hình nhận diện ngủ gật cần phải phong phú, đa dạng và đảm bảo độ phản ánh chính xác của trạng thái của tài xế
Trong quá trình thu thập dữ liệu, chúng tôi đã lựa chọn các bức ảnh theo các tiêu chí sau:
Ánh sáng tốt: Chúng tôi chỉ lựa chọn các bức ảnh có điều kiện ánh sáng tốt, giúp mặt tài xế được phản ánh rõ ràng và chi tiết
Góc chính diện: Chúng tôi đã quay video ở góc chính diện, đảm bảo rằng mặt tài xế được quay từ phía trước, giúp việc nhận diện trở nên dễ dàng và chính xác hơn
Phân loại trạng thái: Dữ liệu thu thập được đã được phân loại thành 3 trạng thái chính của tài xế: Ngủ gật, tỉnh táo và ngáp
Hình 3 15: Ảnh tài xế ngủ gật
42 Hình 3 16: Ảnh tài xế tỉnh táo
Hình 3 17: Ảnh tài xế ngáp mệt mỏi
Gán nhãn cho hình ảnh: Để gán nhãn cho dữ liệu hình ảnh, nhóm của chúng tôi đã sử dụng trang web makesense.ai Makesense.ai là một công cụ trực tuyến miễn phí giúp gán nhãn cho hình ảnh một cách dễ dàng và nhanh chóng mà không cần phải cài đặt bất kỳ phần mềm phức tạp nào
43 Tính năng của makesense.ai:
Truy cập trực tuyến: Nhờ sử dụng trình duyệt, không cần phải cài đặt bất kỳ phần mềm phức tạp nào, chỉ cần truy cập vào trang web là có thể bắt đầu sử dụng ngay
Hỗ trợ mọi nền tảng: Không phụ thuộc vào hệ điều hành, Makesense.ai được thiết kế để hoạt động trên mọi nền tảng, bao gồm cả Windows, MacOS và Linux
Dễ sử dụng: Makesense.ai cung cấp giao diện đơn giản, dễ sử dụng, giúp việc gán nhãn trở nên nhanh chóng và hiệu quả
Chúng tôi đã sử dụng makesense.ai để gán nhãn cho dữ liệu hình ảnh thu thập được, phân loại tài xế vào 3 trạng thái chính: Tỉnh táo, ngủ gật và ngáp Sau khi gán nhãn, chúng tôi có thể tải xuống dữ liệu đã được chuẩn bị dưới nhiều định dạng sử dụng cho việc huấn luyện mô hình YOLOv8 Điều này giúp việc chuẩn bị dữ liệu trở nên dễ dàng và nhanh chóng hơn, đồng thời tăng cường hiệu suất và độ chính xác của hệ thống nhận diện ngủ gật trên nền tảng Jetson
Nhóm đã thực hiện kiểm tra và đảm bảo tính nhất quán và độ chính xác của dữ liệu đã được gán nhãn, từ đó đảm bảo hiệu suất của hệ thống nhận diện ngủ gật
Hình 3 18: Dán nhãn cho tài xế ngủ gật
44 Hình 3 19: Dán nhãn cho tài xế tỉnh táo
Hình 3 20: Dán nhãn cho tài xế ngáp Sau khi đã gán nhãn cho toàn bộ tệp hình ảnh, chúng tôi tiến hành xuất dữ liệu dưới dạng file txt, chứa thông tin về trạng thái của tài xế cùng với tọa độ và kích thước của bounding box
45 Giá trị đầu tiên là số nguyên biểu thị trạng thái của tài xế:
Tiếp theo là tọa độ x và y của tâm của bounding box, sau đó là chiều rộng và chiều cao của bounding box
Hình 3 21: Thông tin label đã được dán nhãn cho hình ảnh Sau khi đã gán nhãn cho toàn bộ tệp hình ảnh, chúng tôi tiến hành phân chia tập dataset thành các tập train và valid theo tỷ lệ nhất định Đồng thời, chúng tôi tạo một file “data.yaml” để lưu trữ đường dẫn tới các tập train và valid cũng như tên cho các nhãn được sử dụng trong mô hình nhận diện
Phân chia tập dataset: Chúng tôi phân chia tập dataset thành các tập train và valid theo tỷ lệ 70-30:
Đảm bảo đủ dữ liệu cho quá trình huấn luyện: Sử dụng 70% dữ liệu để huấn luyện giúp mô hình học được nhiều hơn từ dữ liệu
Đảm bảo độ chính xác của mô hình: Sử dụng 30% dữ liệu để kiểm tra giúp đánh giá độ chính xác và hiệu suất của mô hình trên dữ liệu mà nó chưa từng thấy
46 Hình 3 23: Data.yaml Trong đó:
train: Đường dẫn tới thư mục chứa hình ảnh trong tập train
val: Đường dẫn tới thư mục chứa hình ảnh trong tập valid
nc: Số lượng nhãn trong tập dữ liệu
names: Tên của các nhãn, tương ứng với các trạng thái của tài xế Quá trình tạo tập dataset và file “data.yaml” giúp chúng tôi tổ chức và quản lý dữ liệu một cách hiệu quả, đồng thời cung cấp thông tin cần thiết cho quá trình huấn luyện mô hình nhận diện ngủ gật trên nền tảng Jetson
Tiền xử lý và tăng cường hình ảnh:
Chúng tôi thực hiện tiền xử lý ảnh trước khi đưa vào huấn luyện mô hình YOLOv8n bằng cách thực hiện resize tất cả các ảnh thành kích thước 640x640 Quyết định này giúp đảm bảo rằng mọi hình ảnh đầu vào đều có kích thước như nhau, tạo điều kiện thuận lợi cho quá trình huấn luyện và dự đoán
Lý do nhóm chọn kích thước 640x640 cho quá trình tiền xử lý:
Phù hợp với input của mô hình YOLOv8n: Kích thước 640x640 được chọn để phù hợp với yêu cầu đầu vào của mô hình YOLOv8n
Tiêu chuẩn hóa quá trình huấn luyện và dự đoán: Kích thước đồng nhất giúp tiêu chuẩn hóa quá trình huấn luyện và dự đoán, từ đó tăng tính nhất quán và dễ dàng so sánh kết quả
Giảm thời gian xử lý và tài nguyên tính toán: Việc giảm kích thước ảnh nhỏ như giảm số lượng pixel trong ảnh, từ đó giảm thiểu thời gian xử lý và tiêu tốn ít tài nguyên tính toán hơn trong quá trình huấn luyện và dự đoán
47 Hình 3 24: Resize ảnh về kích thước 640x640 Bằng cách thay đổi một số thuộc tính của hình ảnh như độ sáng, tạo nhiễu, quay, lật ngang, chúng ta có thể tạo ra nhiều phiên bản khác nhau từ một hình ảnh gốc Điều này giúp tăng cường dữ liệu huấn luyện, giảm nguy cơ overfitting và cải thiện hiệu suất của mô hình Khi một mô hình được huấn luyện trên một loạt các biến thể của dữ liệu huấn luyện, nó có khả năng học được các đặc trưng tổng quát hơn về đối tượng trong hình ảnh Đăc biệt khi triển khai mô hình vào môi trường thực tế, dữ liệu đầu vào có thể chứa các biến thể mà mô hình chưa từng gặp phải trong quá trình huấn luyện Ở quá trình này chúng tôi có sử dụng 5 phiên bản tăng cường:
48 Hình 3 25: Lật ảnh, thang xám, chèn nhiễu
Hình 3 26: Xoay, thay đổi độ sáng
Thiết kế phần mềm giám sát phương tiện
3.4.2.1 Lưu đồ giải thuật cho cảm biến gia tốc ADXL345
Chương trình được thiết kế để đọc dữ liệu từ cảm biến gia tốc ADXL345 và thực hiện các tính toán để đo góc roll và pitch của thiết bị, đồng thời cũng phát hiện và thông báo về các va chạm có thể xảy ra
Ban đầu hệ thống sẽ lưu các giá trị gia tốc 3 hướng vào biến oldx, oldy và oldz, các giá trị gia tốc 3 hướng này ban đầu sễ được cài đặt bằng 0 qua việc lập trình ở phần mềm Từ lần thứ 2 thấy được các giá trị gia tốc, dựa vào thuật toán trên lưu đồ sẽ tìm được các giá trị deltax, deltay, deltaz vốn là giá trị gia tốc thay đổi so với lần đầu Sau đó sẽ tính toán được độ lớn của sự biến thiên gia tốc
54 Hình 3 32: Lưu đồ giải thuật cho cảm biến gia tốc ADXL345
Khi có được đại lượng độ lớn biến thiên của gia tốc, bắt đầu so sánh với ngưỡng gia tốc đã đề cập ở cơ sở lý thuyết, từ đó phát hiện bSáo động
55 Lưu ý: ở lần đầu đại lượng magnitude sẽ luôn lớn hơn sensivity tại vì các biến oldx, oldy, oldz ở lần đầu đều bằng 0, nên phải cài thêm điều kiện là oldx khác 0 để tránh báo động sai ADXL345 không những phát hiện được va chạm, ngoài ra còn phát hiện được tình huống nếu xe bị lật hoặc nghiêng qua các đại lượng roll và pitch Độ nghiêng theo trục X được gọi là roll, và nó cho biết vật nghiêng về bên trái hay bên phải Để tính roll, chúng ta sử dụng hàm sau:
Arctan (y, x) là hàm arctangent của y/x, và nó trả về giá trị góc trong khoảng từ -π đến π radian
Sqrt(x^2+z^2) là căn bậc hai của tổng bình phương của x và z, được sử dụng để chuẩn hóa giá trị gia tốc trên trục y Tương tự với roll, pitch cho biết vật nghiêng về trước hay đổ về sau:
𝜋 (3 2) Để dữ liệu trở nên ổn định, sử dụng bộ lọc thông thấp với phương pháp IIR để làm mịn dũ liệu, ở đây là roll và pitch với giá trị 𝛼 = 0.94 Các giá trị đã được lọc có công thức như sau:
Nếu 2 giá trị roll và pitch nhỏ hơn -20 và lớn hơn 20, đồng nghĩa với việc, thiết bị ở trạng thái nghiêng 20 độ ở mọi góc (trên, dưới, trái, phải), và từ đó sẽ kích hoạt khối báo động
3.4.2.2 Lưu đồ giải thuật cho cảm biến GPS NEO6M
Lưu đồ thể hiện một cách cơ bản về cách hoạt động của GPS NEO6M trong hệ thống, 3 giá trị vận tốc, kinh độ, vĩ độ, dữ liệu được lưu vào biến toàn cục, phục vụ cho việc gửi dữ liệu lên Database
Module GPS NEO-6M có một anten để nhận tín hiệu từ các vệ tinh GPS Để hoạt động hiệu quả, nó cần nhận tín hiệu từ ít nhất 4 vệ tinh Tín hiệu từ các vệ
56 tinh này chứa thông tin về vị trí của vệ tinh và thời gian phát tín hiệu Chip GPS NEO-6M tính vận tốc của thiết bị bằng cách xem xét sự thay đổi vị trí của nó theo thời gian Nó sẽ liên tục theo dõi vị trí của mình và so sánh vị trí hiện tại với vị trí trước đó
Hình 3 33: Lưu đồ giải thuật cho cảm biến GPS NEO6M
57 3.4.2.3 Lưu đồ giải thuật cho Module SIM A7680C
Hình 3 34: Lưu đồ giải thuật cho Module SIM A7680C Lưu đồ thể hiện quá trình hoạt động của Module SIM A7680C trong hệ thống phần cứng Hệ thống sẽ sử dụng lệnh AT để kết nối với module SIM A7680C Khi có tín hiệu ngủ gật hoặc va chạm được phát hiện, hệ thống sẽ sử dụng lệnh AT để thiết lập nội dung tin nhắn SMS cảnh báo, bao gồm thông tin về thời điểm xảy ra sự kiện và vị trí hiện tại của xe, đồng thời sẽ thực hiện cuộc gọi về liên lạc của người theo dõi đã được đăng ký trước
Quá trình này giúp hệ thống cảnh báo ngay lập tức về sự cố và cung cấp thông tin chi tiết về vị trí hiện tại của xe, giúp người theo dõi có thể nhanh chóng phản ứng và đưa ra biện pháp cần thiết
58 3.4.2.4 Lưu đồ giải thuật cho xử lý dữ liệu ở khối xử lý trung tâm Để việc nhận dữ liệu từ cảm biến cũng như ghi dữ liệu lên cơ sử dữ liệu một cách ổn định và nhanh chóng, người thực hiện đề tài chia nhỏ các công việc của toàn hệ thống được xử lý ở khối xử lý trung tâm thành 6 công việc và điều tiết, quản lý các công việc này thông qua hệ điều hành RTOS
Công việc 1: Xử lý dữ liệu từ cảm biến gia tốc ADXL345
Công việc 2: Xử lý dữ liệu từ cảm biến định vị GPS NEO6M
Công việc 3: Giao tiếp UART với JETSON NANO để lấy tín hiệu ngủ gật
Công việc 4: Cảnh báo phần cứng và thực hiện SMS, CALL
Công việc 5: Gửi dữ liệu sau xử lý lên cơ sơ dữ liệu
Hình 3 35: Lưu đồ giải thuật cho xử lý dữ liệu ở khối xử lý trung tâm
59 Sau khi nhận dữ liệu từ cảm biến và giao thức UART, ESP32 sẽ tiến hành xử lý dữ liệu nhận được Trước tiên, ESP32 sẽ cấu hình để thiết lập kết nối với AWS IoT Core Để làm điều này, ESP32 sẽ sử dụng một tập lệnh MQTT để kết nối với máy chủ MQTT của AWS IoT Core
Quá trình kết nối này bao gồm:
Xác thực: ESP32 cần cung cấp thông tin xác thực, bao gồm cả thông tin về máy chủ MQTT của AWS IoT Core và các thông tin xác thực (như AWS Access Key và Secret Key)
Thiết lập kết nối MQTT: ESP32 sử dụng thư viện MQTT để thiết lập kết nối với AWS IoT Core thông qua giao thức MQTT
Triển khai giao diện người dùng bằng website
3.4.3.1 Lưu đồ kết nối dữ liệu với DynamoDB
Quy trình bắt đầu bằng việc khởi tạo ứng dụng, nơi ứng dụng Express.js được thiết lập và khởi chạy Tiếp theo, cấu hình server Express được thực hiện, trong đó một server Express mới được tạo ra và cấu hình các thiết lập cơ bản Sau đó, ứng dụng thiết lập middleware tĩnh để phục vụ các tệp tĩnh từ thư mục public, cho phép ứng dụng cung cấp các tệp HTML, CSS, và JavaScript từ thư mục này
Khi đã cấu hình xong các phần cơ bản, bước tiếp theo là khởi tạo client DynamoDB Trong bước này, client DynamoDB được cấu hình với vùng ap- southeast-2 để kết nối với cơ sở dữ liệu DynamoDB trong vùng này Khi server khởi động, nó sẽ thực hiện truy vấn lần đầu tiên để lấy dữ liệu từ bảng DynamoDB với tên bảng là trackingg Nếu việc lấy dữ liệu thành công, dữ liệu sẽ được lưu trữ và ghi log cập nhật để xác nhận rằng dữ liệu đã được lấy thành công Ngược lại, nếu việc lấy dữ liệu thất bại, lỗi sẽ được ghi lại trong log
61 Để đảm bảo dữ liệu luôn được cập nhật, ứng dụng đặt một khoảng thời gian để lấy dữ liệu mới mỗi 1 giây Nếu quá trình lấy dữ liệu mới thành công, dữ liệu đã lưu sẽ được cập nhật với dữ liệu mới Nếu quá trình này thất bại, lỗi sẽ được ghi lại trong log Sau khi thiết lập xong các bước lấy và cập nhật dữ liệu, các route cần thiết cho ứng dụng được định nghĩa Route GET / sẽ phục vụ tệp index.html, trong khi route GET /getData sẽ trả về dữ liệu đã lưu dưới dạng JSON
Cuối cùng, server được khởi động và lắng nghe các yêu cầu trên cổng 3000 Khi server bắt đầu lắng nghe, ứng dụng sẽ sẵn sàng nhận và xử lý các yêu cầu từ client, đồng thời phục vụ dữ liệu đã lấy từ DynamoDB Quy trình kết thúc khi server đang chạy và phục vụ dữ liệu một cách liên tục
Hình 3 37: Lưu đồ kết nối dữ liệu với DynamoDB
62 3.4.3.2 Lưu đồ và giải thuật cho tính năng đăng nhập
Hình 3 38: Lưu đồ và giải thuật cho tính năng đăng nhập
Quy trình bắt đầu khi người dùng truy cập trang đăng nhập của website Tại đây, người dùng nhập tên đăng nhập và mật khẩu vào biểu mẫu rồi nhấn "Đăng nhập" Thông tin này được gửi đến server qua yêu cầu HTTP POST Server trích xuất thông tin, kiểm tra tính hợp lệ bằng cách tìm kiếm tên người dùng trong cơ sở dữ liệu Nếu tìm thấy, server so sánh mật khẩu nhập vào với mật khẩu lưu trữ Khi đăng nhập thành công, người dùng được chuyển hướng đến trang chủ hoặc trang chính, có thể truy cập các tính năng chỉ dành cho người dùng đã đăng nhập Server tiếp tục theo dõi và xác thực các yêu cầu trong tương lai Quy trình kết thúc khi người dùng có thể sử dụng các tính năng của website một cách an toàn
Khi đăng xuất, người dùng nhấn nút "Đăng xuất", yêu cầu được gửi đến server, server hủy phiên làm việc hoặc token xác thực Người dùng được chuyển hướng về trang đăng nhập hoặc trang chủ, trạng thái đăng nhập bị xóa, không còn quyền truy cập vào các khu vực cần xác thực Quy trình đăng xuất kết thúc khi người
63 dùng trở lại trạng thái không đăng nhập và không còn quyền truy cập vào các nội dung bảo mật của website
3.4.3.3 Lưu đồ hiển thị thông số và cảnh báo
Hình 3 39: Lưu đồ hiển thị thông số và cảnh báo
Client xử lý dữ liệu nhận được từ server để chuẩn bị cho việc hiển thị Điều này có thể bao gồm việc chuyển đổi định dạng dữ liệu, tính toán các chỉ số hoặc chuẩn bị dữ liệu cho việc hiển thị cảnh báo Dữ liệu nhận được sau đó được sử dụng để hiển thị các thông số cụ thể trên giao diện web Điều này có thể bao gồm hiển thị dữ liệu trong bảng, biểu đồ, hoặc các thành phần khác của giao diện người dùng
Nếu có tín hiệu cảnh báo của các trạng thái Drowsy, Yarn, Shaking thì client có thể hiển thị các cảnh báo tương ứng trên giao diện web Cảnh báo này có thể được hiển thị dưới dạng thông báo pop-up để thông báo tới người quan sát
Cập nhật liên tục: Client có thể tiếp tục nhận dữ liệu từ server thông qua route /getData theo các khoảng thời gian được định sẵn Quá trình này giúp cập nhật thông số và cảnh báo liên tục trên giao diện web, đảm bảo rằng người dùng luôn nhận được thông tin mới nhất và chính xác về trạng thái hoạt động
64 3.4.3.4 Lưu đồ hiển thị vị trí hiện tại của phương tiện
Hình 3 40: Lưu đồ hiển thị vị trí hiện tại của phương tiện Đầu tiên, quá trình bắt đầu với việc khởi tạo một bản đồ bằng công cụ Leaflet Sau đó, dữ liệu toạ độ được lấy và sử dụng để tạo các điểm đánh dấu trên bản đồ Người dùng có thể tương tác với bản đồ, phóng to/thu nhỏ, di chuyển và khám phá các điểm được đánh dấu Người dùng còn có thể chọn xem vị trí tại thời điểm bất kỳ bằng cách chọn trên bản đồ web, hoặc xem vị trí hiện tại của phương tiện Các điểm này sau đó được hiển thị chi tiết, cho phép người dùng xem thông tin cụ thể về từng vị trí Quy trình kết thúc bằng việc cập nhật dữ liệu và hoàn tất toàn bộ quy trình
KẾT QUẢ VÀ ĐÁNH GIÁ HỆ THỐNG
KẾT QUẢ PHẦN CỨNG
Phần hộp được thiết kế 2D bằng phần mềm CorelDraw x8 Nó được thiết kế gồm một mặt chứa 2 lỗ để gắn đèn và loa phát tín hiệu cảnh báo, một mặt để gắn dây nguồn, dây ăng-ten Gps cũng như cổng USB để lắp camera Mặt trên cùng được khoét một lỗ tròn để quạt tản nhiệt Jetson Nano hoạt động hiệu quả đồng thời có một khe cắm thanh kẹp camera để nhận diện trạng thái lái xe của tài xế
Phần cứng hệ thống được mô tả trong hình 4.1 bao gồm: Jetson Nano, Webcam Rapoo XW180, ESP32, Cảm biến gia tốc ADXL345, Modue NEO-6M GPS, Module SIM 4G A7680C, loa BUZZER, led cảnh báo và các tụ bảo vệ nguồn
Hình 4 2: Kết quả phần cứng
Hình 4 3: Sản phẩm hoàn thiện
KẾT QUẢ PHẦN MỀM
Kết quả giám sát và cảnh báo
Khi tài xế được phát hiện có các tình trạng ngủ gật hoặc mệt mỏi, không tập trung thì hệ thống sẽ thực hiện cơ chế cảnh báo
Hình 4 4: Trường hợp cảnh báo tài xế
Hình 4 5: Trường hợp tài xế tỉnh táo
Khi hệ thống nhận diện các trường hợp như hình 4.4 và khi nhận thấy sự rung lắc của phương tiện, chúng tôi thiết lập một cơ chế cảnh báo tự động để bảo vệ tài xế Khi phát hiện ra tài xế có dấu hiệu ngủ gật hoặc ngáp, hệ thống sẽ kích hoạt loa cảnh báo và đồng thời kích đèn LED nhấp nháy liên tục Tín hiệu cảnh báo sẽ tiếp tục phát ra cho đến khi hệ thống nhận diện được rằng tài xế đã tỉnh táo trở lại
68 Trong trường hợp tài xế ngừng ngủ gật hoặc ngáp, và không còn dấu hiệu của rung lắc, hệ thống sẽ ngừng phát tín hiệu cảnh báo từ loa và tắt đèn LED Điều này giúp đảm bảo rằng hệ thống chỉ cảnh báo khi cần thiết, giữ cho quá trình lái xe an toàn và không làm phiền tài xế trong các tình huống không cần thiết
Bên cạnh việc phát tín hiệu cảnh báo trực tiếp từ loa và led cảnh báo, hệ thống còn tiến hành đọc vị trí của tài xế tại thời điểm tài xế ngủ gật hoặc gặp tình huống rung lắc xe và gửi tin nhắn tới số điện thoại đăng ký ban đầu nhằm thông báo vị trí của tài xế người theo dõi có thể kịp thời đưa ra các biện pháp xử lý
Hình 4 7: Gửi tin nhắn thông báo
Kết quả của giao diện người dùng Website
Gói tin sau khi được đẩy lên AWS IoT Core:
Sau khi đóng gói gói tin từ phần cứng, phần cứng sẽ sử dụng giao thức MQTT để đẩy dữ liệu lên Topic đã đăng ký trên MQTT BROKER là AWS IoT Core Gói tin nhận được thành công sẽ có dạng :
Hình 4 8: Hình ảnh gói tin nhận được trên AWS IoT Core
Dữ liệu dưới dạng bảng ở DynamoDb:
Sau khi nhận được gói tin thành công từ các thiết bị được kết nối đến AWS IoT Core, quá trình tiếp theo là chuyển dữ liệu này tới một Lambda Function Trong mô hình này, Lambda Function được sử dụng để xử lý và chuyển tiếp dữ liệu từ IoT Core vào một bảng dữ liệu trên Amazon DynamoDB
Trong quy trình này, Lambda Function có nhiệm vụ trích xuất dữ liệu từ gói tin nhận được, và sau đó chuyển tiếp hoặc lưu trữ dữ liệu này vào DynamoDB
70 Điều này thường được thực hiện thông qua các cuộc gọi API từ Lambda đến DynamoDB để thêm dữ liệu mới hoặc lấy dữ liệu ngược từ DynamoDB để thực hiện tính toán
Hình 4 9: Hình ảnh dữ liệu dạng bảng trên DynamoDB 4.2.2.1 Giao diện tính năng đăng nhập
Hình 4 10: Giao diện tính năng đăng nhập
Người dùng có thể sử dụng Tài khoản và Mật khẩu được thiết lập để truy cập vào Website để sử dụng giao diện người dùng Nếu thông tin không hợp lệ thì sẽ xuất hiện cảnh báo lỗi đăng nhập
Sau khi đăng nhập thành công, người dùng sẽ được chuyển tới giao diện chính của Website
71 Hình 4 11 Giao diện chính của website 4.2.2.2 Giao diện hiển thị thông số
Hình 4 12: Giao diện hiển thị thông số
Sau khi lấy được dữ liệu từ cơ sở dữ liệu về Website, thì sẽ hiển thị các thông số như thống kê số lần trên một ngày : Ngủ gật, mất tập trung, rung lắc, và thông số tốc độ hiện tại của phương tiện
Khi có tín hiệu cảnh báo mới nhất về 3 tình trạng trên cũng như nếu xe vượt quá tốc độ quy định thì sẽ có thông báo ngay lập tức ở giao diện nhằm cảnh báo người dùng
72 4.2.2.3 Giao diện định vị vị trí
Hình 4 13: Giao diện định vị vị trí
Người dùng các tuỳ chọn để định vị vị trí như xem Vị trí hiện tại, vị trí cũ, bằng cách nhấn Button hoặc lựa chọn thời gian muốn xem lại vị trí của phương tiện
73 4.2.2.4 Giao diện tính năng xem lịch sử cảnh báo
Ngoài việc có thể theo dõi thời gian thực các cảnh báo nếu có, người dùng có thể xem lại lịch sử cảnh báo đã nhận được từ Website Bên canh đó có thể truy cập File Dataset từ Sheet để phục vụ cho việc sử dụng khác
Hình 4 14: Giao diện lịch sử cảnh báo
ĐÁNH GIÁ KẾT QUẢ CỦA MÔ HÌNH
Đánh giá phần giám sát tài xế
4.3.1.1 Thực nghiệm trên tập ảnh bất kỳ
Trong nghiên cứu khoa học, bất kỳ kết luận nào đều được rút ra đều phải dựa trên dữ liệu quan sát thực tế Vì thế việc đánh giá mô hình nhận diện ngủ gật sử dụng Yolov8 trên tập dữ liệu thực nghiệm là cần thiết Chính vì thế chúng tôi đã thực hiện dự đoán trên tập test gần 3000 ảnh và 8 video
74 Hình 4 15: Thực nghiệm trên ảnh có đeo kính
Hình 4 16: Thực nghiệm trên tập ảnh bất kỳ
75 4.3.1.2 Đánh giá hiệu suất của việc nhận diện
Dựa trên ma trận nhầm lẫn (Confusion Matrix) có thể tính toán các thông số để đánh giá: True Positives (TP), True Negatives (TN), False Positives (FP), và False Negatives (FN) cho từng lớp (microsleep, neutral, yawning) đồng thời tính ra độ chính xác của mô hình cho từng class trong bài toán
TP = 1306 (số lượng mẫu microsleep được dự đoán đúng)
FP = 207 + 87 + 64 = 358 (tổng số lượng mẫu từ các lớp neutral, yawning, background được dự đoán là microsleep)
FN = 19 + 6 + 7 = 32 (tổng số lượng mẫu microsleep được dự đoán là các lớp khác)
TN = 967 + 35 + 52 + 71 + 752 + 56 + 28 +24 = 1985 (tổng số tất cả các giá trị còn lại trong ma trận không thuộc hàng hoặc cột của microsleep) Để tính độ chính xác ta có công thức:
Từ công thức (4.1) ta có thể tính được độ chính xác cho class Microsleep
TP = 967 (số lượng mẫu neutral được dự đoán đúng)
FP = 7 + 35 + 52 = 94 (tổng số lượng mẫu từ các lớp microsleep, yawning, background được dự đoán là neutral)
FN = 207 + 71 + 28 = 306 (tổng số lượng mẫu neutral được dự đoán là các lớp khác)
TN = 1306 + 87 + 64 + 6 + 752 + 56 + 19 + 24 = 2314 (tổng số tất cả các giá trị còn lại trong ma trận không thuộc hàng hoặc cột của neutral)
Từ công thức (4.1) ta có thể tính được độ chính xác cho class Neutral:
TP = 752 (số lượng mẫu yawning được dự đoán đúng)
FP = 6 + 71 + 56 = 133 (tổng số lượng mẫu từ các lớp microsleep, neutral, background được dự đoán là yawning)
FN = 87 + 35 + 24 = 146 (tổng số lượng mẫu yawning được dự đoán là các lớp khác)
TN = 1306 + 207 + 64 + 7 + 967 + 52 + 19 +28 = 2650 (tổng số tất cả các giá trị còn lại trong ma trận không thuộc hàng hoặc cột của yawning)
Từ công thức (4.1) ta có thể tính được độ chính xác cho class Yawning:
3681 = 0.924 Độ chính xác của các lớp microsleep (89,4%), neutral (89,1%), Yawning (92,4%) cho thấy hiệu suất của mô hình Yolov8n tương đối cao trong bài toán nhận diện ngủ gật Nhưng độ chính xác chỉ thể hiện một cách tổng quát mà không quan tâm đến bounding box có chính xác hay không vì thế chúng ta cần phải quan tâm đến các thông số khác như IoU, precision, recall, F1 score và mAP
Chỉ số IoU biểu thị cho việc bounding box có được vẽ chính xác hay không do đó việc đặt ngưỡng threshold = 0.5 để loại bỏ các bounding box có IoU < 0.5 là vô cùng cần thiết từ đó ta thu được đồ thị Precision-Recall Curve như hình dưới Đồ thị cho thấy hiệu suất mô hình khá cao khi AP của các class đều lớn hơn 90% Đối với F1 score nó thể hiện việc cân bằng Precision và Recall, ở đồ thị dưới ta đánh giá được F1 đạt mức cao nhất 0,87 ở độ tin cậy 0.56 đồng thời mô hình còn duy trì được sự cân bằng tốt giữ Precision và Recall ở mức độ tin cậy khác
Hình 4 18: Đồ thị PR-Curve
Hình 4 20: Kết quả training Kết quả đánh giá mô hình có hiệu suất tốt khi mà các chỉ số hàm mất mát như box_loss, cls_los, dfl_loss đều giảm đáng kể trong quá trình huấn luyện và kiểm tra, chứng tỏ mô hình học và tối ưu một cách hiệu quả Bên cạnh đó cả chỉ số đo lường hiệu suất như Presicion, Recall, mAP cũng tăng lên cho thấy khả năng phát
79 hiện đối tượng của mô hình liên tục được cải thiện Có thể thấy mô hình có độ tin cậy cao và hiệu quả trong việc phát hiện ngủ gật cho tài xế
4.3.1.3 Đánh giá tốc độ xử lý
Mục tiêu của đề tài là xử lý và cảnh báo với tốc độ realtime do đó việc suy luận dự đoán qua camera cần FPS cao để đáp ứng được nhu cầu của đề tài Chúng tôi tiến hành đo tốc độ FPS của mô hình khi chạy trên máy tính nhúng Jetson Nano khi sử dụng CPU và khi sử dụng GPU Việc sử dụng GPU để xử lý nhận diện cho thấy tốc độ xử lý vượt trội so với việc chỉ sử dụng CPU khi FPS đạt xấp xỉ 7 trong khi CPU chỉ xấp xỉ 1 FPS Với yêu cầu của bài toán là việc cảnh báo không được chậm trễ quá 1s thì việc FPS đạt 7 là có thể chấp nhận và sử dụng cho mô hình cảnh báo
Hình 4 21: FPS đạt được khi sử dụng GPU
Hình 4 22: FPS đạt được khi sử dụng CPU
Đánh giá phần giám sát phương tiện
Phần này bao gồm các phần thu thập dữ liệu, cảnh báo và gửi dữ liệu lên cơ sở dữ liệu
Với phần thu thập dữ liệu:
Với Module định vị GPS, cần đặt GPS ở nơi thoáng đãng mới có thể bắt được dữ liệu tốt Dữ liệu từ GPS có thể cung cấp thông tin về vị trí địa lý với độ chính xác khá tốt, nhưng cũng có thể có sai số nhất định
Cảm biến gia tốc có độ nhạy tốt, đã đo lường dữ liệu có độ chính xác khá cao, ổn định, phạm vi đo lường lớn Tuy nhiên vẫn có thể có sai số và nhiễu từ môi trường xung quanh
Hệ thống sử dụng cả LED và BUZZER để cảnh báo , cả hai đều hoạt động ổn định, kịp thời và mang lại hiệu quả cảnh báo tốt
Về phần gửi dữ liệu:
Về việc gửi dữ liệu lên cơ sở dữ liệu, hệ thống sử dụng Wifi làm giao thức kết nối lên cơ sở dữ liệu, nên dữ liệu được truyền với kết nối ổn định, theo chu kì đã thiết lập đều đặn, để tránh tính trạng dữ liệu bị ngắt quảng khi mạng Wifi không ổn định, nhóm đã thiết lập thêm sử dụng Module SIM 4G LTE để giúp việc đẩy dữ liệu đi để bảo đảm dữ liệu không bị mất
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN