Đồ án Ứng dụng xử lý ảnh vào việc phát hiện ngủ gật dùng Kit Raspberry

Ngày nay, cùng với sự phát triển và tiến bộ không ngừng của khoa học kỹ thuật thì xử lý ảnh là một trong những đề tài cần được quan tâm và phát triển. Từ những nghiên cứu ban đầu về ảnh trắng đen, ảnh xám, ảnh màu, xử lý ảnh đã được nghiên cứu chuyên sâu và ứng dụng rất nhiều trong cuộc sống. Bên cạnh đó, sự phổ biến của kit Raspberry Pi với kích thước nhỏ gọn, được xem như máy tính thu nhỏ nên có nhiều đề tài nghiên cứu và ứng dụng kit Raspberry Pi trong thực tiễn. Ứng dụng kit Raspberry Pi vào xử lý ảnh nhằm đưa ra một số giải pháp xử lý ảnh để áp dụng vào đời sống. Trong đồ án này, chúng tôi cố gắng tìm ra các thuật toán đáp ứng trong thời gian thực, những giải pháp tối ưu, đơn giản nhưng mang lại độ chính xác cao, đáp ứng được nhu cầu thực tế. Chúng tôi tiến hành mô phỏng những bài toán xử lý ảnh đơn giản, nhận dạng ảnh tĩnh và nhận dạng trực tiếp qua camera trên chương trình Python và phát triển nhận dạng theo dõi chính xác trạng thái mở hoặc đóng của mắt trong thời gian thực trên kit Raspberry Pi 3. Khuôn mặt được phát hiện bằng phương pháp: phương pháp sử dụng bộ phân loại mạnh AdaBoost dựa trên các đặc trưng Haar-like; mắt được nhận dạng bằng cách đánh dấu các bộ phận trên khuôn mặt bằng thuật toán Facial Landmarks, sau đó tính khoảng cách giữa hai mí mắt bằng khoảng cách Euclide để nhận diện trạng thái mắt và phát hiện trạng thái ngủ gật.

