CHƯƠNG 1.GIỚI THIỆU VỀ ĐỀ TÀI LUẬN VĂN 1CHƯƠNG 2.LÝ THUYẾT CƠ SỞ CỦA BÀI TOÁN 9 2.1LÝ THUYẾT PHÁT HIỆN KHUÔN MẶT NGƯỜI BẰNG ĐẶC TRƯNG HAAR WAVELET-LIKE 9 2.2NHẬN DẠNG KHUÔN MẶT NGƯỜI SỬ
Trang 1KHOA CÔNG NGHỆ KỸ THUẬT – NÔNG NGHIỆP CÔNG NGHỆ CAO
Vũng Tàu, tháng 05 năm 2020
Trang 2CHƯƠNG 1.GIỚI THIỆU VỀ ĐỀ TÀI LUẬN VĂN 1
CHƯƠNG 2.LÝ THUYẾT CƠ SỞ CỦA BÀI TOÁN 9
2.1LÝ THUYẾT PHÁT HIỆN KHUÔN MẶT NGƯỜI BẰNG ĐẶC TRƯNG HAAR WAVELET-LIKE 9
2.2NHẬN DẠNG KHUÔN MẶT NGƯỜI SỬ DỤNG LBPH FACE RECOGNIZER 11
2.2.5Bài toán nhận dạng khuôn mặt bằng các EigenFaces 17
CHƯƠNG 3.SƠ LƯỢC VỀ CÁC LINH KIỆN TRONG ĐỀ TÀI 18
CHƯƠNG 4.XÂY DỰNG MÔ HÌNH VÀ PHẦN CỨNG 26
Trang 4Tôi xin chân thành cảm ơn ThS PHAN THANH HOÀNG ANH vì trong
thời gian thực hiện luận văn này, thầy đã hết sức tận tâm giúp đỡ cho tôi lúc tôi không hiểu vấn đề trong lúc thực hiện luận văn này Tôi cũng xin cảm ơn gia đình
và bạn bè đã giúp đỡ tôi khi tôi gặp khó khăn
Tôi xin chân thành cảm ơn!
Vũng Tàu, ngày 28 tháng 05 năm 2020
Sinh viên
DƯƠNG CHÍ HÙNG
Trang 6CHƯƠNG 1 TỔNG QUAN
1.1 Lời mở đầu
Trong thời đại đất nước ngày càng phát triển về mọi mặt, thì cũng nảy sinh nhiều vấn đề về an ninh và cũng được toàn thế giới rất quan tâm Theo đó các bài toán về nhận dạng cũng được quan tâm rất nhiều Và vấn đề nhận dạng các
bộ phận cơ thể của con người cũng đã có rất nhiều phương pháp đưa ra và có độ chính xác cao
Một số bài toán nhận dạng đang rất được quan tâm và phát triển phổ biến ở toàn thế giới như:
Nhận dạng bằng vân tay
Nhận dạng bằng vân mắt
Nhận dạng bằng bàn tay
Sử dụng thẻ để lưu giữ thông tin cá nhân …
Và các phương án nhận dạng này cũng đã được áp dụng sau một thời gian dài phát triển và có được sự chính xác cao Nhưng các phương pháp này vẫn còn gặp nhiều hạn chế như sau:
Đòi hỏi sự tiếp xúc trực tiếp giữa người và hệ thống
Với các hệ thống sử dụng thẻ thì yêu cầu phải có thẻ, nếu mất thẻ thì sẽ không nhận dạng được
Hiện nay, với sự phát triển về xử lý ảnh thì bài toán đang được quan tâm nghiên cứu là nhận dạng khuôn mặt (Face Recognition) Khuôn mặt của mỗi người chúng ta đóng vai trò cực kỳ quan trọng Với mỗi khuôn mặt chúng ta có thể xác định được giới tính, chủng tộc, tuổi tác, trạng thái cảm xúc và đặc biệt là
có thể xác định mối quan hệ giữa mỗi người (bạn bè, ba mẹ, anh chị em …) Vì vậy bài toán nhận dạng khuôn mặt được đặt ra có thể giải quyết được nhiều vấn
đề như điểm danh, quản lý nhân viên … và đặc biệt sẽ mang lại thêm nhiều giải
Trang 7Và thực tế thì công nghệ nhận dạng khuôn mặt cũng đang được ứng dụng và phát triển bởi các công ty lớn trên thế giới như Apple, Samsung, Google Ví dụ điển hình như trên những chiếc điện thoại thông minh mới nhất của hãng điện thoại Samsung là S8 hay Iphone X của hãng Apple đều có khả năng sử dụng khuôn mặt của chủ nhân để mở khóa màn hình.
Với bài toán nhận diện khuôn mặt thì có rất nhiều bài toán nhỏ khác nhau như:
Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature based face recognition)
Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition)
Nhận dạng 2D và 3D
Với phương pháp nhận dạng dựa trên các đặc trưng khuôn mặt sử dụng việc xác định các đặc trưng hình học trên các chi tiết của khuôn mặt (vị trí, diện tích, hình dạng mắt, mũi, miệng …) và mối quan hệ giữa chúng (khoảng cách của hai mắt, khoảng cách của hai lông mày…) Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận biết khuôn mặt và cho kết quả tốt trong các trường hợp ảnh hưởng tác động từ bên ngoài Nhược điểm là thuật toán phức tạp do việc xác định mối quan hệ giữa các khuôn mặt và các ảnh kích thước nhỏ thì các đặc tính sẽ khó phân biệt do đó khó tính toán được các đặc trưng trên khuôn mặt
Còn với phương pháp nhận dạng dựa trên toàn diện khuôn mặt, có nghĩa chúng ta sẽ không đi xét từng thành phần đặc trưng trên khuôn mặt mà sẽ xem khuôn mặt là một chiều không gian cụ thể và tìm đặc điểm đặc trưng và những đặc điểm chính trên không gian đó Hai phương pháp thường được sử dụng trong hướng tiếp cận này là:
PCA (Principle Components Analysis) là phương pháp trích xuất đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mang lại hiểu quả khá tốt Hệ thống ổng định và có thể thích nghi cao đối với dữ liệu đầu vào thay đổi nhiều
Trang 8 LDA (Linear Discriminant Analysis) là phương pháp nhận diện dựa trên một phép chiếu tuyến tính từ không gian hình ảnh vào một chiều không gian thấp hơn bằng cách tối đa giữa các lớp tán xạ và giảm nhiều phân tán trong lớp.
Và trong bài toán này để nhận dạng không thể không nhắc tới thư viện OpenCV (Open Source Computer Vision Library) Một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh và máy học, và các tính năng tăng tắc GPU trong hoạt động thời gian thực Được giới thiệu vào tháng 01 năm 1999 và được cho ra mắt phiên bản đầu tiên vào năm 2006 Thư viện OpenCV chứa hàng ngàn thuật toán tối ưu hóa và hơn 500 hàm được viết bằng ngôn ngữ C/C++ tương thích với nhiều hệ điều hành như Windows, Android, Linux, … Các thuật toán có khả năng dùng để sử dụng để nhận dạng khuôn mặt, xe hơi tự lái, phát hiện khuôn mặt, di chuyển theo khuôn mặt khi phát hiện theo thời gian thực
Nhưng với hệ thống nhận dạng khuôn mặt này đều được thiết kế và sử dụng trên các máy tính có cấu hình cao và rất tốn kém Vì thế nếu thiết kế một hệ thống nhận dạng thì một chiếc máy tính như vậy quá tốn kém Nhưng hiện nay với sự phát triển của hệ thống nhúng (Embedded system) một hệ thống tích hợp
cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hóa điều khiển và truyền tin
Và chính vì thế trong đề tài luận văn này tôi muốn ứng dụng ARDUINO
Một bo mạch điện tử nhỏ để thực hiện đề tài luận văn “Thiết kế mạch chống trộm”
1.2 Giới thiệu về xử lý ảnh
1.1.1 Một số khái niệm cơ bản
Xử lý ảnh là một trong những mảng quan trọng nhất trong vấn đề kỹ thuật thị giác máy tính và bước đầu cho nhiều nghiên cứu phát triển trong lĩnh vực nhận dạng Nhiệm vụ cơ bản của quá trình xử lý ảnh là nâng cao chất lượng hình ảnh
và xử lý số liệu để cung cấp cho các quá trình nhận dạng
Trang 9 Quy trình bắt đầu từ thu nhận ảnh nguồn (từ thiết bị thu nhận ảnh dạng số hoặc tương tự) gửi đến máy tính Và dữ liệu ảnh sẽ được lưu trừ ở định dạng phù hợp trong qua trình xử lý.
Quy trình xử lý nhận dạng ảnh được xem là quá trình thao tác ảnh đầu vào nhằm đạt kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh
có thể là một hình ảnh đã được xử lý hoặc một kết luận
Lược đồ xám của ảnh (Histogram) có các mức xám trong khoảng [0,L-1]
là một hàm rời rạc p(rk) = nk/n Trong đó nk là số pixel có mức xám thứ rk, n là tổng số pixel trong ảnh và k=0,1,2…L-1 Do đó P(rk) cho một xác suất xảy ra mức xám rk Vẽ hàm này với tất cả các giá trị của k sẽ biểu diễn khái quát sự xuất hiện các mức xám của một ảnh Và chúng ta có thể thể hiện lược đồ mức
Ảnh Qua Xử Lý
Kết Luận
Trang 10xám của ảnh thông qua tần suất xuất hiện mỗi mức xam qua hệ tọa độ vuông góc xOy Trong đó, trục hoành biểu diễn số mức xám từ 0 đến N (số bit của ảnh xám) Trục tung biểu diễn số pixel của mỗi mức xám.
1.3 Hệ thống nhận dạng khuôn mặt
1.1.3 Bài toán nhận dạng khuôn mặt
Bài toán về hệ thống nhận dạng mặt người là một hệ thống nhận vào là một hình ảnh hoặc một chuỗi các ảnh (video) Qua đó xử lý và tính toán để xác định được vị trí khuôn mặt người trong ảnh (nếu có) và xác định người nào trong số những người đã được đào tạo hoặc trả về kết quả là người lạ
Hình 1.2 Hệ thống nhận dạng khuôn mặt
1.1.4 Những tác động trong việc nhận dạng
Điều kiện chụp ảnh: Ảnh được chụp khi có các điều kiện khác nhau có
thể gây ảnh hưởng đến chất lượng ảnh như : ánh sáng, chất lượng camera,…
Sự che khuất: Khuôn mặt có thể đã bị che khuất bỡi các vật thể khác hoặc
camera bị dính bẩn,…
Tư thế chụp, góc chụp: Ảnh chụp khuôn mặt có thể bị thay đổi do góc
chụp giữa camera và khuôn mặt Khuôn mặt đang nhìn thẳng nhưng góc chụp của máy ảnh lại lệch so với hướng nhìn hoặc nhiều trường hợp khác do đó tạo
Trang 11 Thiếu một số thành phần khuôn mặt: Các đặc trưng như râu, mắt kính, …
có thể xuất hiện hoặc không
Sự biểu cảm của khuôn mặt: Biểu cảm của con người có thể làm ảnh
hưởng đáng kể lên các thông số của khuôn mặt…
Nền ảnh: Nền ảnh phức tạp là một trong những khó khăn nhất trong bài
toán nhận diện, vì khuôn mặt người sẽ dễ bị nhầm lẫn với khung cảnh phía sau
và sẽ ảnh hưởng đến quá trình phân tích
Màu da: Màu sắc của da mặt quá tối hoặc quá sáng cũng có thể gây khó
khăn trong việc nhận dạng
Tuổi tác: Nhận dạng khuôn mặt theo thời gian cũng là một vấn đề cần
tính toán trong vấn đề nhận dạng
1.1.5 Xây dựng hệ thống nhận dạng
Một hệ thống nhận dạng khuôn mặt có thể được xây dựng qua rất nhiều quá trình khác nhau và phức tạp, nhưng bài toán này cũng có thể khái quát chung thành bốn bước sau:
1 Phát hiện khuôn mặt (Face Detection)
2 Phân đoạn khuôn mặt (Face Alignment)
3 Trích xuất đặc trưng (Feature Extration)
4 Nhận dạng (Recognition)
Trang 12Hình 1.3 Quá trình nhận dạng khuôn mặt
Phát hiện khuôn mặt: Là dò tìm, xác định vị trí của khuôn mặt xuất hiện
trong frame video
Phân đoạn khuôn mặt: là tạo một khung vuông để xác định vị trí mắt,
mũi, miệng và các bộ phận khác để chuyển kết quả cho bước trích xuất khuôn mặt
Trích xuất đặc trưng: Bằng một phương pháp trích xuất chọn đặc điểm
nào đó (Haar-like, Local Binary Pattern – LBP,…) sẽ được dùng để trích xuất đặc trưng thông tin về khuôn mặt xuất hiện trên camera Xuất ra kết quả mỗi ảnh dưới dạng vector đặc trưng
Phân lớp khuôn mặt: Sử dụng vector đặc trưng như một đầu vào cho mô
hình đã được huấn luyện trước Xuất ra kết quả danh tính của khuôn mặt
Bên cạnh những bước chính nêu trên, chúng ta còn có thể sử dụng thêm một
số bước như : tiền xử lý, hậu xử lý trong quá trình xử lý ảnh để làm tăng độ chính xác cho hệ thống Cụ thể như khi đọc ảnh từ frame video, chúng ta có thể
sử dụng bước tiền xử lý để căn chỉnh hình ảnh và cân chỉnh ánh sáng
Và dữ liệu cho một hệ thống nhận dạng khuôn mặt được chia làm ba quá trình như sau:
Cài đặt huấn luyện hay tập huấn luyện (Training Set): là gồm nhiều ảnh được dùng để huấn luyện (learning), trong tập này được dùng để sinh ra một không gian con hoặc thư mục con (projection subspace) và nó là một ma trận Phương pháp hay được sử dụng nhất là PCA (Princial Component Analysis), LDA (Linear Discriminant), WPCA (Whitened PCA), KPCA (Kernal PCA) Tập đào tạo gồm các ảnh đã biết danh tính được chiếu vào không gian con ở trong bước training Bước training nhằm hai mục đích chính là : giảm số chiều
Trang 13khá lớn (Vài nghìn đến vài trăm nghìn) mà nếu chúng ta để nguyên thì việc tính toán sẽ sinh ra rất khó khăn, mục đích thứ hai là làm tăng tính phân biệt giữ các ảnh khác lớp và cũng có thể làm giản tính phân biệt giữa các ảnh thuộc về một lớp.
Sau khi chiếu tập huấn luyện vào không gian con, hệ thống sẽ tự lưu lại kết quả là một ma trận với mỗi một cột của ma trận là một vector tương ứng với một ảnh (danh tính đã được xác định) để thực hiện nhận dạng Nhận dạng được thực hiện với tập probe, sau khi tiền xử lý đã hoàn thành, mỗi một ảnh sẽ được
áp dụng phương pháp trích xuất đặc trưng và được chiếu vào không gian con
Tiếp đến việc phân lớp sẽ dựa trên phương pháp K-NN, định danh của một ảnh cần xác định sẽ được gán định danh của ảnh có khoảng cách gần với nó nhất
Trang 14CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
1.4 Lý thuyết phát hiện khuôn mặt người bằng đặc trưng Haar wavelet-like 1.1.6 Tiếp cận Haar wavelet-like
Đặc trưng Haar wavelet-like được giới thiệu bởi Michael Jones và Paul Viola
là một trong những đặc trưng ảnh số được sử dụng trong nhận dạng đối tượng, khuôn mặt Những đặc trưng trong Haar wavelet-like là một sự lựa chọn phù hợp cho mục đích phát hiện nhanh chóng và có độ chính xác cao trong thời gian thực
Trong hầu hết các bài toán nhận dạng đều làm việc trên cường độ sáng và tối của ảnh, làm việc trên từng pixel trong ảnh, vì vậy nó đòi hỏi người sử dụng phải làm việc với mức độ tính toán lớn Và để giải quyết vấn đề của bài toán này thì sử dụng những đặc trưng cơ bản của Haar wavelet-like với việc dùng những hình chữ nhật lân cận tại một địa điểm cụ thể trong tập traning để tìm đối tượng Tính năng thường hay sử dụng của đặc trưng này là để dò tìm đối tượng
và là tập hợp của các hình chữ nhật liền kề và xác định vị trí của các hình chữ nhật liên quan nhằm mục đích bao quanh đối tượng cần tìm
Đặc trưng Haar wavelet-like cũng là sự kết hợp của hai hay ba hình chữ nhật
“trắng” hoặc “đen”
Hình 2.1 Đặc trưng Haar wavelet-like cơ bản
Và để áp dụng các đặc trung này vào việc xác định bài toán nhận dạng khuôn mặt này thì bốn đặc trung cơ bản sẽ được mở rộng ra và chia làm ba tập đặc
Trang 15 Đặc trưng cạnh (edge features)
Hình 2.2 Đặc trưng cạnh
Đặc trưng đường (line features)
Hình 2.3 Đặc trưng đường
Đặc trưng xung quanh tâm (center suround features)
Hình 2.4 Đặc trưng xung quanh tâmĐặc trưng này cũng phản ánh sự tương phản giữa các mối liên hệ của đối tượng Những đối tượng cần xác định và phát hiện có thể được xác định bởi một
bộ đặc trung này thông qua những liên hệ không gian giữa chúng
Trang 16Hình 2.5 Quá trình trích xuất đặc trưng Haar wavelet-like
1.1.7 Trích xuất đặc trưng Haar wavelet-like
Đặc trưng Haar-Like sẽ được biễu diễn các mỗi liên hệ giữa các bộ phận của đối tượng, điều mà chính bản thân từng pixel không diễn đạt được và dựa trên việc co giản của khung cửa sổ tìm kiếm các đặc trung Haar-Like Và chúng
ta có thể tính sự chênh lệch giữa tổng các pixel của các vùng trắng và đen bằng công thức sau:
f(x)=∑vùng đen(pixel)-∑vùng trắng(pixel)Dựa vào công thức này chúng ta sẽ thấy rằng với tổng các pixel trên ảnh
sẽ cho ta thấy được các giá trị của đặc trưng này Nhưng vấn đề ở đây là để tính toán được những giá trị của các đặc trưng này thì đòi hỏi một khối lượng tính toán rất lớn và dẫn đến không thể đáp ứng được cho các ứng dụng thời gian thực tế Do đó Michel Jones và Paul Viola đề xuất ra một khái niệm mới gọi là
“tích phân ảnh” giúp tính toán nhanh cho các đặc trưng cơ bản của Haar-Like
1.5 Nhận dạng khuôn mặt người sử dụng LBPH Face Recognizer
LBPH Face Recognizer là phương pháp áp dụng trực tiếp các phép phân tích của các thành phần chính PCA (Principal Component Analysis) và nó được sử dụng rất nhiều vào quá trình phát hiện và nhận dạng khuôn mặt Ưu điểm của phương pháp này là biểu diễn được toàn bộ ảnh và có độ sắc nét tốt và giảm hạn chế về ánh sáng,…
1.1.8 Nhận dạng bằng thuật toán PCA
Thuật toán PCA (Principal Component Analysis) là một thuật toán để tạo ra một ảnh mới ban đầu Và ảnh mới này sẽ có kích thước nhỏ hơn rất nhiều so với ảnh ban đầu nhưng vẫn mang những đặc trưng cơ bản nhất của một khuôn mặt người cần nhận dạng PCA không cần phải quan tâm đến việc phải truy tìm cụ
Trang 17thể các đặc điểm trên khuôn mặt như mắt, mũi, miệng ,… PCA sẽ tự có tất cả những chi tiết đó thể hiện trong ảnh.
Mục tiêu của thuật toán PCA là ảnh mới được tạo phải có kích thước nhỏ nhất và chứa nhiều nhất các đặc trưng của ảnh khuôn mặt đầu vào Theo lý thuyết thì PCA tìm ra một không gian mới chứa những tập hợp véc tơ trong một không gian cho trước
Ưu điểm của thuật toán PCA:
PCA có tính mở và có thể kết hợp được với các phương pháp khác nhau
để mang lại hiểu quả cao
Khối lượng xử lý, tính toán không nhiều
Thuật toán thực hiện tốt với các ảnh đầu vào có độ phân giải (pixel) cao bỡi vì PCA sẽ thu nhỏ ảnh đầu vào thành một ảnh mới có kích thước nhỏ hơn
PCA có thể xác định được các đặc tính tiêu biểu cho một khuôn mặt mà không cần phải xác định các thành phần và mối liên hệ giữa chúng
Nhược điểm của thuật toán PCA:
PCA rất dễ bị nhiễu
Còn phụ thuộc vào ánh sáng
Ảnh phân bố chưa đều và cũng không phải lúc nào cũng mang lại hiệu quả nhận dạng tốt
1.1.9 Nhận dạng bằng thuật toán LDA
Và cũng tương tự như PCA, LDA (Linear Discriminants Analysis) cũng là một phương pháp nhận dạng đang phát triển hiện nay
Trang 18Mục đích của thuật toán LDA là tìm ra một không gian mới có thể để tách rời các nhóm ảnh với nhau Không gian đó được tạo bởi các vec-tơ không nhất thiết phải trực giao từng đôi một.
Trong không gian được tạo ra từ LDA các ảnh trong cùng một nhóm sẽ gần nhau, và các nhóm khác nhau thì sẽ cách xa nhau LDA khắc phục được nhược điểm của PCA đó là ảnh lớn nhất thì mang thông tin nhận dạng cao nhất
Ưu điểm của thuật toán LDA:
Thuật toán LDA mang hầu hết các ưu điểm của PCA và đồng thời khắc phục được nhược điểm cơ bản của PCA
Nhược điểm của thuật toán LDA:
Thuật toán LDA đòi hỏi một khối lượng tính toán rất lớn Và hiện nay vẫn chưa có cách tính nhanh cho phương pháp này
1.1.10 Ứng dụng của thuật toán PCA trong bài toán
Thuật toán PCA nhận dạng ảnh dựa trên những nét tổng thể của khuôn mặt vì thế chúng ta có thể áp dụng thuật toán này để thực hiện công việc tìm một khuôn mặt giống với khuôn mặt được đào tạo trước với một kích thước nhỏ hơn
và những nét đặc trưng chỉ có trên khuôn mặt đó
Đặc trưng của thuật toán PCA: Mục tiêu của thuật toán này là giảm số
chiều của một tập hợp những vec-tơ sao cho vẫn đảm bảo được tối đa thông tin quan trọng nhất Thuật toán này sẽ giữ lại K thuộc tích (Feature extraction) từ N thuộc tính ban đầu (Feature selection) và K<N Và mục tiêu của phương pháp
PCA đó là phép biến đổi tuyến tính T thõa mãn.
Công thức: y= T.x
Trang 19Hình 2.6 Phương pháp thuật toán PCA
Cách đi tìm T: Gọi là một vec-tơ trung bình của tất cả các vec-tơ x trong
tập mẫu gồm M ảnh Và gọi ma trận hiệp phương sai của các phẩn từ x trong tập mẫu C
C được tính theo công thức:
Ma trận hiệp phương sai của tập hợp m biến ngẫu nhiên là một ma trận vuông hạng (m x m), và trong đó các phần từ nằm trên một đường chéo là phương sai tương ứng của biến và các phần từ còn lại trên ma trận là các phương sai của từng đôi một hai biến ngẫu nhiên khác nhau trong tập hợp …
Và nếu T là một ma trận m hàng thì mỗi hàng là một vec-tơ riêng của C và cũng đồng thời m vec-tơ riêng này phải ứng với m giá trị riêng lớn nhất Và khi
đó T chính là phép biến đổi thỏa mãn giá trị nhỏ nhất Vì vậy, phương pháp sử
dụng thuật toán PCA quy về việc đi tìm giá trị riêng và vec-tơ riêng của ma trận hiệp phương sai C và chỉ giữ lại K vec-tơ riêng ứng với K trị riêng lớn nhất để làm cơ sở cho không gian mới này
1.1.11 Tính toán và tìm EigenFaces
Ta coi mỗi bức ảnh là một vec-tơ không gian NxP chiều và bây giờ mỗi khuôn mặt là một vec-tơ thì chúng ta thấy những vec-tơ này không phân bố ngẫu nhiên trong không gian ảnh mà phân bố theo một quy luật nào đó Và ta
Trang 20cũng có thể nói những vec-tơ này nằm trong một không gian chứa những khuôn mặt Và từ những vec-tơ trong tập huấn luyện thì ta sẽ tìm ra những vec-tơ mang những nét đặc trưng về khuôn mặt.
Các bước để tính toán và tìm EigenFaces:
Bước 1: Sử dụng các ảnh khuôn mặt I-1, I-2,…,I-n (tập các khuôn mặt huấn luyện) với khuôn mặt phải chính diện và tất cả ảnh phải cùng kích thước
Hình 2.7 Ví dụ về một tập huấn luyện
Bước 2: Biễu diễn mỗi ảnh I-1,I-2,…,I-n thành các vec-tơ T-1,T-2,…,T-n tương ứng
Bước 3: Tính vec-tơ khuôn mặt trung bình theo công thức:
Bước 4: Tính sai số giữa vec-tơ ảnh ban đầu và vec-tơ ảnh trung bình theo công thức :
Bước 5: Tính ma trận hiệp phương sai C theo công thức:
Và ma trận C có kích thước (NxP)x(NxP) Trong đó:
Trang 21Ma trận A có kích thước (NxP)xM
Bước 6: Tính toán các vec-tơ riêng của ma trận vuông C =(1/M).A.Aᵀ Nhận thấy ma trận trên có kích thước (NxP)x(NxP), và do kích thước ma trận này quá lớn nên chúng ta không thể tìm vec-tơ riêng và trị riêng tương ứng một cách trực tiếp Thay vào đó chúng ta sẽ tìm vec-tơ riêng của ma trận A.Aᵀ có kích thước MxM
Bước 7: Chuẩn hóa các vec-tơ của ma trận C để thu được một cơ sở trực chuẩn của không gian khuôn mặt Chỉ giữ lại K vec-tơ riêng trong số M vec-tơ nói trên (ứng với K giá trị riêng lớn nhất) và tất nhiên K<<N²
Có cách để xác định K :
Sắp xếp theo thứ tự dãy giảm dần các eigenvalues tìm được Theo dõi sự biến thiên của dãy trên và khi không còn biến thiên hoặc gần bằng 0 thì lúc đó
ta đã chọn đủ K
Trang 221.1.12 Bài toán nhận dạng khuôn mặt bằng các EigenFaces
Ta cho một hình ảnh khuôn mặt A chưa biết là ai (khuôn mặt phải chính diện
và cùng kích thước) Giai đoạn nhận dạng này hoàn toàn giống hệt với giai đoạn đầu biểu diễn các khuôn mặt trong tập huấn luyện Các bước thực hiện lần lượt như sau:
Bước 1: Chúng ta chuẩn hóa A có công thức :
Bước 2: Chúng ta biểu diễn thành
Bước 3: Tính khoảng cách từ ảnh cần nhận dạng tới các ảnh trong tập huấn luyện Tức là đi tìm khuôn mặt có khoảng cách gần nhất với khuôn mặt cần nhận dạng
Bước 4: Nếu khuôn mặt cần xác định đủ gần với khuôn mặt mẫu thì khi
đó ta kết luật đó chính là khuôn mặt của người cần nhận dạng
Trang 23CHƯƠNG 3 SƠ LƯỢC VỀ CÁC LINH KIỆN TRONG ĐỀ TÀI
1.6 Giới thiệu mạch Arduino NANO
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau
Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động
Arduino NANO là một người anh em cùng với aduino uno R3, nhưng nhỏ hơn và tiện lợi ngang với arduino UNO R3 Kích thước của arduino NANO là 1.85cm x 4.3cm, tuy nhỏ hơn, lại rẻ hơn nhưng thông số và khả năng ứng dụng không kém gì với arduino R3
Trang 24Hình 3.1 Arduino NANO
Hình 3.2 Sơ đồ chân Arduino NANO
Số chân Digital I/O 14 (6 chân PWM)
Số chân Analog 8 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 40 mA
Trang 25Bộ nhớ flash 32 KB (ATmega328) với 2KB dùng
bởi bootloader
Bảng 3.1 Các thông số của Arduino NANO
1.1.13 Cổng kết nối với Arduino Nano
Khác với Arduino Nano sử dụng cổng USB Type B, Nano lại sử dụng một cổng nhỏ hơn có tên là mini USB Vì sử dụng cổng này nên kích thước board (vê chiều cao) cũng giảm đi khá nhiều, ngoài ra bạn có thể lập trình thẳng trực tiếp cho Nano từ máy tính - điều này tạo nhiều điện thuận lợi cho newbie
1.1.14 Lập trình cho Arduino Nano
Cũng tương tự như bên Arduino Uno R3, Arduino NANO sử dụng chương trình Arduino IDE để lập trình, và ngôn ngữ lập trình cho Arduino cũng tên là Arduino (được xây dựng trên ngôn ngữ C) Tuy nhiên, nếu muốn lập trình cho Arduino Nano, ta cần phải thực hiện một số thao tác trên máy tính Sau đây, là các bước để có thể lập trình cho Arduino NANO
1 Đầu tiên, ta cần cài Driver của Arduino NANO và tải về bản Arduino IDE mới nhất cho máy tính, các bước cài đặt hoàn toàn tương tự như Arduino UNO R3, bạn có thể tham khảo tại đây Sau khi cài đặt, bạn sẽ thấy một thông báo dạng "Cổng COMx đã được cài đặt thành công"
2 Sau đó, ta cài đặt lại loại board và cổng Serial mới như hình sau
Trang 26Hình 3.3 Cài đặt board cho lập trình với Arduino NANO
Hình 3.4Cài đặt lại cổng Serial cho lập trình với Arduino NANO
Trang 271.7 Động cơ RC Servo 9G
Hình 3.5 Động cơ RC Servo MG 996R
RC servo 9G có kích thước nhỏ gọn và là loại hay được sử dụng để làm các mô hình hoặc cơ cấu kéo không cần lực nặng Động cơ có tốc độ phản ứng nhanh, các bánh răng được làm bằng nhựa nên hạn chế nâng tải nặng Động cơ tích hợp sẵn Driver điều khiển bên trong nên nó có thể dễ dàng điều khiển góc quay bằng phương pháp độ rộng xung PWM
Trang 28 Dây màu đỏ nối với nguồn 5V DC, màu nâu là dây nối Mass, màu cam là dây điều khiển bằng xung PWM.
Tín hiệu PWM 20ms (50Hz), độ rộng xung điều khiển từ 1-2ms
Hình 3.6 Chiều quay của ServoCông thức tính góc quay: dc= góc quay / tín hiệu pwm + 2.5
Tôi sử dụng mạch này cấp nguồn chuẩn cho các linh kiện khác
Trang 29Hình 3.7 Mạch giảm áp LM2596
Thông số kỹ thuật
Module nguồn không sử dụng cách ly
Nguồn đầu vào từ 4V - 35V
Nguồn đầu ra: 1V - 30V
Dòng ra Max: 3A
Kích thước mạch: 53mm x 26mm
Đầu vào: INPUT +,
INPUT-Đầu ra: OUTPUT+,
Trang 30OUTPUT-Hình 3.8 Ngõ vào và ngõ ra của module LM2596
1.9 Bàn phím
Hình 3.9 Bàn phím ma trận
Sử dụng bàn phím ma trận để nhập mật khẩu phòng trường hợp camera của mạch gặp sự cố
Trang 31XÂY DỰNG MÔ HÌNH VÀ PHẦN CỨNG
1.10 Kết nối với thiết bị ngoại vi
Sơ đồ hệ thống kết nối với thiết bị ngoại vi
Hình 4.1 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 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.
Khối Động
Cơ Servo
Khối Hiển Thị Và Báo Động
Khối Nguồn
Trang 32Hình 4.2 Sơ đồ kết nối từ Arduino NANO đến các linh kiện khác Chân D11 nối với Servo.
Chân D10 nối với Buzzer
Chân D6 nối với nút nhấn
Chân A0, A1, A2, A3, D5, D4, D3, D2 nối với các chân của bàn phím ma trận
Chân A4, A5 nối với màn hình LCD
Hình 4.3 Sơ đồ kết nối giữa Arduino NANO và màn hình LCD
Trang 33Hình 4.4 Sơ đồ kết nối giữa Arduino NANO và động cơ servo
Trang 34Hình 4.6 Sơ đồ kết nối hệ thống thiết bị ngoại vi
Hình 4.7 Sơ đồ kết nối khối nguồn
1.12 Mô hình thực tế
Mô hình được làm bằng nhựa kết nối với laptop, camera và các thiết bị ngoại vi
Trang 35Hình 4.8 Mô hình thực tế
CHƯƠNG 5.
Trang 36No
No
No
Trang 37Giải thích lưu dồ :
Khối Begin : là khối có chức năng khởi tạo ban đầu cho chương trình ví
dụ như chèn thêm các thư viện cần thiết, khởi tạo camera, khởi tạo Bluetooth,…
Khối Image-Pre-Processing : là khối có chức năng tiền xử lý ảnh, ảnh
được đưa vào khối này để chuyển đồi ảnh màu sang ảnh xám vì hệ thống chỉ làm việc được với ảnh xám, chuẩn hóa ánh sáng để tăng khả năng phát hiện cũng như nhận dạng hệ thống
Khối Face Detection : Hình ảnh sau khi được xử lý xong sẽ được đưa
vào khối này Và khối này sẽ có chức năng phát hiện khuôn mặt và tách khuôn mặt khỏi ảnh, có nghĩa là nếu đưa vào khối này một ảnh bất kỳ và nó sẽ phát hiện được một khuôn mặt chính diện và tách khuôn mặt đó ra đưa khỏi ảnh và
đưa nó vào khối Face Recognition.
Khối Face Recognition: có chức năng để nhận dạng xem khuôn mặt đó
đã biết hay chưa Nếu nhận dạng được đúng thì khối này sẽ gửi tín hiệu mở khóa và kích xung PWM để động cơ Servo hoạt động
1.13 Xây dựng chương trình phát hiện khuôn mặt
Giao diện chính của hệ thống nhận diện khuôn mặt