1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài NHẬN DẠNG TRẠNG THÁI BUỒN NGỦ KHI LÁI XE SỬ DỤNG THUẬT TOÁN FACIAL LANDMARK TRÊN THIẾT BỊ NHÚNG RASPBERRY Sinh[.]
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: NHẬN DẠNG TRẠNG THÁI BUỒN NGỦ KHI LÁI XE SỬ DỤNG THUẬT TOÁN FACIAL LANDMARK TRÊN THIẾT BỊ NHÚNG RASPBERRY Sinh viên thực : Hà Xuân Thân MSSV : 20122462 Lớp : ĐTTT02 -K57 Giảng viên hướng dẫn: GS.TS Nguyễn Đức Thuận Hà1 Nội -1/2019 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: NHẬN DẠNG TRẠNG THÁI BUỒN NGỦ KHI LÁI XE SỬ DỤNG THUẬT TOÁN FACIAL LANDMARK TRÊN THIẾT BỊ NHÚNG RASPBERRY Sinh viên thực : Hà Xuân Thân MSSV : 20122462 Lớp : ĐTTT02 -K57 Giảng viên hướng dẫn: GS.TS Nguyễn Đức Thuận Hà2 Nội -1/2019 Đánh giá đồ án tốt nghiệp (Dùng cho giảng viên hướng dẫn) Giảng viên đánh giá: Họ tên Sinh viên: MSSV:………………… Tên đồ án: ………………………………………………………………………………… Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Nhận xét thêm Thầy/Cô (giảng viên hướng dẫn nhận xét thái độ tinh thần làm việc sinh viên) Ngày: / /201 Người nhận xét (Ký ghi rõ họ tên) Đánh giá đồ án tốt nghiệp (Dùng cho cán phản biện) Giảng viên đánh giá: Họ tên Sinh viên: MSSV:………………… Tên đồ án: ………………………………………………………………………………… Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề 4 Có kết mơ phỏng/thưc nghiệm trình bày rõ ràng kết đạt Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến đồ án, 2 có lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/đạt giải SVNC khoa học giải cấp Viện trở lên/các giải thưởng khoa 10a học (quốc tế/trong nước) từ giải trở lên/ Có đăng ký phát minh sáng chế Được báo cáo hội đồng cấp Viện hội nghị sinh viên nghiên cứu khoa học không đạt giải từ giải trở 10b lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chuyên ngành TI contest 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng /50 Điểm tổng quy đổi thang 10 Nhận xét thêm Thầy/Cô Ngày: / /201 Người nhận xét (Ký ghi rõ họ tên) LỜI NĨI ĐẦU Nhận dạng mặt tốn có nhiều ứng dụng thực tế nhận quan tâm lớn từ cộng đồng nhà khoa học nghiên cứu Thị giác máy tính thời gian gần Một hệ thống nhận dạng mặt có nhiều bước bước lại lĩnh vực nghiên cứu với cách tiếp cận khác Việc ứng dụng việc nhận dạng vào toán thực tế điều cần thiết, đề tài vào tập trung nghiên cứu ứng dụng nhận dạng hình ảnh việc phát buồn ngủ lái xe Với số lượng nạn tài xế buồn ngủ gây mức cao việc áp dụng đề tài vào thực tế với hi vọng giúp cho việc lái xe an toàn làm giảm vụ tai nạn giao thơng nghiêm trọng Để hồn thành tốt đồ án này,em xin cảm ơn thầy GS.TS Nguyễn Đức Thuận tạo điều kiện tốt bảo tận tình thầy giúp em hồn thành đồ án tốt nghiệp Tuy đợt thời gian làm đồ án không dài để lại cho em nhiều điều bổ ích, kiến thức, kinh nghiệm thực tế Trong q trình thực đồ án em khơng tránh khỏi thiều sót mong thầy bỏ qua Em mong nhận góp ý thầy/cơ đề tài này, để em hồn thiện Em xin chân thành cảm ơn! TÓM TẮT LUẬN VĂN Hiện nay, công nghệ nhận dạng phát triển ứng dụng nhiều vào thực tế Sự bùng nổ công nghệ AI tạo bước đột phá lĩnh vực nhận dạng mặt người Với mục đích ứng dụng cơng nghệ nhân dạng vào việc cảnh bảo buồn ngủ lái xe, em chọn đề tài “Nhận dạng trạng thái buồn ngủ lái xe sử dụng thuật toán Facial Landmark thiết bị nhúng Raspberry” Sau thời gian ngắn thực đề tài, việc nhận dạng cảnh bảo có thu kết khả quan phát cảnh báo SUMMARY Currently, indentification technology has developed and applied a lot in practice The explosion of AI technology has created a new breakthough in the field of human face recognition.For the purpose of applying the technology of identity to warn drownsiness while driving, that’s why I chose the topic “Dectection drownsiness when driving using the Facial Landmark algorithm on Raspberry embedded device” After a short period of implementation of the topic, detect and warning have yielded positive results when detecting and warning immediately CÁC HÌNH VẼ SỬ DỤNG TRONG LUẬN VĂN Hình 1.2Quan hệ vùng lân cận điểm ảnh Hình 2.1 Ảnh input hai đạo hàm 22 Hình 2Ảnh input kết phát chỉnh ảnh mặt với HOG 24 Hình 2.3Các bước lọc Retinal filter 25 DANH SÁCH CÁC TỪ VIẾT TẮT Từ viết tắt Giải nghĩa Từ tiếng anh Xử lý ảnh XLA HOG Histogram of oriented gradients Biểu đồ độ dốc định hướng EAR Eye Aspect Ratio Tỉ lệ khung hình mắt SVM Support Vector Machine Thuật toán phân loại nhị phân Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 LỜI NÓI ĐẦU TÓM TẮT LUẬN VĂN .5 CÁC HÌNH VẼ SỬ DỤNG TRONG LUẬN VĂN DANH SÁCH CÁC TỪ VIẾT TẮT MỞ ĐẦU .3 CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH 1.1Tổng quan xử lý ảnh .5 1.2Các trình xử lý ảnh 1.3 Ảnh biểu diễn ảnh 1.4 Phạm vi ứng dụng xử lý ảnh 10 1.5 Các loại tệp xử lý ảnh .10 1.5.1 File ảnh IMG 10 1.5.2 File ảnh PCX 11 1.6 Một số vấn đề xử lý ảnh 13 1.6.1 Các hệ thống xử lý ảnh 13 1.6.2 Các hình thái ảnh 14 1.7 Một số ứng dụng xử lý ảnh 15 1.8 Bài toán nhận dạng mặt người 16 1.8.1 Bài toán nhận dạng mặt người 16 1.8.2 Những khó khăn nhận dạng khn mặt 16 1.8.3 Tầm quan trọng toán nhận diện mặt người 17 1.8.4.Các ứng dụng đặc trưng toán nhận diện mặt người 18 CHƯƠNG 2: XÂY DỰNG HỆ THỐNG NHẬN DẠNG TRẠNG THÁI BUỒN NGỦ 20 2.1: Phát mặt người sử dụng đặc trưng HOG .20 2.2: Chuẩn hóa ánh sáng với lọc Retinal filter .25 2.3: Phương pháp Facial Landmark 28 2.4: Phát trạng thái nháy mắt dùng Facial Landmark .29 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 31 3.1: Thư viện OpenCV dlib 31 3.1.1: Thư viện OpenCV 31 3.1.2: Thư viện dlib 35 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 2.3: Phương pháp Facial Landmark Facial Landmark phương pháp xác định điểm cấu trúc khuôn mặt, tạo Vahid Kazemi Josephine vào năm 2014 Trên khn mặt có facial landmark tạo nên hình dáng, xây dựng nên hình dạng khn mặt,để xác định facial landmark em sử dụng model tạo dựng sẵn thư viện dlib Facial Landmark bao gồm hai model xây dựng lên, là: + shape_predictor_5_face_landmarks : xác định facial landmark + shape_predictor_68_face_landmarks : xác định 68 facial landmark Hai model huấn luyện với liệu iBUG 300_W model dùng phổ biến dlib Trong phạm vi đề tài em sử dụng model 68 facial landmark, vị trí facial landmark bố trí hình vẽ 28 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 Hình 2.5: Vị trí điểm landmark Các vị trí xác định sau: + Hàm : điểm từ đến 17 + Lông mày phải : điểm từ 18 đến 22 + Lông mày trái : điểm từ 23 đến 27 + Mũi : điểm từ 28 đến 36 + Mắt phải : điểm từ 37 đến 42 + Mắt trái : điểm từ 43 đến 48 + Miệng : điểm từ 49 đến 68 2.4: Phát trạng thái nháy mắt dùng Facial Landmark Khi xác định điểm mốc mắt, ta xác định trạng thái đóng mở mắt, nhìn vào hình vẽ mơ tả bên để thấy khác biệt đóng mở mắt Hình 2.6: Trạng thái mở đóng mắt Ở bên trái ảnh mắt mở, bên phải ảnh mắt đóng Phía vẽ tỉ lệ khung hình mắt theo thời gian Như thấy, tỉ lệ co mắt không đổi trạng 29 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 thái mở mắt, sau nhanh chóng giảm xuống gần khơng, sau tăng trở lại, điều cho biết chớp mắt xảy Nháy mắt trạng thái đóng mở lại nhanh chóng mắt người Mỗi cá nhân có chút khác kiểu nháy mắt, nháy mắt thói quen biểu lộ cảm xúc Chính mà chúng khác tốc độ việc đóng mở mắt, ảnh hưởng tới thời gian chớp mắt xảy Bình thường nháy mắt kéo dài khoảng 100 – 400 ms Chính mà đề tài sử dụng facial landmark để định vị mắt đường viền mí mắt Từ điểm mốc phát hình ảnh, việc lấy tỉ lệ khung hình mắt EAR ( Eye Aspect Ratio) sử dụng ước tính trạng thái mở mắt Trong khung hình, điểm mốc mắt nhận dạng, tỉ lệ khung hình mắt chiều cao chiều rộng mắt tính tốn theo cơng thức sau: 𝐸𝐴𝑅 = ||𝑝2 − 𝑝6 || + ||𝑝3 − 𝑝5 || 2||𝑝1 − 𝑝4 || Với p1… p6 vị trí landmark mơ tả hình ảnh 2D EAR không đổi mở mắt tiến dần tới nhắm mắt lại Trong trường hợp phát buồn ngủ, Việc theo dõi khung hình theo thời gian cho ta thấy giá trị giảm gần lại không tăng lên nhanh chóng, điều chứng tỏ người lái xe nhắm mắt trạng thái buồn ngủ 30 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 3.1: Thư viện OpenCV dlib Để cài đặt hệ thống, đề tài em lựa chọn ngôn ngữ C++ với hệ điều hành Raspbian board Raspberry Pi sử dụng hai thư viện mã nguồn mở OpenCV dlib 3.1.1: Thư viện OpenCV Hình 3.1: Cấu trúc thư viện OpenCV OpenCV (http://opencv.org) thư viện mã nguồn mở cài đặt thuật toán xử lý ảnh, thị giác máy tính học máy OpenCV viết ngơn ngữ C/C++ chạy hầu hết tảng phần cứng (Intel, Mac, Raspberry Pi, Adruno ) phần mềm (Windows, Mac OS, Linux, iOS, Android) Các ngơn ngữ cơng cụ lập trình phổ biến Python, Java, Ruby, Matlab, Objective C, dễ dàng sử dụng OpenCV việc viết triển khai ứng dụng thực tế 31 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 Ban đầu thư viện OpenCV hãng Intel phát triển bảo trợ (từ năm cuối kỷ trước – alpha phát hành thức vào tháng năm 1999) Sau Intel định chuyển OpenCV thành thư viện mã nguồn mở từ bỏ dự án Ngày OpenCV phát triển hỗ trợ đông đảo nhà phát triển, nhà nghiên cứu tồn giới Mỗi ngày lại có vá lỗi với thuật toán thêm vào Phiên OpenCV 3.1 công ty bảo trợ cho OpenCV cơng ty Nga có tên Itseez Mục đích thiết kế OpenCV nhắm tới ứng dụng thời gian thực địi hỏi thao tác tính tốn phải hiệu tốc độ thực nên kỹ thuật tối ưu hóa sử dụng tất mức độ: từ việc tận dụng kiến trúc đa nhân việc sử dụng tập lệnh CPU SSE 2, AVX, AVX 512 … OpenCV tận dụng thư viện lập trình song song TBB (Thread Building Blocks) Intel, OpenMP tảng CUDA Nvidia để triệt để khai thác tài nguyên hệ thống mà chạy Một mục tiêu quan trọng OpenCV cung cấp hạ tầng thuật tốn thị giác máy tính có giao diện đơn giản dễ dàng sử dụng để trợ giúp cho lập trình viên, nhà nghiên cứu nhanh chóng xây dựng (hay thực hóa ý tưởng họ) ứng dụng thực tế Thư viện OpenCV có tới 500 hàm khác trải dài từ hàm xử lý ảnh bản, giao diện, phân đoạn ảnh, trích chọn đặc trưng, học máy hàm hỗ trợ an toàn bảo mật robotics Trên thực tế có nhiều thư viện thị giác máy tính xử lý ảnh (mã nguồn mở thương mại) khác việc lựa chọn OpenCV đề tài nguyên nhân sau: + OpenCV có hiệu cao Do tối ưu nhiều mức sử dụng thư viện tốt (TBB IPP) hãng Intel nên ứng dụng viết OpenCV cho tốc độ thực nhanh tận dụng hết tài nguyên phần cứng máy tính (chạy song song) 32 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 + OpenCV có nhiều tài liệu hỗ trợ cộng đồng nhà phát triển sẵn sàng hỗ trợ lỗi đông đảo (answers.opencv.org) So với thư viện khác, số lượng sách tài liệu tham khảo viết OpenCV chiếm ưu vượt trội số lượng chất lượng + Cú pháp linh hoạt đơn giản, dễ sử dụng Ở phiên đầu tiên, muốn sử dụng OpenCV, nhà phát triển phải viết đoạn mã C dài dịng khó nhớ Nhưng tại, cú pháp OpenCV cải tiến nhiều (do học tập từ Matlab) Điều làm giảm đáng kể công sức lập trình viên khơng cần phải nhớ cú pháp phức tạp trước Sau danh sách thư viện cốt lõi: + core: thư viện chứa tất kiểu liệu sở hàm thực thao tác sở + imgproc: thư viện xử lý ảnh chứa thao tác xử lý ảnh bản, chẳng hạn phép nhân chập lọc không gian + highgui: thư viện chứa hàm hỗ trợ giao diện đồ họa chẳng hạn việc hiển thị ảnh nhận liệu input đơn giản + video: thư viện chứa hàm thực việc đọc liệu, ghi liệu file video + features2d: thuật tốn phát hiện, mơ tả đối sánh điểm bất biến (keypoints) + objdetect: thư viện chứa thuật toán để phát đối tượng đặc thù chẳng hạn mặt người người Chúng ta sử dụng thư viện để xây dựng huấn luyện để phát đối tượng khác ứng dụng cụ thể + ml: thư viện thuật toán học máy cài đặt để làm việc cách linh hoạt hiệu với kiểu liệu OpenCV 33 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 + gpu: chứa cài đặt sử dụng tảng CUDA Nvidia để tận dụng sức mạnh chip đồ họa GPU nhằm tăng tốc độ thực cho thuật tốn địi hỏi số thao tác xử lý lớn + nonfree: chứa cài đặt thuật toán bảo vệ sáng chế có điều kiện hạn chế tình sử dụng cụ thể (miễn phí cho ứng dụng giáo dục nghiên cứu phải trả phí cho ứng dụng mang tính thương mại, chẳng hạn thuật toán SIFT SURF) + contrib: chứa cài đặt thuật toán nhất, đựa xem xét để thức đưa vào OpenCV + ocl: thư viện chứa cài đặt thuật toán sử dụng tảng OpenCL nhằm khai thác kiến trúc không đồng hệ thống phần cứng thao tác tính tốn địi hỏi số phép tính lớn Trong đề tài này, OpenCV sử dụng cho thao tác đọc, xử lý ảnh bản, phần cài đặt thuật toán LPQ, Retina filter thực đối tượng ma trận điểm ảnh lớp Mat (Matrix) 34 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 3.1.2: Thư viện dlib Hình 3.2: Cấu trúc thư viện dlib Ngồi thư viện OpenCV, chúng tơi cịn sử dụng dlib (http://dlib.net), thư viện mã nguồn mở khác cho việc cài đặt hệ thống Khác với mục đích OpenCV cung cấp hạ tầng thuật toán cho ứng dụng xử lý ảnh thị giác máy tính, dlib thiết kế cho ứng dụng học máy trí tuệ nhân tạo với thư viện sau: + classification: kỹ thuật phân lớp chủ yếu dựa hai phương pháp sở kNN SVM + data transformation: thuật toán biến đổi liệu nhằm giảm số chiều, loại bỏ liệu dư thừa tăng cường tính khác biệt (discriminant) đặc điểm giữ lại + clustering: kỹ thuật phân cụm + regression: kỹ thuật hồi qui + structured prediction: thuật toán dự đốn có cấu trúc + Markov Random Fields: thuật toán dựa trường Markov ngẫu nhiên 35 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 3.2 Phần cứng 3.2.1 Raspberry Trong đề tài em sử dụng board Raspberry để thực chạy chương trình nhận dạng Raspberry có kích thước nhỏ gọn, dễ dàng cài đặt ô tô, tốc độ xử lý phù hợp với việc nhận dạng trạng thái buồn ngủ Ngoài module cịn có chân mở rộng nên cải tiến thêm số tính cảnh báo phát buồn ngủ Hình 3.3: Module Raspberry 3.2.2 Module camera Là thiết bị tích hợp thêm vào board Raspberry để phục vụ việc chụp hình, quay video lấy hình ảnh đầu vào cho việc nhận dạng Với độ phân giải 1MP , chất lượng hình ảnh không rõ nét việc nhận dạng tương đối xác, để tăng độ nét hình ảnh ta sử dụng camera chất lượng cao 36 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 Hình 3.4 Module Raspberry camera 37 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 CHƯƠNG 4: KẾT QUẢ Với việc sử dụng thuật toán Facial landmark nhận dạng vùng mắt khuôn mặt, hình vẽ màu xanh vùng tạo từ điểm landmark Hình 4.1 Kết nhận dạng vùng mắt Facial landmark Chỉ số EAR = 0.25 set giá trị mặc định hình , chữ DROWSINESS chưa xuất EAR nhận dạng 0.3 lớn so với EAR bình thường Quan sát hình tỉ lệ EAR = 0.15, nhỏ so với số bình thường có thơng báo xuất 38 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 Hình 4.2:Kết nhận dạng trạng thái nhắm mắt Facial landmark 39 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 KẾT LUẬN CHUNG Qua luận văn này, em tìm hiểu tiếp cận tốn nhận diện khn mặt ứng dụng vào thực Ngồi em cịn biết thêm nhiều phương pháp nhận dạng mặt người, cách xây dựng hệ thống nhận dạng Với kết ban đầu đề tài đạt được, em hi vọng cải tiến nhiều để đề tài đưa vào thực tiễn Mặc dù phát cảnh báo thành cơng cịn nhiều điểm cần phải cải tiến hơn, ví dụ như: tốc độ xử lý nhanh hơn, có thêm tính phát loa có cảnh báo, độ xác cao 40 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 TÀI LIỆU THAM KHẢO [A] Tài liệu tiếng Anh [1] T Kanade, “Picture Processing Computer Complex and Recognition of Human Faces”, PhD thesis, Kyoto Univ., 1973 [2] “One millisecond face alignment with an ensemble of regression trees” , Vahid Kazemi and Josephine Sullivan [3] https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/ [4] http://vision.fe.uni-lj.si/cvww2016/proceedings/papers/05.pdf [5] http://opencv.org [6] http://dlib.net [B] Tài liệu tiếng Việt [6] PGS.TS Đỗ Năng Toàn, TS Phạm Việt Bình, “Giáo trình Xử Lý Ảnh”, Đại học Thái Nguyên, 2007 [7] Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc Doãn, “Tổng quan phương pháp xác định khuôn mặt người”, Tạp chí Cơng nghệ thơng tin & Truyền thơng, 2007 41 Đồ án tốt nghiệp – Hà Xuân Thân – 20122462 42