Thong tin dé tai 'Tên của đề tài: NHẬN DIỆN KHUÔN MAT UNG DING TRONG BAO MAT VA CHAM CONG DUNG KIT RASPBERRY PI Mục đích của để tài: sử dung kit Raspberry Pi xây dựng chương trình phát
Trang 1BO GIAO DUC VA DAO TAO TRUONG DAI HOC SU’ PHAM KY THUAT
THÀNH PHÓ HÒ CHÍ MINH
HGMUIIE
ĐỎ ÁN TÓT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN - ĐIỆN TỬ
NHẬN DIỆN KHUÔN MẶT ỨNG DỤNG TRONG BẢO MẬT VÀ CHÁM CÔNG
DUNG KIT RASPBERRY
GVHD: TRUONG NGOC ANH SVTH: HUYNH DANG DUY
Trang 2KHOA DIEN DIEN TU
BO MON DIEN TU CONG NGHIEP
ae sae
DO AN TOT NGHIEP
NGANLL SU PHAM KY THUAT
DIEN DIEN TU’
NHÀẬN DIỆN KHUÔN MẶT UNG DUNG TRONG BAO MAT VA CHAM CÔNG
DUNG KIT RASPBERRY PI
GVHD : ThS TRƯƠNG NGỌC ANH SVTH : HUỲNH ĐẶNG DUY
Trang 3PHIẾU GIAO NHIỆM VỤ ĐỎ ÁN TÓT NGHIỆP
1 Thông tin sinh viên
Họ và tên: Huỳnh Đặng Duy MSSV: 09901021
Tel.: 0938877476 Email; dangduy201291@gmail.com
Ho va tén: Hoang Ngoc Lam MSSV: 09901036
Tel.: 01649777127 Email: ngoclam201090spkt@gmail.com
2 Thong tin dé tai
'Tên của đề tài: NHẬN DIỆN KHUÔN MAT UNG DING TRONG BAO MAT VA CHAM CONG DUNG KIT RASPBERRY PI
Mục đích của để tài: sử dung kit Raspberry Pi xây dựng chương trình phát hiện khudn mat bang edo Wo tung Haar Cascade và áp dụng thuật toán, Fislierfaces trong OpenCV kết hụp phương pháp Prneipal Components Analysis (PCA) dé nhận dạng khuôn mặt, dit liga Khuda mat thu thập được lưu vào raspberry pi, thong tin về nhần viên chẩm công được lưu vào hé co sé dit ligu MySQL
Đồ án tắt nghiệp được thực hiện tại: Bộ môn Điện Tử Công Nghiệp, Khoa
Điện - Diện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh
Thời gian thực hiện: Từ ngày 11/10/2014 đến 03/01/2015
3 Các nhiệm vụ cụ thể của để tài
- Khao sat kit Raspberry pi
-_ Sử dụng được các thuật toán phát hiện và nhận dạng khuôn mặt trong thư
viện OpenCV,
- _ Phát hiện được khuôn mặt từ camera
~_ Tạo giao diện tiến hành lấy mẫu nhân viên
~_ Lưu từng khuôn mặt được lấy mẫu
~_ Phân biệt được khuôn mặt nhân viên để chấm công
-_ Lưu thông tin nhân viên sau khi lấy mẫu và chấm công vào cơ sở dữ liệu Mysql.
Trang 44 Lời cam đoan của sinh viên
Chúng tôi - Huỳnh Đặng Duy và Hoàng Ngọc Lâm cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi đưới sự hướng dẫn của thạc sỹ Trương Ngọc Anh
Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công trình nào khác
Tp.HCM, ngày thang 1 năm 2015
SV thực hiện đồ án
(Ký vit ghi rõ họ tên)
Huynh Dang Duy Hoang Nggc Lam
Giáo viên hưởng dẫn xác nhân về mức độ hoàn thành và cho phép được 22 vé:
Tp.HCM, ngày thang nấm 2015
Xác nhận của Bộ Môn Giáo viên hướng dẫn
(Ký, ghỉ rõ họ tên và học hâm - học 312
Trang 5BO GIAO DYC & DAO TAO CONG HOA XÃ HỘI CHỦ NGHĨA VIỆT NAM
'THÀNH PHÓ HỒ CHÍ MINH
KHOA ĐIỆN ĐIỆN TỬ
BO MON ĐIÊN TỬ CÔNG NGHIỆP
PHIẾU NHẬN XÉT ĐỒ ÁN TÓT NGHIỆP
(Dành cho giảng viên hướng dẫn)
'Tên để tài;
Cơ quan công tác
Điện thoại liên hệ:
PHAN NHAN XET
1 Nhận xét về tình thần và thái độ làm việc của sinh viên:
2 Nhận xét về kết quả thực hiện của đồ án:
2.1 Ưu & nhược điểm:
Trang 62.2 Điểm mới/cải thiện/phát triển của đồ án:
2.3 Những tổn tại (yêu có):
2.4 Cầu trác đồ án có theo mẫu của bộ môn không ?
(Đánh giá ghi chú, các mục, hình vẽ, phương trình, lưu đồ, sơ đồ khối)
co O Khéng C1
2.3 Đề án có đạo văn không ?
Trang 8BQ GIAO DỤC & ĐÀO TẠO CỘNG HOA XÃ HỘI CHỦ NGHĨA VIỆT NAM
'TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT Độc lập - Tự do - Hạnh phúc
THÀNH PHÓ HÒ CHÍ MINH
KHOA ĐIỆN ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
PHIẾU NHẬN XÉT ĐỎ ÁN TÓT NGHIỆP
(Dành cho giảng viên phản biện)
Môn tÑ) (Ji c¡ (tán: 1á nropttlinebutCrc xyeE 90:8: 7-Y0725003107.mapWfPfsrofiprarzir503rererel
Cơ quan công (ác:
Điện thoại hiện hệ
Cấu trúc đồ án có theo mẫu của bộ môn:
(Đánh giá ghỉ chú, các mục, hình vẽ, phương trình, lưu đô, sơ đô khối)
2 Về nội dun;
2.1 Nhận xét về tổng quan của đồ án:
Trang 92.2 Nhận xét về phương pháp thực hiện (phát triển/cải thiện):
Trang 10II ĐÁNH GIÁ
(ghi chú, các mục, hình vẽ, phương trình, lưu đồ, sơ đô khôi)
2 | Mục tiêu và nhiệm vụ của đồ án 10
4._| Phương pháp thực hiện trong ĐATN (phát triên, cải thiện) 10
* Nẫu dười 50 và không đưến: bảo về, giá chủ lý Áo chính
ế cho thang tiêm lê, nữa dưới 30) là không được bảo vệ
1V KẾT LUẬN (Giảng viên phần biện ghỉ rõ cần phải chỉnh sửa, bổ sung những mức øÌ
trong ĐATN)
Người nhận xét (Ký & ghi rõ họ tên)
Trang 11LOI CAM DOAN
Tôi cam đoan đây là công trình nghiên cứu của tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất kỳ công trình nào khác
Tp Hò Chí Minh, ngày tháng năm 2015
(Ký tên và ghi rõ họ tên)
Trang 12LOI CAM ON
Em xin chân thành cảm ơn quý thầy cô trong bộ môn Điện Tử Công Nghiệp
đã trang bị cho em kiến thức và giúp đỡ em giải quyết những khó khăn trong quá
trình làm đồ án
Đặt biệt em xin chân thành cảm ơn Thầy hướng dẫn, Th.S Trương Ngọc Anh
đã tận tình giúp đỡ trong quá trình lựa chọn đề tải và hỗ trợ em trong quá trình thực
Trang 13TOM TAT
Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang
được yêu cầu khắc khe tại mỗi quốc gia trên thế giới Các hệ thống xác định, nhận dạng con người được ra đời với độ tin cậy cao Một trong những bài toán nhận dạng con người được quan tâm nhất hiện nay đó là nhận dạng qua khuôn mặt Vì nhận đạng qua khuôn mặt là cách con người sử dụng để phân biệt nhau và việc thu thập,
xử lý thông tin qua ảnh để nhận biết đổi tượng đang được ứng dụng rộng rãi trong nhiều lĩnh vực đời sống như nhận đạng trong lĩnh vực thương mại, hay phát hiện tội phạm trong lĩnh vực án hình, hãy nhận đạng, để chấm công trong một công ty Với
đề tài “Nhận dạng khuôn mặt trong bào mật và chấm công dùng kít Raapberry Pi",
nhóm thực hiện đã dùng đác trìmg Haac Cascade để phát biện khuôn rất, dung thuật toán Fisherfuces trang OpeqCV két hop phuong phdp Principal Corspenents
Analysis (PCA) để nhận đạng khuôn mặt, dữ liệu khuôn mặt thu thập được lưu vao
Raspberry pi, thong tie về nhân viên chấm công được lưu vào hệ cơ sở đữ liệu
MySQL Đề ản đà đạt được một số kết quả nhất định và đảm bảo được độ chính
Xác
iii
Trang 14ABSTRACT
Today, with the development of society, security issues are strict requirements in each country in the world The system-defined, identifiable people are invented with high reliability One of the problems of human identity are most concerned now that is through facial recognition As facial recognition across the way people used to distinguish cach other and collective, processing information over the images to recognize ohjccts are widely used in many areas of life, such as identification in the commercial ficld, or detection of crime in the area of security,
or public recognition to put in the company Wath the theme "Facial Mecognition in the security and tinickeeping by sảng Raspberry Pi kit", we have used Haar Cascade features for fave detection, using algorithm Fisherfaces in OpenCV combination Principal Components Analysis method (PCA) for face recognition, facial data collected is sted on Raspberry Pi, information about the employee attendance is stored in MySQL database systems The project has achieved some positive results and ensure accuracy
iv
Trang 15MUC LUC
LỜI CAM ĐOAN
Giới Thiệu Raspberry Pi
Cấu Tạo Của Raspberry P
Bộ Xử Lý Trung Tam Cua Raspberry Pi
Phu Kién Hỗ Trợ Kèm Theo
Ngôn Ngữ Python
Thu Viện OpenCV
Haar - Cascade Cho Bài Toán Phát Hiện Khuôn Mặt
Đặc Trưng Haar-like
Xây Dựng Cascade Cho Các Bộ Phân Lớp Mạnh
Trang 162.5 Thuật toán Nhận Dạng Mặt Người Fisherface-PCA -+ 18 2.5.1 Giới Thiệu Phương Pháp PCA
2.5.2 Trích Chọn Đặc Trưng PCA và Huân Luyện
2.5.2.1 Nhận Dạng Khuôn Mặt Từ Cơ Sở Dữ Liệu-Tập Luyện -
2.5.2.2Tính Toán Giá Trị Trung Bình
2.5.2.3Tính Ma Trận Hiệp Biến
2.5.2.4Tính Các Trị Riêng và Vector Đặc Trưng,
2.5.2.5Lựa Chọn Các Thành Phần và Xây Dựng Vector Dặc Tưng , c.eeeceeer 21 2.5.3 Nhận Dụng Dựa Trên Dặc Tag PC A ccsecossoinrrirsrrrarraerer2
2.5.3.1 Trích Rút Đặc Trưng PCA
2.5.3.2Chuẩn Húa, Tri Di Vector Pring Binh
2.5.3.3Dua Vao Không Gian Đặc Trưng
THIET KE HE THONG PHAN CUNG
3.1 Phân Tích Lựa Chọn Mainboard Xử L)
3⁄22 Khối Xử Lý Ảnh
3.2.3 Khối Hiển Thị
vi
Trang 174.244 Thiết KẾ Giao Diện c0 2n 00012220 12csennrrerreeereoe 5
TÀI LIỆU THAM KHẢO
PHÙ LƯỚI, on ca gõ Hi USD HH HH Qú G4NNLggH3i H/A0.PH08.080/240012 8g
vii
Trang 18DANH SACH BANG
BANG
Bảng 3.1 So sánh giữa board BeagleBone với Raspberry Pi
viii
Trang 19Hình 2.8 Cich tinh Integral Image eta dnl
Hình 2.9 Vi dy cach tính nhanh các giá trị mức xám của vùng D trên anh 16
Hình 2.10 Cascade của các bộ phân lớp mạnh
Hình 3.4 Mô hình phần cứng của hệ thông 30
Hình 4.1 Lưu đồ chương trình lấy mẫu «-eeeererriiieoe.38
Trang 20Hinh 4.6 Luu dé chuong trình điểm danh
Trang 21Chương 1 Tổng Quan
Chương 1
TỎNG QUAN
1⁄1 Tổng Quan Về Lĩnh Vực Nghiên Cứu
Một số phương án nhận dạng con người đang phỏ biến hiện nay: nhận dạng vân tay, nhận dạng bàn tay, nhận dạng vân mắt, sử dụng thẻ xác nhận, Các phương án này đã qua một thời gian đài phát triển nên đã đạt được độ chính xác
cao Tuy nhiên, các phương án này vẦu còn gập phái một số hạn chế như sau:
~ Cáe hệ thống trên đòi hỏi người sử dụng phái tiếp xúc trực tiếp với hệ
thống, người đá ý thúc được văng mình đang được nhận dang
~ Với hệ thẳng thẻ xác nhận, người nhận biết yêu cầu phải có thể, điều nay
chí có thể Áp dụng với vác thành viên thường xuyên ra vào hệ thông
~ Với các hệ thủng văn mắt, vân tay, không phải bao giờ ta cũng có the
tẩy được mẫu của đôi tượng,
Hiện này, một trong các bài toán nhận dạng đang được quan tâm nghiền cứu nhiều là nhận dạng khuôn mặt Mặc dù nhận dạng khuôn mặt hiện nay chưa đạt
được độ chính xác cao như một số phương pháp đã nêu, nhưng nhận dạng khuôn
mặt vẫn luôn nhận được nhiều sự quan tâm vì một số lý do sau:
- _ Nó gắn liền với cách mà con người nhận biết nhau
- Với các hệ thống camera, ta có thể dễ dàng lấy được thông tin về đối
tượng mà không cần tiếp xúc trực tiếp
-_ Giám sát được đối tượng một cách kín đáo
-_ Được hề trợ nhận bởi hệ thống các thuật toán
Nhận dạng khuôn mặt trong bảo mật và chấm công đã có nhiều công trình
nghiên cứu được công bố, nhưng phần lớn được xử lý trên windows, PC hay
MATLAB Với mục đích học tập và nghiên cứu, nhóm thực biện đã tiến hành nhận
diện khuôn mặt trong bảo mật và chấm công dùng kit Raspberry Pi
Trang 22Chuong 1 Tổng Quan
12 Mục Đích Của Đề Tài
Mục đích của để tài là sử dụng kit Raspberry Pi xây dựng chương trình phát
hiện khuôn mặt bằng các đặc trưng Haar Cascade và áp dụng thuật toán Fisherfaces
trong OpenCV kết hợp phương pháp Principal Components Analysis (PCA) để nhận dạng khuôn mặt, dữ liệu khuôn mặt thu thập được lưu vào raspberry pi, thông,
tin về nhân viên chấm công được lưu vào hệ cơ sở dữ liệu MySQL
~_ Khảo sat va kit Raspherry Pi
- Sử đụng được các thuật toán phát hiện và nhận dạng khuôn mát trong thu viện CpenCV
~— Phát hiện được khuân mật từ camera
~ Tạo giao điện tiên hành lây mẫu nhân viên
~_ Lưu từng khuôn mặt được lấy mẫu,
~_ Phần biệt được khuôn mặt nhân viên để chấm công
~_ Lưu thông tin nhân viên sau khi lấy mẫu và chấm công vào cơ sở đữ liệu
Mysql
Giới Hạn
Trong đề tài này, nhóm thực hiện tập trung vào những vấn đề sau:
- Pau vao 1a video thông qua camera
- Chi Ky mau ting người một
- Các khuôn mặt được chụp thẳng hoặc góc nghiêng không đáng kể
Trang 23Chương 1 Tổng Quan
1.4 Phương Pháp Nghiên Cứu
Phát hiện khuôn mặt: áp dụng các đặt trưng Haar Cascade
Xử lý đữ liệu khuôn mặt: áp dụng phương pháp PCA để tìm các đặt trưng
Nhận dạng: đưa các đặt trưng đã thu được vào tập huấn luyện và nhận dạng bằng thuật toán Fisherfaces-PCA
Dua thong tin sao khi nhân viên đến nhận dạng vào cơ sơ dữ liệu MySQL
1⁄5 Tom Tat DE TAI
Như vậy, với các yêu cầu về nhiệm vụ và mục tiêu để ra, luận vấn được xây dựng bao gồm các chương sau
~ Chương I- Tầng quan Chương này trình bày khái quát về inh vực
nghiên cứu, tỉnh hình nghiên cứu, tầm quan trong, dé người ngưới thực
hiện để tải đặt ra mục tiêu
-_ Chương 3: Cơ sở lý thuyết Chương này trình bày vỀ cấu tạo của
Raspberry pí, ngôn ngit Python, thư viện OpenCV và các thuật toán
-_ Chương 3: Thiết kế hệ thống phần cứng
-_ Chương 4: Phần mềm
~ _ Chương 5: Phần kết luận và hướng phát triển của dé tài
Trang 24Chương 2 Cơ Sở Lý Thuyết
21
Chương 2
CƠ SỞ LÝ THUYÉT
Kit Raspberry Pi
2.11 Giới Thiệu Raspberry Di
Raspberry Di là một chiếc máy tỉnh tí hon giá chí 35$ chạy hệ điều hành Linux ra
mắt vào tháng 2 nam 2012 Ran đầu Raspberry Pì được phát triển dựa trên ý tưởng tiến sĩ
Eben Upton tai das hoe Cambridge mudn tae ta mot chide may tinh gia ré dé hoe sinh có
thể dễ dang tiếp cần và khám phá thế puải tà học, Dự định khiêm tắn cua ông đến cuối
đời là có thể bản được tổng công TodU bọ mạch cho các trường bọc, Vậy thì điều gì đã
làm nên thành công ngoại xúc tuong tượng của Raspberry Pi khi da ban duge hon mét
triệu bo mạch chỉ trong vòng chua dày một năm?
Raspherry Pr co muv giá hấp dẫn: 358 cho một chiếc bo mạch có thể lzm được
him HD
hầu nhự mọt ứng dụng hằng ngày như lướt web, học lập trình, xem
đến những ý tưởng không ngờ đến như điều khiển robot, nha théng mink
Raspberry Pi chay hệ điều hanh Linux: 99% nhimg thir lam trén may tinh
Windows đều có thé thực hiện được trên Linux và quan trong 1a: tất cả đều
miễn phí
Raspberry Pi có 8 ngõ GPIO: có thể kết nối và điều khiển các thiết bị trong
cuộc sống thực tế như đèn, động cơ, GPS
Raspberry Pi có kích thước tí hon: chỉ tương đương một chiếc thẻ ATM và
nặng khoảng 50 gram Gắn với chiếc tivi, Raspberry có thể biến thành một thiết bị giải trí thông minh trong phòng khách Găn với màn hình và bàn phím,
chuột, Raspberry có thể biến thành một chiếc máy tính đúng nghĩa Nhỏ gọn và
Trang 25Chương 2 Cơ Sở Lý Thuyết
Với nhưng ưu điểm trên, Raspberry Pi đã vượt ra khỏi biên giới của trường
học và trở thành thiết bị ưa thích của rất nhiều người đam mê điện tử và lập trình
Sự thành công của nó đã mở ra một bước phát triển mới cho tin học: đem máy tính
và cảm hứng lập trình đến gần mọi người hơn bao giờ hết
2.12 Cấu Tạo Của Raspberry Pi
Thiết kế phần cứng thong minh của Raspberry Pí là một trong những lý do
khiến nó trở nên pho bién Hãy xem qua Raspherry Pi có g2
RASPBERRY PI MODEL B
SDCARD power
Hình 2.1 Cấu tạo của Raspberry Pi model B
- Trái tim của Pi là chip SOC (System-On-Chip) Broadcom
BCM2835 chạy ở tốc độ 700MHz Chip này tương đương với nhiều loại
được sử dụng trong, smartphone phổ thông hiện nay, và có thê chạy được
hệ điều hành Linux Tích hợp trên chip này là nhân đồ họa
(GPU) Bro: s
ổ thông và phát video chuẩn full HD
adcom VideoCore IV GPU này đủ mạnh để có thể chơi 1 số
game phí
Trang 26Chương 2 Cơ Sở Lý Thuyết
8 ngõ GPIO (General Purpose Input Output): ban cé thé két ni va diéu
khiển rất nhiều thiết bị điện tử/cơ khí khác
-_ Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay tivi có hỗ trợ
cong HDMI
- Ng RCA Video (analog): khi thiết kế Pi người ta cũng tính đến trường hợp người sử dụng ở các nước đang phát triển không có điều kiện sắm
một chiếc tivi đời mới tích hợp cổng HDMI Vì vậy cổng video analog
này được thêm vào giún bạn có thể kết nối với chiếc tivi đời cũ mà không phải lo lãng
~ Ngõ nudio Ä 5mm: kết nội dễ đang với loa ngoài hay besdpbone Đắi với
tivi ed công HHOMHE, ngõ ấn thành được tích hợp theo đường tín hiệu
HDMI nên kháng cần sử dụng ngõ audio này,
- Công UNH: mắt điền mạnh nữa của Pi là tích hợp 2 công USB 29 B+n
có thể kết nồi vớt hàn phím, chuột hay webcam, bộ thu GPS quá đó có
thể mờ nộng phạm vì ứng dụng, Vì Pí chạy Linux nên hầu hết thiết di chi
cần cầm-và-chạy (Plug-&-Play) mà không cần cài driver phức tp
- Cổng Ethernet: cho phép két ndi Internet dé dang Cắm dây mạng vào Pi,
kết nổi với màn hình máy tính hay tivi và bàn phím, chuột là bạn có thê
lướt web dễ dàng!
- Khe cim thé SD: Pi không tích hợp ỗ cứng Thay vào đó nó dùng thẻ SD
để lưu trữ dữ liệu Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD
này vì vậy nó cần kích thước thẻ nhớ tối thiểu 4 GB và dung lượng hỗ trợ
tối đa là 32 GB
Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt động
- Jack ngudn micro USB SV, tối thiểu 700mA: nhờ thiết kế này mà bạn có
thể tận dụng hầu hết các sạc điện thoại di động trên thị trường để cấp
nguồn điện cho Pi
Trang 27Chương 2 Cơ Sở Lý Thuyết
z 4 38 gong goes a gues a
PopPPa pel Pit
Hình 2.2 Sơ đồ các chân ngà vào ra trén Raspberry pi model B
2.1.3 Bộ Xủ Lý Trung TÂm Của Raspherry Pi
Trai tim eda RITA vị xứ lý Bioadcom BCM2835 chạy ở tốc độ 70)MHz
Day IA vi xir ly SoC (system-on-chip) tre ld hau hết mọi thành phần của bệ thống
gồm CPU, GPU cũng như audio, communication chịp đều được tích hợp trong mớt
Chịp SoC này nằm ngày bên dưới chíp memory Hynix 512 MB màu đen ở giữa
board
SoC này khác với CPU ở trong PC thông thường ở chỗ nó được chế tạo dựa
trên kiến trúc tập lệnh (Instruction Set Architect — ISA) là ARM chứ không phải
kiến trúc x86 như của Intel ARM có ISA dạng rút gọn RISC và tiêu thụ điện năng
rắt thấp nên phù hợp với thiết bị di động Ngược lại x86 có ISA dạng CISC và hoạt
động với công suất cao nên dễ dàng xử lý các tác vụ phức tạp trên PC,
Vì sự khác biệt cơ bản đó mà ARM và x86 đều có thị trường riêng của mình: ARM dẫn đầu trong mảng thiết bị di động còn x86 vẫn chiếm phần lớn thị phần trong PC mặc dù sự cả hai đều đang cố gắng thâm nhập vào thị phần bên kia
Lấy ví dụ như chip ARM trén Raspberry Pi: toàn bộ mạch hoạt động với nguôn 5V,
00mA tức là chỉ tiêu hao 3.5W mỗi giờ trong khi một laptop cũng ng6n it nhất vài
chục Watt Thiết kế này bảo đảm Raspberry Pi hoạt động với sức mạnh vừa phải
trong khi vẫn giữ được hình ding nhỏ gọn do không cần quạt tản nhiệt và do đó,
ARM có mặt trong hầu hết điện thoại di động thời nay
Trang 28Chương 2 Cơ Sở Lý Thuyết
Hinh 3.3 Xu đổi lập giữa ARM và Intel
Điều quan trong vần lưu ý là: do khác nhau về kiến trúc tập lệnh nên các
phần mềm viết cho nên tang x86 sé khong hoat động trên ARM Ngoài ra chip BCM2835 dùng thế hệ ARMIL thuộc phiên bản ARMv6 ARMv6 hoạt động hiệu
quả và tiết kiệm năng lượng nhưng mặc định lại không tương thích phan mém với
thế hệ ARMv7 Tuy nhiên, điều này có thể giải quyết bằng cách chuyển đổi phân mềm để đạt sự tương thích Nói như vậy không có nghĩa là lập trình Raspberry Pi sẽ
gặp nhiều khó khăn Ngược lại, cộng đồng Raspberry Pi phát triển rất nhanh trên thể giới là nguồn tài nguyên phong phú: hàng loạt dự án, phần mềm được phát triển
cho Pi sé lam bạn hài lòng
Trang 29Chương 2 Cơ Sở Lý Thuyết
Hình 2.4 Phụ kiện kèm theo với Raspberry Pi
Raspberry Pi được bán dưới dạng một board mạch đơn lẻ không đi kẻm phụ kiện nhằm giảm chỉ phí sản xuất, vì vậy người sử dụng có thể tự lựa chọn phụ kiện tùy theo mục đích sử dụng Sau đây sẽ là tổng hợp một số phụ kiện hữu ích cho Pi
Phụ kiện cơ bản:
~_ Nguồn: loại có jack micro USB, 5V, tối thiểu 700mA
Thẻ nhớ SD: đây là nơi lưu trữ toàn bộ hệ điều hành của RPi và cả dữ
ớ thật tót, tốc độ từ class 6 trở lên RPi hoạt
liệu do đó nên đầu tư thẻ nhớ
g lượng it nhất là 4 GB nên nếu bạn thường động trên thẻ nhớ có đun
xuyên dùng RPi đề lập trình thí nghiệm thì nên mua thẻ 8 GB hoặc 16
Trang 30Chương 2 Cơ Sở Lý Thuyết
Cáp mạng: để kết nối Intemet hoặc kết nối với máy tính Chỉ cần cáp
RJ45 bình thường, bắt chéo hay không đều được Ngày trước thì 2 loại
cáp này không sử dụng thay thế cho nhau được nhưng bây giờ hầu hết
các chip giải mã network đều tự động nhận biết cả 2
Cáp màn hình: tùy theo màn hình bạn sử dụng mà bạn mua cáp HDMI- HDMI hoặc HDMI-DVI hoặc HDMI-VGA hay RCA Video
Case bao vệ: đẻ tránh võ tỉnh chạm vào mạch điện của RPi hoặc bảo vệ
RPi khi đặt ở ngoài trời thì case báo về là rất cần thiết, Có rẤt nhiều case
trên thị trường: trong suốt, màu sắc, chúng nước,
Phụ kiện mở rộng
Webeam hoặc BỊ caniera module (25$): cá 2 đều hoạt động tất trên
RPi Điểm khác biết là webcam kết nội qua USB còn camera module ot
dụng khe cầm CS có sẵn trên RPi nên tiết kiệm được 1 cong USB Char lượng của cameta module được đánh giá rất tốt so với giá tiền và gu2n trọng hơn là bạn có thê tận dụng sức mạnh của bộ xử lý dé hoa Video Core LV trén RPi ma webcam không truy cập được Ngoài ra thì webcam:
được bán dưới dạng sản phẩm đóng gói hoàn chỉnh còn camera module
thì dưới dang board module nên người ding phải sử dụng cân thận hơn
Wifi USB dongle: nếu bạn thấy cáp mạng rườm rà thì có thể dùng
dongle nay để kết RPi với mạng wifi trong nhà qua cổng USB 2 sản
phẩm được sử dụng phổ biến là Edimax EW-781 TUn và Ralink RT5370
vì rất nhỏ gọn, giá thành rẻ (khoảng, 10$) và hoạt động tốt trên Pi Riêng
loại Ralink thì còn có thể kiêm luôn chức năng hot spot phat wifi
Màn hình cảm ứng: gắn lên RPi thay cho bàn phím và chuột giá bán
khoảng 308
Trang 31Chương 2 Cơ Sở Lý Thuyết
Phụ kiện cho điều khiển:
- Adafruit T-cobbler (8$); giúp nối chân GPIO của Pi qua breadboard Thiết kế
này đồng thời sắp xếp lại thứ tự chân của Pi giúp kết nối nhanh và ít nhầm lẫn
hơn
- Board két n6i PiFace: giúp kết nối GPIO trên Pi đến relay, nut nhấn, led,
switch, 8 input, 8 open-collector output Cùng với PiRack và Gertboard là
một trong những phụ kiện hay cho đân điện tử
22 Ngôn Ngữ Python
Python là mội ngân ngữ lập trình thàng dich do Guido van Rossum tao ra
năm 1990, được phát triển trong mật dụ an mã mở, do tổ chức phi lợi nhuận Python
Software Foundation quan ly
Ban dầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theo thới
gian, nó đã "hành trường” sang mọi hệ điều hành từ MS-DOS đến MAS Os,
OS/2, WINDOWS, LINUX và các hệ điều hành khác thuộc họ Unix
Một số đặc điểm chính của ngôn ngữ Python:
-_ Dễ học, dễ đọc: Python được thiết kế để trở thành một ngôn ngữ dễ học,
mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:
s Từ khóa:
Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và
cấu trúc cú pháp so với các ngôn ngữ khác
Python là một ngôn ngữ phân biệt kiểu chữ hoa, chữ thường
Như C/C++, các từ khóa của Python đều ở dạng chữ thường
Khối lệnh: Trong các ngôn ngữ khác, khối lệnh thường được đánh đấu bằng cặp kí hiệu hoặc từ khóa Vi dy, trong C/C++, cặp ngoặc nhọn
{} được dùng để bao bọc một khối lệnh P
đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu
: ¡a khối lệnh cha chứa nó
'ython, trái lại, có một cách
tất
hơn (về bên phải) s0 với các câu lệnh củi
AT ee HN TS an, lon
Trang 32Chương 2 Cơ Sở Lý Thuyết
Khả năng mở rộng: Python có thể được mở rộng: nếu ta biết sử dụng C, 1a có thể dễ đàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu
Các hàm này sẽ trở thành hàm xây dựng sẵn (built-in) của Python Ta
cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các
chương trình Python với các thư viện chỉ ở dạng nhị phân (như các thư
viện đồ họa do nhà sản xuất thiết bị cung cấp) Hơn thế nữa, ta cũng có
thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử
đụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó
+ Trinh théng dịch: Python là một ngôn ngữ lập trình dạng thông dịch, do
đó có ưu điểm tiết kiệm thời gián phát triển ứng dụng vì không cán phái
thực hiện biên dịch và lén kết Trình thông dich có thể được sử dung dé
chạy file senpt, hoặc cũng có thể được sử dụng theo cách tương tác Ở chế độ tương tác, trình thông dịch Python tương ty shell cia cdc hệ điều
hành họ V!nix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ Enter, vá
kết quả thực thì sẽ được hiển thị ngay lập tức Đặc điểm này rất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ; hoặc để các lập trình viên chạy thử mã lệnh trong suốt quá trình phát triển phán
Lệnh và cấu trúc điều khiển: Mỗi câu lệnh trong Python năm trên một
dong mã nguồn Ta không cần phải kết thúc câu lệnh bằng nh kì kí tự gì
Cũng như các ngôn ngữ khác, Python cũng có các = điều khiển
Hệ thống kiểu dữ liệu: Python sử dụng hệ thống kiéu duck typing, còn
gọi là latent typing (tự động xác định kiểu) Có nghĩa là, Python không
buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời
điểm thực thí Khi thực thí, nếu một thao tác trên một a le tale
bại, thì có nghĩa là đối tượng đó không sử dụng một kiểu thích hợp Sử
dụng Python, ta không cần phải khai báo biến Biến được xem là đã khai
Python sẽ tự động xác định +kiểu dữ liệu của
iến
“————:=z TT
.—,
kiểm tra các rang
gán một giá trị lần đầu tiên Căn cứ vào mỗi lần gán,
Trang 33Chuong 2 Co Sé Ly Thuyét
- Module: Python cho phép chia chương trình thành cdc module dé cé thé
sử dụng lại trong các chương trình khác Nó cũng cung cấp sẵn một tập
hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ
- Da biến hóa: Python là một ngôn ngữ đa biến hóa (multiple paradigms)
Có nghĩa là, thay vì ép buộc mọi người phải sử dụng duy nhất một phương pháp lập trình, Python lại cho phép sử dụng nhiều phương pháp lập trình khác nhau: hướng đối tượng, có cầu trúc, chức năng, hoặc chỉ
hướng đến một khin cạnh,
Ngoài ra, Python có các thự viên phục vụ cho khoa học kỹ thuật như;
~ NumPy: phục vụ các tính toán ma nâu
-_ SciPy: phục vụ cho các tlaN toàn tích phân, giải phương trình ví p tính toán tôi tru,
~ Mathplotlib; công cụ vẻ đồ thị tương đương với bộ công cy trong Matiz
= Multi-processing: gói tính toán song song
23 Thư Viện OpenCV
OpenCV (Open Source Computer Vision) 1a 1 thu vign ma nguồn do Intel phát triển, được giới thiệu năm 1999 và hoàn thiện phiên bản 1.0 năm 2006 Năm
2008, Willow Garage đã nâng cấp lên OpenCV 2.3.1 có thể lập trình với C, C†++,
Python và Android
OpenCV là một thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát triển về thị giác máy tính Tối ưu hóa và xử lí các ứng dụng trong thời gian thực Giúp cho việc xây dựng các ứng dụng xử lí ảnh, thị giác máy tính, một cách nhanh hơn OpenCV có hơn 500 hàm khác nhau, được chia làm nhiều phần phục vụ các công việc như: xử lí hình ảnh y tế, an ninh, camera quan sát, nhận diện, robots,
„ Thay vì lập trình cho các thuật toán xử lí ảnh thì bạn đã có sẵn trong tay một thư
viện về các hàm đó Công việc của bạn chỉ là sử dụng nó Cấu trúc tổng quan của
OpenCV bao gồm 5 phân chính, 4 trong 5 phần đó được chỉ ra trong hình vẽ dưới
13
Trang 34Chương 2 Cơ Sở Lý Thuyết
Các hàm về xử Các thuật toán Các hàm và thủ
lý ảnh và giải học máy, bao tục làm việc với
thống kê
CNCORE Các cấu trúc đữ liệu cơ ban, edu trie XML, cdc ham về đã họa,
Hình 2.5 Cấu trầu cơ bán của OpenCV
OpenCV là I công cụ hà trạ đắc lực trong việc nhận diện khuôn mặt với các thuật toán sẵn cỏ như:
= Eigenlàe
- Fisherfaces
- Local Binary Patterns Histograms
2.4 Haar - Cascade Cho Bài Toán Phát Hiện Khuôn Mặt
2.4.1 Dac Trung Haar-like
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" như trong hình sau:
Hình 2.6 Đặt trưng Haar-like cơ bản
Để sử dụng các đặt trưng này vào việc xác định khuôn mặt người, 4 đặt trưng Haar-like co ban được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:
14
Trang 35Chương 2 Cơ Sở Lý Thuyết
Dùng các đặc trưng trên, tạ 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 ptxel của các ving den va các vùng trắng nbu trong
Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chỉ phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng
1) của nó, Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán
này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện
Tất nhanh
là
Trang 36Chương 2 Cơ Sở Lý “Thuyết
điểm PI Vậy ta có thể viết lại biều thức tính D ở trên như sau:
D=@4y4) - @2y2) - @33) + @1y1)
Trang 37Chương 2 Cơ Sở Lý Thuyết
2.4.2 Xây Dựng Cascade Cho Các Bộ Phân Lớp Mạnh
Hầu hết các bộ phân lớp tốt cần nhiều thời gian để có các kết quả phân lớp bởi vì chúng cần xem xét đến một số lượng lớn các đặc trưng của mẫu Cấu trúc cascade của các bộ phân lớp mạnh đã được đề xuất để giảm thời gian thực thi và giảm tỉ lệ phát hiện sai
Hinh 2,10 minh hea cau tric Cascade của các bộ phân lớp mạnh Nơi một
vùng ứng viên cỏ thể bị loại tại bắt kì giai đoạn nảo
Cascade tree có một số thuận lợi Mỗi giai đoạn là một bộ phân lớp mạnh
Trong suốt quá trình phát hiện khuôn mặt Mỗi cửa số được phân tích tuần tự bởi
bộ phân lớp giai đoạn này Trong suốt quá trình huấn luyện, mỗi bộ phân lớp được huấn luyện bời các mẫu bị phân lớp sai ở bộ phân lớp trước Nghĩa là chúng sẽ tập trung để bọc các mẫu background khó Vì vậy sự kết hợp của các bộ phân lớp trong cascade sẽ giảm tỉ lệ phát hiện sai Hơn nữa với cấu trúc này, các bộ phân lớp dé dàng nhan ra cdc background dễ và loại bỏ chúng ở các bộ phân lớp đầu Vì vậy cấu trúc cascade giải quyết được bài toán thời gian thực thi Một cách tổng quát, cấu
tric cascade cai tiến đáng kể thời gian thực thi và các kết quả phát hiện phụ thuộc
hoàn toàn vào các bộ phân lớp yếu hay các đặc trưng Haar-like
IÊN TRƯỜI iG DASPRT
Trang 38Chương 2 Cơ Sở Lý Thuyêt
Vấn đề nảy sinh khi nhận dạng là số chiều quá lớn (Ý”) 2y làm cách nào đề
tìm ra không gian với số chiều ÍLhơn?
Ý tưởng là sử dụng phương pháp Prine ypat Components Analysis (PCA)
Muc tigu cua phuuny phap PCA ta “giant s6 chieu” cia | tap vector sao cho
Vector x ban
oh đầu có N chiều
Không gian N (phép chiếu)
chiều với hệ cơ sở
Hình 2.12 Mục tiêu của phương, phap PCA
18
Trang 39Chương 2 Cơ Sở Lý Thuyết
25.1 Giới Thiệu Phương Pháp PCA
Phương pháp Principal Components Analysis (PCA) được phát minh năm
1901 bởi Karl Pearson và hiện nay nó được sử dụng như công cụ để phân tích dữ
liệu nghiên cứu và thực hiện các mô hình dự đoán PCA còn bao gồm cả việc tính toán phân tích các giá trị đặc trưng của một ma trận tương quan dữ liệu hay phân tính các giá trị đơn của ma trận dữ liệu thường sau khi tính trung bình dữ liệu của mỗi thuộc tính
PCA là phương pháp đơn giản nhất phân tích đã biến dựa trên các vector đặc trưng Thông thường hoạt động của nó có thể được hiểu nhằm khám phá ra cấu trúc bên trong của dữ liệu, Nếu một tập lũ hệu đa biên được xem xét như lập các tọa đó trong một không gian dữ liệu nhiều chiều (tuổi trục biểu điễn một biến) thì phương pháp PCA cung cấp cho chúng ta một bức ánh ít chiều, một cái bóng của vật thể khí quan sát từ chính những đàc trưng cơ bán nhất của vật thể đó
2.5.2 Trích Chọn Đặc Trưng PCA và Huấn Luyện
2.5.2.1 Nhận Các Khuôn Mặt Từ Cơ Sở Dữ Liệu - Tập Luyện
Đầu tiên chúng ta sẽ đọc cơ sở đữ liệu và nhận vào các ảnh luyện l, Các ảnh
luyện ở đây đều là ảnh mặt, điều kiện quan trọng là chúng có mặt ở tâm ảnh và có cùng kích thước với nhau
Giả sử có M ảnh, khi đó i=1 M
Sau đó ta tương ứng mỗi ảnh l; với một vector I;
I; (anh NxN) — T;(veetor NẺ x1)
2.5.2.2 Tính Toán Giá Trị Trung Bình
Giá trị vector trung bình:
Ty (2.3)
Với:
Trang 40Chương 2 Cơ Sở Lý Thuyết
e Mlàsốảnh trong tập luyện, I; là vector 1 chiều (Ñ?x1) đại diện cho mỗi
ảnh
® Wlà vector trung bình (kích thước NỶx1) của tập tất cả các T¡ trên; W
còn được gọi là vector trung bình mặt của tập luyện
Sai số của các ảnh so với gia tri vector mặt trung bình được tính toán theo
công thức (2.4)
Với:
«@¡ là veclor sai số ứng với mỗi ảnh
®— T¡ là vector | chiều eủa các ảnh
® W là vector trung hình niật
A lama tran NˆxM, ®a là giá trị sai số được tính ở công thức (2.4)
2.5.2.4 Tính Các Trị Riêng và Vector Đặc Trưng Của Ma Trận Hiệp Biến
Dé tính các trị riêng và vector đặc trưng của ma trận hiệp biến ta phải tính với ma trận C hay chính là tính cho ma trận AAT, Tuy nhiên điều này là không khả
thi, do C là ma trận N”xNŸ nên số chiều là quá lớn, khối lượng tính toán là vô cùng
nhiều (đặc biệt khi kích thước ảnh luyện lớn thì N lớn, N? và NˆxN? là cực kì lớn)
Ta nhận thấy 2 ma trận AAT và ATA luôn có chung trị riêng và vector đặc
trưng thì có liên hệ với nhau bởi biểu thức ; = 4w, mà ma trận ATA lại có số chiều
Íthơn hẳn (ma trận MxM) nên ta sẽ chuyển đổi về ma trận ATA
20