Đối với hai hệ thống cảnh báo ngủ gật và hệ thống cảnh báo va chạm sớm số lần thực nghiệm cho mỗi hệ thống là 100 lần.Trong 100 lần thực nghiệm đó thì xác suất về độ chính xác của mỗi hệ thống là 60-65%.Qua kết quả đạt được thì nhóm em rút ra một trong những nguyên nhân chính gây ảnh hưởng đến độ chính xác khi hoạt động của hệ thống là ánh sáng.Đối với việc xử lý ảnh thì ánh sáng đóng một vai trò vô cùng quan trọng,nó quyết định đến độ ổn định của hệ thống cũng như khả năng xử lý.Ta có thể hiểu đơn giản là khi thiếu ánh sáng hay lượng ánh sáng quá nhiều sẽ làm cho hình ảnh bắt được từ camera không tốt,và khi hình ảnh được thu nhận không tốt dẫn đến việc nhận dạng sẽ bị sai lệch.Chính vì vậy dẫn đến việc hệ thống sẽ đưa ra xử lý không đúng.
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1. Kết luận
Sau khi tiến hành thực nghiệm, cho thấy mô hình đã hoạt động ổn định với độ chính xác nhận diện từ 60-65%. Tuy nhiên, trong quá trình xử lí có thể xảy ra một vài tình huống mất ổn định do độ phân giải của các camera trong mô hình còn chưa tối ưu. Ngoài ra, mô hình chỉ ổn định đối với khoảng cách xác định nằm trong khoảng từ 50- 80 cm ( đối với camera được lắp đặt để nhận diện khuôn mặt của tài xế) và 18-20 m (đối với camera dùng để xác định khoảng cách đến vật cản (xe ô tô) phía trước. Trong khoảng nói trên, độ chính xác của mô hình là tốt nhất và hoạt động ổn định nhất và cho ra kết quả mang tính chính xác cao nhất.
5.2. Hướng phát triển
Theo kết quả ta thu được từ thực nghiệm, thì độ ổn định của mô hình bị ảnh hưởng rất nhiều bởi môi trường. Nên việc tối ưu hóa để tăng sự ổn định thì ta có hai phương pháp chủ yếu. Đầu tiên, ta có thể tối ưu hóa phần cứng như hệ thống camera và các thấu kính giúp tăng sự ổn định của ánh sáng thu được, đồng thời tối ưu hóa chương trình xử lí ảnh. Ưu điểm của phương pháp này là xây dựng trên nhưng gì ta đã có, nhưng chi phí cao và cần nhiều thời gian và kiến thức về xử lí ảnh để tối ưu hóa giải màu mà chúng ta xử lí. Hoặc ta có một phương pháp đã được tối ưu nhằm mục đích khắc phục những điểm yếu khi xử lí ảnh mà ta đã sử dụng. Phương pháp đó gọi là deep learning.
Deep learning là một lĩnh vực của machine learning liên quan đến các thuật toán lấy cảm hứng từ cấu trúc và chức năng của bộ não được gọi là mạng lưới thần kinh nhân tạo. Cách hoạt động cơ bản của các phương pháp sử dụng deep learning như sau[9] :
- Cung cấp dữ liệu về vật thể mà ta muốn xác định. Cụ thể dữ liệu mà ta đề cập đến là rất nhiều ảnh mẫu, trong đó chứa vật thể mà ta hướng đến.
- Mỗi bức ảnh sẽ được giải mã chi tiết dưới nhiều cấp độ. Ví dụ một ảnh đầu vào có kích thước 50x50 sẽ được chia nhỏ thành các ảnh nhỏ có kích thước 7x7,5x5,.. - Thuật toán sẽ kiểm tra xem các đặc điểm, chi tiết chung giữa các bức ảnh. Nếu
một hình dạng hoặc các đường được lặp lại nhiều lần, thuật toán sẽ gắn nhãn nó như là một đặc tính quan trọng.
- Sau khi phân tích đủ hình ảnh cần thiết, ta sẽ thu được một thuật toán mà chứa đầy đủ các đặc trưng của vật thể mà ta muốn xác định. Giờ đây ta chỉ việc cung cấp các ảnh thô thông thường, để máy tính có thể xác định vật thể đó.
Hình 5.1: Nguyên lí cơ bản của deeplearning
Ví dụ đối với chương trình xác định khuôn mặt, deep learning hoạt động như sau:
- Từ những hình ảnh mẫu mà chúng ta cung cấp. Máy tính chuyển đổi ảnh mẫu thành các mẫu tương phản cục bộ.
- Lớp đầu tiên ( hidden layer 1) sử dụng các mẫu tương phản để xác định các đặc trưng như mắt, mũi miệng.
- Lớp thứ hai ( hidden layer 2) có thể áp dụng các đặc điểm khuôn mặt đó để đưa ra các mẫu khuôn mặt.
- Cuối cùng hình thành một mạng lưới thần kinh có khả năng kết hợp các nơron thần kinh ( các thuật toán thể hiện đặc trưng riêng lẻ) thành một mạng lưới phức tạp. Có khả năng phân tích và nhận diên khuôn mặt ở nhiều điều kiện khác nhau. Dựa theo nguyên tắc nhận diện của deep learning là dự vào đặc điểm cấu trúc thay vì đặc điểm màu của phương pháp mà ta đang sử dụng. Thì việc nhận diện sẽ không còn
ảnh hưởng quá nhiều bởi ánh sáng. Nhờ thế khắc phục điểm yếu của chương trình của chúng ta.
Cụ thể phương pháp sử dụng deep learning mà nhóm em nghiên cứu là tensorflow object detection api. Phương pháp này sử dụng tensorflow/models[10] và model zoo[11] để nhận diện vật thể.
Trong đó model zoo là mô hình nhận diện được đào tạo sẵn dựa trên dữ liệu bao gồm : COCO dataset, Kitti dataset, Open Images dataset, AVA v2.1 dataset,
iNaturalist Species Detection Dataset , Snapshot Serengeti Dataset. Những mô hình này có các mô hình nhận diện được xây dựng sẵn, chúng ta có thể sử dụng các mô hình có sẵn này cho các mục đích khác có liên quan. Chúng cũng hữu ích cho việc xây dựng các mô hình của chúng ta, khi muốn tạo một bộ dữ liệu mới. Cụ thể trong mỗi model được đào tạo trước, sẽ cung cấp:
- Một mô hình tương ứng với tệp cấu hình đã được sử dụng để đào tạo mô hình trong thư mục samples/configs.
- Tệp tar.gz chứa mô hình đào tạo trước.
- Tốc độ mô hình. Là thời gian đào tạo của một hình ảnh chuẩn 600x600 tính bằng ms. Tuy nhiên thời gian này chỉ mang tính tương đối vì nó phụ thuộc vào cấu hình của thiết bị sử dụng.
- Hiệu suất nhận diện của model, được tính bằng mAP. - Dữ liệu đầu ra ( boxes và masks)
Tensorflow/models là một chương trình phát triển để nhận diện vật thể dựa trên gói tensorflow. Chương trình này bao gồm các thư mục nhằm mục đích đào tạo các nhận diên vật thể.
Các bước để xây dựng một mô hình ngẫu nhiên bao gồm[12]:
- Thu thập các dữ liệu ảnh ban đầu chứa các vật thể mà bạn muốn nhận diện. Các ảnh thu thập nên được chụp trong nhiều điều kiện khác nhau ( như vị trí, độ sáng) và ảnh không bị mờ, gãy. Số lượng ảnh phụ thuộc vào độ phức tạp của hình ảnh.
Hình 5.2 : Thu thập hình ảnh mẫu
- Từ những hình ảnh thu thập được. Ta phân vùng của vật thể nhận diện, và đặt tên cho vật thể đó
- Sau đó ta thiết lập các file .pbtxt .csv và các thay đổi cần thiết trên các file
generate_tfrecord.py và file .config phù hợp với các thiết lập của file .pbtxt. Khi các thiết lập đã hoàn chỉnh, ta tiến hành đào tạo mô hình. Thời gian đào tạo mô hình phụ thuộc vào cấu hình máy tính đồng thời ta có thể theo dõi để biết khi nào mô hình đã đủ điều kiện dựa trên giá trị loss . tùy thuộc vào model zoo mà chúng ta sử dụng, thì giá trị loss này khác nhau.
Hình 5.4 : Tiến hành đào tạo mô hình
- Sau khi quá trình đào tạo kết thúc, ta sẽ thu được một mô hình. Ta sử dụng mô hình để tiến hành nhận diện các hình ảnh khác
Mặc dù quá trình đào tạo nhận diện chỉ ở bước thử nghiệm ban đầu nhưng kết quả cho rất tích cực. Độ chính xác nhận được dao động từ 90 - 95 % trong hai điều kiện sáng riêng biệt ( ánh sáng tự nhiên và ánh sáng đèn).
Từ kết quả trên ta đã có ưu, nhược điểm của phương pháp deep learning so với xử lí ảnh phần tầng.
Ưu điểm: Độ chính xác cao, ít ảnh hưởng bởi độ sáng. Không cần quá nhiều kiến thức về xử lí các giải màu ( các giải màu này ảnh hưởng bởi độ sáng ).
Nhược điểm : Tốc độ xử lí ảnh chậm, nên kích cỡ ảnh xử lí nhỏ. Thời gian đào tạo một mô hình khá lâu ( dao động từ 3 đến 12 tiếng ).
TÀI LIỆU THAM KHẢO
[1] Vũ Đức Thái, 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 ”, Đại học Công nghệ thông tin và Truyền thông TP. Thái Nguyên
[2] PGS. Đỗ Văn Dũng, Nghiên cứu “ Ứ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 người lái ”, ĐHSPKT TPHCM
[3] Nguyễn Ngọc Đức, “ Học sinh sáng chế thiết bị chống ngủ gật cho tài xế ô tô ”,
[4] Lê Thế Hải, Lê Thanh Hòa, hướng dẫn PGS.TS. Hoàng Đình Chiến, 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à
[5] Nguyễn Thế Đức, Hồ Văn Chương, giúp đỡ Ths. Trần Lê Thăng Đồng, kỹ sư Tạ Quốc Việt, “ Hệ thống cảnh báo ngủ gật sử dụng GPGA ”, Đại học Duy Tân, Đà Nẵng
[6] Trần Lê Anh Chương, Nguyễn Khắc Hiếu, Đề tài luận văn “ Nhận dạng trạng thái mắt ứng dụng trên Pandaboard ”, Đại học Bách Khoa TPHCM
[7] Nguyễn Quang Trường, Hoàng Mạnh Cường, Vũ Mạnh Cường, Trần Anh Đức, “ Bị "đánh thức" vì tư duy chậm ”, Đại học Bách Khoa Hà Nội, 2013
[8] 15 CN TRUONG QUOC BAO 112 120-1
[9] Khái niệm về deep learning, machine learning, artificial intelligence
https://www.edureka.co/blog/what-is-deep-learning .
[10] tensorflow/models : https://github.com/tensorflow/models/tree/r1.13.0
[11] modelzoo:
https://github.com/tensorflow/models/blob/master/research/object_detection/g3 doc/detection_model_zoo.md
[12] Phương pháp đào tạo mô hình nhận diện của EdjeElectronic
: https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-
Lập trình Python : https://www.youtube.com/watch?v=NZj6LI5a9vc&list=PL33lvabfss1xczCv2BA0Sa NJHu_VXsFtg https://becominghuman.ai/face-detection-with-opencv-and-deep-learning-from-video- part-2-592e2dee648 https://www.youtube.com/watch?v=QV1a1G4lL3U&fbclid=IwAR0h02gbwGJtOATL mR3S8gUkcPdZnFLCbKZHcYWiiTgyKksQ7z9ZgQUMa5Y https://www.youtube.com/watch?v=1I4gHpctXbU&fbclid=IwAR22IWz2d3- N3u0uRy2XtOPVd6osFyGrWOtFOd5wtQw3HJxl8cuSTvY3iRM
PHỤ LỤC
Code chương trình điều khiển bằng LabVIEW:
- Chương trình nhận diện để phát hiện và cảnh báo ngủ gật:
Trong đó, bao gồm các chương trình con có các chức năng khác nhau:
Có 2 trường hợp có thể xảy ra: tài xế không xuất hiện trong khu vực hoạt động của camera (không phát hiện được tài xế) hoặc tài xế xuất hiện trong khu vực hoạt động của camera (bình thường)
- Chương trình tính toán thời gian mở mắt
-Chương trình tính toán thời gian nhắm mắt
Trong chương trình này, ngoài việc có chương trình tính toán khoảng cách từ hệ camera đến vật cản như hình trên còn sử dụng các công cụ chức năng khác như:
Kết nối File dữ liệu Python với chương trình LabVIEW
Tham chiếu dữ liệu đưa từ LabVIEW sang Python
Khởi động chương trình con trong Python