Nội dung thực hiện: Tổng quan về xử lý ảnh; Tìm hiểu phương pháp phát hiện xác minh khuôn mặt và nhận diện khuôn mặt; Phương pháp phát hiện và nhận diện giọng nói; Tìm hiểu về máy tính
Trang 1BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
ỨNG DỤNG XỬ LÝ ẢNH VÀ IOT TRONG HỆ THỐNG GIÁM SÁT TÀI XẾ TRÊN Ô TÔ KẾT HỢP NHẬN
DIỆN GIỌNG NÓI
Thuộc nhóm ngành khoa học: Khoa học kỹ thuật
Lớp, khoa: 211511 – Khoa Điện – điện tử Năm thứ: 3/Số năm đào tạo:4 Ngành học: Công nghệ kỹ thuật điều khiển và tự động hóa
Sinh viên chịu trách nhiệm đề tài: _
Người hướng dẫn: TS Trần Vi Đô
TP Hồ Chí Minh, Tháng 9/Năm 2023
Trang 2CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
*****
NHIỆM VỤ NGHIÊN CỨU KHOA HỌC
TÊN ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH VÀ IOT TRONG HỆ THỐNG GIÁM SÁT TÀI XẾ TRÊN Ô TÔ KẾT HỢP NHẬN DIỆN GIỌNG NÓI
Sinh viên thực hiện:
I NỘI DUNG
1 Các số liệu ban đầu:
Các thiết bị sử dụng trong mô hình : 1 máy tính, 1 wedcam Logitech c270, module SIM800l, mạch NEO-6M GPS định vị, module ESP8266, mạch giảm áp LM2596
2 Nội dung thực hiện:
Tổng quan về xử lý ảnh; Tìm hiểu phương pháp phát hiện xác minh khuôn mặt vànhận diện khuôn mặt; Phương pháp phát hiện và nhận diện giọng nói; Tìm hiểu vềmáy tính và các dạng máy tính nhúng; Tìm hiểu về ngôn ngữ lập trình python và cácthư viện dùng để xử lý ảnh, video; Viết chương trình trên máy tính; Thiết kế chươngtrình máy tính theo dõi tình trạng tài xế trên ô tô; Gửi dữ liệu thu thập được lên cơ sở
dữ liệu; Định vị vị trí tài xế và gửi về số điện thoại khi gặp tai nạn…
II THỜI GIAN THỰC HIỆN
Ngày bắt đầu: 15/05/2023
Ngày hoàn thành:10/09/2023
Tp Hồ Chí Minh, ngày 10 tháng 09 năm 2023
i
Trang 3TÓM TẮT
Ngày nay với sự phát triển và tiến bộ không ngừng của khoa học công nghệ, xử
lý ảnh là một trong những chủ đề cần được quan tâm và phát triển Từ những nghiêncứu ban đầu về ảnh đen trắng, ảnh xám và ảnh màu, xử lý ảnh đã được đi sâu nghiêncứu và ứng dụng rộng rãi trong đời sống hàng ngày Vấn đề về xe tự hành đang pháttriển mạnh ở Việt Nam cũng như thế giới hiện nay, tuy nhiên vẫn chưa đạt độ an toàntuyệt đối để giản bớt nhiệm vụ của tài xế được Do đó, hệ thống giám sát và báo độngcho tài xế khi tham gia giao thông là điều cần thiết
Đề tài “Ứng dụng xử lý ảnh và IOT trong hệ thống giám sát tài xế trên ô tô kếthợp với nhận diện giọng nói” là mô hình nhận diện xác minh tài xế, xử lý khuôn mặtngười dùng để nhận diện trạng thái mắt, miệng phát hiện trạng thái ngủ gật và đưa racảnh báo, từ dữ liệu thu được sẽ gửi lên cơ sở dữ liệu Khi đó dựa trên cảnh báo đó đểđiều khiển được thì chúng tôi đã thêm chức năng có thể điều khiển qua giọng nói vàtrích xuất thông tin đến điện thoại người dùng Dựa trên ngôn ngữ lập trình Python vớithư viện chính là OpenCV Ở đây sử dụng phương pháp sao chép đặc trưng, đặc điểmriêng biệt trên ảnh của người dùng để đi nhận dạng Ngoài ra, hệ thống có kết hợp IOT
để gửi dữ liệu lên cơ sở dữ liệu và gửi vị trí của tài xế về số điện thoại người thân khitài xế gặp tai nạn Kết quả thực hiện của đề tài đã nhận diện được khuôn mặt củangười dùng và điều khiển giọng nói bật tắt chế độ muốn thực hiện và thu thập dữ liệukhông d
ii
Trang 4MỤC LỤC
I NỘI DUNG i
II THỜI GIAN THỰC HIỆN i
TÓM TẮT ii
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢN BIỂU vii
DANH MỤC CÁC HÌNH ẢNH viii
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI 1
CHƯƠNG 1 TỔNG QUAN 3
1.1 Lý do chọn đề tài 3
1.2 Mục tiêu đề tài 4
1.3 Đối tượng nghiên cứu 4
1.4 Giới hạn đề tài 5
1.5 Phương pháp nghiên cứu 5
1.6 Bố cục đồ án 5
1.7 Nội dung đồ án 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 7
2.1 Tổng quan về xử lý ảnh 7
2.1.1 Giới thiệu xử lý ảnh 7
2.1.2 Các bước cơ bản trong xử lý ảnh 14
2.2 Giải thuật AdaBoost [5] 15
2.3 Đặc trưng Haar - Like [5] 17
2.4 Giải thuật Facial Landmarks 21
2.4.1 Giới thiệu về Facial Landmarks [6] 21
2.4.2 Tìm hiểu bộ phát hiện dấu mốc trên khuôn mặt của Cvzone [6] 22
iii
Trang 52.5 Khoảng cách Euclide [7] 22
2.6 Thuật toán facenet: 23
2.6.1 Khái quát thuật toán 23
2.7 Giới thiệu ngôn ngữ Python và thư viện OpenCV 24
2.7.1 Ngôn ngữ Python 24
2.7.2 Thư viện OpenCV 28
2.7.3 Thư viện cvzone: 29
2.8 Tổng quan về máy tính nhúng 29
2.8.1 Giới thiệu tổng quan 29
2.8.2 Ưu điểm và nhược điểm của máy tính nhúng 30
2.8.3 Một số loại máy tính nhúng 30
2.9 Tổng quan về Wedcam Logitech C270 32
2.9.1 Giới thiệu 32
2.9.2 Thông số kỹ thuật 32
2.9.3 Ứng dụng 33
2.10Tổng quan về ESP8266 33
2.10.1 Giới thiệu 33
2.10.2 Thông số kỹ thuật 34
2.10.3 Ứng dụng 34
2.11Tổng quan về Module Sim800L 34
2.11.1 Giới thiệu 34
2.11.2 Thông số kỹ thuật 35
2.11.3 Ứng dụng 35
2.12Tổng quan về mạch GPS định vị 35
2.12.1 Giới thiệu 35
2.12.2 Thông số kỹ thuật 36
iv
Trang 62.12.3 Ứng dụng 36
2.13Xây dựng Website PHP với ESP8266 kết hợp MYSQL: 36
2.13.1 Cài đặt và khởi động phần mềm Xampp : 36
2.13.2 Xây dựng website PHP kết hợp với MySQL : 36
2.14Tổng quan về xử lý giọng nói 39
2.14.1 Mạng lưới thần kinh 40
2.14.2 Hoạt động của mạng lưới thần kinh 40
2.14.3 Xử lý ngôn ngữ tự nhiên 42
CHƯƠNG 3 TÍNH TOÁN THIẾT KẾ 46
3.1 Tính toán và thiết kế hệ thống: 46
3.1.1 Thiết kế sơ đồ khối hệ thống: 46
3.1.2 Vẽ mạch giao tiếp giữa ESP8266, module sim 800L và GPS : 46
3.1.3 Lưu đồ hoạt động toàn bộ chương trình hệ thống : 47
CHƯƠNG 4 THI CÔNG HỆ THỐNG 49
4.1 Giới thiệu 49
4.2 Thi công hệ thống 49
4.2.1 Chuẩn bị phần cứng 49
4.2.2 Lắp ráp và kiểm tra 50
4.2.3 Lập trình hệ thống IOT 51
4.2.4 Lập trình Python 52
4.2.5 Hướng dẫn sử dụng và thao tác 55
CHƯƠNG 5 KẾT QUẢ THỰC NGHIỆM 57
5.1 Kết quả 57
5.2 Nhận xét và đánh giá 63
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
6.1 Kết luận 64
v
Trang 76.2 Hướng phát triển 64
DANH MỤC CÁC TỪ VIẾT TẮT
AI: Artificia Intelligence OpenVC: Open Computer Vision SOC: System On ChipGPIO: General Purpose Input Output DSI: Display Serial Interface
CSI: Camera Serial Interface LCD: Liquid Crystal Display NC: Normal Close
NO: Normal Open
vi
Trang 8DANH MỤC CÁC BẢN BIỂU
Bảng 1: Thông số kỹ thuật Wedcam Logitech C270 33
Bảng 2: Thông số kỹ thuật của ESP8266 34
Bảng 3: Thông số kỹ thuật Module Relay 4 kênh 35
Bảng 4: Thông số kỹ thuật module định vị gps 36
Bảng 5: Liệt kê danh sách phần cứng 49
vii
Trang 9DANH MỤC CÁC HÌNH ẢNH
Hình 2-1: Lân cận 4 và lân cận 8 8
Hình 2-2: Hình tách biên 10
Hình 2-3: Phép giãn 13
Hình 2-4: Phép co 13
Hình 2-5: Sơ đồ xử lý ảnh 14
Hình 2-6: Mô hình phân tầng kết hợp các bộ phận loại yếu 16
Hình 2-7: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh 17
Hình 2-8: Đặc trưng theo cạnh 17
Hình 2-9: Đặc trưng theo đường 18
Hình 2-10: Đặc trưng theo xung quanh tâm 18
Hình 2-11: Đặc trưng theo đường chéo 19
Hình 2-12: Cách tính Integral Image của ảnh 19
Hình 2-13: Cách tính tổng giá trị pixel vùng cần tính 20
Hình 2-14: Hệ thống phát hiện khuôn mặt 20
Hình 2-15: Tọa độ đánh dấu cấu trúc khuôn mặt từ tập dữ liệu trong cvzone 22
Hình 2-16: Ảnh minh họa về quá trình sau huấn luyện 24
Hình 2-17: Các cổng giao tiếp ngoại vi 31
Hình 2-18: Thiết bị Jetson Nano 32
Hình 2-19: Webcam Logitech C270 32
Hình 2-20: Module NodeMCU ESP8266 34
Hình 2-21: Sơ đồ chân module sim 800l 35
Hình 2-22: Hình ảnh mạch định vị GPS 35
Hình 2-23: Cài đặt và khởi chạy xampp 36
Hình 2-24: Tìm địa chỉ IP của mạng đang sử dụng 37
Hình 2-25: File install để đăng nhập vào MySQL 37
Hình 2-26: Gửi dữ liệu thu nhập được lên cơ sở dữ liệu 38
Hình 2-27: Giao diện hiển thị trên cơ sở dữ liệu để theo dõi 38
viii
Trang 10Hình 2-28:Bảng dữ liệu được tạo trên cơ sở dữ liệu 39
Hình 2-29: Các bước xử lý giọng nói 39
Hình 2-30: Hoạt động của mạng lưới thần kinh 41
Hình 2-31: Hình ảnh mô tả trọng số được nhân với tín hiệu đầu vào 42
Hình 2-32: Mô tả về NLP 43
Hình 2-33: Chia toàn bộ tài liệu thành các câu cấu thành 43
Hình 2-34: Token hóa 43
Hình 2-35: Loại bỏ các từ dừng 44
Hình 2-36: Nhét đầy 44
Hình 2-37: Lemma hóa 45
Hình 2-38: Giải thích khái niệm các thành phần trong câu 45
Hình 3-1: Sơ đồ kết nói hệ thống 46
Hình 3-2: Vẽ mạch trên phần mềm Altium 47
Hình 3-3: Lưu đồ hoạt động chính của hệ thống giám sát tài xế 47
Hình 3-4: Lưu đồ hoạt động của hàm xử lý dữ liệu người dùng 48
Hình 3-5: Cách thức ngắt chương trình bằng giọng nói khi đang nhận diện mặt 48
Hình 4-1: Phần cứng giao tiếp các module 50
Hình 4-2: Khai báo các biến để truyền nhận dữ liệu 51
Hình 4-3: Hàm nhận lệnh từ Python và tách chuỗi vừa nhận 51
Hình 4-4: Gửi các dữ liệu đã tách lên cơ sở dữ liệu 52
Hình 4-5: Gửi tin nhắn về người thân khi gặp nguy hiểm 52
Hình 4-6: Khai báo các thư viện và các chức năng cần thiết 53
Hình 4-7: Tạo hàm đọc văn bản và chuyển giọng nói thành văn bản 53
Hình 4-8: Kiểm soát số lượng người dùng đã trong tập dữ liệu dataset 54
Hình 4-9: Hàm nhận diện, xử lý khuôn mặt tài xế 55
Hình 4-10: Mở khung command trực tiếp tại thư mục chứa file 55
Hình 4-11: Kích hoạt môi trường ảo trên Python 56
Hình 4-12: Mở thư mục face-recognition-master 56
Hình 5-1: Bắt đầu chương trình xác minh khuôn mặt 57
ix
Trang 11Hình 5-2: Xác minh thành công tiến hành chọn chế độ 57
Hình 5-3: Khởi động chế độ giám sát tình trạng tài xế 58
Hình 5-4: Dừng chương trình bằng giọng nói 58
Hình 5-5: Dữ liệu được thu thập trên cơ sở dữ liệu 59
Hình 5-6: Gửi tin nhắn định vị vị trí của tài xế cho người thân 59
Hình 5-7: Trường hợp dữ liệu tài xế chưa có trong tệp dữ liệu 60
Hình 5-8: Nhập tên người muốn thêm vào tệp dữ liệu 60
Hình 5-9: Bắt đầu lấy ảnh người dùng 61
Hình 5-10: Xử lý, trích xuất đặc trưng ảnh người dùng và lưu trữ 61
Hình 5-11: Mời người dùng xóa bớt tệp cũ ít sử dụng 62
Hình 5-12: Thêm người mới vào tệp dữ liệu hoàn tất 62
x
Trang 12BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài: Ứng dụng xử lý ảnh trong hệ thống chống ngủ gật trên ô tô kết hợp nhận
diện giọng nói
- Chủ nhiệm đề tài: Trần Minh Hoàng Mã số SV: 21151236
- Thành viên đề tài:
3 Báo Ngọc Đăng Khoa 21151408 211511 Điện – điện tử
- Người hướng dẫn: TS Trần Vi Đô
2 Mục tiêu đề tài:
Xây dựng thuật toán nhận diện khuôn mặt từ thư viện ảnh có sẵn thông quawedcam, Điều khiển hệ thống tiện nghi thông qua giọng nói đã được lập trình
3 Tính mới và sáng tạo:
Là bước đệm cho mô hình xe tự lái, khóa bảo mật, đỗ xe tự động…
4 Kết quả nghiên cứu:
Nhận diện được khuôn mặt của từng người dùng, Điều khiển giọng nói bật, tắt và chọn chế độ chống ngủ gật và gửi thông tin tài xế khi ngủ gật lên cơ sở dữ liệu, Gửi tinnhắn báo động về điện thoại người thân khi tài xế gặp tai nạn
5 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và khả năng áp dụng của đề tài: sử dụng làm mô hình học tập cho sinh viên, có thể phát
triển cho các hệ thống an toàn tiện nghi khác trên xe ô tô…
6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí
nếu có)
hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):
1
Trang 65Hình 4-47: Gửi các dữ liệu đã tách lên cơ sở dữ liệu
Hình 4.4: xế tham gia giao thông là : Tên tài xế, số lần nhắm mắt trong 5s, thời gian nhắm mắt , số lần ngáp và định vị vị trí hiện tại của tài xế Gửi dữ liệu lên cơ sở dữ liệu với chu kì 5s
Hình 4-48: Gửi tin nhắn về người thân khi gặp nguy hiểm
Hình 4.5Khi thời gian nhắm mắt của tài xế đạt ngưỡng nguy hiểm (5 phút ), nguy cơ tài xế bị tai nạn rất cao Do đó hệ thống sẽ gửi tin nhắn về người thân kèm theo định
vị địa chỉ hiện tại của xe để ra tín hiệu cầu cứu
5.2.4 Lập trình Python
54
Trang 66Hình 4-49: Khai báo các thư viện và các chức năng cần thiết
Hình 4-50: Tạo hàm đọc văn bản và chuyển giọng nói thành văn bản
Sử dụng thư viện pyttsx3 để đọc văn bản, tạo trợ lý ảo tương tác với tài xế Để máytính hiểu được tài xế nói, ta cần phải chuyển âm thanh nghe được sang văn bản, từ đó
xử lý các trường hợp có thể xảy ra để đảm bảo hệ thống hoạt động đúng với yêu cầu đãđặt ra
55
Trang 67Hình 4-51: Kiểm soát số lượng người dùng đã trong tập dữ liệu dataset
Do bộ nhớ của hệ thống có giới hạn nên việc kiểm soát bộ nhớ tập dữ liệu là rất cầnthiết Các hàm ở trên có chức năng đếm số thư mục và xóa dữ liệu người dùng cũ đểtiếp nhận người dùng mới , đảm bảo dung lượng hệ thống luôn ở mức ổn định
56
Trang 68Hình 4-52: Hàm nhận diện, xử lý khuôn mặt tài xế
Chức năng của hàm nhận diện khuôn mặt là đếm số lần nhắm mắt, đếm thời gian nhắm mắt, số lần ngáp được xác định bằng các phép tính toán khoảng cách giữa các điểm quan trọng trên khuôn mặt
Trang 69Tiếp theo, ta nhập lệnh : Scripts\activate để kích hoạt môi trường ảo Python:
Hình 4-54: Kích hoạt môi trường ảo trên Python
Mở thư mục face-recognition-master bằng lệnh : cd face-recognition-master
Hình 4-55: Mở thư mục face-recognition-master
Bước cuối cùng, ta chỉ cần chạy file test.py để khởi động chương trình Tuy nhiên, hãy chắc chắn rằng module sim 800L đã bắt được sóng và GPS đã hoạt động ổnđịnh
58
Trang 70CHƯƠNG 6 KẾT QUẢ THỰC NGHIỆM
6.1 Kết quả
Hình 5-56: Bắt đầu chương trình xác minh khuôn mặt
Hình 5-57: Xác minh thành công tiến hành chọn chế độ
59
Trang 71Sau khi xác minh dữ liệu khuôn mặt tài xế tồn tại trong tệp dữ liệu, hệ thống mời tài xế chọn chế độ hoạt động : “number one” để chuyển sang chế độ chống ngủ gật, “number two” để thoát chương trình.
Hình 5-58: Khởi động chế độ giám sát tình trạng tài xế
Dữ liệu thu thập được bao gồm các giá trị: Số lần chớp mắt trong 5s, thời giannhắm mắt, số lần ngáp và biến frame để ngắt chương trình tiến hành nhận diện giọngnói để chọn chế độ Khi thời gian nhắm mắt quá 3s thì hệ thống sẽ phát âm thanh báođộng tài xế để cảnh báo nguy hiểm, giúp cho tài xế kiểm soát được tình trạng củamình
Đối với biến Yawn, khi tài xế ngáp quá 3 lần thì hệ thống sẽ cảnh báo tài xế
60
Trang 72Hình 5-59: Dừng chương trình bằng giọng nói
61
Trang 73Hình 5-60: Dữ liệu được thu thập trên cơ sở dữ liệu
Hình 5-61: Gửi tin nhắn định vị vị trí của tài xế cho người thân
62
Trang 74Điều kiện để tin nhắn có thể gửi vị trí định vị về là module GPS Neo 6M phảitrong trạng thái ổn định, bắt được tín hiệu GPS và thời gian nhắm mắt đạt mức báođộng quá 5 phút.
63
Trang 75Hình 5-62: Trường hợp dữ liệu tài xế chưa có trong tệp dữ liệu
Nếu trường hợp hệ thống chưa nhận diện được khuôn mặt tài xế, hệ thống sẽlặp lại việc nhận diện 3 lần để kiểm chứng rằng dữ liệu tài xế có hay chưa Nếu sau 3lần nhận diện mà hệ thống vẫn không nhận diện được, tiến hành mở rộng tệp dữ liệu
Hình 5-63: Nhập tên người muốn thêm vào tệp dữ liệu
Để tiến hành việc mở rộng tệp dữ liệu người dùng, ta sẽ nói “okay” để bắt đầu Nhập tên người mới và tiến hành các bước sau
Hình 5-64: Bắt đầu lấy ảnh người dùng
64
Trang 76Hình 5-65: Xử lý, trích xuất đặc trưng ảnh người dùng và lưu trữ
Sau khi chụp khuôn mặt người dùng ở các góc khác nhau , hệ thống tiến hành
xử lý dữ liệu, trích xuất đặc trưng ảnh và lưu trữ vào mục dataset
Tuy nhiên, bộ nhớ của hệ thống có giới hạn, việc lưu trữ số lượng tệp dữ liệulớn có thể gây ảnh hướng đến quá trình hoạt động và xử lý của toàn bộ hệ thống Đểgiải quyết tình trạng này, nhóm đã giới hạn lượng tệp dữ liệu người dùng là 4 người.Nếu quá 4 người thì hệ thống sẽ mời người dùng xóa 1 tệp cũ đi
Hình 5-66: Mời người dùng xóa bớt tệp cũ ít sử dụng
65
Trang 77Sau quá trình trích xuất đặc trưng ảnh và lưu trữ dữ liệu người mới, hệ thống sẽ
in ra các tệp hiện có trong dataset Người dùng cần xóa 1 trong các tệp trên để đảm bảodung lượng bộ nhớ cho hệ thống
Hình 5-67: Thêm người mới vào tệp dữ liệu hoàn tất
6.2 Nhận xét và đánh giá
Hệ thống chống ngủ gật trên ô tô áp dụng xử lý ảnh là một công nghệ hữuích và tiên tiến để giảm nguy cơ tai nạn giao thông do ngủ gật của tài xế Dướiđây là một số kết quả đạt được của hệ thống này:
Hiệu quả chính xác trong việc phát hiện: Hệ thống chống ngủ gật sửdụng xử lý ảnh để phát hiện các dấu hiệu của sự mệt mỏi và ngủ gật củatài xế như nhắm mắt quá lâu, ngáp nhiều, số lần chớp mắt trong 5s tăngdần Khi hệ thống phát hiện được các dấu hiệu này, hệ thống sẽ cảnh báotài xế bằng cách kích hoạt âm thanh báo động
Dữ liệu liên tục được cập nhật lên cơ sở dữ liệu để dễ dàng theo dõi,giám sát tình trạng tài xế Phần cứng hoàn thành được những yêu cầu banđầu mà nhóm đã đề ra, chi phí thấp
Kiểm soát các tệp dữ liệu người dùng nhưng vẫn giữ được độ chính xáctốt và ổn định
Bên cạnh đó vẫn còn những hạn chế của đề tài cần được nghiên cứu và pháttriển hơn:
66