Đồ án Ứng dụng xử lý ảnh thiết kế thi công mạch chống trộm thông minh

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 THIẾT KẾ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH GVHD : ThS. Võ Đức Dũng SVTH: Tăng Nguyễn Công Thiên MSSV : 13141328 Tp. Hồ Chí Minh - 7/2018 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ

pdf108 trang | Chia sẻ: huong20 | Ngày: 13/01/2022 | Lượt xem: 367 | Lượt tải: 0download
Tóm tắt tài liệu Đồ án Ứng dụng xử lý ảnh thiết kế thi công mạch chống trộm thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Í 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 KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH GVHD : ThS. Võ Đức Dũng SVTH: Tăng Nguyễn Công Thiên MSSV : 13141328 Tp. Hồ Chí Minh - 7/2018 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 16 tháng 7 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Tăng Nguyễn Công Thiên MSSV: 13141328 Chuyên ngành: Điện tử công nghiệp Mã ngành: 141 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khóa: 2013 I. TÊN ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH II. NHIỆM VỤ 1. Các số liệu ban đầu:  Matlab 2017a.  Sử dụng Webcam Logitech.  Kit điều khiển chính: Arduino Uno R3, Servo SG90, Module Sim 800A, Nguồn tổ ong 10V-5A, Chuông, 2 Led đơn. 2. Nội dung thực hiện:  Để tài thực hiện nội dung phát hiện người và nhận diện khuôn mặt với đầu vào là hình ảnh lấy được từ webcam, kết quả sẽ được gửi qua arduino để điều khiển Servo SG90, Module Sim 800A, Chuông, 2 Led đơn. Nhóm sẽ thực hiện các nôi dung như sau:  Tìm hiểu về Matlab.  Tìm hiểu về Arduino Uno R3.  Cài đặt thưc viện cho Arduino và các liên kết giữa Matlab và Arduino.  Tìm hiểu các thuật toán nhận diện, phát hiện người và khuôn mặt.  Xây dựng quá trình xử lý ảnh đầu vào.  Xây dựng hệ thống phát hiện người và nhận diện khuôn mặt đồng thời gửi dữ liệu thu được qua Arduino.  Xây dựng chương trình điều khiển servo SG90, Module Sim 800A, chuông, 2 Led đơn.  Đánh giá kết quả thực hiện. III. NGÀY GIAO NHIỆM VỤ: 21/03/2018 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 05/07/2018 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Võ Đức Dũng CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 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 19 tháng 03 năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên : Tăng Nguyễn Công Thiên .................................................................. Lớp:13141DT3B .......................................................... MSSV:13141328 ....................... Tên đề tài: ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH Xác nhận Tuần/ngày Nội dung GVHD 1  Gặp GVHD để phổ biến quy định thực hiện, (19-25/3) chọn đề tài, tên đề tài, thời gian làm việc.  Duyệt đề tài.  Viết đề cương cho đề tài. 2  Tìm hiểu hoạt động và các kiến thức liên quan (26/3-1/4) tới Arduino và Matlab. 3  Cài đặt Matlab, kết nối Arduino với Matlab. (2/4-8/4) 4  Lập trình và xây dựng chương trình cho xử lý (9/4-15/4) hình ảnh đầu vào trên Matlab. 5  Xây dựng hệ thống nhận diện và phát hiện (16/4-22/4) chuyển động con người. 6  Xây dựng hệ thống nhận diện và so sánh (23/4-29/4) khuôn mặt  Tiến hành xây dựng cơ sở dữ liệu để lưu giữ khuôn mặt 7  Lập trình Arduino với các chân I/O để nhúng (30/4-6/5) dữ liệu. 8  Thiết kế sơ đồ khối giải thích chức năng các (7/5-13/5) khối của kết nối ngoại vi.  Tính toán số liệu. 9  Thi công mô hình. (14/5-20/5)  Lắp đặt và kết nối các thiết vị ngoại vi. 10  Kiểm tra lỗi và chạy thử chương trình trên mô (21/5-28/5) hình hoàn chỉnh.  Viết báo cáo hoàn chỉnh. 11  Hoàn thiện chính sửa báo cáo gửi cho GVHD (29/5-3/6) để xem xét và góp ý lần cuối. 12  Nộp quyển báo cáo hoàn chỉnh và làm slide (4/6-11/6) powerpoint báo cáo. GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) ii LỜI CAM ĐOAN Đề tài này là do nhóm sinh viên Tăng Nguyễn Công Thiên tự thực hiện, dựa vào một số tài liệu 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 Tăng Nguyễn Công Thiên iv LỜI CẢM ƠN Trong thời gian thực hiện đề tài, những người thực hiện được sự giúp đỡ của gia đình, quý thầy cô và bạn bè nên đề tài đã được hoàn thành. Những người thực hiện xin chân thành gửi lời cảm ơn đến: Thầy Võ Đức Dũng, giảng viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để nhóm có thể hoàn thành tốt đề tài. Những người thực hiện cũng xin chân thành cám ơn đến các thầy cô trong khoa Điện - Điện tử của trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã tận tình dạy dỗ, chỉ bảo, cung cấp cho những người thực hiện những kiến thức nền, chuyên môn làm cơ sở để hoàn thành đề tài này. Cảm ơn gia đình đã động viên và luôn luôn bên cạnh trong những lúc khó khăn nhất. Xin gửi lời cảm ơn đến những người bạn sinh viên khoa Điện-Điện tử đã giúp đỡ những người thực hiện đề tài để có thể hoàn thành tốt đề tài này. Xin chân thành cảm ơn! Người thực hiện đề tài: Tăng Nguyễn Công Thiên v MỤC LỤC Trang bìa .................................................................................................................... i Nhiệm vụ đồ án ........................................................................................................ ii Lịch trình thực hiện đồ án tốt nghiệp ...................................................................... iii Cam đoan ................................................................................................................ iv Lời cảm ơn ................................................................................................................ v Mục lục .................................................................................................................... vi Liệt kê hình vẽ ......................................................................................................... ix Liệt kê bảng vẽ ........................................................................................................ xi Tóm tắt ................................................................................................................... xii CHƯƠNG 1. TỔNG QUAN ............................................................................ 1 1.1 LÝ DO CHỌN ĐỀ TÀI ...................................................................................... 1 1.2 MỤC TIÊU ......................................................................................................... 2 1.2.1 Mục tiêu ......................................................................................................... 2 1.2.2 Giới hạn ......................................................................................................... 2 1.3 BỐ CỤC ĐỒ ÁN TỐT NHIỆP ........................................................................... 2 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ................................................................ 4 2.1 GIỚI THIỆU VỀ HỆ THỐNG XỬ LÝ ẢNH .................................................... 4 2.1.1 Phần thu nhận ảnh (Image Acquisiton) ......................................................... 5 2.1.2 Tiền xử lý (Image Processing) ...................................................................... 6 2.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh ............................................. 6 2.1.4 Biểu diễn ảnh (Image Representation) .......................................................... 6 2.1.5 Nhận dạng và nội suy (Image Recognition and Interpretation) .................... 6 2.1.6 Cơ sở tri thức ................................................................................................. 7 2.1.7 Các thành phần cơ bản của hệ thống ............................................................ 7 2.2 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH ........................................ 8 2.2.1 Điểm ảnh (Picture Element) .......................................................................... 8 2.2.2 Độ phân giải của ảnh ..................................................................................... 8 2.2.3 Mức xám của ảnh .......................................................................................... 9 2.2.4 Định nghĩa ảnh số .......................................................................................... 9 vi 2.3 GIỚI THIỆU KHÁI QUÁT VỀ CÁC LINH KIỆN SỬ DỤNG TRONG THIẾT KẾ, THI CÔNG ĐỀ TÀI .......................................................................................... 9 2.3.1 Mạch Arduino Uno R3 .................................................................................. 9 2.3.2 Tổng quan về động cơ Servo ....................................................................... 14 2.3.3 Tổng quan về Buzzer................................................................................... 14 2.3.4 Module SIM 800A ...................................................................................... 15 CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ. ................................................ 16 3.1 TỔNG QUAN CÁC KỸ THUẬT NHẬN BIẾT MÀU DA DỰA TRÊN TÍNH CHẤT ĐIỂM ẢNH ................................................................................................ 16 3.1.1 Giới thiệu ..................................................................................................... 16 3.1.2 Không gian màu sử dụng cho mô hình hóa màu da .................................... 16 3.1.2.1 Không gian màu RGB ............................................................................ 17 3.1.2.2 Không gian RGB chuẩn hóa .................................................................. 17 3.1.2.3 Không gian màu HIS, HSV, HSL .......................................................... 18 3.1.2.4 Không gian màu HIS ............................................................................. 18 3.1.2.5 Không gian màu HSV ............................................................................ 19 3.1.2.6 Không gian màu HSL ............................................................................ 20 3.1.2.7 Không gian màu TSL ............................................................................. 21 3.1.2.8 Không gian màu Y ......................................................................... 21 3.1.2.9 Các hệ tọa độ không gian màu khác ...................................................... 22 3.1.3 Mô hình hóa màu da .................................................................................... 22 3.1.3.1 Xác đinh ngƣỡng cụ thể một điểm ảnh là màu da ................................. 22 3.1.3.2 Phƣơng pháp mô hình hóa màu da sử dụng phân phôi không tham số . 23 3.1.3.3 Bảng tra cứu chuẩn cứu (LUT – Lookup Table) ................................... 23 3.1.3.4 Phân lớp Bayes (bayes Classifier) ......................................................... 24 3.1.3.5 Tổng kết phƣơng pháp không tham số ................................................... 25 3.1.3.6 Mô hình hóa phân phối màu da có tham số ........................................... 25 3.1.3.7 Mô hình dựa trên phân phối Gauss đơn ................................................. 26 3.1.3.8 Mô hình kết hợp trên dựa trên phân phối Gauss .................................... 26 3.1.3.9 Đa phân phối Gauss ............................................................................... 27 3.1.3.10 Tổng kết các phƣơng pháp mô hình hóa theo tham số ........................ 27 3.1.4 So sánh kết quả các mô hình ....................................................................... 27 3.1.5 Đánh giá phƣơng pháp ................................................................................ 29 vii 3.1.6 Chọn lựa không gian màu và phƣơng pháp mô hình hóa dùn để nhận biết màu da cho đồ án .................................................................................................. 29 3.2 PHÂN TÍCH THÀNH PHẦN CHÍNH PCA ................................................... 30 3.2.1 Tổng quan về phƣơng pháp PCA ................................................................ 30 3.2.1.1 Giới thiệu ............................................................................................... 30 3.2.1.2 Ý tƣởng .................................................................................................. 30 3.2.2 Trích chọn đặc trƣng khuôn mặt ngƣời dựa trên phƣơng pháp PCA .......... 34 3.2.2.1 Chuyển đổi ảnh ...................................................................................... 34 3.2.2.2 Tính khuôn mặt ngƣời trung bình .......................................................... 35 3.2.2.3 Trừ mỗi ảnh cho mặt trung bình ............................................................ 35 3.2.2.4 Xây dựng ma trận hợp phƣơng sai ......................................................... 35 3.2.2.5 Phép chiếu .............................................................................................. 36 3.3 PHÂN TÍCH HOG ........................................................................................... 37 3.3.1 Giới thiệu ..................................................................................................... 37 3.3.2 Chuẩn hóa hình ảnh trƣớc khi xử lý ............................................................ 38 3.3.3 Tính toán gradient ....................................................................................... 38 3.3.4 Lấy votes trong mỗi cell .............................................................................. 39 3.3.5 Chuẩn hóa các block ................................................................................... 40 3.3.6 Sử dụng trong bài toán object recognition .................................................. 40 3.3 KẾT NỐI VỚI THIẾT BỊ NGOẠI VI ............................................................. 41 3.4.1 Khối xử lý trung tâm ................................................................................... 42 3.4.2 Khối Module Sim 800A .............................................................................. 42 3.4.3 Khối động cơ servo ..................................................................................... 43 3.4.4 Khối hiển thị và báo động ........................................................................... 44 3.4.5 Khối nguồn .................................................................................................. 45 3.4.6 Sơ đồ nguyên lý hệ thống ngoại vi .............................................................. 46 CHƯƠNG 4. THI CÔNG HỆ THỐNG ....................................................... 47 4.1 GIỚI THIỆU ....................................................................................................... 47 4.2 THI CÔNG HỆ THỐNG .................................................................................... 47 4.2.1 Hệ thống nhận hiện chuyển động ................................................................ 47 4.2.1 Hệ thống nhận diện khuôn mặt ................................................................... 50 4.2.2.1 Lƣu đồ giải thuật của hệ thống nhận diện khuôn mặt ............................ 50 4.2.2.2 Lƣu đồ giải thuật của hệ thống huấn luyện ............................................ 51 4.2.2.3 Yêu cầu về dữ liệu ảnh ........................................................................... 52 viii 4.2.2.4 Chuẩn hóa ảnh đầu vào .......................................................................... 53 4.2.2.5 Trích xuất đặc trƣng của khuôn mặt ...................................................... 53 4.2.2.6 Xuất kết quả ........................................................................................... 54 4.2.3 Hệ thống cảnh báo ....................................................................................... 55 4.3 GIỚI THIỆU CHƢƠNG TRÌNH ....................................................................... 57 4.3.1 Hệ thống phát hiện chuyển động ................................................................. 57 4.3.2 Hệ thống nhận diện khuôn mặt ................................................................... 58 4.4 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH ........................................................... 62 4.4.1 Đóng gói bộ điều khiển ............................................................................... 62 4.4.1 Thi công mô hình ........................................................................................ 63 CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ ................................... 65 5.1 KẾT QUẢ. .......................................................................................................... 65 5.2 NHẬN XÉT – ĐÁNH GIÁ ................................................................................ 76 CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. ........................... 77 6.1 KẾT LUẬN ........................................................................................................ 77 6.2 HƢỚNG PHÁT TRIỂN ..................................................................................... 78 TÀI LIỆU THAM KHẢO ............................................................................. 79 PHỤ LỤC.. ............................................................. 80 ix LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1 Các bước cơ bản trong xử lý ảnh ................................................................... 5 Hình 2.2 Các thành phần chính cảu hệ thống xử lý ảnh ............................................... 7 Hình 2.3 Arduino UNO R3 .......................................................................................... 10 Hình 2.4 Sơ Đồ Chân Arduino UNO R3 ...................................................................... 10 Hình 2.5 Động cơ Servo ................................................................................................ 14 Hình 2.6 Buzzer ............................................................................................................ 14 Hình 2.7 Module Sim 800A .......................................................................................... 15 Hình 3.1 Không gian màu RGB .................................................................................... 17 Hình 3.2 Không gian màu HSV .................................................................................... 19 Hình 3.3 Ý tưởng chính của PCA ................................................................................. 34 Hình 3.4 Biểu đồ dựa trên Gy,Gx .................................................................................. 39 Hình 3.5 Các cell trong một block ................................................................................. 40 Hình 3.6 Sơ đồ kết nối ngoại vi .................................................................................... 41 Hình 3.7 Module Sim 800A .......................................................................................... 42 Hình 3.8 Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Uno R3 ................ 43 Hình 3.9 Động cơ Servo ................................................................................................ 43 Hình 3.10 Sơ đồ nguyên lý kết nối Arduino Uno R3 với động cơ Servo ..................... 44 Hình 3.11 Sơ đồ kết nối Arduino Uno R3 với Buzzer .................................................. 45 Hình 3.12 Nguồn tổ ong 12V 5A .................................................................................. 46 Hình 3.13 Nguồn tổ ong 5V 4A .................................................................................... 46 Hình 3.14 Sơ đồ nguyên lý hệ thống ngoại vi ............................................................... 46 Hình 4.1 Lưu đồ của hệ thống nhận diện chuyển động ................................................ 47 Hình 4.2 Lưu đồ đưa hình ảnh vào hệ thống phát hiện chuyển động ........................... 48 Hình 4.3 Lưu đồ của nhận diện chuyển động ............................................................... 49 Hình 4.4 Hệ thống nhận diện có chuyển động và khoanh vùng chuyển động .............. 49 Hình 4.5 Lưu đồ của hệ thống nhận diện khuôn mặt..................................................... 50 Hình 4.6 Lưu đồ của hệ thống huấn luyện .................................................................... 51 Hình 4.7 Một số ảnh mẫu trong cơ sở dữ liệu ............................................................... 52 Hình 4.8 Lưu đồ tiến trình ............................................................................................. 53 Hình 4.9 Lưu đồ hệ thống cảnh báo chuyển động ........................................................ 55 Hình 4.10 Lưu đồ nhận diện khuôn mặt kết hợp với thiết bị ngoại vi .......................... 56 Hình 4.11 Giao diện chính của hệ thống chống trộm thông minh ................................ 57 ix Hình 4.12 Giao diện chính của hệ thống phát hiện chuyển động ................................. 58 Hình 4.13 Giao diện chính của hệ thống phát hiện chuyển động khi đang hoạt động . 58 Hình 4.14 Giao diện chính của hệ thống nhận diện khuôn mặt .................................... 59 Hình 4.15 Thêm ảnh cho cơ sở dữ liệu ......................................................................... 59 Hình 4.16 Huấn luyện cho cơ sở dữ liệu ....................................................................... 60 Hình 4.17 Tiến hành so sánh khuôn mặt với ảnh trong cơ sở dữ liệu .......................... 60 Hình 4.18 Cho phép xóa ảnh trong cơ sở dữ liệu .......................................................... 61 Hình 4.19 Các khuôn mặt có sẵn trong cơ sở dữ liệu .................................................... 61 Hình 4.20 Xóa tất cả ảnh trong cơ sở dữ liệu ............................................................... 62 Hình 4.21 Sơ đồ bố trí linh kiện mặt trước mô hình ..................................................... 62 Hình 4.22 Hình dạng mặt bên mô hình ......................................................................... 63 Hình 4.23 Hình dạng mặt trên mô hình ......................................................................... 64 Hình 5.1 Phát hiện chuyển động người ở phía trước ..................................................... 65 Hình 5.2 Phát hiện chuyển động người ở phía sau ........................................................ 66 Hình 5.3 Phát hiện chuyển động người khi đang cúi xuống .......................................... 66 Hình 5.4 Hệ thống cảnh báo gửi tin nhắn đến cho gia chủ ............................................ 67 Hình 5.5 Đèn và chuông hoạt động khi có chuyển động ............................................... 67 Hình 5.6 Ảnh chụp lại từ camera trong điều kiện ánh sáng yếu ................................... 68 Hình 5.7 Giao diện chính của hệ thống nhận diện khuôn mặt ...................................... 68 Hình 5.8 Tiến hành thêm hình ảnh vào kho lưu trữ ...................................................... 69 Hình 5.9 Chọn thiết bị để quét môi trường ................................................................... 69 Hình 5.10 Chọn thiết bị để quét môi trường ................................................................. 70 Hình 5.11 Phát hiện ra khuôn mặt ................................................................................. 70 Hình 5.12 Yêu cầu nhập tên .......................................................................................... 71 Hình 5.13 Huấn luyện hệ thống ..................................................................................... 71 Hình 5.14 Đang tiến hành huấn luyện hệ thống ............................................................ 72 Hình 5.15 Đã hoàn tấc huấn luyện ................................................................................ 72 Hình 5.16 Tiến hành so sánh khuôn mặt ....................................................................... 73 Hình 5.17 Phát hiện ra khuôn mặt có sẵn trong cơ sở dữ liệu ....................................... 73 Hình 5.18 Cửa mở ra trong 6 giây sau đó tự động đóng lại .......................................... 74 Hình 5.19 Phát hiện ra khuôn mặt không có trong cỡ sở dữ liệu.................................. 74 Hình 5.20 Đèn cảnh báo sáng lên kèm theo chuông ..................................................... 75 x LIỆT KÊ BẢNG Bảng Trang Bảng 2.1 Các thông số của Arduino UNO R3 ...................................................... 11 Bảng 3.1 Kết quả nhận biết đúng sai của các phương pháp ........................... 28 xi TÓM TẮT Hiện nay, hệ thống chống trộm ngày càng phổ biến và được tích hợp thêm nhiều các thiết bị điện tử để nâng cao tính hiệu quả của hệ thống. Vì thế hệ thống chống trộm ngày càng được ứng dụng nhiều hơn vào thực tiễn đời sống như không cho người lạ xâm nhập, bảo vệ tài sản, đã được đưa vào các hộ gia đình, công ty, trường học,... Với mục đích muốn tiếp cận với các công nghệ đang phát triển trên. Vì vậy, nhóm thực hiện đồ án với mong muốn chế tạo ra mô hình chống trộm sử dụng xử lý ảnh kết hợp với sử dụng kit Arduino được giám sát bằng máy tính thông qua Laptop và tin nhắn trong đó bao gồm: Hệ thống có các chức năng như sau:  Hệ thống chính gồm có hai phần  Nhận diện được chuyển động người trong khu vực có camera quan sát và đưa ra cảnh báo qua tin nhắn.  Nhận diện khuôn mặt và so sánh khuôn mặt đã quét với kho dữ liệu để đưa ra hướng xử lý mở cửa hay không.  Hệ thống mở rộng bao gồm:  Hệ thống điều khiển thiết bị từ xa thông qua Internet, hiển thị tất cả thông tin mà camera thu được vào thiết bị di động. Mô hình sử dụng kit Arduino Uno R3 làm vi điều khiển trung tâm để điều khiển các module mở rộng như Module Sim 800A, Buzzer, Servo. Đóng mở cửa bằng cách sử dụng động cơ Servo. Người dùng tương tác sử dụng thông qua camera được đặt sẵn. Hệ thống cảnh báo bằng Module Sim 800A gửi tin nhắn cảnh báo khi có người lạ đột nhập. xiii CHƯƠNG 1. TỔNG QUAN CHƯƠNG 1 TỔNG QUAN 1.1 LÝ DO CHỌN ĐỀ TÀI Tình hình an ninh trật tự đang là vấn đề nhức nhối của toàn xã hội, đặt biệt là vấn đề trộm cắp tài sản tại tư gia khiến cho gia chủ phải tốn rất nhiều thời gian và công sức trong việc bảo vệ tài sản Dù ở mức độ trộm cắp nào đi chăng nữa cũng để lại là những hậu quả ảnh hưởng trực tiếp cho gia chủ. Và một trong những nguyên nhân chủ yếu của nạn trộm cắp chính là an ninh lỏng lẻo giúp kẻ trộm có cơ hội ra tay. Hiện nay khóa đang là hình thức được sử dụng thông dụng nhất. Tuy nhiên những tên trộm hoàn toàn có thể bẻ, phá được khóa, thậm chí là khóa số điện tử. Do đó cần phải có những thiết bị báo trộm, vừa để chủ nhà nhận biết được có kẻ trộm đột nhâp, vừa để tên trộm khi biết đã bị phát hiện sẽ hoảng loạn sẽ phải quay đầu bỏ chạy ngay. Với những ngôi nhà thông minh hay căn hộ chung cư, thiết bị báo trộm lại càng cần thiết. Chính vì cần có biện pháp hiệu quả hơn trong vấn đề an ninh, phòng chống những rủi ro có thể xảy ra nên nhóm sinh viên chúng em chọn đề tài “Ứng dụng xử lý ảnh thiết kế thi công mạch chống trộm thông minh.” để làm đồ án tốt nghiệp. Nhằm khắc phục một phần và ngăn ngừa những hậu quả nêu trên, nhóm sinh viên chúng em chọn đề tài “Ứng dụng xử lý ảnh thiết kế thi công mạch chống trộm thông minh” để làm đồ án tốt nghiệp. Đây là một đề tài không quá mới mẻ, đã được nghiên cứu nhiều trong các đề tài trước đây. Và kết quả cho thấy rằng độ chính xác nằm ở mức trung bình . Đề tài đã khắc phục những hạn chế như vẫn có thể so sánh liên tục với những kho ảnh đã lưu trữ, cảnh báo cho người dùng nhằm tăng độ chính xác trong việc phát hiện có kẻ lạ. 1.2 MỤC TIÊU VÀ GIỚI HẠN 1.2.1 Mục tiêu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1 CHƯƠNG 1. TỔNG QUAN Thiết kế và thi công được hệ thống chống trộm thông minh thông qua quá trình xử lý ảnh nhận diện chuyển động và nhận dạng khuôn mặt để cảnh báo bằng tin nhắn SMS và báo động đồng thơi đóng mở cửa. 1.2.2 Giới hạn Đặc tính của hệ thống xử lý ảnh thông thường bị ảnh hưởng bởi nhiều yếu tố. Trong điều kiện thực tế cho phép nhóm thực hiện đề tài trong một số điều kiện giới hạn sau: Điều kiện thu nhận hình ảnh ngày và đêm, trong điều kiện ánh sáng ổn định. Khuôn mặt không trang điểm hoặc bị biến dạng. Không thể xác định được mắt khi khuôn mặt nghiêng, xoay trái, xoay phải một góc lớn hơn 45 độ, cúi xuống hoặc ngước lên một góc lớn hơn 300 độ. Khoảng cách từ camera đến đối tượng dưới 1.2 mét, trên khoảng cách này thì việc nhận dạng sẽ không được chính xác. Chưa xây dựng app android để người dùng có khả năng quản lý hệ thống từ xa. 1.3 BỐ CỤC ĐỒ ÁN TỐT NGHIỆP Đồ án tốt nghiệp có bố cục được thể hiện như sau: Chương 1: Tổng quan  Giới thiệu và nêu lý do chọn đề tài.  Mục tiêu và giới hạn.  Trình bày bố cục đồ án. Chương 2: Cơ sở lý thuyết  Giới thiệu về hệ thống xử lý ảnh.  Những vấn đề trong hệ thống xử lý ảnh.  Giới thiệu khái quát về các linh kiện sử dụng trong thiết kế, thi công đề tài. Chương 3: Tính toán thiết kế  Tổng quan các kỹ thuật nhận biết màu da dựa trên tính chất điểm ảnh.  Phân tích thành phần chính bằng PCA.  Phân tích HOG.  Kết nối với thiết bị ngoại vi. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 CHƯƠNG 1. TỔNG QUAN Chương 4: Thi công và giới thiệu chương trình  Giới thiệu.  Thi công hệ thống.  Giới thiệu chương trình.  Đóng gói và thi công mô hình. Chương 5: Kết quả_Nhận xét_Đánh giá  Kết quả.  Nhận xét_Đánh giá. Chương 6: Kết Luận Và Hướng Phát Triển  Kết luận.  Hướng phát triển. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT CHƢƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆ...hi xuất hiện một giá trị màu c rời rạc. Để tính giá trị này, ta sử dụng công thức Bayes quen thuộc: | ) ) | ) | ) ) | ) ) (3.9) Trong đó | )và | ) được tính trực tiếp từ biểu đồ màu da và không màu da. Xác suât toàn phần | )và | ) thì được ước lượng từ một số lượng các mẫu là màu da và không màu da trong tập huấn luyện. Bất đẳng thức | ) , trong đó là một giá trị ngưỡng, có thể được sử dụng để trở thành quy tắc trong phát hiện màu da. Công thức trên đôi khi hơi phức tạp và để có thể tránh điều này, nếu như thực sự không cần phải biết một cách chính xác suất | ) | ) mà chỉ cần biết tỷ số giữa chúng thì ta thường đưa về công thức như sau: | ) | ) ) | ) | ) ) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ (3.10) So sánh công thức này với một ngưỡng có thể tạo ra một quy tắc cho phép phát hiện tỷ số màu da và không phải mnauf da. Sau một vài phép biến đổi, chúng ta nhận được công thức: | ) | ) (3.11) ) ) Công thức trên có thể thấy rằng, việc chọn lưa giá trị của xác suất toàn phần không ảnh hưởng đến chất lượng của bộ phát hiện, vì với bất kì một xác xuất toàn phần ) đều có thể chọn được một giá trị K phù hợp sao cho giá trị ngưỡng là . 3.1.3.5 Tổng kết phƣơng pháp không tham số Hai ưu điểm dễ thấy của phương pháp mô hình hóa phân phối không tham số đó là: Thứ nhất chúng có thể huấn luyện và sử dụng được một cách nhanh chóng. Thứ hai chúng độc lập với lý thuyết về hình dạng của phân phối màu da (điều này không đúng trong mô hình hóa màu da có tham số). tuy nhiên nhược điểm của phương pháp này đó là chúng yêu cầu nhiều bộ nhớ để lưu trữ và không có khả năng nội suy hay tạo dữ liệu huấn luyện. Lấy ví dụ như, chúng ta lượng tử háo điểm ảnh trong không gian RGB về 8 bit cho môi mãu, khi đó chúng ta phải có một mảng có tới phần tử để lưu trữ tập tất cả các xác suất của môt hình. Để có thể giảm bớt kích thước này bằng cách loại bỏ những dữ liệu huấn luyện nhỏ lẻ, không gian màu thường sử dụng kích thước 128*128*128, 64*64*64, 32*32*32. Theo nghiên cứu thì kích thước 32*32*32 là kích thước không gian mang lại hiệu quả cao nhất. 3.1.3.6 Mô hình hóa phân phối màu da có tham số Hầu hết các mô hình màu da không tham số dựa trên biểu đồ xám yêu cầu rất nhiều bộ nhớ và hiệu năng của chúng phụ thuộc hoàn toàn vào tập ảnh huấn luyện cố định. Vì vậy cần có một mô hình màu da có thể thêm hoặc tự tạo ra dữ liệu huấn luyện để giúp BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ giảm tải cho bộ nhớ và tăng hiệu năng cho hệ thống, điều đó dẫn đến sự ra đời của mô hình phân phối tham số. 3.1.3.7 Mô hình dựa trên phân phối Gauss đơn Phân phối màu da có thể được mô hình hóa bởi phân phối Gaus thêm vào hàm mật độ xác suất. Định nghĩa như sau: ) ∑ ) | ) |∑ | (3.12) Ở đây, c là mmotj véc tơ màu, và ∑ là hai tham số phân phối (vector trung bình và ma trận hiệp phương sai). Các tham số của mô hình được ước lượng thông qua quá trình huấn luyện bởi hai công thức sau: ∑ ; ∑ ) ) (3.13) Trong đó, n là tổng số các mẫu màu da. Xác suất | ) có thể được tính trực tiếp mức độ tương tự màu da (likehood skin color) hoặc có thể tính bằng khoảng cách Mahalanobis từ vector màu c, vector trung bình , ma trận hiệp phương sai ∑ . Công thức tính khoảng cách Mahalanobis: ) ) ∑ ) (3.14) Phương pháp mô hình hóa dựa trên phân phối đơn Gaus đã được triển khai và nghiên cứu. 3.1.3.8 Mô hình kết hợp dựa trên phân phối Gauss BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Một mô hình công phu, phức tạp hơn, có khả năng biểu diễn được phân phối phức tạp đó là mô hình kết hợp dựa trên phân phôi Gauss. Đây là mô hình mở rộng từ mô hình đơn Gauss trên, trong trường hợp này, hàm phân phối mật độ xác suất là: | ) ∑ | ) (3.15) Trong đó, k là số lượng các thành phần được kết hợp, là tham số kết hợp, thỏa mãn ràng buộc∑ và | ) thỏa mãn hàm phối mật độ xác suất Gauss, vớimỗi vector trung bình và ma trận phương sai của nó. Huấn luyện mô hình được thực hiện với kỹ thuật được biết đến nhiều gọi là thuật toán kì vọng tối đa (EM – Expectation Maximization), trong đó giả sử rằng số lượng các thành phần k là đã biết trước. Chi tiết việc huấn luyện mô hình kết hợp Gauss với thuật toán EM này có thể được tìm thấy trong nhiều nghiên cứu. VIệc phân lớp trong mô hình kết hợp Gauss được thực hiện nhờ việc so sánh xác xuất | ) với một vài giá trị ngưỡng. Việc chọn lựa số lượng thành phần k ở đay là quan trọng. Vì nó ảnh hưởng đến độ chính xác của việc huấn luyện cho mô hình. Theo như những nghiên cứu hiện nay, k = 8là sự lựa chọn mang hiệu năng cao nhất cho mô hình kết hợp phân phối Gausian. 3.1.3.9 Đa phân phối Gauss Mức độ gần đúng của các nhóm màu da với phân phôi Gauss 3D trong không gian Y đã được miêu tả trong nhiều bài báo. Một số lượng khác nhau các thuật toán phân nhóm K trung bình được sử dụng cho nhóm Gauss thực hiện việc huấn luyện mô hình. Các điểm ảnh được phân lớp màu da nếu như khoảng cách Mahalanobis từ véctơ màu c đến trung tâm của cụm gần nhất trong mô hình nhỏ hơn một ngưỡng cho trước. 3.1.3.10 Tổng kết các phƣơng pháp mô hình hóa theo tham số Tất cả các phương pháp mô hình hóa theo tham số được miêu tả như trên (ngoại trừ 3.3.3.3) đều tính toán trên mặt phẳng các thành phần màu của không gian mà bỏ qua thông tin về độ sáng. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Dĩ nhiên, khi một mô hình phân phối cụ thể được sử dụng, sẽ có câu hỏi đặt ra về sự xác thực về giá trị của mô hình đó. Tuy nhiên do yêu cầu quá cao về bộ nhớ mà khi đánh giá hiệu năng thì mô hình có tham số lại có hiệu năng cao hơn. 3.1.4 So sánh kết quả các mô hình Để có thể đánh giá và so sánh hiệu năng của các phương pháp mô hình hóa màu da là không dễ, vì mỗi phương pháp thường được đề xuất của một nhóm các nhà nghiên cứu và được thử nghiệm trên cơ sở dữ liệu riêng.Trong bảng so sánh được đua ra dưới đây là kết quả tốt nhất mà mỗi phương pháp đạt được: Phƣơng pháp Nhận biết đúng Nhận biết sai Bayes SPM trong RGB 80% 8,5% (Jones và Regh 1999) 90% 14,2% Bayes SPM trong RGB 93,4% 19,8% (Brand và Mason 2000) Maximum Entropy Model trong RGB 80% 8% (Jedynak và al.2002) Gauss Mixture models trong RGB 80% ~9,5% (Jones và Regh 1999) 90% ~15,5% SOM in TS 78% 32% (Brown và al.2002) Elliptical boundary model trong CIE – xy 90% 20,9% (Lee và Yoo 2002) Single Gauss trong và 90% 33,3% (Lee và Yoo 2002) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Gauss Mixture trong IQ 90% 30% (Lee và Yoo 2002) Thresholding của trục I trong YIQ 94,7% 30,2% (Brand và Mason 2000) Bảng 3.1 Kết quả nhận biết đúng sai của các phương pháp 3.1.5 Đánh giá phƣơng pháp Ưu điểm của các phương pháp sử dụng các ngưỡng để phân lớp điểm ảnh là màu da hay không đó là tính đơn giản và tính trực giác cao trong các quy tắc phân lớp. Tuy nhiên, điểm khó khăn đó là cần phải tìm được cả một không gian màu tốt và các quy tắc xứng đáng trong không gian đó. Phương pháp được đề xuất hienj nay sử dụng thuật toán máy học để có thể tìm được không gian và các quy tắc thích hợp, tuy nhiên đề xuất vẫn còn là vấn đề mở trong tương lai. Các phương pháp sử dụng mô hình hóa không tham số thật sự nhanh trong cả việc huấn luyện và phân lớp, đọc lập với phân bố phân bố hình dạng của màu da và cả không gian màu. Tuy nhiên, phương pháp này lại có yêu cầu quá nhiều bộ nhớ lưu trữ và phụ thuộc cố định vào tập dữ liệu huấn luyện. Các phương pháp mô hình hóa có tham số cũng xử lý khá nhanh. Hơn nữa chúng lại có khả năng tự tạo ra các dữ liệu phu hợp, chúng được miêu tả bằng một số lượng không nhiều các tham số và đặc biệt chúng cần không đáng kể bộ nhớ lưu trữ. Tuy nhiên, chúng có thể sẽ thực sự chậm (giống như mô hình kết hợp giữa trên phân phối Gauss) trong cả huấn luyện và làm việc, và hiệu năng của chúng phụ thuộc nhiều vào hình dạng cảu phân phối màu da. Bên cạnh đó, hầu hết các phương pháp mô hình hóa màu da có tham số đều bỏ qua những thống kê về màu không phải là tham số. 3.1.6 Chọn lựa không gian màu và phƣơng pháp mô hình hóa dùng để nhận biết màu da cho đồ án Với mục đích là sử dụng nhận màu da để tiến hành phân vùng da, giảm không gian tìm kiếm khuôn mặt. Vì vậy phương pháp cần thiết cho đồ án phải có hiệu năng cao, thời BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ gian thực hiện nhanh, yêu cầu bộ nhơ không lớn. Không gian nhớ phải phù hợp với phương pháp nhận biết nhận biết màu da. Do khả năng nhóm thực hiện còn hạn chế, nên sau khi xem xét tất cả phương pháp, các đặc trưng cũng như hiệu năng của tung phương pháp, nhóm quyết định sử dụng phương pháp ngưỡng để tiến hành phân vùng màu da cho ảnh và không gian màu được lựa chọn đó là không gian RGB, sự phân biệt rõ ràng giữa độ sáng và các thành phần màu. 3.2 PHÂN TÍCH THÀNH PHẦN CHÍNH PCA 3.2.1 Tổng quan về phƣơng pháp PCA 3.2.1.1 Giới thiệu Phân tích thành phần chính (Principal Compoment Analysis – PCA) được trình bày theo nhiều quan điểm khác nhau khác nhau. Với các nhà nhân tố học cổ điển thì kỹ thuật này là phương pháp phân tích nhân tố trong trường hợp đặc biệt, khi phương sai này bằng không hoặc xấp xỉ bằng không. Phương pháp này thường được sử dụng trong phân tích tâm lý, do Horst (1965) và Harman (1966) đề xuất. Sau cùng, theo quan điểm phổ biến hơn cả của các nhà phân tích số liệu thì PCA là một kỹ thuật biểu diễn số liệu một cách tối ưu theo một tiêu chuẩn đại số và hình học đặc biệt. Khi sử dụng kỹ thuật này người ta không đòi hỏi một giả thuyết thống kê hoặc một mô hình đặc biệt nào. Quan điểm này trở nên phổ biến từ khi có máy tính điện tử, và là quan điểm mới nhất. Trong công trình của C.R Rao (1964) nội dung lý tuyết của phương pháp PCA được trình bày khá đơn giản và rõ ràng. Lĩnh vực ứng dụng của phương pháp PCA rất rộng trong công nghiệp, nông nghiệp, kinh tế, khoa học cơ bản, với bảng số liệu mà các cột là các biến và các dòng là các cá thể trên đó đo giá trị của biến. 3.2.1.2 Ý tƣởng Ý tưởng chính của phương pháp PCA để trích chọn đặc trưng khuôn mặt người là diễn tả một số lượng lớn các vector pixel một chiều được hình thành từ ảnh một chiều bởi các thành phần thiết yếu không gian đặc trưng. Bước này được gọi là chiếu lên không gian đặc trưng mặt. Không gian đặc trưng được tính toán từ định nghĩa vector đặc trưng của ma trận hợp phương sai tình hình từ tập các khuôn mặt người (ở dạng vector). BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Mô tả thuật toán: Giả sử mỗi ảnh có kích thước M*N, ta coi mỗi bức ảnh này là một vector trong không gian M*N chiều. Bây giờ mỗi khuôn mặt là một vector, ta thấy những vector này không phân bố ngẫu nhiên trong không gian ảnh mà phân bố theo một quy lluật tương đối nào đó, ta có thể nói những vector này nằm trong một không gian con gọi là không gian khuôn mặt. Từ những vector trong tập huấn luyện, ta sẽ tìm một cơ sở trực chuẩn cho không gian khuôn mặt, Những vector thuộc cơ sở này có thể coi là những vector mang nét tông thể đặc trưng về khuôn mặt. Giả sử tập huấn luyện có P ảnh, khi đó ta sẽ có P vector: . Tính vector ảnh trung bình: ∑ (3.16) Sự khác biệt giữa những khuôn mặt với ảnh trung bình là nhưng vector: Ý tưởng của việc phân tích thành phần chính là tìm một tập nhương vector trực chuẩn sao cho những vector này mô tả tốt nhất sự phân bố những vector khuôn mặt trong không gian. Những vector được chọn sao cho: ⟨ | ⟩ { (3.17) ∑⟨ | ⟩ Những vector và giá trị vô hướng chính là những vector riêng và trị riêng tương ứng của ma trận . ⟨ | ⟩ là tích vô hướng giữa hai vector u,v. [ ] (3.18) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Ta thấy ma trận A có kích thước M*N x P, còn ma trận có kích thước M*N x M*N, do kích thước ma trận này quá lớn nên ta không thể tìm được những vector riêng và những trị riêng trực tiếp được, thay vào đó ta sẽ tìm những vector riêng của ma trận có kích thước P x P. Nếu v là một vector riêng của và λ là trị riêng tương ứng, khi đó ta có : Av=Av (3.19) Tức là Av là một trị riêng của ma trận . Thông thương ta chỉ lấy một số q vector riêng ứng với Q trị riêng có giá trị lớn nhất. Sau khi có các vector riêng của ma trận , ta sẽ chuản hóa chúng để thu được một cơ sở trực chuẩn của không gian khuôn mặt. Đặt L = , tìm V là tập hợp các vector riêng còn L,D là tập hợp các trị riêng tương ứng. V bao gồm Q vector riêng ứng với những trị riêng lớn hơn một giá trị nào đó. E = AV là tập các vector riêng ứng của . Do đây là những vector riêng, mà nó lại có dạng khuôn mặt nên được gọi là Eigenfaces. E là ma trận M*N x Q, mỗi cột la một vector riêng. Chuẩn hóa ccs vector cột trong E (chia mỗi vector cho độ dài của vector đó). Bây giờ ta có thể coi E là một cơ sở trực chuẩn của không gian khuôn mặt. Với H là bức ảnh có cùng kích thước với những bức ảnh trong tập huấn luyện. Ta sẽ xét nó có phải là bức ảnh khuôn mặt hay không, cũng như tìm bức ảnh giống với nó nhất trong tập huấn luyện. H được xem là một vector trong không gian M*N chiều. Đặt K = H – m với m là vector ảnh trung bình. Cho V là một không gian có tích vô hướng hữu hạn chiều và Ư là một không gian con của V. Giả sử Ư có một cơ sở trực chuẩn là { }. Khi đó hình chiếu trực giao của vector u bất kỳ lên Ư được xác định như sau BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ ∑⟨ | ⟩ (3.20) Độ dài ‖ ‖ được gọi là khoảng cách từ u đến W. Tập hợp ⟨ | ⟩, i = 1,, Q được gọi là tọa độ của trong không gian W. Tìm C = K là tọa độ của hình chiếu của K lên không gian khuôn mặt. C là vector cột Qx1 ∑ với = C(i,l); = E(l,i) (3.21) Với là một cột trong ma trận A (tương ứng với bức ảnh trong tập huấn luyện). Ta tính là tọa độ của hình chiếu của lên không gian khuôn mặt. Ta tính hai đại lượng sau: ‖ ‖ xem như khoản cách từ bức ảnh H đến không gian mặt. ‖ ‖ xem như khoản cách từ bức ảnh H đến bức ảnh trong tập huấn luyện. Xét α và β là hai ngưỡng nào đó. s < α thì H là bức ảnh khuôn mặt (do H đủ gần với không gian mặt). < β thì là bức ảnh của cùng một người với H (H dủ gần với ). Vậy là ta đã có thể tìm bức ảnh trong tập huấn luyện giống với bức ảnh H hay xác định đó có phải là bức ảnh khuôn mặt hay không. Tuy nhiên ảnh H phải có cùng kích thước với những bức ảnh tập huấn luyện. Bây giờ trong một bức ảnh lớn H có nhiều khuôn mặt, ta sẽ xác định vị trí những khuôn mặt trong bức ảnh. Tại mỗi vị trí (x,y) trong H, đặt H(x,y) là một vùng trong ảnh H có kích thước MxN tại (x,y), ta xem ảnh con H(x,y) là một vector M*N chiều. K(x,y) = H(x,y) – m (3.22) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Tìm K(x,y) là hình chiếu của K(x,y) lên không gian khuôn mặt. Tính s(x,y) = ‖ ) )‖ Tập hợp các giá trị s(x,y) tạo thành một bản đồ khuôn mặt (face map) của H, từ đó ta có thể xác định vị trí những khuôn mặt trong ảnh. Hình 3.3 Ý tưởng chính của PCA 3.2.2 Trích chọn đặc trƣng khuôn mặt ngƣời dựa trên phƣơng pháp PCA Khuôn mặt người có rất nhiều nét để nhận biết, nếu như ta gặp lại một người bạn sau một thời gian dài, ta có thể nhận ra ngay mặt người đó dù những chi tiết cụ thể trên mặt có thể thay đổi như da, mái tóc. Ta nhận ra không phải vì nhớ đôi mắt hay mũi hay môi hay tóc của người đó mà ta nhận ra vì nhớ diện mạo của người đó. Tức là trên khuôn mặt người tồn tại một nét tổng thể nào đó để có thể nhận diện, thuật toán của ta bắt đầu từ ý tưởng này. Phân tích thành phần chính (Princial Compomenent Analysis) gọi tắc là PCA là thuật toán trích chọn đặc trưng dựa trên những nét tổng thể của khuôn mặt người, ta sẽ áp dụng thuật toán này để thực hiện hai công việc sau: Thức nhất là tìm một khuôn mặt người giống với khuôn mặt người cho trước. Thức hai là xác đinh đặc trưng những khuôn mặt người trong một bức ảnh. Sơ đồ tiến trình trích chọn đặc tưng khuôn mặt người: 3.2.2.1 Chuyển đổi ảnh Biểu diễn M ảnh trong không gian 2-D thành 1-D. Tạo vector có kích thước N (số hàng của ảnh x số cột của ảnh) như mô tả sau: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ ⃗⃗ [ ] ̅̅̅ ̅ ̅̅ (3.23) Với: là giá trị pixel của ảnh T là chuyển vị của ma trận Kết quả chuyển cho M ảnh đưa vào ma trận như sau: Mỗi ảnh là một ma trận cột, ghép M ma trận cột ứng với M ảnh thành một ma trận có kích thước NxM. [ ] (3.24) Chỉ số đầu là thành phần của vector, chỉ số sau là số thứ tụ của ảnh. 3.2.2.2 Tính khuôn mặt ngƣời trung bình Chi tiết công thức trên: ⃗⃗ [ ]=[ ] (3.25) 3.2.2.3 Trừ mỗi ảnh cho mặt trung bình Nhằm mục đích tạo ra sự giãn tương đối giá trị pixel của các ảnh ⃗⃗⃗⃗ ⃗⃗ ⃗ [ ], ⃗⃗⃗ ⃗⃗ ⃗ [ ],, ⃗⃗⃗ ⃗⃗ ⃗ [ ] (3.26) Xây dụng ma trận từ các ⃗⃗⃗ ⃗⃗ ⃗ vừa tìm được Đặt: A =( ⃗⃗⃗⃗ ⃗⃗ ⃗ ⃗ ⃗⃗⃗ ⃗⃗ ⃗ . ⃗⃗⃗⃗ ⃗⃗⃗ ⃗ ) sẽ được ma trận có kích thước NxM. 3.2.2.4 Xây dựng ma trận hợp phƣơng sai BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Nhằm mục đích thể hiện sự tương quan của từng vector. (3.27) Tính trị riêng (eigenvalue: ), và vector riêng (eigenvector: ) của ma trận trận hợp phương sai này. Đó chính ;à đặc trưng thành phần thiết yếu của ảnh. Nhưng thực tế, nếu ảnh có kích thước 200x230 (độ trộng và cao của ảnh), thì khi đó kích thước của ma trận cov là 46000x46000 (NxN). Kích thước khá lớn, do đó việc tính trị riêng, vector riêng là vấn đề trở ngại khi tính trực tiếp teo cách này. Vì vậy cần phải áp dụng lý thuyết đại số tuyến tính: trị riêng λ, và vector riêng có x thể tính bắng cách giải quyết trị riêng, và vector riêng của ma trận A (kích thước MxM nhỏ hơn nhiều so với NxN). Đặt và là các trị riêng và vector riêng của ma trận A. Kết quả như sau: = (3.28) Nhân mỗi vế của (3.6) cho A sẽ được: A ) = ) (3.29) Với X = A Điều này cho thấy: M vector riêng và M trị riêng đầu tiên của tương ứng chính là tích ( A với vector riêng của A) và . Các vector riêng là không gian đặc trưng các khuôn mặt người trong cơ sở dữ liệu ảnh ban dầu. Các vector riêng được sắp xếp theo thứ tự từ cao đến thấp theo trị liệu riêng tương ứng. Vector riêng có trị riêng lớn nhất sẽ mang nhiều đặc trưng thiết yếu nhất của không gian các khuôn mặt người (tức nó quyết định nhiều nhất sự biến đổi trong ảnh). Ngược lại vector riêng có trị riêng bé nhất sẽ mang thành phần ít đặc trưng nhất trong không gian đặc trưng các khuôn mặt người. Ở đây cho thấy chỉ với M hướng đặc trưng mang trị riêng lớn nhất trong NxN không gian dặc trưng. 3.2.2.5 Phép chiếu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Chiếu lần lượt các ảnh trong cơ sở dữ liệu đến không gian đặc trưng M hướng này, để sinh ra các khuôn mặt người đặc trưng trong không gian khuôn mặt người mới. [ ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ] ⃗⃗⃗ ⃗⃗ ⃗ (3.30) Với i = ̅̅̅ ̅ ̅̅ Với [ ] [ ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ] : là ma trận đặc trưng các khuôn mặt người đã rút trích ra được, hay còn được gọi là eigenfaces. ⃗⃗⃗ ⃗⃗ ⃗ : là vector ảnh thứ I trừ khuôn mặt người trung bình. Khi đó, ta sẽ có 4 trường hợp có thể xảy ra đối với ảnh đầu vào và các vector thành phần để từ đó quyết định kết quả tại ngõ ra của nó: Gần không gian khuôn mặt người và thuộc một lớp mặt. Trong trường hợp này, ảnh sẽ được nhận dạng và xác định. Gần không gian khuôn mặt người nhưng không thuộc lớp mặt. Trong trường hợp này, ta sẽ nhận ra ảnh thuộc lớp mặt người nhưng không xác định được. Xa không gian khuôn mặt người nhưng thuộc một lớp mặt. Trong trường hợp này, ảnh sẽ bị nhận diện sai trong hầu hết hệ thống nhận diện hiện nay, tuy nhiên sự nhận diện sai này sẽ bị phát hiện nếu hệ thống sử dụng một khoảng cách cần thiết giữa ảnh và không gian con của ảnh mặt người. Xa không gian khuôn mặt người và không thuộc lớp mặt nào. Trong trường hợp này, ảnh không phải là ảnh khuôn mặt người. 3.3 PHÂN TÍCH HOG 3.3.1 Giới thiệu HOG(histogram of oriented gradients) là một feature descriptor được sử dụng trong computer vision và xử lý hình ảnh, dùng để phát hiện một đối tượng. Hog được sử dụng chủ yếu để mô tả hình dạng và sự xuất hiện của một object trong ảnh Bài toán tính toán Hog thường gồm 5 bước:  Chuẩn hóa hình ảnh trước khi xử lý  Tính toán gradient theo cả hướng x và y . BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ  Lấy phiếu bầu cùng trọng số trong các cell  Chuẩn hóa các block  Thu thập tất cả các biểu đồ cường độ gradient định hướng để tạo ra feature vector cuối cùng. 3.3.2 Chuẩn hóa hình ảnh trƣớc khi xử lý Bước chuẩn hóa này hoàn toàn không bắt buộc, nhưng trong một số trường hợp, bước này có thể cải thiện hiệu suất của bộ mô tả HOG. Có ba phương pháp chuẩn hóa chính mà chúng ta có thể xem xét:  Quy định về chuẩn Gamma /power : Trong trường hợp này, ta lấy log(p) của mỗi pixel p trong hình ảnh đầu vào.  Chuẩn hoá gốc-vuông: Ở đây chúng ta lấy √ ) của mỗi pixel p trong hình ảnh đầu vào. Theo định nghĩa, sự bình thường của các căn bậc hai nén các cường độ điểm ảnh đầu vào thấp hơn nhiều so với chuẩn bình thường của gamma.  Variance normalization: Ở đây, chúng ta tính cần giá trị cường độ điểm ảnh trung bình \muμ và độ lệch tiêu chuẩn σ của hình ảnh đầu vào. Với mỗi điểm ảnh ta trừ đi giá trị trung bình của cường độ điểm ảnh và sau đó được chuẩn hóa bằng cách chia cho độ lệch chuẩn: p′=(p−μ)/σ 3.3.3 Tính toán gradient Để lấy được hình ảnh gradient, chúng ta sẽ sử dụng tích chập(convolution): Gx=I⋆Dx và Gy=I⋆Dy với I là hình ảnh đầu vào, Dx là bộ lọc cho chiều x, và Dy là bộ lọc cho chiều y . Sau khi có các ảnh gradient, chúng ta có thể tính toán cường độ gradient của hình ảnh: | | √ Cuối cùng, định hướng của gradient cho mỗi pixel trong hình ảnh ban đầu được tính bằng cách: ) Dự vào |G| và , chúng ta có thể tính được một biểu đồ cường độ gradient, trong đó cột của histogram dựa trên \theta và trọng số của mỗi cột của biểu đồ được dựa trên BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Hình 3.4 Biểu đồ dựa trên Gy,Gx 3.3.4 Lấy votes trong mỗi cell Bây giờ chúng ta cần chia hình ảnh của chúng ta thành các cell và block Một cell là một vùng hình chữ nhật được xác định bởi số điểm ảnh thuộc mỗi cell. Ví dụ: nếu ta có một hình ảnh 128 x 128 với pixel_per_cell = 4 x 4 thì sẽ có 32 x 32 = 1024 cell, pixel_per_cell = 32 x 32, sẽ có 4 x 4 = 16 cell. Với mỗi cell trong bức ảnh, ta cần xây dựng 1 biểu đồ cường độ gradient. Mỗi pixcel sẽ được vote vào vào biểu đồ, trọng số của mỗi vote chính là cường độ gradient tại pixel đó Cuối cùng, mỗi pixel đóng góp một phiếu bầu có trọng số vào biểu đồ - trọng lượng của phiếu chỉ đơn giản là cường độ gradient |G| tại pixel đó.Lúc này, chúng ta có thể thu thập và ghép các biểu đồ này để tạo ra feature vector cuối cùng. Tuy nhiên, ta sẽ chuẩn hóa các block để có được kết quả tốt hơn BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Hình 3.5 Các cell trong một block 3.3.5 Chuẩn hóa các block Một lần nữa, ta cần chia các block giống như chia cell ở phía trên. Đơn vị của ta không còn là các điểm ảnh nữa mà là các cell. Người ta thường sử dụng hoặc 2x2 hoặc 3x3 cell_per_block có được độ chính xác hợp lý trong hầu hết các trường hợp.Các block này sẽ chồng lên nhau. Ví du: ta có 3x3 cells và cell_per_block= 2x2 thì ta sẽ có 4 block. Tiếp đến, ta sẽ tiến hành thu thập và ghép các histogram của cell trong block. 3.3.6 Sử dụng trong bài toán object recognition HOG được implement trong opencv và scikit-image. Tuy nhiên, việc sử dụng HOG trong scikit-image linh hoạt hơn rất nhiều trong opencv Bài toán mình đặt ra là, trong một bức ảnh có nhiều chữ số có kích thước khác nhau, làm thế nào để xác định được các chữ số đó Đầu tiền, mình sử dụng opencv2 để load ảnh, resize và chuyển ảnh sang màu graysacle BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ 3.4 KẾT NỐI VỚI THIẾT BỊ NGOẠI VI Thiết kế sơ đồ hệ thống kết nối với thiết bị ngoại vi Hình 3.6 Sơ đồ kết nối ngoại vi  Chức năng từng khối:  Khối nguồn: cung cấp nguồn 5V cho khối hiển thị và báo động nguồn 4.5V DC cho Module Sim 800A; nguồn 9V DC cấp cho khối xử lý trung tâm board Arduino Uno R3.  Khối xử lý trung tâm: thu thập dữ liệu từ các thiết bị sau đó xử lý và điều khiển khối chấp hành và khối hiển thị. Khối này do Arduino Uno R3 thực hiện.  Khối Module Sim 800A: Gửi dữ liệu cảnh báo khi nhận diện khuôn mặt không có trong cơ sở dữ liệu.  Khối hiển thị và báo dộng: sử dụng led và buzzer để báo dộng khi có chuyển động trong một khu vực nhất định.  Khối động cơ servo: đóng mở cửa do động cơ servo thực hiện. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ 3.4.1 Khối xử lý trung tâm Vì Arduino Uno R3 sử dụng chip ATmega. Nó có 54 chân digital I/O 16 chân đầu vào tương tự (Analog Inputs), 4 UARTs (cổng nối tiếp phần cứng), một thạch anh dao động 16 MHz, kết nối USB, một jack cắm điện, một đầu ICSP và một nút reset Nó chứa tất cả mọi thứ cần thiết để tạo thành khối xử lý trung tâm với đầy đủ các port . Trong quá trình kết nối các module và lập trình cho hệ thống: Bộ nhớ sử dụng hết 4409 bytes vào khoảng 53% bộ nhớ Tổng số chân I/O sử dụng là 29 chân, công thức tính dòng tiêu thụ (3.31) Dòng tiêu thụ = 29 x 20mA = 580mA 3.4.2 Khối Module Sim 800A Hình 3.7 Module Sim 800A Vì chỉ gửi dữ liệu cảnh báo bằng tin nhắn nên ta chỉ dùng 4 chân là VCC, GND, TXD, RXD được kết nối với Arduino Uno R3 như sau:  Hai chân nguồn VCC và GND được kết nối với Adapter 9V 2A để dòng điện cho sim hoạt động ổn định lâu dài. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ  TXD được nối vào chân RX3 và RXD nối vào TX3 của Arduino Mega để truyền nhận dữ liệu theo chuẩn UART. Hình 3.8 Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Uno R3 3.4.3 Khối động cơ servo Hình 3.9 Động cơ Servo  Thông số kỹ thuật - Momen xoắn: 1.8kg/cm - Tốc độ hoạt động: 60 độ trong 0.1 giây - Điện áp hoạt động: 4.8V(~5V) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Cách kết nối giữa động cơ Servo và Arduino Uno R3, được thể hiện trong hình dưới đây:  Chân số 1 nối vào chân 66 của Arduino.  Chân số 3 nối với GND của Arduino và Jack DC 5V.  Chân số 2 nối với 5V của Jack DC 5V. Hình 3.10 Sơ đồ nguyên lý kết nối Arduino Uno R3 với động cơ Servo 3.4.4 Khối hiển thị và báo động Ở khối này chúng t kết nối với buzzer để làm hai việc: Phát âm cảnh báo khi có chuyển động trong vùng có camera. Phát âm cảnh báo khi nhận diện khuôn mặt sai. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Hình 3.11 Sơ đồ kết nối Arduino Uno R3 với Buzzer 3.4.5 Khối nguồn  Nguồn cấp cho Arduino Board Arduino Uno R3 sử dụng hết 29 chân (N). Dòng DC trên mỗi chân I/O ( ) là 20mA. IAr = x N = 20 x 29 = 580 mA (3.32) Theo tính toán thì sẽ cấp dòng tối thiểu là 760mA. Vì vậy, nhóm sinh viên sử dụng mạch giảm áp LM2596 tử nguồn tổ ong 12V  Nguồn cấp cho Module Sim 800A Theo thông số kỹ thuật, nguồn cấp đầu vào từ 5-18V và dòng vào lớn hơn 1A. Vì vậy, nhóm sinh viên sử dụng mạch giảm áp LM2596 tử nguồn tổ ong 12V 5A để có ngõ ra là 9V 2A đảm bảo cho Module Sim 800A hoạt động ổn định.  Nguồn cấp cho động cơ servo Theo lý thuyết, ta có động cơ servo Sg90 hoạt động ở điện áp 5V. Vì vậy, nhóm sinh viên sử dụng một ngõ ra được mắc song song (2 ngõ ra mắc song song) từ nguồn tổ ong 5V 4A có thông số là 5V 2A. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ Hình 3.12 Nguồn tổ ong 12V 5A Hình 3.13 Nguồn tổ ong 5V 4A 3.4.6 Sơ đồ nguyên lý hệ thống ngoại vi Dưới đây là hình 3.14 là sơ đồ nguyên lý toàn mạch thể hiện tất cả các khối và kết nối các thiệt bị lại với nhau rồi cắm vào Arduino Uno R3: Hình 3.14 Sơ đồ nguyên lý hệ thống ngoại vi BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 CHƯƠNG 4.THI CÔNG THIẾT KẾ CHƯƠNG 4 THI CÔNG THIẾT KẾ 4.1 GIỚI THIỆU Đồ án hệ thống chống trộm thông minh là sự kết hợp của ba hệ thống: Nhận diện chuyển dộng, nhận diện khuôn mặt ngƣời và hệ thống cảnh báo. Hai hệ thống nhận diện chuyển động và hệ thống nhận diện khuôn mặt ngƣời đƣợc thực hiện dựa trên phƣơng pháp phân tích thành phần chính PCA và HOG dùng để tiếp cận lý thuyết thông tin giúp cho việc truy xuất dữ liệu dễ dàng hơn. Hệ thống cảnh báo sử dụng arduino kết hợp với giải thuật chƣơng trình và các linh kiện có sẵn đƣợc thi công theo tính toán thiết kế đã làm trƣớc đó. 4.2 THI CÔNG HỆ THỐNG 4.2.1 Hệ thống nhận hiện chuyển động Lƣu đồ hệ thống nhận hiện chuyển động Hình 4.1 Lƣu đồ của hệ thống nhận hiện chuyển động BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47 CHƯƠNG 4.THI CÔNG THIẾT KẾ Đầu tiên hệ thống sẽ lấy ảnh đầu vào (do mô hình là mô phỏng nếu áp dụng vào thực thế hệ thống sẽ lấy ảnh trực tiếp từ camera). Hình ảnh sau khi lấy đƣợc sẽ đƣợc nâng cao độ tƣơng phản, khử nhiễu, khử bóng, khử độ lệch loại bỏ các đối tƣợng không quan tâm để giảm sai số cho quá trình đếm đối tƣơng. Kết quả cuối cùng sẽ là nhận diện đƣợc chuyển động và lƣu lại lịch sử đã có ngƣời qua lại trong khu vực lắp đặt camera. Chi tiết hệ thống Khối ảnh đầu vào: đƣa hình ảnh thu đƣợc từ camera vào hệ thống. Khối tiền xử lý: giúp cải thiện và nâng ...chuyển động Nhấn vào “ BẮT ĐẦU” chƣơng trình sẽ tiến hành hoạt động với camera chụp liên tục đến khi có chuyển đổng sẽ tự động chụp lại vào lƣu lại vào một cơ sở dữ liệu Hình 4.13 Giao diện của hệ thống phát hiện chuyển động khi đang hoạt động BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 CHƯƠNG 4.THI CÔNG THIẾT KẾ 4.3.2 Hệ thống nhận diện khuôn mặt Mở ứng dụng, khởi động chƣơng trình: Hình 4.14 Giao diện chính của hệ thống nhận diện khuôn mặt Để thêm hình ảnh cho cơ sở dũ liệu chúng ta nhấn “THÊM ẢNH” rồi chọn camera sẽ sử dụng và chọn độ phân giải (nhóm em sẽ sử dụng camera “logitech” và độ phân giải là 1024x576). Hình 4.15 Thêm ảnh cho cơ sở dữ liệu Chƣơng trình tiến hành lấy hình ảnh cho cơ sở dữ liêu và tiến hành nhập tên. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 CHƯƠNG 4.THI CÔNG THIẾT KẾ Sau đó chúng ta sẽ nhận vào “HUẤN LUYỆN” để huấn luyện tập ảnh Hình 4.16 Huấn luyện cho cơ sở dữ liệu Sau khi kết thúc huấn luyện ta tiến hành ta nhấn “NHẬN DIỆN”rồi tƣơng tự ta chọn thiết bị để nhận dạng và độ phân giải. Hình 4.17 Tiến hành so sánh khuôn mặt với ảnh trong cơ sở dữ liệu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 CHƯƠNG 4.THI CÔNG THIẾT KẾ Ngoải ra chúng ta còn có thế xóa bớt ảnh có trong cơ sở dữ liệu bằng nút nhấn “XÓA”. Hình 4.18 Cho phép xóa ảnh trong cơ sở dữ liệu Ngoài ra chúng ta còn có thể kiểm tra trong cơ sở dữ liệu qua nút nhấn “LƢU TRỮ” và “GHI LẠI”. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 CHƯƠNG 4.THI CÔNG THIẾT KẾ Hình 4.19 Các khuôn mặt có sẵn trong cơ sở dữ liệu (database) Nút “ĐẶT LẠI” để xóa hết mọi thứ từng lƣu lại trong chƣơng trình. Hình 4.20 Xóa tất cả ảnh trong cơ sở dữ liệu Tiến hành nhận diện khuôn mặt ở trƣớc camera rồi sau đó chƣơng trình tiến hành so sánh khuôn mặt mới thu đƣợc với những hình ảnh có sẵn trong cơ sở dữ liệu để đƣa ra hƣớng giải quyết cho hệ thống cảnh báo. 4.4 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 4.4.1 Đóng gói bộ điều khiển Sau khi kiểm tra mạch hoạt động tốt ta tiến hành đóng hộp thành mô hình cửa. Bộ điều khiển đƣợc trong 1 hình hộp chữ nhật bằng meca đen dày 3 mm với kích thƣớc 30x30x30 cm. Camera Thiết bị ngoại vi LAPTOP (hệ thộng phát hiện chuyển động và nhận diện khuôn mặt) ( BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62 CHƯƠNG 4.THI CÔNG THIẾT KẾ Hình 4.21 Sơ đồ bố trí linh kiện mặt trƣớc mô hình 4.4.2 Thi công mô hình Mô hình bằng nhựa kết nối laptop với thiết bị ngoại vi và camera. Hình 4.22 Hình dạng mặt bên ngoài mô hình BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63 CHƯƠNG 4.THI CÔNG THIẾT KẾ Hình 4.23 Hình dạng bên trong mô hình BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Chƣơng 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1 KẾT QUẢ Sau thời gian tiến hành tìm hiểu, nghiên cứu các tài liệu chuyên ngành tiếng Việt cũng như tiếng Anh, tìm hiểu thêm qua mạng Internet, tổng hợp lại các kiến thức đã được học trong suốt 4 năm cũng như được sự hướng dẫn của thầy GVHD Th.S Võ Đức Dũng. Nhóm chúng em cũng đã hoàn thành được đồ án tốt nghiệp với đề tài “ỨNG DỤNG XỬ LÝ ẢNH THI CÔNG THIẾT KẾ MẠCH CHỐNG TRỘM THÔNG MINH ”  Nghiên cứu và biết được cách viết chương trình MATLAB và đồng thời liên kết chương trình MATLAB với Arduino làm tăng tính hiệu quả của hệ thống.  Nghiên cứu và biết cách kết nối giữa Arduino với module Sim 800A, động cơ Servo và lắp vào mô hình để thành sản phẩm hoàn chỉnh.  Nghiên cứu biết được cách sử dụng module Sim 800A, nguyên lý hoạt động, các thông số kỹ thuật, tính năng của Sim 800A. Biết được cách thiết lập cho module sim, sử dụng tính năng gửi tin nhắn. Sau quá trình nghiên cứu, thi công đề tài “ỨNG DỤNG XỬ LÝ ẢNH THI CÔNG THIẾT KẾ MẠCH CHỐNG TRỘM THÔNG MINH” của nhóm đã hoàn thành và thực hiện được tính năng sau: Nhận biết được chuyển động thông qua Camera BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 65 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.1 Phát hiện chuyển động người ở phía trước Hình 5.2 Phát hiện chuyển động ở phía sau Hình 5.3 Phát hiện chuyển động người khi đang cúi xuống Khoanh vùng và chụp lại những ảnh phát hiện ra chuyển động với nhiều tư thế khác nhau như phía trước mặt sau lưng hoặc là khi người lạ cúi xuống đồng thời lưu lại ảnh để giúp gia chủ có thể kiểm tra lại đối tượng khi cần. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 66 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.4 Hệ thống cảnh báo gửi tin nhắn đến cho gia chủ Đồng thời báo đèn và chuông để cảnh báo đồng thời giúp cho gia chủ nhận ra sự hiện diện của người khác một cách dễ dàng hơn. Hình 5.5 Đèn và chuông hoạt động khi có chuyển động BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 67 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.6 Ảnh chụp lại từ camera trong điều kiện ánh sáng yếu Hệ thống phát hiện và nhận diện chuyển động có thể làm việc trong điều kiện cường độ ánh sáng không quá cao, tuy nhiên nếu quá tối thì hệ thống sẽ không hoạt động thực sự tốt được. Khi có người vào cửa thì chương trình nhận diện khuôn mặt sẽ hoạt động. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 68 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.7 Giao diện chính của hệ thống nhận diện khuôn mặt Thêm khuôn mặt mới vào cơ sở dữ liệu là điều đầu tiện mà gia chủ nên làm để có thẻ sử dụng hệ thống nhận diện khuôn mặt. Hình 5.8 Tiến hành thêm hình ảnh vào kho lưu trữ Hình 5.9 Chọn thiết bị để quét môi trường BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 69 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.10 Chọn độ phân giải Mục đích của việc chọn thiết bị và độ phân giải nhằm giúp cho gia chủ có nhiều sự lựa chọn hơn cho camera sẽ sử dụng từ loại rẻ tiền chất lượng thấp đến loại đắt tiền chấp lượng cao, nhóm thực hiện sẽ sử dụng webcam Logitech với độ phân giải là 1280x720. Hình 5.11 Phát hiện ra khuôn mặt BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 70 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.12 Yêu cầu nhập tên Có thể nhập trùng tên cho nhiều ảnh với nhiều góc nghiên khác nhau của khuôn mặt nhằm giúp cho hệ thống dễ dàng nhận diện hơn giảm thiểu các trường hợp sai sót không đáng có. Hình 5.13 Huấn luyện hệ thống BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 71 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.14 Đang tiến hành huấn luyện hệ thống Hình 5.15 Đã hoàn tấc huấn luyện Việc huấn luyện này nhằm giúp cho cơ sở dữ liệu lưu lại các khuôn mặt đã lấy được trước đó. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 72 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.16 Tiến hành so sánh khuôn mặt Tương tự như việc lấy ảnh khuôn mặt việc chọn thiết bị và độ phân giải nhằm hỗ trợ gia chủ có nhiều sự lựa chọn hơn. Hình 5.17 Phát hiện ra khuôn mặt có sẵn trong cơ sở dữ liệu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 73 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.18 Cửa mở ra trong 6 giây sau đó tự động đóng lại Sau khi so sánh khuôn mặt hiện tại có trong cơ sở dữ liệu lúc đó servo sẽ hoạt động giúp cho cửa mở ra, sau 6 giây cửa sẽ tự động đóng lại. Hình 5.19 Phát hiện ra khuôn mặt không có trong cỡ sở dữ liệu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 74 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.20 Đèn cảnh báo sáng lên kèm theo chuông Khi khuôn mặt không có trong cơ sở dữ liệu thì sẽ hiện thị cảnh bảo ở trên giao diện đồng thời một đèn trước cửa sẽ sáng đồng thời chuông kêu cảnh báo với người đứng trước với camera vào lúc đó. Khi đấy người đứng trước camera hoặc là tiến hành nhận diện lại hoặc là sẽ bỏ đi vì là người lạ, chống lại những sự xâm nhập tư gia không đáng có. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 75 CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.2 NHẬN XÉT – ĐÁNH GIÁ: Sau thời gian nghiên cứu, thi công thì đồ án tốt nghiệp của nhóm với đề tài “ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH ”đã hoàn thiện. Nhìn chung, mô hình đã hoạt động ổn định, có thể làm việc liên tục, đạt 100% yêu cầu đề ra ban đầu. Bên cạnh đó hệ thống mở rộng thêm được nhiều chức năng khác nhau. Người dùng thao tác một cách đơn giản, dễ sử dụng. Hê thống đảm bảo an toàn và bảo mật cho người dùng. Hệ thống sử dụng nguồn cấp nhỏ từ 12V-5A trở xuống nên an toàn cho người sử dụng trước nguy cơ điện giật. Do sử dụng công nghệ nhận dạng chuyển động kết hợp với công nghệ nhận diện khuôn mặt nên tính bảo mật của mô hình khá cao. Hệ thống nhận diện chuyển động và hệ thống nhận diện khuôn mặt đều chụp và lưu lại hình giúp cho người sử dụng có thể dễ dàng bảo vệ và chống lại hành vi trộm cắp hơn. Tuy nhiên, do sự hạn chế về kiến thức và thời gian thực hiện, nguồn tài liệu tham khảo chủ yếu thông qua internet nên đề tài không tránh khỏi sai sót và còn một số hạn chế: Hạn chế lớn nhất là chưa có được nguồn điện dự trữ để cung cấp cho hệ thống hoạt động khi bị mất nguồn chính.  Vì điều kiện kinh phí và thời gian có hạn, nên nhóm chỉ thực hiện được mô hình tương đối hoàn chỉnh, tính thẩm mỹ không cao.  Hệ thống ngoại vi chưa có tính ổn định khi vận hành hoạt động và vẫn xảy ra lỗi.  Hệ thống nhận dạng chuyển động và nhận diện khuôn mặt vẫn chưa thực sự hoạt động tốt nhất đặc biệt trong điều kiện quá tối hoặc quá sáng. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 76 CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Chƣơng 6 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau thời gian tìm hiểu, nghiên cứu và thực hiện, nhóm đã hoàn thành đề tài “THIẾT KẾ VÀ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH” hệ thống đáp ứng đầy đủ các tính năng, nội dung và mục tiêu ban đầu đã đề ra:  Nhận biết được chuyển động người và chuyển động môi trường.  Có đèn báo hiệu khi có chuyển động.  Nhận diện khuôn mặt với nhiều góc độ khác nhau.  Lưu trữ thành công khuôn mặt nhận diện được từ camera.  Huấn luyện được tập ảnh đã nhận diện trước đó.  So sánh khuôn mặt với tập ảnh có sẵn trong cơ sở dũ liệu thành công.  Giao tiếp và truyền dữ liệu thành công giữa Arduino Uno R3với các module SIM 800A, chuông và động cơ Servo. Tuy nhiên, do sự hạn chế về kiến thức và thời gian thực hiện, nguồn tài liệu tham khảo chủ yếu thông qua internet nên đề tài không tránh khỏi sai sót và còn một số hạn chế:  Vì điều kiện kinh phí và thời gian có hạn, nên nhóm chỉ thực hiện được mô hình tương đối hoàn chỉnh.  Vẫn phải kết nối trực tiếp với laptop để thực hiện chương trình.  Chương trình nhận diện, phát hiện chuyển động và nhận diện khuôn mặt vẫn chưa thực sự hoàn chỉnh vẫn có nhiều sai sót khi vận hành.  Vẫn còn rất phức tạp để ứng dụng vào thực tế.  Hệ thống kết nối với ngoại vi vẫn chưa hoạt động ổn định. Nhưng nhận xét tổng quan về hệ thống thì:  Toàn bộ hệ thống chạy tương đối ổn định, đạt kết quả tốt. Tuy nhiên đôi lúc vẫn bị ảnh hưởng bởi đáp ứng tác động của hệ thống phần cứng.  Hệ thống nhận, trả lời yêu cầu từ người dùng và gửi tín hiệu điều khiển của SIM 800A hoạt động khá ổn định, chính xác. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 77 CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.2 HƢỚNG PHÁT TRIỂN Có thể nâng cấp hệ thống bằng việc gửi dữ liệu lên internet để hệ thống có thể dễ dàng quản lý từ xa hơn. Thiết kế thêm nguôn dự trữ dùng pin mặt trời và ác-quy để khi nguồn điện chính bị mất đi hệ thống vẫn có thể hoạt động bình thường. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 78 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Thanh Hải, Giáo trình Xử lý ảnh, Nhà xuất bản ĐH Quốc Gia TP. HCM, 2014 [2] Lương Mạnh Bá. Nguyễn Thanh Thủy, Chương 7, Nhập Môn Xử Lý ảnh số, Nxb Khoa học và Kỹ Thuật, 2002, trang 179-208. [3] John Boxal, “ Arduino Workshop, Willinam Pollock”, May 2013. [4] Stuart William Perry, Hau-San Wong and Ling Guan, Adaptive Image Processing: A Computational Intelligence Perspective, CEC Press LLC, 2002. [5] Kyungnam Kim, Face Recognition using Principle Component Analysis, Department of Computer Science University of MaryLand, USA, trang1-6. [6] Howard A. Draper, Kyungim Baek, Marian Stewart Barlett, J. Ross Bervridge, “Recognizing Faces with PCA and ICA”, 2004, trang 1-24. DATASHEET [7] Arduino Uno R3, https://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3- schematic.pdf [8] Sim 800A, [9] Tập lệnh AT, [10] Động cơ Servo, BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 79 PHỤ LỤC PHỤ LỤC CHƢƠNG TRÌNH CỦA TỪNG HỆ THỐNG I. Chƣơng trình của hệ thống nhận diện và phát hiện chuyển động function varargout = giaodien123(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @giaodien123_OpeningFcn, ... 'gui_OutputFcn', @giaodien123_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function giaodien123_OpeningFcn(hObject, eventdata, handles, varargin) guidata(hObject, handles); function varargout = giaodien123_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function figure1_CreateFcn(hObject, eventdata, handles) im = imread('GetArticleImage.jpg'); imshow(im); function pushbutton1_Callback(hObject, eventdata, handles) global s; s=serial('COM6'); fopen(s); i=0; peopleDetector = vision.PeopleDetector('MergeDetections',true); peopleDetector.ClassificationThreshold =2; pointTracker = vision.PointTracker('MaxBidirectionalError', 2); cam = webcam(); videoFrame = snapshot(cam); frameSize = size(videoFrame); videoPlayer = vision.VideoPlayer('Position', [100 100 [frameSize(2), frameSize(1)]+30]); runLoop = true; numPts = 0; frameCount = 0; while runLoop videoFrame = snapshot(cam); videoFrameGray = rgb2gray(videoFrame); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 80 PHỤ LỤC frameCount = frameCount + 1; if numPts < 10 bbox = step(peopleDetector,videoFrame); if ~isempty(bbox) points = detectMinEigenFeatures(videoFrameGray, 'ROI', bbox(1, :)); xyPoints = points.Location; numPts = size(xyPoints,1); release(pointTracker); initialize(pointTracker, xyPoints, videoFrameGray); oldPoints = xyPoints; bboxPoints = bbox2points(bbox(1, :)); bboxPolygon = reshape(bboxPoints', 1, []); D=1; videoFrame = insertObjectAnnotation(videoFrame,'rectangle',bbox,D); end else [xyPoints, isFound] = step(pointTracker, videoFrameGray); visiblePoints = xyPoints(isFound, :); oldInliers = oldPoints(isFound, :); numPts = size(visiblePoints, 1); if numPts >= 30 bbox = step(peopleDetector,videoFrame); [xform, oldInliers, visiblePoints] = estimateGeometricTransform(... oldInliers, visiblePoints, 'similarity', 'MaxDistance', 4); bboxPoints = transformPointsForward(xform, bboxPoints); bboxPolygon = reshape(bboxPoints', 1, []); D=1; videoFrame = insertObjectAnnotation(videoFrame,'rectangle',bbox,D); step(videoPlayer,videoFrame); oldPoints = visiblePoints; setPoints(pointTracker, oldPoints); if i==0 fwrite(s,2) end i=1; end end step(videoPlayer, videoFrame); runLoop = isOpen(videoPlayer); end clear cam; release(videoPlayer); release(pointTracker); close; function figure1_DeleteFcn(hObject, eventdata, handles) global s; fwrite(s,0); out = instrfind; fclose(out); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81 PHỤ LỤC function pushbutton2_Callback(hObject, eventdata, handles) global s; fwrite(s,0); out = instrfind; fclose(out); II. Chƣơng trình của hệ thống nhận diện khuôn mặt function varargout = regconition(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @regconition_OpeningFcn, ... 'gui_OutputFcn', @regconition_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function regconition_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = regconition_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function figure1_CreateFcn(hObject, eventdata, handles) global q; q = serial('com3'); fopen(q); im = imread('GetArticleImage.jpg'); imshow(im); function pushbutton1_Callback(hObject, eventdata, handles) global co if isfield(handles,'vdx') vid = handles.vdx; stoppreview(vid) delete(vid) handles = rmfield(handles,'vdx'); guidata(hObject,handles) cla(handles.axes1) reset(handles.axes1) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82 PHỤ LỤC set(handles.axes1,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176 0.7804],'linewidth',1.5) cla(handles.axes2) reset(handles.axes2) set(handles.axes2,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176 0.7804],'linewidth',1.5) end fd = vision.CascadeObjectDetector(); fd.MergeThreshold = 15; info = imaqhwinfo('winvideo'); did = info.DeviceIDs; if isempty(did) msgbox({'YOUR SYSTEM DO NOT HAVE A WEBCAM';' ';'CONNECT A ONE'},'WARNING....!!!!','warn','modal') return end did = cell2mat(did); for k = 1:length(did) devinfo = imaqhwinfo('winvideo',k); na(1,k) = {devinfo.DeviceName}; sr(1,k) = {devinfo.SupportedFormats}; end [a,b] = listdlg('promptstring','SELECT A WEB CAM DEVICE','liststring',na,'ListSize', [125, 75],'SelectionMode','single'); if b == 0 return end if b ~= 0 frmt = sr{1,a}; [a1,b1] = listdlg('promptstring','SELECT RESOLUTION','liststring',frmt,'ListSize', [150, 100],'SelectionMode','single'); if b1 == 0 return end end frmt = frmt{a1}; l = find(frmt == '_'); res = frmt(l+1 : end); l = find(res == 'x'); res1 = str2double(res(1: l-1)); res2 = str2double(res(l+1 : end)); axes(handles.axes1) vid = videoinput('winvideo', a); vr = [res1 res2]; nbands = get(vid,'NumberofBands'); h2im = image(zeros([vr(2) vr(1) nbands] , 'uint8')); preview(vid,h2im); handles.vdx = vid; guidata(hObject,handles) tx = msgbox('PLZ STAND IN FRONT OF CAMERA STILL','INFO......!!!'); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83 PHỤ LỤC pause(1) delete(tx) kx = 0; while 1 im = getframe(handles.axes1); im = im.cdata; bbox = step(fd, im); vo = insertObjectAnnotation(im,'rectangle',bbox,'FACE'); axes(handles.axes2) imshow(vo) if size(bbox,1) > 1 msgbox({'TOO MANY FACES IN FRAME';' ';'ONLY ONE FACE IS ACCEPTED'},'WARNING.....!!!','warn','modal') uiwait stoppreview(vid) delete(vid) handles = rmfield(handles,'vdx'); guidata(hObject,handles) cla(handles.axes1) reset(handles.axes1) set(handles.axes1,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1 1],'color',co,'linewidth',1.5) cla(handles.axes2) reset(handles.axes2) set(handles.axes2,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1 1],'color',co,'linewidth',1.5) return end kx = kx + 1; if kx > 10 && ~isempty(bbox) break end end imc = imcrop(im,[bbox(1)+3 bbox(2)-35 bbox(3)-10 bbox(4)+70]); imx = imresize(imc,[300 300]); fhx = figure(2); set(fhx,'menubar','none','numbertitle','off','name','PREVIEW') imshow(imx) cd ('database'); l = length(dir(pwd)); n = [int2str(l-1) '.jpg']; imwrite(imx,n); cd .. while 1 qq = inputdlg('WHAT IS UR NAME?','FILL'); if isempty(qq) msgbox({'YOU HAVE TO ENTER A NAME';' ';'YOU CANT CLICK CANCEL'},'INFO','HELP','MODAL') uiwait else break BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84 PHỤ LỤC end end qq = qq{1}; if exist('info.mat','file') == 2 load ('info.mat') r = size(z2,1); z2{r+1,1} = {n , qq}; save('info.mat','z2') else z2{1,1} = {n,qq}; save('info.mat','z2') end close gcf stoppreview(vid) delete(vid) handles = rmfield(handles,'vdx'); guidata(hObject,handles) cla(handles.axes1) reset(handles.axes1) cla(handles.axes2) reset(handles.axes2) function pushbutton2_Callback(hObject, eventdata, handles) flist = dir('database'); if length(flist) == 2 msgbox('NOTHING TO DELETE','INFO','modal'); return end cd('database') [f,p] = uigetfile('*.jpg','SELECT A PIC TO DELETE IT'); if f == 0 cd .. return end p1 = fullfile(p,f); delete(p1) flist = dir(pwd); if length(flist) == 2 cd .. return end for k = 3:length(flist) z = flist(k).name; z(strfind(z,'.') : end) = []; nlist(k-2) = str2double(z); end nlist = sort(nlist); h = waitbar(0,' MATLAB IS RENAMING','name','PROGRESS...'); for k = 1:length(nlist) if k ~= nlist(k) p = nlist(k); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85 PHỤ LỤC movefile([num2str(p) '.jpg'] , [num2str(k) '.jpg']) waitbar((k-2)/length(flist),h,sprintf('RENAMED %s to %s',[num2str(p) '.jpg'],[num2str(k) '.jpg'])) end pause(.5) end close(h) cd .. function pushbutton4_Callback(hObject, eventdata, handles) runLoop = true; global co global q; if exist('features.mat','file') == 0 msgbox('FIRST TRAIN YOUR DATABASE','INFO...!!!','MODAL') return end ff = dir('database'); if length(ff) == 2 h = waitbar(0,'Xin ch? ','name','SCANNING IS IN PROGRESS'); for k = 1:100 waitbar(k/100) pause(0.03) end close(h) msgbox({'NO IMAGE FOUND IN DATABASE';'FIRST LOAD YOUR DATABASE';'USE ''ADD NEW IMAGE'' MENU'},'WARNING....!!!','WARN','MODAL') return end if isfield(handles,'vdx') vid = handles.vdx; stoppreview(vid) delete(vid) handles = rmfield(handles,'vdx'); guidata(hObject,handles) cla(handles.axes1) reset(handles.axes1) set(handles.axes1,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176 0.7804],'linewidth',1.5) cla(handles.axes2) reset(handles.axes2) set(handles.axes2,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176 0.7804],'linewidth',1.5) end info = imaqhwinfo('winvideo'); did = info.DeviceIDs; if isempty(did) msgbox({'YOUR SYSTEM DO NOT HAVE A WEBCAM';' ';'CONNECT A ONE'},'WARNING....!!!!','warn','modal') return BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86 PHỤ LỤC end fd = vision.CascadeObjectDetector(); fd.MergeThreshold =15; did = cell2mat(did); for k = 1:length(did) devinfo = imaqhwinfo('winvideo',k); na(1,k) = {devinfo.DeviceName}; sr(1,k) = {devinfo.SupportedFormats}; end [a,b] = listdlg('promptstring','SELECT A WEB CAM DEVICE','liststring',na,'ListSize', [125, 75],'SelectionMode','single'); if b == 0 return end if b ~= 0 frmt = sr{1,a}; [a1,b1] = listdlg('promptstring','SELECT RESOLUTION','liststring',frmt,'ListSize', [150, 100],'SelectionMode','single'); if b1 == 0 return end end while runLoop frmt = sr{1,a}; frmt = frmt{a1}; l = find(frmt == '_'); res = frmt(l+1 : end); l = find(res == 'x'); res1 = str2double(res(1: l-1)); res2 = str2double(res(l+1 : end)); axes(handles.axes1) vid = videoinput('winvideo', a); vr = [res1 res2]; nbands = get(vid,'NumberofBands'); h2im = image(zeros([vr(2) vr(1) nbands] , 'uint8')); preview(vid,h2im); handles.vdx = vid; guidata(hObject,handles) tx = msgbox('XIN DUNG YEN TRUOC CAMERA','INFO......!!!'); pause(1) delete(tx) kx = 0; while 1 im = getframe(handles.axes1); im = im.cdata; bbox = step(fd, im); vo = insertObjectAnnotation(im,'rectangle',bbox,'FACE'); axes(handles.axes2) imshow(vo) if size(bbox,1) > 1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87 PHỤ LỤC msgbox({'QUA NHIEU KHUON MAT';' ';'CHI DUOC MOT KHUON MAT'},'WARNING.....!!!','warn','modal') uiwait stoppreview(vid) delete(vid) handles = rmfield(handles,'vdx'); guidata(hObject,handles) cla(handles.axes1) reset(handles.axes1) set(handles.axes1,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1 1],'color',co,'linewidth',1.5) cla(handles.axes2) reset(handles.axes2) set(handles.axes2,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1 1],'color',co,'linewidth',1.5) return end kx = kx + 1; if kx > 10 && ~isempty(bbox) break end end imc = imcrop(im,[bbox(1)+3 bbox(2)-35 bbox(3)-10 bbox(4)+70]); imx = imresize(imc,[300 300]); axes(handles.axes1) image(imx) text(20,20,'\bfHINH HIEN TAI.','fontsize',12,'color','y','fontname','comic sans ms') set(handles.axes1,'xtick',[],'ytick',[],'box','on') immxx = imx; zz = findsimilar(immxx); zz = strtrim(zz); fxz = imread(['database/' zz]); q1= ehd(immxx,0.1); q2 = ehd(fxz,0.1); q3 = pdist([q1 ; q2]); disp(q3) if q3 < 0.5 axes(handles.axes2) image(fxz) set(handles.axes1,'xtick',[],'ytick',[],'box','on') text(20,20,'\bf HINH LUU TRU.','fontsize',12,'color','y','fontname','comic sans ms') set(handles.axes2,'xtick',[],'ytick',[],'box','on') xs = load('info.mat'); xs1 = xs.z2; for k = 1:length(xs1) st = xs1{k}; stx = st{1}; if strcmp(stx,zz) == 1 str = st{2}; break end BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88 PHỤ LỤC end fid = fopen('attendence_sheet.txt','a'); fprintf(fid,'%s %s %s %s\r\n\n', 'Name','Date','Time', 'Attendence'); c = clock; if c(4) > 12 s = [num2str(c(4)-12) ,':',num2str(c(5)), ':', num2str(round(c(6))) ]; else s = [num2str(c(4)) ,':',num2str(c(5)), ':', num2str(round(c(6))) ]; end fwrite(q,1) pause(4) else msgbox('BAN KHONG PHAI NGUOI TRONG NHA', 'WARNING','WARN','MODAL') cla(handles.axes1) reset(handles.axes1) cla(handles.axes2) reset(handles.axes2) fwrite(q,3); end pause(5); end function pushbutton5_Callback(hObject, eventdata, handles) f = dir('database'); if length(f) == 2 msgbox('YOUR DATA BASE HAS NO IMAGE TO DISPLAY','SORRY','modal') return end l = length(f)-2; while 1 a = factor(l); if length(a) >= 4 break end l = l+1; end d = a(1: ceil(length(a)/2)); d = prod(d); d1 = a(ceil(length(a)/2)+1 : end); d1 = prod(d1); zx = sort([d d1]); figure('menubar','none','numbertitle','off','name','Images of Database','color',[0.0431 0.5176 0.7804],'position',[300 200 600 500]) for k = 3:length(f) im = imread(f(k).name); subplot(zx(1),zx(2),k-2) imshow(im) title(f(k).name,'fontsize',10,'color','w') end BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89 PHỤ LỤC function pushbutton6_Callback(hObject, eventdata, handles) x = questdlg({'Tat Ca Du Lieu Se Bi Xoa'},'Please select...!!'); if strcmpi(x,'yes') == 1 delete('attendence_sheet.txt') delete('features.mat') delete('info.mat') cd ([pwd, '\database']) f = dir(pwd); for k = 1:length(f) delete(f(k).name) end cd .. cla(handles.axes1); reset(handles.axes1); set(handles.axes1,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176 0.7804],'linewidth',1.5) cla(handles.axes2); reset(handles.axes2); set(handles.axes2,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176 0.7804],'linewidth',1.5) beep msgbox('All Reset','Info','modal') end function pushbutton7_Callback(hObject, eventdata, handles) if exist('attendence_sheet.txt','file') == 2 winopen('attendence_sheet.txt') else msgbox('NO ATTENDENCE SHEET TO DISPLAY','INFO...!!!','HELP','MODAL') end function pushbutton8_Callback(hObject, eventdata, handles) ff = dir('database'); if length(ff) == 2 h = waitbar(0,'Xin Doi Trong Giay Lat','name','SCANNING IS IN PROGRESS'); for k = 1:100 waitbar(k/100) pause(0.03) end close(h) msgbox({'NO IMAGE FOUND IN DATABASE';'FIRST LOAD YOUR DATABASE';'USE ''ADD NEW IMAGE'' MENU'},'WARNING....!!!','WARN','MODAL') return end if exist('features.mat','file') == 2 bx = questdlg({'TRAINING HAS ALREDY BEEN DONE';' ';'WANT TO TRAIN DATABASE AGAIN?'},'SELECT','YES','NO','CC'); if strcmpi(bx,'yes') == 1 builddatabase msgbox('TRAINING DONE....PRESS OK TO CONTINUE','OK','modal') BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90 PHỤ LỤC return else return end else builddatabase msgbox('TRAINING DONE....PRESS OK TO CONTINUE','OK','modal') return end function figure1_DeleteFcn(hObject, eventdata, handles) if ~isempty(instrfind) fclose(instrfind); delete(instrfind); end III. CHƢƠNG TRÌNH HỆ THỐNG NGOẠI VI #include "SoftwareSerial.h" #include "Hshopvn_GSM.h" #include SoftwareSerial sim800ds(2, 3); HshopGSM HGSM = HshopGSM(&sim800ds); String Str_PhoneNum = "01672131349"; unsigned long UL_PhoneNum = 1672131349; Servo myservo; int data =0; int servoPin = 10; int j=1; int led = 4; int bell = 9; int i; void setup() { Serial.begin(9600); HGSM.init(&GSM_Ready, 9600); pinMode(led, OUTPUT); pinMode(bell, OUTPUT); myservo.attach(servoPin); myservo.write(130); } void loop() { HGSM.handle(); if(Serial.available()>0){ data = Serial.read(); j=1; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91 PHỤ LỤC i=1; } if (data == 2) { digitalWrite(led,HIGH); delay(1000); digitalWrite(led,LOW); delay(1000); digitalWrite(bell,HIGH); if (i==1){ HGSM.sendsms(Str_PhoneNum, "BAO DONG CO TROM "); i =i + 1; } } else if (data == 1) { if (j==1){ myservo.write(0); delay(4000); myservo.write(130); j=j+1; } } else { digitalWrite(led,LOW); digitalWrite(bell,LOW); } } void GSM_Ready() { if (HGSM.getDataGSM() != "") { Serial.println(HGSM.getDataGSM()); //show data comming } else; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92

Các file đính kèm theo tài liệu này:

  • pdfdo_an_ung_dung_xu_ly_anh_thiet_ke_thi_cong_mach_chong_trom_t.pdf
Tài liệu liên quan