pdf84 trang | Chia sẻ: thientruc20 | Lượt xem: 784 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Ứng dụng xử lý ảnh vào việc phát hiện ngủ gật dùng Kit Raspberry, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH --------------------------------- ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH VÀO VIỆC PHÁT HIỆN NGỦ GẬT DÙNG KIT RASPBERRY GVHD: Th.s Nguyễn Duy Thảo SVTH1: Nông Văn Tân MSSV: 13141299 SVTH2: Trần Thị Mỹ Khiêm MSSV: 13141147 Tp. Hồ Chí Minh - 01/2018 Generated by Foxit PDF Creator © Foxit Software For evaluation only. BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH --------------------------------- ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH VÀO VIỆC PHÁT HIỆN NGỦ GẬT DÙNG KIT RASPBERRY GVHD: Th.s Nguyễn Duy Thảo SVTH: Nông Văn Tân MSSV: 13141299 SVTH: Trần Thị Mỹ Khiêm MSSV: 13141147 Tp. Hồ Chí Minh - 01/2018 Generated by Foxit PDF Creator © Foxit Software For evaluation only. TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ Độc lập – Tự do – Hạnh phúc BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH TP. Hồ Chí Minh, ngày 01 tháng 01 năm 2018 BẢNG MÔ TẢ CÔNG VIỆC Họ tên sinh viên 1: Nông Văn Tân MSSV: 13141299 Lớp: 13141DT2C Họ tên sinh viên 2: Trần Thị Mỹ Khiêm MSSV: 13141147 Lớp: 13141DT1D Tên đề tài: Ứng dụng xử lý ảnh vào việc phát hiện ngủ gật dùng Kit Raspberry 1. MÔ TẢ MỤC TIÊU CỦA ĐỀ TÀI: Đề tài sẽ đi tìm hiểu kit Raspberry, kiến thức xử lý ảnh, kỹ thuật nhận dạng và xây dụng bài toán phát hiện ngủ gật. 2. MÔ TẢ CÔNG VIỆC THỰC HIỆN ĐỀ TÀI CỦA TỪNG SINH VIÊN: Họ tên Sinh viên 1: Nông Văn Tân Các công việc thực hiện trong đề tài: STT NỘI DUNG CÔNG VIỆC 1 Tìm kiếm tài liệu về lập trình Python, OpenCV. 2 Cài đặt hệ điều hành và thư viện liên quan. 3 Viết chương phát hiện ngủ gật. 4 Viết báo cáo. Họ tên Sinh viên 2: Trần Thị Mỹ Khiêm Các công việc thực hiện trong đề tài: STT NỘI DUNG CÔNG VIỆC 1 Tìm kiếm tài liệu về lập trình Python, OpenCV. 2 Tìm kiếm lý thuyết nhận dạng, phát hiện. 3 Viết và chỉnh sửa báo cáo. SINH VIÊN 1 SINH VIÊN 2 (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) Nông Văn Tân Trần Thị Mỹ Khiêm XÁC NHẬN CỦA GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) Th.s Nguyễn Duy Thảo TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH Tp. HCM, ngày 01 tháng 01 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nông Văn Tân MSSV: 13141299 Trần Thị Mỹ Khiêm MSSV: 13141147 Chuyên ngành: Điện tử công nghiệp – y sinh Mã ngành: 01 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khóa: 2013 Lớp: 13141DT2C I. TÊN ĐỀ TÀI: Ứng dụng xử lý ảnh vào việc phát hiện ngủ gật dùng Kit Raspberry II. NHIỆM VỤ 1. Các số liệu ban đầu:  1 bộ kit Raspberry Pi 3.  1 camera.  1 loa  Các hình ảnh cần xử lý. 2. Nội dung thực hiện:  Tìm hiểu về xử lý ảnh.  Tìm hiểu về kit Raspberry Pi.  Các kỹ thuật nhận dạng.  Phát hiện ngủ gật bằng Raspberry Pi.  Viết báo cáo. III. NGÀY GIAO NHIỆM VỤ: 25/9/2017 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Th.s Nguyễn Duy Thảo CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP-Y SINH Th.s Nguyễn Duy Thảo TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Tp. HCM, ngày 01 tháng 01 năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nông Văn Tân Lớp: 13141DT2C MSSV: 13141299 Họ tên sinh viên 2: Trần Thị Mỹ Khiêm Lớp: 13141DT MSSV: 13141147 Tên đề tài: Ứng dụng xử lý ảnh vào việc phát hiện ngủ gật dùng Kit Raspberry Tuần/ngày Nội dung Xác nhận GVHD Tuần 1 Nhận đề tài Tuần 2 Tìm hiểu nội dung liên quan đề tài: - Xử lý ảnh - Raspberry - Các ngôn ngữ lập trình Tuần 3 → 5 Tìm hiểu và cài đặt hệ điều hành cho Raspberry Pi 3. Chạy các chương trình đơn giản kiểm tra kit Raspberry đã cài đặt thành công. Tuần 6 → 10 Tìm hiểu tài liệu về ngôn ngữ Python, OpenCV Tìm hiểu về các thuật toán nhận dạng Tuần 10 → 13 Xây dựng chương trình phát hiện và nhận dạng khuôn mặt. Tuần 14+15 Xây dựng chương trình phát hiện ngủ gật. Tuần 16 → 20 Viết báo cáo. Tuần 21 Chỉnh sửa và hoàn thành báo cáo. GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) Th.s Nguyễn Duy Thảo i LỜI CAM ĐOAN Đề tài này là do chúng tôi tự thực hiện dưới sự hướng dẫn của Th.s Nguyễn Duy Thảo và dựa vào một số tài liệu, đề tài trước đó và không sao chép từ tài liệu hay công trình đã có trước đó. Người thực hiện đề tài 1 Người thực hiện đề tài 2 Nông Văn Tân Trần Thị Mỹ Khiêm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii LỜI CẢM ƠN Trong thời gian thực hiện luận văn nhóm sinh viên thực hiện đề tài đã được học hỏi nhiều kiến thức bổ ích trong giáo trình và thực tế từ thầy cô. Qua đây em xin gửi lời cảm ơn chân thành đến: Quý thầy cô trong khoa điện điện tử của trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh đã truyền đạt kiến thức, những kinh nghiệm quý báu trong chuyên môn cũng như trong các lĩnh vực khác. Sự tận tụy say mê, lòng nhân ái, nhiệt tình của thầy cô là động lực lớn giúp chúng em trau dồi thêm kiến thức giúp chúng em vượt qua khó khăn trong học tập cũng như trong cuộc sống. Chúng em xin gửi lời cảm ơn chân thành nhất đến thầy Nguyễn Duy Thảo đã giúp đỡ và hướng dẫn chúng em hoàn thành đồ án tốt nghiệp này. Đồng thời cũng cảm ơn đến tất cả các bạn bè đã gắn bó và giúp đỡ nhau trong học tập cũng như trong suốt quá trình thực hiện đồ án tốt nghiệp. Xin chân thành cảm ơn! Nhóm thực hiện đề tài Nông Văn Tân Trần Thị Mỹ Khiêm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iii MỤC LỤC LỜI CAM ĐOAN ............................................................................................................ i LỜI CẢM ƠN ................................................................................................................. ii MỤC LỤC ...................................................................................................................... iii DANH MỤC HÌNH ....................................................................................................... vi DANH MỤC BẢNG ................................................................................................... viii TÓM TẮT ...................................................................................................................... ix Chương 1. TỔNG QUAN ......................................................................................... 2 1.1. ĐẶT VẤN ĐỀ ............................................................................................... 2 1.2. MỤC TIÊU ĐỀ TÀI ...................................................................................... 2 1.3. NỘI DUNG NGHIÊN CỨU ......................................................................... 3 1.4. GIỚI HẠN ..................................................................................................... 3 1.5. BỐ CỤC ........................................................................................................ 3 Chương 2. CƠ SỞ LÝ THUYẾT .............................................................................. 4 2.1. TỔNG QUAN VỀ XỬ LÝ ẢNH .................................................................. 4 2.1.1. Giới thiệu về xử lý ảnh [1] ...................................................................... 4 2.1.2. Các thành phần cơ bản của hệ thống ảnh ................................................ 6 2.1.3. Các vấn đề cơ bản trong xử lý ảnh .......................................................... 7 2.1.3.1. Ảnh và điểm ảnh ............................................................................... 7 2.1.3.2. Độ phân giải của ảnh ........................................................................ 7 2.1.3.3. Mức xám của ảnh .............................................................................. 8 2.1.3.4. Biến đổi ảnh ...................................................................................... 8 2.2. GIẢI THUẬT ADABOOST [5] .................................................................... 9 2.3. ĐẶC TRƯNG HAAR-LIKE [5] ................................................................. 11 2.4. GIẢI THUẬT FACIAL LANDMARKS .................................................... 15 2.4.1. Giới thiệu về Facial Landmarks [6] ...................................................... 15 2.4.2. Tìm hiểu về bộ phát hiện dấu mốc trên khuôn mặt của dlib [6] ........... 16 2.5. KHOẢNG CÁCH EUCLIDE [7] ............................................................... 17 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iv 2.6. PYTHON ..................................................................................................... 18 2.6.1. Giới thiệu sơ lược về Python ................................................................. 18 2.6.2 Các đặc điểm của ngôn ngữ python. ..................................................... 19 2.6.3. Ứng dụng của Python ............................................................................ 22 2.7. THƯ VIỆN DLIB ........................................................................................ 23 Chương 3. TÍNH TOÁN VÀ THIẾT KẾ ............................................................... 25 3.1. TỔNG QUAN VỀ KIT RASPBERRY PI 3 ............................................... 26 3.1.1. Giới thiệu tổng quan .............................................................................. 26 3.1.2. Cấu tạo phần cứng của kit Raspberry Pi 3 ............................................ 27 3.1.3. Hệ điều hành của kit Raspberry Pi 3 ..................................................... 29 3.2. CÀI ĐẶT HỆ ĐIỀU HÀNH CHO KIT RASPBERRY PI 3........................ 30 3.2.1. Thiết bị cần dùng để cài đặt .................................................................. 30 3.2.2. Cài đặt hệ điều hành Raspbian .............................................................. 30 3.2.3. Điều khiển Raspberry Pi 3 từ xa bằng cách remote máy tính ............... 33 3.3. CÀI ĐẶT THƯ VIỆN CHO RASPBERRY PI 3 ......................................... 37 3.3.1. Cài đặt OpenCV .................................................................................... 37 3.3.2. Cài đặt thư viện dlib .............................................................................. 44 Chương 4. THI CÔNG HỆ THỐNG ...................................................................... 47 4.1. SƠ ĐỒ KHỐI HỆ THỐNG ......................................................................... 47 4.1.1. Ảnh từ camera ....................................................................................... 48 4.1.2. Tiền xử lý .............................................................................................. 48 4.1.3. Phát hiện khuôn mặt dùng HOG ........................................................... 48 4.1.4. Đánh dấu cấu trúc khuôn mặt dùng Facial Landmarks......................... 50 4.1.5. Trích xuất vùng mắt .............................................................................. 50 4.1.6. Tính toán tỷ lệ mắt ................................................................................ 50 4.1.7. Phát hiện ngủ gật ................................................................................... 52 4.1.8. Cảnh báo................................................................................................ 53 Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ ................................................. 55 5.1. Kết quả ........................................................................................................ 55 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH v 5.2. Nhận xét ....................................................................................................... 57 Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................ 61 6.1. KẾT LUẬN ................................................................................................. 61 6.1.1. Ưu điểm ................................................................................................. 61 6.1.2. Nhược điểm ........................................................................................... 62 6.2. HƯỚNG PHÁT TRIỂN .............................................................................. 62 6.2.1. Hướng khắc phục .................................................................................. 62 6.2.2. Hướng phát triển ................................................................................... 63 TÀI LIỆU THAM KHẢO ............................................................................................. 64 PHỤ LỤC ...................................................................................................................... 65 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH vi DANH MỤC HÌNH Hình Trang Hình 2.1: Các bước cơ bản trong xử lý ảnh ..................................................................... 4 Hình 2.2: Các thành phần cơ bản của hệ thống xử lý ảnh ............................................... 6 Hình 2.3: Độ phân giải của ảnh ........................................................................................ 7 Hình 2.4: Sự khác nhau giữa ảnh màu và ảnh xám .......................................................... 8 Hình 2.5: Ảnh trước khi cân bằng Histogram .................................................................. 9 Hình 2.11: Mô hình phân tầng các bộ phận loại yếu ....................................................... 10 Hình 2.12: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh. ............................... 11 Hình 2.13: Đặc trưng theo cạnh ....................................................................................... 11 Hình 2.14: Đặc trưng theo đường .................................................................................... 12 Hình 2.15: Đặc trưng theo xung quanh tâm ..................................................................... 12 Hình 2.16: Đặc trưng theo đường chéo ............................................................................ 12 Hình 2.17: Cách tính Integral Image của ảnh .................................................................. 13 Hình 2.18: Cách tính tổng giá trị pixel vùng cần tính ...................................................... 14 Hình 2.19: Hệ thống phát hiện khuôn mặt ....................................................................... 17 Hình 2.20: 68 tọa độ đánh dấu cấu trúc khuôn mặt từ tập dữ liệu iBUG 300-W ............ 23 Hình 3.1: Sơ đồ khối hệ thống ......................................................................................... 25 Hình 3.2: Bo mạch Raspberry Pi 3 .................................................................................. 26 Hình 3.3: Các cổng giao tiếp ngoại vi .............................................................................. 28 Hình 3.4: Sơ đồ chân của Raspberry Pi 3 ........................................................................ 29 Hình 3.5: Hệ điều hành Raspbian Stretch ........................................................................ 31 Hình 3.6: Phần mềm SD Card Formatter ......................................................................... 32 Hình 3.7: Phần mềm Win32 Disk Imager. ....................................................................... 33 Hình 3.8: Vào ổ đĩa Boot ................................................................................................. 33 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH vii Hình 3.9: Thêm địa chỉ IP của Raspberry vào file cmdline.text. ..................................... 34 Hình 3.10: Nhập địa chỉ ip của Raspberry Pi ................................................................... 34 Hình 3.11: Chuyển tiếp X11 ............................................................................................ 35 Hình 3.12: Cài đặt xrdp bằng lệnh ................................................................................... 36 Hình 3.13: Mở Remote Desktop và kết nối ..................................................................... 36 Hình 3.14: Nhập usename và password ........................................................................... 37 Hình 3.15: Giao diện của hệ điều hành Raspbian Stretch ................................................ 37 Hình 3.16: Môi trường ảo cv ............................................................................................ 41 Hình 3.17: Biên dịch OpenCV 3 trên Raspbian Stretch thành công ................................ 42 Hình 3.18: Xác nhận OpenCV 3 đã cài đặt thành công ................................................... 44 Hình 4.1: Sơ đồ khối hệ thống ......................................................................................... 47 Hình 4.2: Đánh dấu mắt 6 điểm ....................................................................................... 51 Hình 4.3: Hình ảnh của mốc đánh dấu mắt khi mắt mở, mắt nhắm và tỉ lệ..................... 52 Hình 4.4: Phát hiện ngủ gật .............................................................................................. 54 Hình 5.1: Phát hiện khuôn mặt ......................................................................................... 55 Hình 5.2: Đánh dấu 68 điểm của khuôn mặt dùng giải thuật Facial Landmarks ............. 55 Hình 5.3: Hình 5.2: Phát hiện trạng thái mắt ở nhiều trường hợp. .................................. 56 Hình 5.4: Phát hiện ngủ gật vào ban ngày không đeo kính ............................................. 56 Hình 5.5: Phát hiện ngủ gật vào ban ngày có đeo kính .................................................... 56 Hình 5.6: Phát hiện ngủ gật vào ban đêm không đeo kính .............................................. 57 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH viii DANH MỤC BẢNG Bảng 5.1 Kết quả nhận dạng trạng thái mắt với trường hợp góc thẳng .................... 58 Bảng 5.1 Kết quả nhận dạng trạng thái mắt với trường hợp góc nghiêng ................ 59 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ix TÓM TẮT Ngày nay, cùng với sự phát triển và tiến bộ không ngừng của khoa học kỹ thuật thì xử lý ảnh là một trong những đề tài cần được quan tâm và phát triển. Từ những nghiên cứu ban đầu về ảnh trắng đen, ảnh xám, ảnh màu, xử lý ảnh đã được nghiên cứu chuyên sâu và ứng dụng rất nhiều trong cuộc sống. Bên cạnh đó, sự phổ biến của kit Raspberry Pi với kích thước nhỏ gọn, được xem như máy tính thu nhỏ nên có nhiều đề tài nghiên cứu và ứng dụng kit Raspberry Pi trong thực tiễn. Ứng dụng kit Raspberry Pi vào xử lý ảnh nhằm đưa ra một số giải pháp xử lý ảnh để áp dụng vào đời sống. Trong đồ án này, chúng tôi cố gắng tìm ra các thuật toán đáp ứng trong thời gian thực, những giải pháp tối ưu, đơn giản nhưng mang lại độ chính xác cao, đáp ứng được nhu cầu thực tế. Chúng tôi tiến hành mô phỏng những bài toán xử lý ảnh đơn giản, nhận dạng ảnh tĩnh và nhận dạng trực tiếp qua camera trên chương trình Python và phát triển nhận dạng theo dõi chính xác trạng thái mở hoặc đóng của mắt trong thời gian thực trên kit Raspberry Pi 3. Khuôn mặt được phát hiện bằng phương pháp: phương pháp sử dụng bộ phân loại mạnh AdaBoost dựa trên các đặc trưng Haar-like; mắt được nhận dạng bằng cách đánh dấu các bộ phận trên khuôn mặt bằng thuật toán Facial Landmarks, sau đó tính khoảng cách giữa hai mí mắt bằng khoảng cách Euclide để nhận diện trạng thái mắt và phát hiện trạng thái ngủ gật. CHƯƠNG 1 TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 Chương 1. TỔNG QUAN 1.1.