Vì vậy, để nâng cao yêu cầu về tính bảo mật để bảo vệ tài sản và dễ dàng sử dụng với giá thành rẻ hơn, chúng em đã quyết định thực hiện đề tài: “Thiết kế hệ thống cửa thông minh sử dụng
Trang 1-
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC CNKT ĐIỆN TỬ - VIỄN THÔNG
THIẾT KẾ HỆ THỐNG CỬA THÔNG MINH SỬ DỤNG
Trang 3LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp, chúng em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến chỉ bảo nhiệt tình của thầy/cô và bạn bè
Chúng em xin gửi lời cảm ơn chân thành đến Th.S Phạm Văn Chiến đã
tận tình hướng dẫn, chỉ bảo và giúp đỡ chúng em trong suốt quá trình làm đồ
án
Chúng em cũng xin chân thành cảm ơn các thầy/cô giáo trong trường Đại học Công nghiệp Hà Nội nói chung và các thầy/cô trong Khoa Điện Tử nói riêng đã chỉ dạy cho chúng em kiến thức về các môn đại cương cũng như các môn chuyên ngành, tạo điều kiện giúp đỡ trong suốt quá trình học tập, giúp chúng em có được cơ sở lý thuyết vững vàng
Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè đã tạo điều kiện, quan tâm giúp đỡ, động viên chúng em trong suốt quá trình học tập
và hoàn thành đồ án tốt nghiệp
Chúng em đã cố gắng hoàn thành tốt đồ án xong không thể tránh được những thiếu sót Chúng em mong thầy cô giáo góp ý để đồ án của chúng em
được đầy đủ và hoàn thiện hơn
Nhóm sinh viên thực hiện
Ngô Lê Xuân Đức
Trần Minh Hoàn Đào Tất Trường
Trang 4MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT iv
DANH MỤC BẢNG BIỂU v
DANH MỤC HÌNH VẼ vi
MỞ ĐẦU 1
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 Tổng quan vấn đề nghiên cứu 4
1.1.1 Tình hình nghiên cứu ở trong nước 4
1.1.2 Tình hình nghiên cứu ở nước ngoài 4
1.1.3 Các kết quả nghiên cứu chính 5
1.1.4 Những hạn chế của các nghiên cứu trước 8
1.2 Cấu tạo, cách thực hoạt động của khóa thông minh 8
1.3 Nội dung lý thuyết liên quan 9
1.3.1 Tổng quan về OpenCV 9
1.3.2 Khái niệm Deep Learning 10
1.3.3 Bài toán nhận diện khuôn mặt với OpenCV và Deep Learning 11
1.3.4 Các bước cơ bản trong xử lý ảnh 13
1.4 Kết luận chương 1 14
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG CỬA THÔNG MINH SỬ DỤNG NHẬN DIỆN KHUÔN MẶT 15
2.1 Phân tích yêu cầu 15
2.1.1 Phân tích yêu cầu bài toán 15
2.1.2 Mục tiêu thiết kế 16
2.1.3 Ràng buộc thiết kế của bài toán 16
2.1.4 Giải pháp thiết kế bài toán 16
2.1.5 Tiêu chí đánh giá sản phẩm 18
Trang 52.2 Thiết kế hệ thống 19
2.2.1 Sơ đồ khối 19
2.2.2 Chức năng các khối 19
2.2.3 Sơ đồ nguyên lý 32
2.2.4 Lưu đồ thuật toán 32
2.3 Sơ đồ mạch in 2D và 3D 35
2.4 Mạch thực tế 36
2.5 Kết luận chương 2 36
CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 37
3.1 Kết quả chức năng nhận diện khuôn mặt 37
3.2 Kết quả chức năng điều khiển thiết bị 40
3.3 Đánh giá hệ thống 41
3.3.1 Đánh giá hoạt động 41
3.3.2 Đánh giá sản phẩm 46
3.3.3 Ứng dụng của sản phẩm 47
3.3.4 Sự tác động của sản phẩm/ nguyên mẫu thiết kế tới môi trường/kinh tế/xã hội 47
3.3.5 Tính mới, tính sáng tạo 48
3.4 Kết luận chương 3 48
KẾT LUẬN 49
DANH MỤC TÀI LIỆU THAM KHẢO 52
PHỤ LỤC 54
Trang 6DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT
1 RFID Radio Frequency
Identification
Nhận dạng qua tần số vô tuyến
2 HOG Histogram of Oriented
Gradients Biểu đồ các hướng Gradients
3 SVM Support Vector Machine Máy Vector Hỗ Trợ
4 MTCNN Multi-task Cascaded
Convolutional Networks
Mạng nơ ron tích chập đa nhiệm
5 AI Artificial Intelligence Trí tuệ nhân tạo
6 USB Universal Serial Bus Chuẩn kết nối tuần tự đa
9 FAR False Acceptance Rate Tỷ lệ chấp nhận lỗi sai
10 FRR False Reject Rate Tỷ lệ từ chối lỗi sai
11 LCD Liquid Crystal Display Màn hình tinh thể lỏng
12 SRAM Static random-access
13 CAN Controller Area Network Mạng vùng điều khiển
14 PWM Pulse Width Modulation Điều chế độ rộng xung
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2.1 Các linh kiện tham khảo 16
Bảng 2.2 Các giải pháp thiết kế 17
Bảng 2.3 Chức năng các chân IC2596 23
Bảng 2.4 Chức năng các chân IC1117 24
Bảng 3.1 Đánh giá độ chính xác nhận diện 42
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1 Apple sử dụng nhận diện khuôn mặt để mở khóa thiết bị di động 6
Hình 1.2 App ngân hàng sử dụng nhận diện mặt để xác thực thanh toán 6
Hình 1.3 Mô hình chung cho bài toán nhận diện khuôn mặt 12
Hình 1.4 Các giai đoạn cơ bản của chương trình xử lý ảnh 13
Hình 2.1 Sơ đồ khối của hệ thống 19
Hình 2.2 Khối nguồn 20
Hình 2.3 Biến áp 220V ra 12V 20
Hình 2.4 Mạch ổn áp 12V dùng IC L7812 21
Hình 2.5 Mạch hạ áp 5V dùng IC2596 22
Hình 2.6 Sơ đồ chân IC2596 22
Hình 2.7 IC1117 hạ áp 3.3V 23
Hình 2.8 Khối đầu vào 24
Hình 2.9 Webcam 25
Hình 2.10 Bàn phím ma trận và sơ đồ chân 25
Hình 2.11 Cảm biến nhận dạng vân tay AS608 26
Hình 2.12 Khối điều khiển 28
Hình 2.13 Vi điều khiển STM32F103C8T6 28
Hình 2.14 Khối hiển thị 29
Hình 2.15 Màn hình LCD 16x2 30
Hình 2.16 Một kí tự trong LCD 30
Hình 2.17 Khối cơ cấu chấp hành 31
Hình 2.18 Khóa điện từ 31
Hình 2.19 Sơ đồ nguyên lý của hệ thống 32
Hình 2.20 Lưu đồ thuật nhận diện khuôn mặt 33
Hình 2.21 Lưu đồ thuật đóng/mở bằng nhận diện khuôn mặt, vân tay và mật khẩu 34
Hình 2.22 Sơ đồ mạch in 2D 35
Hình 2.23 Sơ đồ mạch in 3D 35
Trang 9Hình 2.24 Mạch thực tế 36
Hình 2.25 Mô hình thực tế 36
Hình 3.1 Chương trình thu thập dữ liệu ảnh đầu vào 37
Hình 3.2 Folder ảnh và vecto mã hoá được thu thập 37
Hình 3.3 Nhận diện đúng với số lượng 1 người 38
Hình 3.4 Nhận diện đúng người có trong/ngoài dữ liệu gốc 39
Hình 3.5 Nhận diện 2 hoặc nhiều người cùng lúc 39
Hình 3.6 Nhận diện đúng với góc mặt nghiêng 45 độ so với camera 40
Hình 3.7 Hệ thống mở cửa khi nhận đúng khuôn mặt/ vân tay/ mật khẩu 40
Hình 3.8 Hệ thống đóng cửa khi nhận diện khuôn mặt không có trong dữ liệu hoặc sai vân tay, mật khẩu 41
Hình 3.9 Hệ thống không nhận diện khi che nửa mặt 42
Hình 3.10 Hệ thống không nhận diện khi mặt nghiêng quá 90 độ 43
Hình 3.11 Hệ thống không nhận diện được khi ở khoảng cách quá xa 43
Hình 3.12 Độ nhận diện chính xác theo khoảng cách 44
Hình 3.13 Độ nhận diện chính xác theo số lượng ảnh gốc 45
Hình 3.14 Tỷ lệ nhận diện đúng của 3 khuôn mặt trong dữ liệu gốc 45
Hình 3.15 Nhận diện đúng trong trường hợp thiếu sáng 46
Hình 3.16 Không thể nhận diện trong trường hợp thiếu sáng 46
Trang 10MỞ ĐẦU
Trong thời đại hiện đại này, với sự tiến bộ của xã hội, nhu cầu của con người đối với các thiết bị bảo vệ tài sản cá nhân, gia đình và cơ quan ngày càng tăng cao Các thiết bị như hệ thống chống trộm, camera và đặc biệt là khóa cửa
đã trở thành những yếu tố không thể thiếu Trên thị trường hiện nay, có rất nhiều loại khóa khác nhau, nhưng khóa cơ khí và kim loại vẫn chiếm ưu thế Nhược điểm của những loại khóa này là dễ sử dụng và giá thành phải chăng, tuy nhiên, độ an toàn của chúng không cao, dễ dàng bị phá bởi những chìa khóa
đa năng Song song với những loại khóa truyền thống, khóa thông minh đang phát triển và từ từ thay thế khóa cơ nhờ các ưu điểm và tiện ích mà nó mang lại cho người dùng
Lý do chọn đề tài
Ở thời đại hiện đại, con người đang chứng kiến một cuộc cách mạng mang tính chất vượt bậc - cách mạng công nghiệp thứ tư, hay còn gọi là Công nghiệp 4.0 Cách mạng này tập trung vào việc phát triển các công nghệ kỹ thuật số tự động, hỗ trợ bởi Internet, để đảm bảo sự đồng bộ hoàn toàn của dữ liệu và truy cập vào dữ liệu này trong thời gian thực Điều này tạo ra sự trao đổi thông tin
và kết nối toàn diện giữa các thành phần, đối tác, nhà cung cấp, sản phẩm và con người, đưa chúng lên một tầm cao mới Trong những thập kỷ gần đây, công nghệ nhận diện khuôn mặt đã trở thành một trong những đột phá đáng kể được phát triển
Việc áp dụng công nghệ này mang lại cho con người khả năng thực hiện nhiều công việc, giúp tiết kiệm thời gian và công sức đáng kể Một ví dụ điển hình là việc sử dụng công nghệ nhận dạng khuôn mặt để mở/đóng cửa Trước đây, việc điều chỉnh các khớp của chìa khóa để phù hợp với ổ khóa thường mất rất nhiều thời gian Tuy nhiên, hiện nay, công việc đó đã được tự động hóa thông qua hệ thống nhận dạng khuôn mặt Việc phát hiện và nhận dạng khuôn mặt trong hình ảnh là một phần quan trọng của hệ thống này, giúp giải quyết hiệu quả việc phát hiện khuôn mặt và mang lại sự tiết kiệm thời gian cùng độ
Trang 11chính xác cao hơn trong quá trình nhận dạng
Vì vậy, để nâng cao yêu cầu về tính bảo mật để bảo vệ tài sản và dễ dàng
sử dụng với giá thành rẻ hơn, chúng em đã quyết định thực hiện đề tài: “Thiết
kế hệ thống cửa thông minh sử dụng nhận diện khuôn mặt”
Dựa trên kiến thức đã học và tích lũy trong quá trình học tập, chúng em
đã được trang bị các kiến thức về thiết kế, mô phỏng, lập trình, cùng các lý thuyết chuyên ngành về điện tử, đo lường, điều khiển và nhiều lĩnh vực khác Những kiến thức này là những công cụ giúp chúng em tìm hiểu và phát triển các phương pháp giải quyết vấn đề Thông qua Internet, chúng em có thể tiếp cận thông tin từ nhiều nguồn khác nhau, bao gồm các bài báo khoa học, trang web công nghệ và các kênh tin tức Điều này đã giúp chúng em tích lũy một lượng kiến thức đáng kể và tạo ra hướng phát triển trong lĩnh vực xử lí ảnh
Mục tiêu nghiên cứu
Với đề tài “Thiết kế hệ thống cửa thông minh sử dụng nhận diện khuôn mặt”, những mục tiêu chính cần nghiên cứu là:
- Nghiên cứu các phương pháp nhận diện khuôn mặt hiệu quả và đang được sử dụng rộng rãi hiện tại
- Nghiên cứu thiết kế và xây dựng được những chương trình tối ưu về các tính năng nhận diện khuôn mặt người trong các điều kiện phức tạp
- Nghiên cứu, tính toán và lựa chọn sử dụng các linh kiện phù hợp với phần cứng của sản phẩm
- Nghiên cứu, tính toán và lựa chọn sử dụng các loại vi điều khiển phù hợp với đề tài
- Nghiên cứu, tính toán và lựa chọn sử dụng các loại cảm biến phù hợp với yêu cầu đề ra để đáp ứng được yêu cầu đề tài
- Thiết kế phần mềm đăng ký khuôn mặt
Đối tượng nghiên cứu
Trong đề tài này nhóm tập trung mục tiêu chính của hệ thống là nhận diện
và xác thực khuôn mặt của những người đang truy cập Hệ thống sẽ sử dụng
Trang 12một cơ sở dữ liệu chứa các khuôn mặt đã được đăng ký trước đó để so sánh và xác thực Các thông tin như hình ảnh khuôn mặt, tên, thông tin và quyền truy cập của mỗi người sẽ được lưu trữ và quản lý trong cơ sở dữ liệu này
- Thời gian: từ ngày 18/03/2024 đến ngày 18/05/2024
Phương pháp nghiên cứu
Nghiên cứu lý thuyết:
- Thu thập, phân tích các tài liệu về nhận dạng khuôn mặt
- Tìm hiểu các phương pháp nhận dạng khuôn mặt
- Nghiên cứu các công cụ xây dựng hệ thống khóa cửa thông minh
Nghiên cứu thực nghiệm:
- Thu thập dữ liệu thực tế
- Trích rút các thuộc tính đặc trưng từ dữ liệu thực tế
- Phân tích yêu cầu của chương trình
- Thiết kế hệ thống và triển khai xây dựng chương trình
- Kiểm thử và đánh giá kết quả
Chương 1: Cơ sở lý thuyết
Chương 2: Thiết kế hệ thống cửa thông minh sử dụng nhận diện khuôn mặt
Chương 3: Kết quả thực nghiệm và đánh giá
Trang 13CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Tổng quan vấn đề nghiên cứu
1.1.1 Tình hình nghiên cứu ở trong nước
Ở Việt Nam hiện nay, khóa thông minh là một thuật ngữ phổ biến trong các doanh nghiệp và trường đại học Trong những năm gần đây, nhìn nhận được
xu hướng công nghệ toàn cầu, nhiều tập đoàn công nghệ, viện nghiên cứu và trường đại học đã và đang đặt trọng điểm vào việc phát triển và sản xuất các sản phẩm liên quan đến khóa thông minh Một số doanh nghiệp liên tục cải tiến sản phẩm của mình để cạnh tranh với các khóa thông minh được nhập khẩu từ các hãng nước ngoài, nhằm thay thế cho các thiết bị khóa cơ truyền thống như Việt Tiệp, Huy Hoàng …
Một số hệ thống khóa cửa thông minh được sử dụng phổ biến hiện nay:
- Khóa vân tay: Hệ thống này cho phép vân tay của người sự dụng được
mã hóa trên thiết bị và chỉ khi có vân tay đó đặt vào thì khóa cửa mới tự động
mở
- Khóa mật mã: Là loại khóa dùng mật mã thay cho chìa khóa để mở cửa
- Khóa bằng thẻ RFID: RFID là công nghệ nhận dạng các đối tượng dựa trên bước sóng vô tuyến
- Khóa cửa thông minh sử dụng nhận diện khuôn mặt: Là công nhận diện khuôn mặt được sử dụng để xác thực danh tính của một người thông qua việc phân tích các đặc trưng của khuôn mặt của họ
1.1.2 Tình hình nghiên cứu ở nước ngoài
An toàn luôn là một yếu tố quan trọng ở mọi quốc gia Do đó, đề tài về khóa thông minh đang thu hút sự quan tâm rất lớn trong lĩnh vực nghiên cứu hiện nay Các tập đoàn công nghệ hàng đầu thế giới như Apple, Samsung, Kassler và Philips đều đặc biệt quan tâm đến chủ đề này Trong số đó, khóa thông minh sử dụng công nghệ nhận dạng khuôn mặt đang trở thành lựa chọn hàng đầu Có nhiều phương pháp thường được áp dụng như:
- Nhận diện khuôn mặt với Haar Cascade [3]
Trang 14Phương pháp nhận diện khuôn mặt này dựa trên các đặc trưng Haar-Like Các đặc trưng Haar-Like là những hình chữ nhật được phân thành các vùng khác nhau Đặc trưng do Viola và Jones công bố gồm 4 đặc trưng cơ bản để xác định khuôn mặt người Mỗi đặc trưng Haar-Like là sự kết hợp của hai hay
ba hình chữ nhật trắng hay đen Dùng các đặc trưng trên, ta có thể tính được giá trị của đặc trưng Haar-Like là sự chênh lệch giữa tổng của các pixel của vùng đen và vùng trắng
- Nhận diện khuôn mặt với OpenCV Dlib và Deeplearning [3]
Dlib là một thư viện mở rộng cho OpenCV, cung cấp các công cụ mạnh
mẽ cho xử lý hình ảnh và tầm nhìn máy tính, đặc biệt là trong lĩnh vực nhận dạng khuôn mặt Dlib sử dụng thuật toán HOG (Histogram of Oriented Gradients) và SVM (Support Vector Machine) để xác định khuôn mặt một cách hiệu quả và chính xác Nhờ ưu điểm này, Dlib có tốc độ xử lý nhanh, phù hợp cho các ứng dụng thời gian thực
- Nhận diện khuôn mặt với MTCNN và FaceNET [4]
MTCNN và FaceNet là hai mạng nơ-ron convolution nổi tiếng trong lĩnh vực nhận diện khuôn mặt Khi kết hợp, chúng mang lại hiệu quả vượt trội khi
xử lý ảnh/video có nhiều người trong điều kiện thực tế MTCNN đảm nhiệm vai trò phát hiện và sắp xếp khuôn mặt Nó xác định vị trí từng khuôn mặt trong ảnh/video, tạo ra các khung (bounding boxes) và điều chỉnh kích thước, hướng
về chuẩn để phù hợp với FaceNet Tiếp theo, FaceNet thực hiện vai trò trích xuất đặc trưng và phân loại Nó trích xuất các đặc điểm của mỗi khuôn mặt từ ảnh đã được MTCNN chuẩn hóa sau đó phân biệt và xác định danh tính từng
cá nhân trong ảnh/video
1.1.3 Các kết quả nghiên cứu chính
Apple tiên phong ứng dụng Face ID để mở khóa iPhone, iPad, nâng tầm trải nghiệm bảo mật tiện lợi và cá nhân hóa Facebook kết nối cộng đồng bạn
bè hiệu quả hơn thông qua hệ thống gắn thẻ khuôn mặt tự động Ngành tài chính hướng đến sử dụng nhận diện khuôn mặt như phương thức xác thực thanh toán,
Trang 15thay thế thẻ cứng truyền thống, gia tăng bảo mật và thuận tiện cho giao dịch Sân bay và nhà ga áp dụng nhận diện khuôn mặt để tăng cường an ninh, kiểm soát và xác định hành khách nhanh chóng, hiệu quả Trường học và công ty quan tâm đến việc sử dụng hệ thống tự động điểm danh, chấm công dựa trên nhận diện khuôn mặt, tiết kiệm thời gian và nâng cao hiệu quả quản lý
Hình 1.1 Apple sử dụng nhận diện khuôn mặt để mở khóa thiết bị di
động
Hình 1.2 App ngân hàng sử dụng nhận diện mặt để xác thực thanh toán
Trang 16Ưu và nhược điểm của việc sử dụng sinh trắc học
Xác thực sinh trắc học là một hình thức bảo mật đo lường và đối sánh các tính năng sinh trắc học của người dùng Xác thực sinh trắc học thực hiện thông qua các dấu hiệu nhận diện như: dấu vân tay, dái tai, võng mạc, hình dạng bàn tay, khuôn mặt hoặc chữ ký bằng văn bản
Ưu điểm
- Bảo mật: Sinh trắc học được coi là một phương pháp xác thực an toàn
hơn so với mật khẩu hoặc mã PIN vì các đặc điểm sinh học của mỗi người là duy nhất và khó bị sao chép
- Tiện lợi: Sử dụng sinh trắc học có thể nhanh chóng và dễ dàng hơn so
với việc nhập mật khẩu hoặc mã PIN Người dùng không cần phải ghi nhớ hoặc mang theo bất kỳ thứ gì, chỉ cần quét dấu vân tay, mống mắt hoặc khuôn mặt của họ
- Khó gian lận: Việc giả mạo các đặc điểm sinh học là rất khó khăn, do
đó sinh trắc học có thể giúp giảm thiểu gian lận và truy cập trái phép
- Có thể áp dụng rộng rãi: Sinh trắc học có thể được sử dụng cho nhiều
ứng dụng khác nhau, chẳng hạn như kiểm soát truy cập vật lý, xác thực tài khoản ngân hàng, bảo mật thiết bị di động và xác minh danh tính
Nhược điểm
- Chi phí: Triển khai các hệ thống sinh trắc học có thể tốn kém, đặc biệt
là đối với các công nghệ tiên tiến như nhận dạng mống mắt hoặc quét võng mạc
- Tính riêng tư: Việc thu thập và lưu trữ dữ liệu sinh trắc học có thể gây
ra lo ngại về quyền riêng tư Nếu dữ liệu này bị rò rỉ, nó có thể bị lạm dụng cho các mục đích bất chính
- Độ chính xác: Mức độ chính xác của các hệ thống sinh trắc học có thể
thay đổi tùy thuộc vào công nghệ được sử dụng và chất lượng của dữ liệu thu thập được Một số hệ thống có thể gặp lỗi hoặc cho kết quả sai
Trang 17- Khả năng bị đánh lừa: Mặc dù rất khó để giả mạo các đặc điểm sinh
học, nhưng vẫn có một số trường hợp có thể bị đánh lừa, chẳng hạn như sử dụng mặt nạ silicon hoặc hình ảnh mống mắt in
1.1.4 Những hạn chế của các nghiên cứu trước
Mục tiêu là phát triển một hệ thống nhận diện khuôn mặt với đầu vào là hình ảnh kỹ thuật số hoặc khung hình video từ một nguồn video, và đầu ra là xác định hoặc xác minh danh tính của người trong hình ảnh hoặc video đó Để đạt được mục tiêu này, chúng ta thường chia quy trình nhận diện khuôn mặt thành ba bước: phát hiện khuôn mặt, trích xuất đặc trưng và nhận diện khuôn mặt
Ngoài những thành công đã đạt được, nhận diện khuôn mặt vẫn gặp nhiều thách thức như độ sáng, góc nghiêng, khoảng cách, kích thước hình ảnh, diện mạo và biểu hiện cảm xúc của khuôn mặt Đây là những vấn đề cần được khắc phục và cải tiến
1.2 Cấu tạo, cách thực hoạt động của khóa thông minh
Ổ khóa điện tử thông minh có cấu tạo phức tạp hơn so với ổ khóa thông thường, bao gồm một số bộ phận chủ yếu sau [5]:
- Khóa chốt để đảm bảo cửa được khóa an toàn
- Bộ nguồn để cung cấp và lưu trữ điện cho khóa
Trang 181.3 Nội dung lý thuyết liên quan
1.3.1 Tổng quan về OpenCV
Giới thiệu về OpenCV: [3]
Gary Bradsky là người sáng lập dự án OpenCV của Intel vào năm 1999 OpenCV là viết tắt của Open Source Computer Vision Library, thư viện nguồn
mở hàng đầu cho Computer Vision và Machine Learning Nó cung cấp tính năng tăng tốc GPU cho các hoạt động thời gian thực
OpenCV được phát hành theo giấy phép BSD, vì vậy nó miễn phí cho việc học tập và sử dụng thương mại Thư viện này hỗ trợ các giao diện C++, C, Python và Java, và tương thích với Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để hiệu quả tính toán và đặc biệt phù hợp cho các ứng dụng thời gian thực Khi được viết bằng C/C++ tối ưu, thư viện này có thể tận dụng được xử lý đa lõi
Chức năng của OpenCV:
Theo tính năng và ứng dụng của OpenCV, có thể chia thư viện này thánh các nhóm tính năng và module tương ứng như sau:
- Xử lý và hiển thị hình ảnh/video/I/O (core, imgproc, highgui)
- Phát hiện các vật thể (objdetect, features2d, nonfree)
- Thị giác máy tính đơn hoặc lập thể dựa trên hình học (calib3d, stitching, videostab)
Trang 19- Nhiếp ảnh tính toán (photo, video, superres)
- Học máy và phân nhóm (ml, flann)
- Tăng tốc CUDA (GPU)
Cấu trúc OpenCV:
OpenCV có cấu trúc module, nghĩa là gói bao gồm một số thư viện liên kết tĩnh (static libraries) hoặc thư viện liên kết động (shared libraries) Xin phép liệt kê một số định nghĩa chi tiết các module phổ biến có sẵn như sau [2]:
- Core functionality (core): Xác định cấu trúc dữ liệu cơ bản và chức
năng cơ bản được sử dụng bởi các module khác
- Image Processing (imgproc): Xử lý hình ảnh, bao gồm lọc hình ảnh,
biến đổi hình học và chuyển đổi không gian màu
- Video Analysis (video): Phân tích video, bao gồm ước tính chuyển động
và theo dõi vật thể
- Camera Calibration and 3D Reconstruction (calib3d): Module này
cung cấp các thuật toán hình học đa chiều cơ bản, hiệu chuẩn máy ảnh đơn và stereo, dự đoán kiểu dáng đối tượng, thuật toán tương quan stereo và tái tạo 3D
- 2D Features Framework (features2d): Phát hiện đặc điểm nổi bật và
trích xuất thông số
- Object Detection (objdetect): Phát hiện đối tượng sử dụng các lớp được
định nghĩa sẵn
- High-level GUI (highgui): cung cấp giao diện đồ họa người dùng dễ sử
dụng để tương tác với các thành phần giao diện người dùng
- Video I/O (videoio): cung cấp giao diện đơn giản để thu và mã hóa video
- GPU: cung cấp các thuật toán tăng tốc GPU từ các module khác trong
OpenCV Ngoài ra, còn có các module hỗ trợ khác như FLANN, Google test wrapper và Python binding
1.3.2 Khái niệm Deep Learning
Deep Learning là một lĩnh vực trong Trí tuệ Nhân tạo (AI) tập trung vào mạng nơron nhân tạo và được coi là một phạm trù con của Machine Learning
Trang 20Nó tập trung vào giải quyết các vấn đề liên quan đến mạng nơron nhân tạo nhằm cải tiến các công nghệ như nhận dạng giọng nói, thị giác máy tính và xử
lý ngôn ngữ tự nhiên
Deep Learning đã trở thành một lĩnh vực quan trọng trong lĩnh vực khoa học máy tính Trong vài năm gần đây, được đẩy mạnh tiến bộ trong nhiều lĩnh vực như nhận dạng đối tượng, dịch máy và nhận diện giọng nói
- những vấn đề trước đây rất khó khăn đối với các nhà nghiên cứu Trí tuệ Nhân tạo [6]
Một số ứng dụng của Deep Learning
- Nhận diện hình ảnh
- Xử lý ngôn ngữ tự nhiên
- Phát triển hệ thống xử lý trên các nền tảng
1.3.3 Bài toán nhận diện khuôn mặt với OpenCV và Deep Learning
Face Recognition hay còn gọi là nhận dạng khuôn mặt, là một phương pháp sinh trắc học để xác định hoặc xác minh một cá nhân thông qua việc so sánh dữ liệu hình ảnh chụp trực tiếp hoặc hình ảnh kỹ thuật số với các bản ghi
đã được lưu trữ cho người đó Mặc dù có nhiều điểm tương đồng với việc nhận dạng vân tay và mống mắt, nhưng phương pháp này khác biệt ở việc trích xuất đặc trưng So với việc nhận dạng vân tay và mống mắt, nhận dạng khuôn mặt
có ưu điểm là có nguồn dữ liệu phong phú hơn, vì chúng ta có thể dễ dàng nhìn thấy mặt người trong nhiều tình huống ảnh hoặc video trên mạng mà không cần
sự hợp tác đặc biệt của người được nhận dạng và môi trường chụp ảnh
Hiện nay, có nhiều phương pháp để thực hiện việc nhận dạng khuôn mặt, nhưng điểm chung của chúng là phải đi qua ba bước cơ bản:
- Đầu tiên, xác định và trích xuất (các) khuôn mặt có trong hình ảnh
- Tiếp theo, từ các khuôn mặt được trích xuất từ bước trước, thực hiện phân tích và trích xuất các đặc trưng của chúng
- Cuối cùng, dựa trên các thông tin thu được từ quá trình phân tích, kết luận và xác minh danh tính của người dùng
Trang 21Hình 1.3 Mô hình chung cho bài toán nhận diện khuôn mặt
Ở đây, với đề tài “Thiết kế hệ thống cửa thông minh sử dụng nhận diện khuôn mặt”, chúng em sử dụng kỹ thuật nhận diện khuôn mặt với OpenCV Dlib và Deeplearning Hai thuật toán mà Dlib (thư viện OpenCV) sử dụng đó
là thuật toán HOG và SVM [3]
Trong lĩnh vực xử lý ảnh, thuật toán HOG được coi là một công cụ mạnh
mẽ trong việc mô tả đặc trưng, giúp chuyển đổi hình ảnh thành một vector đặc trưng có số chiều đủ lớn để phân loại các bức ảnh hiệu quả Nguyên tắc hoạt động của thuật toán này dựa trên việc biểu diễn histogram của độ lớn gradient theo các biến của phương gradient, được áp dụng trên các vùng ảnh cục bộ Đồng thời, việc sử dụng các phương pháp chuẩn hóa giúp vector histogram trở nên không đổi với sự biến đổi về cường độ màu sắc của các bức ảnh Trong việc phát hiện đối tượng, thuật toán HOG đã chứng tỏ sự hiệu quả khi được áp dụng để phát hiện người trong các bức ảnh với nhiều kích thước khác nhau Tuy nhiên, trong một số trường hợp phân loại ảnh, đặc biệt là khi bộ dữ liệu có kích thước nhỏ, các mạng nơ-ron sâu như CNN có thể không hoạt động chính xác do tập dữ liệu huấn luyện không đủ đại diện cho các khả năng Trong tình huống đó, việc sử dụng phương pháp truyền thống như HOG có thể mang lại kết quả không ngờ và đồng thời tiết kiệm tài nguyên tính toán Do đó, HOG vẫn được xem là một công cụ hiệu quả trong nhiều bài toán, không nhất thiết phải dựa vào các mô hình deep learning phức tạp để đạt được độ chính xác cao,
mà phụ thuộc vào bối cảnh và điều kiện cụ thể của vấn đề
SVM (Support Vector Machine) là một thuật toán giám sát, nó có thể sử dụng cho cả việc phân loại hoặc đệ quy Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại
Trang 221.3.4 Các bước cơ bản trong xử lý ảnh
Quá trình xử lý một ảnh đầu vào nhằm thu được một ảnh đầu ra mong muốn thường phải trải qua rất nhiều bước khác nhau Các bước cơ bản của một quá trình xử lý ảnh được thể hiện thông qua hình sau:
Hình 1.4 Các giai đoạn cơ bản của chương trình xử lý ảnh
Dựa vào sơ đồ trên, có thể nhận thấy quá trình xử lý ảnh thông qua 5 bước chính:
Bước 1: Thu nhận ảnh đầu vào:
Giai đoạn đầu tiên trong quá trình xử lý ảnh là thu nhận ảnh đầu vào Việc này được thực hiện bằng các thiết bị thu ảnh như máy chụp ảnh đơn sắc hoặc màu, máy quét ảnh, máy quay video,… Mục đích của bước này là thu thập dữ liệu ảnh cần thiết cho quá trình xử lý tiếp theo
- Khử nhiễu: Loại bỏ các tạp âm ảnh hưởng đến chất lượng hình ảnh
- Khôi phục hình ảnh: Sửa chữa các lỗi như ảnh mờ, méo mó,
- Nắn chỉnh hình học: Chuyển đổi ảnh về hình dạng mong muốn (ví dụ: cắt xén, xoay, )
Mục đích của bước tiền xử lý ảnh là chuẩn bị dữ liệu cho bước trích chọn đặc trưng một cách hiệu quả nhất
Hậu
xử lý
So sánh, đối chiếu
và kết luận
Trang 23- Thay đổi kích thước ảnh: Thay đổi kích thước ảnh theo yêu cầu
- Cắt xén ảnh: Cắt xén ảnh để loại bỏ các phần không cần thiết
Mục đích của bước hậu xử lý ảnh là chuẩn bị dữ liệu cho bước so sánh và kết luận
Bước 5: So sánh, đối chiếu và kết luận
Đây là bước quan trọng nhất trong qua trình xử lý ảnh Ảnh sẽ được so sánh, đối chiếu với ảnh mẫu (nếu có), hoặc dùng phương pháp nội suy đối với trường hợp không có mẫu để đưa ra kết luận hoặc kết quả mong muốn Bước này giải thích ý nghĩa của thông tin thu thập được từ ảnh và cung cấp kết quả cuối cùng cho quá trình xử lý ảnh [7]
1.4 Kết luận chương 1
Chương 1 đã trình bày những căn bản về đề tài nghiên cứu, đưa ra lý thuyết
về thuật toán nhận diện khuôn mặt sử dụng thuật toán nhận diện dùng thư viện
mã nguồn mở OpenCV và Deep Learning
Trang 24CHƯƠNG 2 THIẾT KẾ HỆ THỐNG CỬA THÔNG MINH SỬ DỤNG
NHẬN DIỆN KHUÔN MẶT 2.1 Phân tích yêu cầu
2.1.1 Phân tích yêu cầu bài toán
Để xây dựng được hệ thống cửa thông minh dùng phương pháp nhận diện khuôn mặt, thì vấn đề cốt lõi là làm sao để hệ thống có thể nhận dạng chính xác mặt người và định danh được người đó qua ảnh khuôn mặt nhận được từ camera Sau khi đã định danh được ảnh người đó thì thực hiện tính toán và thực hiện việc mở cửa Hệ thống cần tích hợp thêm chức năng thêm ảnh chủ sở hữu vào trong cơ sở dữ liệu Và một giao diện người dùng đơn giản được thiết kế nhằm giúp người dùng dễ dàng hiểu và sử dụng
Kỹ thuật nhận diện khuôn mặt sử dụng OpenCV Dlib và Deeplearning có một số đặc trưng sau [3] [8]:
- Tính chính xác cao: Sử dụng các kỹ thuật nhận diện khuôn mặt đưa ra kết quả chính xác hơn so với các phương pháp khác Các thuật toán Deep Learning và Dlib sử dụng các mô hình học sâu để nhận diện khuôn mặt với độ chính xác rất cao, và cũng có khả năng nhận diện các gương mặt khác nhau
- Tốc độ xử lý tương đối: Các kỹ thuật nhận diện khuôn mặt được triển khai trên các nền tảng phần cứng mạnh, vì vậy chúng có khả năng xử lý nhanh hơn và đáp ứng được các yêu cầu về thời gian thực trong các ứng dụng
- Dễ sử dụng và triển khai: OpenCV, Dlib và các thư viện Deep Learning cung cấp các công cụ và thư viện đơn giản để triển khai các ứng dụng nhận diện khuôn mặt và đào tạo mô hình Các thư viện này cũng cung cấp nhiều tài liệu hướng dẫn và ví dụ để giúp các nhà phát triển hiểu rõ hơn về cách sử dụng chúng
Trong chương này chúng em thực hiện thiết kế và xây dựng hệ thống với khả năng phát hiện khuôn mặt người từ ảnh chụp và thực hiện định danh người
đó Để xử lý bài toán phát hiện khuôn mặt trong đề tài em thực hiện tiếp cận dựa trên so sánh khớp mẫu, bài toán này được giải quyết bằng phương pháp sử dụng kỹ thuật nhận diện khuôn mặt với OpenCV Dlib và Deeplearning Sau đó
Trang 25khi một khuôn mặt được đưa vào, nó sẽ được đem so sánh với các dữ liệu gốc
và nhận dạng khuôn mặt, quyết định xem ảnh đó là của ai
Hệ thống cửa thông minh sẽ được ứng dụng trên máy tính kết nối với webcam để nhận ảnh từ bên ngoài và xuất tín hiệu thực hiện việc đóng/mở cửa
2.1.2 Mục tiêu thiết kế
Thiết kế hệ thống khoá cửa thông minh sử dụng nhận diện khuôn mặt kết hợp với mật khẩu và vân tay
2.1.3 Ràng buộc thiết kế của bài toán
- Về linh kiện: Đảm bảo linh kiện phù hợp đề tài, giá thành phù hợp
Bảng 2.1 Các linh kiện tham khảo
Kết luận: Thiết kế mục tiêu giới hạn dưới 1 triệu đồng, đáp ứng khả năng nhận diện ổn định, có tính chính xác cao, ít bị sai sót khi nhận diện khuôn mặt
2.1.4 Giải pháp thiết kế bài toán
Trang 26- Giải pháp 1: Sử dụng STM32 điều khiển kết hợp với nhận diện khuôn mặt bằng OpenCV và Deep Learning xác định hình ảnh qua Webcam để tính toán đặc điểm của khuôn mặt
- Giải pháp 2: Sử dụng Arduino Uno điều khiển kết hợp với thu nhận hình ảnh qua camera, nhận diện khuôn mặt bằng OpenCV
- Giải pháp 3: Sử dụng ESP32 và ESP32 Cam làm bộ điều khiển, đồng thời tương tác, cảnh báo qua bot Telegram
Ưu điểm
- Tốc độ xử lý nhanh, đa nhiệm tốt
- Dòng sản phẩm phổ biến, đa dạng, nhiều lựa chọn: tính năng, giá cả
- Tích hợp nhiều tính năng: Giao tiếp, ngoại vi, ADC, …
- Dễ sử dụng
- Thiết kế nhỏ gọn
- Cộng đồng lớn, nhiều thư viện, tài nguyên trực tuyến sẵn có
- Tích hợp giao tiếp Wi-fi, Bluetooth
- Chi phí thấp
- Dòng sản phẩm đa dạng về tính năng, cấu hình
Nhược điểm
- Lập trình, cấu hỉnh STM32 phức tạp đối với người mới
- Giá thành cao so với một số dòng vi điều khiển khác
- Hiệu suất thấp, không phù hợp cho ứng dụng cần xử lý nhanh, phức tạp
- Số lượng chân ít, tính năng hạn chế
- Hiệu suất xử lý khá thấp so với STM32
- Bộ nhớ RAM hạn chế ở một số phiên bản
Đánh giá
Lựa chọn tốt cho các dự án đòi hỏi hiệu suất cao và tính năng nâng cao
Phù hợp cho các
dự án nhỏ, đơn giản với người mới
Phù hợp cho ứng dụng iot, dự án kết nối không dây
Trang 27Lựa chọn: Nhóm quyết định lựa chọn STM32 để thực hiện đề tài vì những
lý do sau:
- Sự quen thuộc: Các thành viên đã được học về vi điều khiển STM32
trong chương trình đào tạo
- Sự phù hợp: Đề tài yêu cầu khả năng xử lý liên tục với tốc độ cao phù
hợp với hiệu suất và tốc độ xung nhịp của STM32
- Về kiến thức: Vi điều khiển STM32 có độ phức tạp vừa đủ để thực hiện
đề tài và tìm hiểu sâu hơn về vi điều khiển này
- Khả năng phát triển: Vi điều khiển STM32 có nhiều không gian để
nhóm tiếp tục nghiên cứu và phát triển thêm về đề tài này
- Hệ thống đáp ứng cơ bản lưu trữ dữ liệu
- Hệ thống cửa thông minh với độ chính xác cao đến 85%
Tính toán giá trị linh kiện
❖ Giá trị tụ điện
- Ở khối nguồn ta sử dụng nguồn adaptor 12V/3A, nên trước khi cho điện
áp đi qua LM2596 ta dùng tụ có điện áp lớn để đảm bảo ổn định và dự phòng Theo các nguyên lý cơ bản của điện tử và hướng dẫn từ datasheet của các bộ biến đổi điện áp 1 chiều DC-DC thì ta chọn tụ có:
Trang 28❖ Giá trị điện trở
Thông số của Còi chíp được sử dụng với điện áp 3,3V, giả sử dòng điện cuộn dây là 30mA( IC ) và hệ số khuêch đại (β) của Transistor C1815 từ 100 đến 400 ( chọn giá trị 100 để đảm bảo độ bão hòa)
IB =𝐼𝐶
𝛽 =30𝑚𝐴
100 = 0.3mA Điện áp 𝑉𝐶𝐶 là 5V từ vi điều khiển, điện áp 𝑉𝐵 của transistor là 0.7V
- Khối nguồn: Cung cấp nguồn nuôi cho cả hệ thống
- Khối đầu vào: Bao gồm 3 khối đầu vào gồm camera nhận diện, bàn phím
ma trận 4x4 và modul nhận dạng vân tay AS608
+ Camera nhận diện: nhận diện và xác nhận hình ảnh khuôn mặt
+ Bàn phím ma trận 4x4: nhập mật khẩu, lệnh từ bàn phím
+ Modul nhận dạng vân tay AS608: quét và lưu trữ vân tay
- Khối điều khiển: Vi điều khiển STM32F103C8T6 nhận dữ liệu từ khối đầu vào, xử lý và xuất ra tín hiệu điều khiển đưa ra khối hiển thị, chấp hành
Trang 29- Khổi hiển thị: LCD 1602 hiển thị trạng thái đóng, mở của khoá cửa, các thao tác, yêu cầu thực hiện
- Khối chấp hành: Khoá điện từ nhận tín hiệu từ khối điều khiển và thực hiện điều khiển hoạt động đóng, mở cửa, còi chíp phát ra tiếng kêu khi đóng
- Sử dụng IC1117 hạ áp xuống 3.3V nhằm cung cấp cho khối điều khiển
Trang 30tử hoặc điện gia dụng sử dụng điện áp thấp hơn, như đèn LED, tivi, máy tính, điện thoại, tủ lạnh và các thiết bị khác
Thông số kỹ thuật:
- Điện áp đầu vào: 220V
- Điện áp đầu ra: 12V
Thông số kỹ thuật:
- IC sử dụng: LM7812
- Điện áp đầu vào tối đa: 35V
- Điện áp đầu ra: 12V
- Dòng tối đa: 1A
- Điện áp đầu vào tối thiểu: 14.5V
- Điện áp đầu vào tối đa (không vượt quá): 35V
- Điện áp đầu ra tối thiểu: 11.8V
- Điện trở giới hạn dòng điện: 240Ω
Trang 31- Nguồn đầu vào từ 4V-35V
- Nguồn đầu ra điều chỉnh được trong khoảng từ 1V đến 30V
- Dòng ra max 3A
- Công suất: 15W
- Hiệu suất: 92%
Đầu ra 5V cung cấp cho khối hiển thị
Hình 2.6 Sơ đồ chân IC2596
Trang 32Bảng 2.3 Chức năng các chân IC2596
1 V-in Là chân điện áp đầu vào cấp tín hiệu được điều
Là chân đầu vào kích hoạt Chân này không được
để ở trạng thái không kết nối Kết nối với mass để kích hoạt bộ điều chỉnh điện áp
- Công suất cực đại: 2.64W
Đầu ra 3.3V cung cấp cho khối điều khiển
Trang 33Bảng 2.4 Chức năng các chân IC1117
1 ADJ/Ground Điều chỉnh điện áp đầu ra, nếu là bộ điều chỉnh điện
áp cố định thì nó đóng vai trò nối mass
2 V-out Điện áp đầu ra điều chỉnh được đặt bởi chân điều
chỉnh có thể được lấy từ chân này
3 V-in Điện áp đầu vào được điều chỉnh được cấp cho chân
này
b Khối đầu vào
- Sử dụng một cảm biến vân tay AS608 để nhận diện và lưu trữ vân tay của người dùng Gửi tín hiệu cho vi điều khiển thông qua giao thức UART
- Sử dụng một bàn phím 4x4 để nhận tín hiệu như số và chữ cái, kết nối với vi điều khiển qua chân 23 đến 30 theo từng hàng, từng cột
- Kết nối với 1 Camera (thiết bị ngoại vi) nhằm nhận dạng và xử lý hình ảnh khuôn mặt, truyền và nhận đến vi điều khiển qua giao thức UART
Hình 2.8 Khối đầu vào
❖ Webcam
Trang 34Hình 2.9 Webcam
Webcam dây USB là một thiết bị ngoại vi được sử dụng để chụp hình hoặc ghi video trên máy tính hoặc máy tính xách tay Nó được kết nối với máy tính thông qua cổng USB và cung cấp một phương tiện để truyền tải hình ảnh và
âm thanh từ máy tính đến internet hoặc các ứng dụng khác
Thông số kỹ thuật:
- Độ phân giải video: 1920 x 1080 pixel (Full HD 1080p)
- Tốc độ khung hình: từ 30fps đến 60fps (hình/giây)
- Góc nhìn: từ 60 đến 90 độ (phụ thuộc vào từng model)
- Độ nhạy sáng: từ 1 Lux đến 5 Lux
- Tương thích với các hệ điều hành: Windows, MacOS, Linux
Trang 35❖ Cảm biến nhận dạng vân tay AS608 [13]
Cảm biến nhận dạng vân tay AS608 Fingerprint Sensor sử dụng giao tiếp UART TTL hoặc USB để giao tiếp với Vi điều khiển hoặc kết nối trực tiếp với máy tính (thông qua mạch chuyển USB-UART hoặc giao tiếp USB)
Hình 2.11 Cảm biến nhận dạng vân tay AS608
Cảm biến nhận dạng vân tay AS608 Fingerprint Sensor sở hữu chip xử lý nhận dạng vân tay tích hợp bên trong, tự động gán vân tay với một chuỗi dữ liệu và truyền qua giao tiếp UART ra ngoài Nhờ vậy, việc sử dụng và lập trình trở nên vô cùng đơn giản, chỉ cần thực hiện các thao tác phát lệnh đọc/ghi và
so sánh chuỗi UART
Thông số kỹ thuật:
- Điện áp sử dụng: 3.0~3.6VDC
- Dòng tiêu thụ: 30~60mA, trung bình 40mA
- Communication Interface: USB /UART
- Tốc độ Baudrate UART: 9600 x N (N từ 1~12)