Trên thực tếcó nhiều loại khóa cửa thông minh yêu cầu xác minh 2 lớp, kết hợp với điện thoạithông minh.Các công trình nghiên cứu:+ Trong nghiên cứu “Design And Implementation Of A Door L
BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ KHÓA NHÀ THÔNG MINH Giảng viên hướng dẫn: ThS VŨ ANH ĐÀO Sinh viên thực hiện: NGUYỄN DUY ĐỒNG Lớp: D16XLTH1 Hệ đào tạo: ĐẠI HỌC CHÍNH QUY HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG CỘNG HỒ XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA KỸ THUẬT ĐIỆN TỬ Độc lập – Tự – Hạnh phúc ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Họ tên sinh viên: Nguyễn Duy Đồng Lớp: D16XLTH1 Khoá: 2016 – 2021 Ngành đào tạo: Kỹ thuật Điện – Điện tử Hệ đào tạo: Đại học quy Tên đồ án/khố luận tốt nghiệp: “Ứng dụng xử lý ảnh thiết kế khóa nhà thơng minh” Lý chọn đề tài: Tình hình an ninh trật tự vấn đề nhức nhối toàn xã hội, đặc biêt vấn đề trộm cắp tài sản Hiện nay, khóa chìa sử dụng nhiều Ngồi ra, khóa số điện tử, vân tay đươc nhiều chung cư thay cho khóa chìa Tuy nhiên, tên trộm hồn tồn bẻ khóa dễ dàng Chính điều nên em chọn đề tài để xây dựng khóa nhà thông minh thông qua việc xử lý khuôn mặt giọng nói người dùng Nội dung đồ án: 1/ Tổng quan đề tài 2/ Cơ sở lý thuyết 3/ Thiết kế thi công mạch khóa thơng minh nhận dạng khn mặt giọng nói 4/ Demo sản phẩm 5/ Kết luận Cơ sở liệu ban đầu: Ngày giao đề tài: ./ ./20… Ngày nộp quyển: / /20 GIẢNG VIÊN HƯỚNG DẪN SINH VIÊN THỰC HIỆN (Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên) NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM (Của giảng viên hướng dẫn) Điểm: (Bằng chữ:…………………………… ) Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp? Hà Nội, ngày… tháng… năm 2020 CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN (ký, họ tên) NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM (Của giảng viên phản biện) Điểm: (Bằng chữ:…………………………… ) Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp? Hà Nội, ngày… tháng… năm 2020 CÁN BỘ - GIẢNG VIÊN PHẢN BIỆN (ký, họ tên) LỜI CẢM ƠN Để thực hoàn thành đồ án tốt nghiệp, em nhận hỗ trợ, giúp đỡ quan tâm, động viên từ tổ chức, cá nhân Đồ án tốt nghiệp hoàn thành dựa tham khảo, học tập kinh nghiệm từ kết nghiên cứu liên quan, sách, báo chuyên ngành nhiều tác giả trường Đại học, tổ chức nghiên cứu, … Đặc biệt giúp đỡ, tạo điều kiện vật chất tinh thần từ phía gia đình, thầy bạn bè Trước hết, em xin gửi lời cảm ơn sâu sắc đến cô Vũ Anh Đào - người trực tiếp hướng dẫn dành nhiều thời gian, công sức hướng dẫn em suốt q trình thực đồ án hồn thành đề tài Em xin trân trọng cảm ơn Ban lãnh đạo Học viện, Khoa đào tạo xây dựng hệ thống mơn học có mơn “Đồ án tốt nghiệp” để em tổng kết kiến thức học suốt bốn năm ngồi ghế giảng đường, để tìm hiểu nâng cao kiến thức cho thân Tuy có nhiều cố gắng, đồ án tốt nghiệp khơng tránh khỏi thiếu sót Kính mong nhận đươc đóng góp ý kiến Hội đồng thẩm định, quý thầy cô để đồ án tốt nghiệp em hoàn thiện Em chân thành cảm ơn! MỤC LỤC LỜI CẢM ƠN Trang MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG BIỂU VÀ HÌNH ẢNH MỞ ĐẦU 11 CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 12 1.1 Đặt vấn đề .12 1.2 Tình hình nghiên cứu 12 1.3 Mục đích .12 1.4 Bố cục 13 1.5 Ý nghĩa thực tiễn 13 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15 2.1 Giới thiệu học máy, học sâu .15 2.1.1 Học máy .15 2.1.2 Học sâu 17 2.1.3 Phân biệt học máy học sâu 19 2.2 Tổng quan xử lý ảnh 21 2.2.1 Giới thiệu hệ thống xử lý ảnh 21 2.2.2 Những đặc điểm xử lý ảnh 23 2.3 Bài toán nhận dạng đối tượng .25 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 30 3.1 Linh kiện sử dụng 30 3.1.1 Raspberry Pi 30 3.1.2 Arduino Uno R3 32 3.1.3 Module nhận dạng giọng nói .34 3.1.4 Động Servo SG90 35 3.1.5 Một số linh kiện khác 36 3.3 Chương trình hoạt động 37 3.3.1 Chương trình nhận dạng khn mặt 38 Document continues below Discover more from:tử tương tự Điện ELE1310 Học viện Công nghệ… 67 documents Go to course 144 Giáo trình Điện tử tương tự 3.3.2 Chương trình nhận dạng giọng nói 42 Điện tử tương tự CHƯƠNG 4: THI CÔNG HỆ THỐNG 91% (22) 43 4.1 Thi công hệ thống 43 4.2 Tiến hành thử nghiệm kết 44 [123doc] - thiet-keche-tao-he-thong-… 4.3 Nhận xét đánh giá 48 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 102 TÀI LIỆU THAM KHẢO PHỤ LỤC 49 Điện tử tương tự 50 100% (3) 51 Ngân hàng đề thi điện 15 147 tử tương tự Điện tử tương tự 100% (2) điện tử nghiên cứu phương thức điều… Điện tử tương tự 100% (1) Ảnh hình 2022-12207 19 26 lúc 07 Điện tử tương tự 100% (1) Ngân Hàng-ĐTTT-1 điện tử tương tự Điện tử tương tự 100% (1) DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ML: Machine Learning Học máy DL: Deep Learning Học sâu AI: Artificial Intelligence Trí tuệ nhân tạo DNA: Deoxyribonucleic acid Phân tử gồm hai polynucleotide ANN: Artificial Neural Network Mạng nơ-ron nhân tạo CNN: Convolutional Neural Network Mạng nơ-ron tích chập RNN: Recurrent Neural Network Mạng nơ-ron hồi qui RLC: Run Length Coding Mã hóa loạt dài PPM: Pulse Position Modulation Điều chế vị trí xung LBP: Local Binary Pattern Mẫu nhị phân cục DANH MỤC CÁC BẢNG BIỂU VÀ HÌNH ẢNH Hình 3.11 Sơ đồ chương trình hoạt động ● Nguyên lý hoạt động Chương trình hoạt động qua hai đoạn: + Giai đoạn 1: giai đoạn huấn luyện xử lý raspberry với tập liệu khn mặt Những liệu thu thập tự chụp trính xuất trực tiếp từ video Tồn hình mẫu huấn luyện với nhãn tương ứng, với lớn tỉ lệ nhận diện cho độ xác cao Với hệ thống tại, lượng data đề xuất cho khn mặt 51 ảnh góc cạnh, cảm xúc khác Sau huấn luyện xong, ta thu tệp tin xml đặc trưng trích chọn cho khn mặt Bên cạnh đó, thu câu lệnh mở cửa “Open” module điều khiển giọng nói cho Arduino xử lý + Giai đoạn 2: giai đoạn hoạt động chương trình Lúc liệu huấn luyện câu lệnh thu giai đoạn sử dụng để mở cửa liệu số để 3.3.1 Chương trình nhận dạng khn mặt Chương trình nhận dạng khn mặt chia thành tốn: ● Bài tốn 1: Phát khn mặt + Bước 1: Khai báo thư viện mở camera Để phát khuôn mặt ta thực cách sử dụng tập tin đặc trưng trích chọn file xml OpenCV import numpy as np import cv2 cap = cv2.VideoCapture(0) face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") face_id = count = + Bước 2: Đọc hình ảnh đầu vào Đọc liệu phát chuyển ảnh xám để xử lý ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + Bước 3: Tìm kiếm khn mặt ảnh Sử dụng câu lệnh face_cascade.detect MultiScale () để phát khuôn mặt tải lên faces = face_cascade.detectMultiScale ( gray, scaleFactor = 1.1, minNeighbors = 5, ) + Bước 4: Khoanh vùng khn mặt lưu hình ảnh với ID tương ứng Có màu đỏ, xanh xanh dương tương ứng R, G, B ta chọn để tạo khung chữ nhật khoanh vùng xác nhận khn mặt Sau tạo folder tên dataset lưu trữ hình ảnh for (x, y, w, h) in faces: cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) count += cv2.imwrite("dataset/User.1" + "." + str(count) + ".jpg", gray[y:y+h,x:x+w]) + Bước 5: Hiển thị hình ảnh Muốn hiển thị khn mặt lưu trước gõ lệnh cv2.imshow cv2.imshow('frame',frame) ● Bài tốn 2: Huấn luyện khuôn mặt Huấn luyện tập liệu vừa thu thập lưu vào tập tin trainer/trainer.xml Sử dụng Python OpenCV với mơ hình thuật tốn nhị phân cục (LBPH) Đây toán tử kết cấu đơn giản hiệu quả, gắn nhãn pixel hình ảnh cách chia vùng lân cận pixel coi kết số nhị phân Thuật tốn LPBH mơ tả lần vào năm 1994 (LBP) từ phát tính mạnh mẽ để phân loại kết cấu Người ta xác định thêm LBP kết hợp với biểu đồ mô tả độ dốc định hướng (HOG), cải thiện đáng kể hiệu suất phát số liệu Sử dụng LBP kết hợp với biểu đồ, biểu diễn hình ảnh khn mặt vectơ liệu đơn giản Vì LBP mơ tả trực quan, sử dụng cho tác vụ nhận dạng khn mặt, thấy phần giải thích bước sau ● Các tham số LBPH: LBPH sử dụng tham số + Radius (Bán kính): Bán kính sử dụng để xây dựng mơ hình nhị phân cục trịn biểu thị bán kính xung quanh pixel trung tâm Nó thường đặt + Neighbors: Số lượng điểm mẫu để xây dựng mơ hình nhị phân cục tròn Hãy ghi nhớ: bạn bao gồm nhiều điểm mẫu, chi phí tính tốn cao Nó thường đặt + Lưới X: Số lượng ô theo hướng ngang Càng nhiều ơ, lưới mịn, chiều vectơ đặc trưng kết cao Nó thường đặt + Lưới Y: Số lượng ô theo hướng dọc Càng nhiều ơ, lưới mịn, chiều vectơ đặc trưng kết cao Nó thường đặt ● Thuật toán huấn luyện Đầu tiên, đào tạo thuật toán Để làm vậy, cần sử dụng liệu với hình ảnh khn mặt người mà muốn nhận Ngồi cần cần đặt ID (có thể số tên người đó) cho hình ảnh, thuật tốn sử dụng thơng tin để nhận hình ảnh đầu vào cung cấp cho bạn đầu Hình ảnh người phải có ID Với tập huấn luyện xây dựng, xem bước tính tốn LBPH ● Áp dụng thao tác LBP Bước tính tốn LBPH tạo hình ảnh trung gian mơ tả hình ảnh gốc theo cách tốt hơn, cách làm bật đặc điểm khuôn mặt Để làm vậy, thuật toán sử dụng khái niệm cửa sổ trượt, dựa bán kính tham số lân cận Hình 3.12: Mơ tả thuật tốn LBPH (1) Dựa hình ảnh trên, chia thành nhiều bước nhỏ để hiểu dễ dàng: + Giả sử có hình ảnh khn mặt thang độ xám Có thể lấy phần hình ảnh dạng cửa sổ 3x3 pixel + Nó biểu diễn dạng ma trận 3x3 chứa cường độ pixel (0 ~ 255) Sau đó, ta cần lấy giá trị trung tâm ma trận sử dụng làm ngưỡng + Giá trị sử dụng để xác định giá trị từ lân cận + Đối với giá trình xung quanh giá trị trung tâm (ngưỡng), đặt giá trị nhị phân đặt cho giá trị cao ngưỡng, cho giá trị thấp ngưỡng + Bây giờ, ma trận chứa giá trị nhị phân (bỏ qua giá trị trung tâm) Cần nối giá trị nhị phân từ vị trí từ dịng ma trận theo dịng thành giá trị nhị phân (ví dụ 10001101) Sau đó, chuyển đổi giá trị nhị phân thành giá trị thập phân đặt thành giá trị trung tâm ma trận, thực pixel từ ảnh gốc + Vào cuối quy trình (thủ tục LBP), hình ảnh thể rõ đặc điểm hình ảnh gốc Hình 3.13: Mơ tả thuật tốn LBPH (2) Nó thực cách sử dụng phép nội suy song tuyến Nếu số điểm liệu nằm pixel, sử dụng giá trị từ pixel gần (2x2) để ước tính giá trị điểm liệu ● Trích xuất biểu đồ Bây giờ, cách sử dụng hình ảnh tạo bước cuối cùng, sử dụng tham số Grid X Grid Y để chia hình ảnh thành nhiều lưới, thấy hình ảnh sau: Hình 3.14: Trích xuất biểu độ LBPH Dựa vào hình ảnh trên, trích xuất biểu đồ vùng sau: + Khi có hình ảnh thang độ xám, biểu đồ (từ lưới) chứa 256 vị trí (0 ~ 255) đại diện cho lần xuất cường độ pixel + Sau đó, cần nối biểu đồ để tạo biểu đồ lớn Giả sử có lưới 8x8, có vị trí 8x8x256 = 16.384 biểu đồ cuối Biểu đồ cuối đại diện cho đặc điểm hình ảnh gốc hình ảnh ● Bài tốn 3: Nhận dạng khuôn mặt Đây bước cuối để nhận dạng khn mặt ứng với người Có thể nhận dạng với hình ảnh thu trực tiếp từ camera kết trả id tên người chủ sở hữu khn mặt Hình 3.14 Chương trình nhận dạng khn mặt 3.3.2 Chương trình nhận dạng giọng nói Sau thực xong việc nhận dạng khn mặt để mở cửa vào cần điều khiển câu lệnh Trong chương trình có ba bước chính: + Bước 1: Ghi âm câu lệnh để mở cửa sử dụng mô-đun điều khiển giọng nói Module ghi 1-2 từ nên em chọn dễ đọc từ “Open” Sau đó, huấn luyện câu lệnh vừa thu Sẽ thu nhiều lần từ “Open” hai đèn led mô-đun nhấp nháy + Bước 2: Điều khiển câu lệnh vừa huấn luyện trước Nếu trùng cửa mở Nếu khơng trùng cửa đóng Lưu ý: điều khiển câu lệnh cần phát âm rõ ràng từ ghi âm khn mặt đươc nhận dạng lúc hệ thống hoạt động cho cửa mở CHƯƠNG 4: THI CƠNG HỆ THỐNG 4.1 Thi cơng hệ thống Trước vào thi công hệ thống phải thiết lập mối liên hệ khối với để điều khiển chương trình Dưới sơ đồ chân kết nối linh kiện vẽ phần mềm Frizting - phần mềm chuyên dụng để vẽ sơ đồ nguyên lý Hình 4.1 Sơ đồ chân kết nối linh kiện Sau thiết lập mạch nguyên lý hệ thống, tiến hành thi cơng hệ thống mở khóa nhận dạng khn mặt tiếng nói Hình 4.2 Mặt trước hệ thống Hình 4.3 Mặt hệ thống 4.2 Tiến hành thử nghiệm kết ● Các bước truy cập, lập trình Python Ngay sau cài đặt xong Raspbian lên Raspberry Pi 4, có hai cách điều khiển Pi4 thơng dụng: + Cách 1: Điều khiển trực tiếp: Dùng chuột, bàn phím hình gắn vào Raspberry Pi điều khiển trực tiếp thơng qua cổng giao tiếp có sẵn + Cách 2: Điều khiển qua laptop: Sử dụng dây LAN để kết nối Raspberry máy tính Dùng phần Remote Desktop Connection để truy cập vào địa IP Raspberry Pi Gồm thao tác sau: - Tạo địa IP tĩnh cho Pi máy tính, cho phép máy tính chia sẻ mạng cho Raspberry Hình 4.4 Tạo địa IP tĩnh - Sau đó, sử dụng Advanced IP Scanner để tìm địa IP xác kiểm tra xem Raspberry có hoạt động hay khơng Hình 4.5 Phần mềm Advanced IP Scanner - Dùng phần mềm Remote Desktop Connection có sẵn Window 10 cần vào Run nhập tên phần mềm Để truy cập vào hệ điều hành Pi Hình 4.6 Phần mềm Remote Desktop Connection - Sau nhập tài khoản, mật để truy cập vào hệ điều hành Rasbpian, mặc định tài khoản: “pi”, mật khẩu: “1” Hình 4.7 Giao diện đăng nhập vào Raspberry ● Kết thu Sau xử lý chương trình phát khn mặt huấn luyện liệu Thu tệp tên dataset chứa 51 ảnh khn mặt có kích thước trạng thái khác Hình 4.8 Tệp tin dataset chứa liệu Tiếp tục chạy chương trình nhận dạng khuôn mặt để nhận dạng khuôn mặt huấn luyện lúc trước Hình 4.9 Giao diện nhận dạng khn mặt Cuối cùng, kết hợp với chương trình nhận dạng giọng nói để mở cửa Hình 4.10 Kết thu 4.3 Nhận xét đánh giá ● Nhận xét chung: Hệ thống áp ứng yêu cầu đồ án gồm nhận dạng khuôn mặt tiếng nói để mở cửa ● Ưu điểm: + Tính bảo mật nâng cao + Dễ dàng sử dụng ● Hạn chế: + Có nhiều khó khăn xảy q trình nhận dạng tiếng nói khn mặt + Kết dừng lại mô hình hệ thống, chưa đưa vào khảo sát thực tế + Thuật tốn LPBH cho độ xác chưa cao: nhận sai khuôn mặt, nhận dạng đươc khuôn mặt thẳng ánh xác đủ tốt KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Sau thời gian khoảng gần tháng nghiên cứu, với nỗ lực, cố gắng em với hướng dẫn tận tình Vũ Anh Đào trợ giúp từ anh chị, bạn bè, em hoàn thành đồ án tốt nghiệp “Ứng dụng xử lý ảnh thiết kế khóa nhà thơng minh” ● Kết luận đề tài + Tìm hiểu thuật toán LPBH áp dung toán nhận dạng khn mặt + Tìm hiểu nhận dạng giọng nói + Tìm hiểu hệ điều hành Raspberry Pi Model B + Tìm hiểu ngơn ngữ Python thư viện OpenCV + Xây dựng hệ thống mơ hình khóa cửa cơng nghệ nhận diện khn mặt tiếng nói ● Hướng phát triển đề tài + Ứng dụng công nghệ nhận dạng khác vân tay, thẻ từ xây dựng hệ thống bảo mật an tồn cho nhà thơng minh + Sử dụng thuật toán khác khắc phục hạn chế mà thuật tốn LPBH cịn gặp phải để đưa vào khảo sát thực tế TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] PGS TS Nguyễn Quang Hoan, Giáo trình “Xử lý ảnh”, Học viện Cơng nghệ Bưu Viễn thơng, Hà Nội, 2006 [2] ThS Trần Thúy Hà, Bài giảng “Xử lý ảnh”, Học viện Công nghệ Bưu Viễn thơng, 2013 [3] TS Lê Ngọc Thúy, Bài giảng “Thị giác máy tính”, Học viện Cơng nghệ Bưu Viễn thơng, 2019 [4] Lương Mạnh Bá, Nguyễn Thanh Thủy, Giáo trình “Nhập mơn xử lý ảnh”, Đại học Bách Khoa Hà Nội, 2008 [5] Phạm Hồng Ngữ, “Nhận dạng đối tượng sử dụng thuật toán Adaboost”, Luận văn thạc sĩ khoa học công nghệ thông tin, Huế, 2009 Tài liệu tiếng Anh [1] Agbo David O, Madukwe Chinaza, Odinya Jotham O, “Design And Implementation Of A Door Locking System Using Android App”, International Journal of Scientifi and Technology Research Volume 06, Issue 08, August 2017 [2] Ketki Prasade, Supriya Nalavade, Devaki Pathak, “Face Recognition Based Door Locking System”, International Research Journal of Engineering and Technology Volume 05, Issuse 08, July 2018 [3] Md Nasimuzzaman Chowdhury, Md ShibleeNooman, SrijonSarker, “Access Control of Door and Home Security by Raspberry Pi through Internet”, International Journal of Scientific & Engineering Research, Volume 4, Issue11, November 2013 PHỤ LỤC Chương trình nhận dạng giọng nói #include #include "VoiceRecognitionV3.h" #include VR myVR(3,2); Servo myservo; uint8_t buf[64]; #define command (0) #define cam A0 void setup() { pinMode(cam, INPUT); myVR.begin(9600); Serial.begin(115200); myservo.attach(11); myservo.write(75); if(myVR.clear() == 0){ Serial.println("Recognizer cleared."); }else{ Serial.println("Not find VoiceRecognitionModule."); Serial.println("Please check connection and restart Arduino."); while(1); } if(myVR.load((uint8_t)command) >= 0){ Serial.println("onRecord loaded"); } } void loop() { int ret; ret = myVR.recognize(buf, 50); if(ret>0 && buf[1]==command && analogRead(cam)>500) { myservo.write(170); delay(2000); myservo.write(75); } }