Tải bản đầy đủ (.doc) (74 trang)

Thiết kế mạch chống trộm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.65 MB, 74 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÀ RỊA VŨNG TÀU
KHOA CÔNG NGHỆ KỸ THUẬT – NÔNG NGHIỆP CÔNG NGHỆ CAO

ĐỒ ÁN TỐT NGHIỆP
Đề tài:

THIẾT KẾ MẠCH CHỐNG TRỘM

Họ và tên GVHD

: ThS. Phan Thanh Hoàng Anh

Họ và tên SVTH

: Dương Chí Hùng

Mã Số Sinh Viên

: 16031192

Chuyên Ngành

: Điện Công Nghiệp Và Dân Dụng

Lớp

: DH16DC

Vũng Tàu, tháng 05 năm 2020



MỤC LỤC
CHƯƠNG 1.GIỚI THIỆU VỀ ĐỀ TÀI LUẬN VĂN

1

1.1LỜI MỞ ĐẦU

1

1.2GIỚI THIỆU VỀ XỬ LÝ ẢNH

3

1.2.1Một số khái niệm cơ bản

3

1.2.2Các hình thái của ảnh

4

1.3HỆ THỐNG NHẬN DẠNG KHUÔN MẶT

5

1.3.1Bài toán nhận dạng khuôn mặt

5


1.3.2Những tác động trong việc nhận dạng

5

1.3.3Xây dựng hệ thống nhận dạng

6

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.1.1Tiếp cận Haar wavelet-like

9

2.1.2Trích xuất đặc trưng Haar wavelet-like

11

2.2NHẬN DẠNG KHUÔN MẶT NGƯỜI SỬ DỤNG LBPH FACE RECOGNIZER

11

2.2.1Nhận dạng bằng thuật toán PCA


12

2.2.2Nhận dạng bằng thuật toán LDA

13

2.2.3Ứng dụng của thuật toán PCA trong bài toán

13

2.2.4Tính toán và tìm EigenFaces

15

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

3.1GIỚI THIỆU MẠCH ARDUINO NANO

18

3.1.1Cổng kết nối với Arduino Nano

20


3.1.2Lập trình cho Arduino Nano

20

3.2ĐỘNG CƠ RC SERVO

22

3.3MODULE LM2596

23

3.4BÀN PHÍM

25

CHƯƠNG 4.XÂY DỰNG MÔ HÌNH VÀ PHẦN CỨNG

26

4.1KẾT NỐI VỚI THIẾT BỊ NGOẠI VI

26

4.1.1Arduino NANO

26

4.2LÀM MẠCH


28

4.3MÔ HÌNH THỰC TẾ

29

CHƯƠNG 5.TẠO CHƯƠNG TRÌNH NHẬN DẠNG

31

5.1XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN KHUÔN MẶT

32

CHƯƠNG 6.KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

40


6.1KẾT LUẬN

40

6.1.1Kết luận 1

40

6.1.2Kết luận 2

40


6.1.3Kết luận 3

40

6.2HƯỚNG PHÁT TRIỂN

40

TÀI LIỆU THAM KHẢO

41


LỜI CẢM ƠN
Tô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



GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

CHƯƠNG 1. TỔNG QUAN

1.1Lờ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
pháp kiểm soát an ninh phù hợp với từng môi trường sử dụng.

6



GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Và 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.

7


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

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.2Giớ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.

8


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

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.
Ảnh Qua Xử Lý
Ảnh

Xử Lý
Kết Luận
Hình 1.1 Quá trình xử lý ảnh

Ảnh có thể được coi là một tập hợp các điểm ảnh và mỗi điểm ảnh được
xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào
đó của đối tượng trong không gian và nó có thể xem như một hàm n biến. Vì
vậy, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.

1.1.2 Các hình thái của ảnh
Chuyển ảnh màu thành ảnh xám: Đơn vị tế bào của ảnh số là pixel. Tùy
theo mỗi định dạng là ảnh màu hay ảnh xám mà từng pixel có thông số khác
nhau. Đối với ảnh màu từng pixel sẽ mang thông tin của ba màu cơ bản tạo ra
bản màu là Đỏ, Xanh lá, Xanh biển. Trong mỗi một pixel của ảnh màu thì ba
màu cơ bản được bố trí sát nhau và có cường độ sáng khác nhau.
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

9


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

xá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.3Hệ 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
nhiều khó khăn rất lớn cho bài toán nhận diện khuôn mặt.

10


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

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)

11


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Hì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
(Dimension reduction) của các vector đặc trưng vì vector này thường có độ dài

12


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

khá 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.

13


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
1.4Lý 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
trưng như sau :

14


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Đặ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.

15


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Hì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ụ

16


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

thể 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.

17


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Mụ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à KPCA đó là phép biến đổi tuyến tính T thõa mãn.
Công thức: y= T.x

18


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Hì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

19


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

cũ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 đó:


20


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Ma 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<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.

21


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

1.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.

22


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

CHƯƠNG 3. SƠ LƯỢC VỀ CÁC LINH KIỆN TRONG ĐỀ TÀI
1.6Giớ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.

23


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng

Hình 3.1 Arduino NANO

Hình 3.2 Sơ đồ chân Arduino NANO
Vi điều khiển

ATmega328 (họ 8bit)

Điện áp hoạt động

5V–DC

Tần số hoạt động

16 MHz

Dòng tiêu thụ

30mA

Điện áp vào khuyên dùng


7-12V – DC

Điện áp vào giới hạn

6-20V – DC

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

Dòng ra tối đa (5V)

500 mA

Dòng ra tối đa (3.3V)

50 mA

24


GVHD: ThS. Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng


Bộ nhớ flash

32 KB (ATmega328) với 2KB dùng
bởi bootloader

SRAM

2 KB (ATmega328)

EEPROM

1 KB (ATmega328)

Kích thước

1.85cm x 4.3cm

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.

25


×