Tải bản đầy đủ (.pdf) (72 trang)

Nghiên cứu, thiết kế hệ thống cơ điện tử thông minh ứng dụng công nghệ nhận dạng khuôn mặt và thuật toán học sâu trong việc điểm danh và đánh giá độ chuyên cần của sinh viên

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 (2.1 MB, 72 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Nghiên cứu, thiết kế hệ thống cơ điện tử
thông minh ứng dụng công nghệ nhận
dạng khuôn mặt và thuật toán học sâu
trong việc điểm danh và đánh giá độ
chuyên cần của sinh viên
NGUYỄN DUY KHÁNH


Ngành Kỹ thuật Cơ Điện Tử

Giảng viên hướng dẫn:

TS. Đặng Thái Việt
Chữ ký của GVHD

Viện:

Cơ Khí

HÀ NỘI, 05/2020


ĐỀ TÀI LUẬN VĂN

Đề tài: Nghiên cứu, thiết kế hệ thống cơ điện tử thông minh ứng dụng công
nghệ nhận dạng khuôn mặt và thuật toán học sâu trong việc điểm danh và đánh
giá độ chuyên cần của sinh viên.
Tên tiếng anh: Research and design the intelligent mechatronics system


using facial recognition technology and deep learning algorithm to roll up and
evaluate the diligence.

Giáo viên hướng dẫn
Ký và ghi rõ họ tên


Lời cảm ơn
Em xin chân thành cảm ơn Thầy giáo, Tiến sĩ Đặng Thái Việt, người đã
hướng dẫn tận tình cho em trong suốt thời gian tìm hiểu, nghiên cứu và hoàn
thành luận văn này từ lý thuyết đến việc ứng dụng trong sản xuất. Sự hướng dẫn
tận tình của thầy đã giúp em có thêm nhiều kiến thức liên quan đến công nghệ trí
tuệ nhân tạo và ứng dụng trong thực tế môi trường công nghiệp.
Đồng thời em cũng xin cảm ơn các quý thầy, cô trong viện cơ khí, đặc biệt là
các thầy cô trong bộ môn Cơ điện tử - Trường Đại học Bách khoa Hà Nội, đã
trang bị cho em nhiều kiến thức cần thiết trong suốt thời gian học tập, nghiên cứu
tại trường để em có thể hoàn thành luận văn này. Trong suốt quá trình học cũng
như trong thời gian làm luận văn không tránh khỏi những thiếu sót, em rất mong
nhận được sự góp ý của các quý thầy, cô cũng như các bạn để luận văn của em
hoàn thiện hơn.
Em xin chân thành cảm ơn!
Tóm tắt nội dung luận văn
Nội dung của luận văn nhằm giải quyết bài toán quản lý mật độ đối tượng ứng
dụng công nghệ xử lý hình ảnh, deep learning. Để kiểm nghiệm thuật toán, đề tài
ứng dụng vào lĩnh vực cụ thể là điểm danh và đánh giá độ chuyên cần của sinh
viên từ đó giúp giải quyết bài toán quản lý mật độ đối tượng một cách hiệu quả.
Phương pháp thực hiện: Đánh giá độ chuyên cần ở khoảng dữ liệu rộng, bài
toán kết hợp hai phương pháp là nhận diện khuôn mặt và điểm danh qua vân tay.
Hai phương pháp hỗ trợ nhau để xây dựng thành hệ thống xử lý một khoảng dữ
liệu lớn với độ chính xác có thể chấp nhận.

Công cụ sử dụng: Pycharm, Python 3.8.2, Anaconda, Office 2013…
Kết quả luận văn: Phù hợp các yêu cầu đặt ra khi độ chính xác đạt trên 89%,
các phương pháp bổ trợ đã giải quyết được những vấn đề còn tồn đọng.
Định hướng phát triển: Ứng dụng công nghệ IoT, Big Data vào quản lý và xử
lý dữ liệu giúp việc xử lý dữ liệu hiệu quả hơn.
Hà Nội, Ngày 8 tháng 5 năm 2020
Học viên


LỜI MỞ ĐẦU

Thế giới trải qua 3 nền cách mạng công nghiệp và hiện nay đang bước vào kỉ
nguyên số với cuộc cách mạng công nghiệp lần thứ 4 dẫn đến sự bùng nổ về
công nghệ đặc biệt ở các lĩnh vực robot, trí tuệ nhân tạo, công nghệ big data,…đã
phần nào đưa nền kinh tế của các quốc gia phát triển vượt bậc. Chúng ta có thể
nhận thấy trí tuệ nhân tạo đã trở nên phổ biến ở nhiều khía cạnh trong cuộc sống
hàng ngày. Từ các cảm biến thông minh giúp chúng ta chụp ảnh hoàn hảo, đến
các tính năng đỗ xe tự động trong xe hơi, cho đến các trợ lý cá nhân trong điện
thoại thông minh, trí thông minh nhân tạo luôn ở xung quanh chúng ta. Trên thực
tế, đã có rất nhiều ứng dụng của trí tuệ nhân tạo đã được thực thi đặc biệt bài toán
xác định mật độ đối tượng áp dụng vào lĩnh vực an ninh, an toàn tuy nhiên độ
chính xác và phương pháp xử lý chưa được giải quyết tối ưu.
Để tối ưu phương pháp giải quyết bài toán đồng thời giúp tăng độ chính xác
xử lý của hệ thống, thầy hướng dẫn đã định hướng và giao nhiệm vụ nghiên cứu
đề tài:
“Nghiên cứu, thiết kế hệ thống cơ điện tử thông minh ứng dụng công nghệ nhận
dạng khuôn mặt và thuật toán học sâu trong việc điểm danh và đánh giá độ
chuyên cần của sinh viên”
Mục đích của luận văn tập trung nghiên cứu, tìm hiểu và phân tích các
phương pháp học sâu ứng dụng vào bài toán phân tích và quản lý mật độ đối

tượng, đồng thời thực hiện cài đặt một mô hình huấn luyện về nhận dạng người
trong Học sâu với số lượng ảnh nhất định và sử dụng chúng làm bộ nhận dạng cơ
sở cho ứng dụng điểm danh tự động cải thiện cho việc điểm danh hiện nay.
Bộ cơ sở dữ liệu ảnh là một trong các thành phần quan trọng hàng đầu trong
các phương pháp Học máy nói chung, được sử dụng để phục vụ cho quá trình tính
toán tham số và huấn luyện, tinh chỉnh các mô hình. Thông thường, bộ dữ liệu
càng lớn và càng được chọn lọc tỉ mỉ cẩn thận thì độ chính xác của mô hình
càng được cải thiện. Sau khi đã thu thập đủ số lượng ảnh gốc từng sinh viên, ta
sẽ sử dụng các thuật toán trên môi trường Python để trainning, nhận dạng và


đánh giá độ chính xác thuật toán từ đó chọn ra thuật toán có độ chính xác cao
nhất.
Luận văn được tổ chức thành 4 chương với các nội dung cụ thể như sau:
Chương 1: Đưa ra cái nhìn tổng quan về trí tuệ nhân tạo, mạng neural tích
chập CNN và cấu trúc. So sánh, đánh giá các công bố từ trước từ đó đề xuất đề
tài. Ngoài ra, tác giả trình bày một số thuật toán tích hợp trong hệ thống điểm
danh.
Chương 2: Đưa ra cái nhìn tổng quan về bài toán xác định và quản lý mật độ
đối tượng. Tập trung so sánh, đánh giá với kết quả đã công bố từ đó đưa giải
pháp nâng cao độ chính xác, mô phỏng dữ liệu.
Chương 3: Tiếp cận cách thiết kế và xây dựng hệ thống điểm danh tự động
kết hợp giữa phần cứng và phần mềm một cách hiệu quả.
Chương 4: Kết luận và hướng phát triển hệ thống trong tương lai.
Dù đã cố gắng hoàn thành đề tài với cường độ làm việc cao, kỹ lưỡng cùng sự
hướng dẫn rất cụ thể, nhiệt tình của thầy hướng dẫn nhưng do hiểu biết còn hạn
chế nên chắc chắn luận văn này không tránh khỏi được khả năng thiết sót. Vì vậy
em rất mong sự sửa chữa và góp ý của hội đồng, quý thầy cô để em rút ra kinh
nghiệm và bổ sung thêm kiến thức cho bản thân.
Cuối cùng em xin chân thành cảm ơn sự quan tâm chỉ bảo của các thầy cô

trong bộ môn Cơ Điện Tử trường Đại học Bách khoa Hà Nội và đặc biệt sự
hướng dẫn tận tình của TS. Đặng Thái Việt đã giúp em hoàn thành luận văn này.

Hà Nội, ngày 10 tháng 4 năm 2020
Học viên thực hiện:
Nguyễn Duy Khánh


MỤC LỤC
CHƯƠNG 1. TỔNG QUAN ................................................................................ 1
1.1

Đặt vấn đề .................................................................................................. 1

1.2

Tổng quan mạng neural tích chập CNN..................................................... 3
1.2.1

Giới thiệu mạng Neural ............................................................... 3

1.2.2

Cấu trúc mạng Neural tích chập CNN ........................................ 5

1.3

Thuật toán FaceNet .................................................................................... 8

1.4


Thuật toán MTCNN ................................................................................. 12

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP PHÂN TÍCH XỬ
LÝ BÀI TOÁN .................................................................................................... 16
2.1

Tổng quan bài toán xác định mật độ đối tượng ....................................... 16

2.2

Tổng quan hệ thống điểm danh sinh viên ................................................ 21

2.3

Phân tích, cải tiến bài toán xác định mật độ đối tượng ............................ 22
2.3.1

Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural .......... 26

2.3.2

Cách thức tổ chức và xử lý dữ liệu trainning ............................ 27

2.3.3

Cải thiện, nâng cao độ chính xác cho bài toán .......................... 32

CHƯƠNG 3. THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ................................... 39
3.1


3.2

3.3

Yêu cầu chung của hệ thống điều khiển .................................................. 39
3.1.1

Phân tích hệ thống ..................................................................... 39

3.1.2

Nguyên lý hoạt động của hệ thống điều khiển .......................... 40

3.1.3

Yêu cầu phần cứng và phần mềm ............................................. 41

Lấy dữ liệu từ module quét vân tay ......................................................... 42
3.2.1

Giới thiệu cảm biến vân tay R305 ............................................ 43

3.2.2

Lựa chọn vi điều khiển.............................................................. 44

3.2.3

Truyền thông hệ thống với module vân tay .............................. 47


3.2.4

Thiết kế sơ đồ nguyên lý giao tiếp module vân tay .................. 49

Thiết kế phần mềm điểm danh tự động.................................................... 50


3.3.1

Bài toán nhận diện khuôn mặt .................................................. 51

3.3.2

Xây dựng giao diện phần mềm điểm danh tự động .................. 53

3.4

Phương pháp đánh giá .............................................................................. 53

3.5

Thử nghiệm độ chính xác thuật toán sau khi đã tích hợp vào hệ thống... 54

CHƯƠNG 4. KẾT LUẬN .................................................................................. 60
4.1

Kết luận .................................................................................................... 60

4.2


Hướng phát triển tương lai ....................................................................... 60


DANH MỤC HÌNH VẼ
Hình 1.1: Cấu trúc mạng Neural ............................................................................ 4
Hình 1.2: Cấu trúc mạng tích chập CNN ............................................................... 6
Hình 1.3: Nguyên lý bộ lọc tích chập .................................................................... 6
Hình 1.4 Kết quả xử lý sau lớp tích chập ............................................................... 7
Hình 1.5: Xử lý Max Pooling ................................................................................. 7
Hình 1.6: Fully Connected Layer ........................................................................... 8
Hình 1.7: FaceNet process ..................................................................................... 9
Hình 1.8: Triplet Loss .......................................................................................... 10
Hình 1.9: Dataset LWF ........................................................................................ 11
Hình 1.10: Quá trình xử lý mạng P-Net ............................................................... 14
Hình 1.11: Ví dụ xử lý mạng P-Net ..................................................................... 14
Hình 1.12: Quá trình xử lý mạng R-Net .............................................................. 14
Hình 1.13: Ví dụ xử lý mạng R-Net ..................................................................... 15
Hình 1.14: Quá trình xử lý O-Net ........................................................................ 15
Hình 2.1: Tổng quan hệ thống điểm danh ............................................................ 22
Hình 2.2: Lưu đồ quá trình nhận diện khuôn mặt ................................................ 27
Hình 2.3: Mẫu chuẩn và tách đặc trưng ............................................................... 29
Hình 2.4: Tiền xử lý ảnh ...................................................................................... 30
Hình 2.5: Thuật toán dò tìm khuôn mặt ............................................................... 31
Hình 2.6: Kết quả độ chính xác của nhóm tác giả [32]........................................ 32
Hình 2.7: Độ chính xác công bố của Vishal Agarwal .......................................... 33
Hình 2.8: AFAD Dataset ...................................................................................... 34
Hình 2.9: Dữ liệu trước khi trainning .................................................................. 35
Hình 2.10: Dữ liệu sau khi trainning .................................................................... 35
Hình 2.11:Kết quả về độ hội tụ của Vishal Agarwal ........................................... 36

Hình 2.12: Độ chính xác hệ thống điểm danh...................................................... 36


Hình 2.13: Ngưỡng sáng ảnh giả mạo và thật ...................................................... 37
Hình 2.14: Độ chính xác trainning và nhận dạng chống giả mạo ........................ 38
Hình 3.1: Cách thức hoạt động của hệ thống ....................................................... 40
Hình 3.2: Nguyên lý hoạt động điểm danh vân tay ............................................. 43
Hình 3.3: Cảm biến vân tay R305 ........................................................................ 43
Hình 3.4: Sơ đồ chân vi điểu khiển ATMEL328P ............................................... 47
Hình 3.5: Kết nối truyền nhận UART .................................................................. 48
Hình 3.6: Gói dữ liệu truyền nhận UART............................................................ 48
Hình 3.7: Sơ đồ nguyên lý kết nối ....................................................................... 50
Hình 3.8: Mạch layout PCB ................................................................................. 50
Hình 3.9: Quá trình nhận dạng khuôn mặt ........................................................... 52
Hình 3.10: Giao diện phần mềm .......................................................................... 53
Hình 3.11: Đánh giá chuyên cần theo tháng ........................................................ 58


DANH MỤC BẢNG BIỂU

Bảng 2.1: So sánh các phương pháp nhận diện khuôn mặt ................................. 25
Bảng 3.1: Giá tiền sản phẩm của nhóm tác giả .................................................... 39
Bảng 3.2: Yêu cầu phần cứng và phần mềm........................................................ 41
Bảng 3.3: So sánh các dòng vi điều khiển ........................................................... 45
Bảng 3.4: Dữ liệu thử nghiệm .............................................................................. 55
Bảng 3.5: Độ chính xác điểm danh vân tay ......................................................... 55
Bảng 3.6: Chi tiết quá trình thử nghiệm ............................................................... 55
Bảng 3.7: So sánh thời gian thử nghiệm .............................................................. 57
Bảng 3.8: Thử nghiệm kết quả tính điểm............................................................. 58



CHƯƠNG 1. TỔNG QUAN
Chương 1 Bao gồm các nội dung sau:
- Tổng quan về công nghệ trong nền công nghiệp 4.0.
- Lý do chọn đề tài.
- Lý thuyết về mạng CNN và một số thuật toán áp dụng, sử dụng trong
đề tài như MTCNN, Facenet.
1.1 Đặt vấn đề
Trong thời kỳ hội nhập, sự phát triển của khoa học kỹ thuật là rất cần thiết
phục vụ cho nhu cầu phát triển của kỷ nguyên mới. Là một trong những nhân tố
góp phần thúc đẩy sự phát triển của khoa học kỹ thuật không thể không nhắc tới
các đóng góp của ngành kỹ thuật cơ điện tử. Các hệ thống công nghệ trước đây
chủ yếu hoạt động trên các kết cấu cơ khí thuần túy kết với với các mạch điện tử
điều khiển đơn giản, các hệ thống này vận hành để đáp ứng một số thao tác cơ
bản. Sự phát triển mạnh mẽ của công nghiệp sản xuất đòi hỏi có một công nghệ
cao uyển chuyển, linh hoạt, thông minh hơn các công nghệ trước đây, chính vì
vậy cơ điện tử ra đời.
Thế giới nói chung và Việt Nam nói riêng đang bước vào nền công nghiệp 4.0
với sự chạy đua công nghệ, không chỉ là cơ hội mà còn là một thách thức lớn đối
với mỗi quốc gia. Nền công nghiệp 4.0 tích hợp tất cả các công nghệ tiên tiến về
tự động hóa, công nghệ thông tin,… để nâng cao chất lượng cuộc sống hiện tại.
Cùng với sự phát triển của nền công nghiệp 4.0, công nghệ xử lý trong chuyển
đổi số được quan tâm và phát triển mạnh mẽ với rất nhiều ứng dụng thực tế như
hệ thống cảnh báo khoảng cách an toàn trong giao thông “Real-Time Car
Detection and Driving Safety Alarm System With Google Tensorflow Object
Detection API”[1] của nhóm tác giả Cheng-Hsiung Hsieh, Dung-Ching Lin,
Cheng-Jia Wang, Zong-Ting Chen, Jiun-Jian Liaw. Tiếp theo có thể kể đến hệ
thống bãi đỗ xe tự động “License Plate Detection and Integral Intensity
Projection for Automatic Finding the Vacant of Car Parking Space”[2] đã giúp
ích rất nhiều trong việc quản lý, tiết kiệm thời gian và chi phí.

Trên đà phát triển đó, lĩnh vực Computer Vision đã được đầu tư và đạt được
nhiều thành tựu nhất định. Quá trình chuyển đổi số dựa trên nền tảng trí tuệ nhân
1


tạo đang dần phát triển ngay trong cuộc sống hiện nay không những giảm bớt
khối lượng công việc mà độ chính xác ngày càng nâng cao. Điển hình với bài
toán xác định và quản lý mật độ của đối tượng, đã có rất nhiều công bố với các
ứng dụng vào thực tế đặc biệt có thể kể đến như kiểm soát an ninh, an toàn, kiểm
soát hành vi giám sát,… Công bố mới đây của tác giả Sadhna Sharma “Template
Matching Approach for Face Recognition System” [3] liên quan đến áp dụng
phương pháp nhận dạng khuôn mặt vào hệ thống an ninh dựa trên thuật toán
Template matching đã góp phần thay đổi, cải thiện hệ thống an ninh cũ. Với
phương pháp này, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt được
chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông qua một
hàm. Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn về
đường viền khuôn mặt, mắt, mũi và miệng. Thông qua các giá trị tương quan này
mà các tác giả quyết định có hay không có tồn tại khuôn mặt trong ảnh. Khi sử
dụng, tác giả sẽ có lợi thế là chương trình rất dễ cài đặt, nhưng không hiệu quả
khi tỷ lệ, tư thế, và hình dáng thay đổi. Nhiều độ phân giải, đa tỷ lệ, các mẫu con,
và các mẫu biến dạng được xem xét thành bất biến về tỷ lệ và hình dáng. Để giải
quyết vấn đề khớp mẫu không chuẩn do góc nghiêng, độ sáng, một nghiên cứu
khác thực hiện liên quan đến lĩnh vực an ninh văn phòng, hệ thống sử dụng
phương pháp nhận diện khuôn mặt trên nền tảng LABVIEW của nhóm tác giả
Sarma và Prasad - “Face Recognition Office Security System Using LabVIEW
8.6”[4]. Hệ thống đã được xây dựng trên nền tảng phần mềm LABVIEW với tốc

độ tương đối mạnh tuy nhiên phương pháp nhận dạng khuôn mặt được tác giả sử
dụng là phân tích nét đặc trưng histogram được chỉ ra có độ chính xác chưa cao.
Bên cạnh hướng tiếp cận Histogram, tác giả N. Dileep kumar, S. Shanthi đã đề

xuất hệ thống an ninh tòa nhà nhận diện khuôn mặt sử dụng Haar-cascade
“Automatic Gate using Face Recognition Technique using HAAR Cascade
Algorithm”[5] kết hợp trainning dữ liệu. Đầu tiên ảnh được đưa về xám hóa, sau
đó cho các đặc trưng haar-like chạy khắp bức ảnh, những khu vực so sánh được
cho là giống với nhiều đặc chưng haar-like nhất sẽ được đánh dấu lại. Chính vì
vậy có rất nhiều khu vực trong hình nó sẽ nhận là có khuôn mặt. Sau đó các ảnh
không giống sẽ được sử dụng để loại trừ các vùng này. Cho nên trong quá trình
training một bộ nhận dạng, số lượng ảnh sai luôn phải tương đối nhiều để dùng

2


để loại trừ. Tuy nhiên, theo đồ thị của tác giả đưa ra trong bài báo, độ chính xác
đạt được khá thấp và cần dữ liệu trainning nhiều. Chính vì vậy, cần một phương
pháp nâng cao độ chính xác cho phương pháp và ổn định nhất là trong những hệ
thống an ninh, an toàn. Một nghiên cứu khác được thực hiện bởi nhóm nghiên
cứu của Rajiv ứng dụng trí tuệ nhân tạo thiết kế hệ thống bảo mật dựa trên công
nghệ nhận diện khuôn mặt và quản lý qua email “Email based remote access and
surveillance system for smart home infrastructure” [6]. Hệ thống nhận dạng cho
phép phát hiện đối tượng qua khuôn mặt và làn da với độ chính xác tương đối
cao nhờ sử dụng deep learning trainning dữ liệu chi tiết. Tuy nhiên một nhược
điểm khiến hệ thống hiệu quả và tính ứng dụng thực tế đó là cần sự cho phép truy
cập của chủ nhà qua email cần được cải thiện.
Nhận thấy bài toán xác định mật độ đối tượng có tính ứng dụng cao vào thực
tế như hệ thống an ninh, kiểm soát hành vi, giáo dục,…nên cần nghiên cứu phát
triển đồng thời thử nghiệm để nâng cao độ chính xác thuật toán, tác giả ứng dụng
trực tiếp vào hệ thống điểm danh tự động với mục đích kiểm nghiệm thuật toán
và độ chính xác.
Trên yêu cầu xây dựng hệ thống tích hợp những giải pháp xử lý dữ liệu, trích
xuất thông tin phù hợp với từng vùng, từng tổ chức, hệ thống sẽ được tích hợp

phương pháp điểm danh sinh trắc học vân tay và nhận diện khuôn mặt đồng thời
kiểm nghiệm so sánh với các công bố trong cùng lĩnh vực, tôi xin đề xuất đề tài:
“Nghiên cứu, thiết kế hệ thống cơ điện tử thông minh ứng dụng công nghệ nhận
dạng khuôn mặt và thuật toán học sâu trong việc điểm danh và đánh giá độ
chuyên cần của sinh viên”
1.2 Tổng quan mạng Neural tích chập CNN
1.2.1

Giới thiệu mạng Neural

Định nghĩa: Mạng Neural nhân tạo, Artificial Neural Network (ANN) là một
mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ Neural
sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (Neural) kết nối với
nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để
giải quyết một vấn đề cụ thể nào đó. Một mạng Neural nhân tạo được cấu hình
cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu,...) thông qua một

3


quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu
chỉnh trọng số liên kết giữa các Neural.

Hình 1.1: Cấu trúc mạng Neural

Các thành phần cơ bản của một Neural nhân tạo bao gồm:
- Tập các đầu vào: Là các tín hiệu vào (input signals) của Neural, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều.
- Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số liên kết –
Synaptic weight. Trọng số liên kết giữa tín hiệu vào thứ j với Neural k

thường được kí hiệu là wkj. Thông thường, các trọng số này được khởi
tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật
liên tục trong quá trình học mạng.
- Bộ tổng (Summing function): Thường dùng để tính tổng của tích các
đầu vào với trọng số liên kết của nó.
- Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa
vào như một thành phần của hàm truyền.
- Hàm truyền (Transfer function): Hàm này được dùng để giới hạn phạm
vi đầu ra của mỗi Neural. Nó nhận đầu vào là kết quả của hàm tổng và
ngưỡng.
- Đầu ra: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có tối đa
là một đầu ra.
Xét về mặt toán học, cấu trúc của một Neural k, được mô tả bằng cặp biểu
thức sau:
4


p

uk   w kj .x j

(1.1)

yk  f (uk  bk )

(1.2)

j 1

Trong đó:

- x1, x2, ..., xp: là các tín hiệu vào.
- (wk1, wk2,..., wkp) là các trọng số liên kết của Neural thứ k.
- uk là hàm tổng.
- bk là một ngưỡng.
- f là hàm truyền.
- yk là tín hiệu đầu ra của Neural.
Như vậy Neural nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu
này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm
truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền).
1.2.2

Cấu trúc mạng Neural tích chập CNN

Understanding of Convolutional Neural Network (CNN) là 1 trong những
thuật toán deep learning chính để nhận dạng vật thể, nhận dạng hình ảnh,…
Để nhận diện được vật thể, mô hình CNN sẽ tranning và test liên tục để đạt
được kết quả nhận diện tốt nhất. Mỗi ảnh input đầu vào sẽ được máy tính coi như
1 mảng các pixel phụ thuộc vào độ phân giải của chúng và cũng tùy vào ảnh màu
hay ảnh đen trắng mà số layer của ảnh cũng khác nhau, cách xử lý cũng khác
nhau. Quá trình CNN xử lý và trainning sẽ bao gồm 1 số layer như sau: : Lớp
tích chập (Convolutional), Lớp kích hoạt phi tuyến ReLU (Rectified Linear
Unit), Lớp lấy mẫu (Pooling) và Lớp kết nối đầy đủ (Fully-connected), được thay
đổi về số lượng và cách sắp xếp để tạo ra các mô hình huấn luyện phù hợp cho
từng bài toán khác nhau.

5


Hình 1.2: Cấu trúc mạng tích chập CNN


1.2.2.1. Lớp tích chập (Convolution layer)
Đây là thành phần quan trọng nhất trong mạng CNN, cũng là nơi thể hiện tư
tưởng xây dựng sự liên kết cục bộ thay vì kết nối toàn bộ các điểm ảnh. Các liên
kết cục bộ này được tính toán bằng phép tích chập giữa các giá trị điểm ảnh trong
một vùng ảnh cục bộ với các bộ lọc – filters – có kích thước nhỏ.

Hình 1.3: Nguyên lý bộ lọc tích chập

Bộ lọc được sử dụng là một ma trận có kích thước 3x3. Bộ lọc này được dịch
chuyển lần lượt qua từng vùng ảnh đến khi hoàn thành quét toàn bộ bức ảnh, tạo
ra một bức ảnh mới có kích thước nhỏ hơn hoặc bằng với kích thước ảnh đầu vào.
Kích thước này được quyết định tùy theo kích thước các khoảng trắng được thêm
ở viền bức ảnh gốc và được tính theo công thức sau:

O

i  2* p  k
 1 (1.3)
s

Trong đó:
- O: kích thước ảnh đầu ra.
- i: kích thước ảnh đầu vào.
6


- p: kích thước khoảng trắng phía ngoài viền của ảnh gốc.
- k: kích thước bộ lọc.
- s: bước trượt của bộ lọc.


Kết quả cuối cùng bước này sẽ cho ra output như thế nào? Bước convolution
này để tìm đặc trưng ảnh như viền,….

Hình 1.4 Kết quả xử lý sau lớp tích chập

1.2.2.2. Lớp lấy mẫu( Pooling Layer)
Mục đích của pooling rất đơn giản, nó làm giảm số hyperparameter mà ta cần
phải tính toán, từ đó giảm thời gian tính toán, tránh overfitting. Loại pooling ta
thường gặp nhất là max pooling, lấy giá trị lớn nhất trong một pooling window.
Pooling hoạt động gần giống với convolution, nó cũng có 1 cửa sổ trượt gọi
là pooling window, cửa sổ này trượt qua từng giá trị của ma trận dữ liệu đầu vào
(thường là các feature map trong convolutional layer), chọn ra một giá trị từ các
giá trị nằm trong cửa sổ trượt (với max pooling ta sẽ lấy giá trị lớn nhất).

Hình 1.5: Xử lý Max Pooling

1.2.2.3. Lớp kết nối đầy đủ( Fully Connected module)
Trong mạng Neural, các Neural input sẽ được kết nối với các Neural khác
trong mạng với 1 trọng số cụ thể. Từ input đầu vào, qua các Neural trung gian sẽ
tìm được kết quả đầu ra phù hợp. Nếu kết quả chưa đạt tối ưu, mạng Neural sẽ

7


lan truyền ngược để tìm lại trọng số weight ở mỗi Neural sao cho kết quả đạt
được là tối ưu.

Hình 1.6: Fully Connected Layer

Sự ra đời của mạng CNN đã giải quyết các vấn đề còn lại của các mạng

Neural nhân tạo truyền thống học thông tin trong ảnh. Do sử dụng các liên kết
đầy đủ giữa các điểm ảnh vào node, các mạng Neural nhân tạo truyền thẳng
(Feedforward Neural Network) bị hạn chế rất nhiều bởi kích thước của ảnh, ảnh
càng lớn thì số lượng liên kết càng tăng nhanh và kéo theo sự bùng nổ khối lượng
tính toán. Ngoài ra sự liên kết đầy đủ này cũng là sự dư thừa khi với mỗi bức
ảnh, các thông tin chủ yếu thể hiện qua sự phụ thuộc giữa các điểm ảnh với
những điểm xung quanh nó mà không quan tâm nhiều đến các điểm ảnh ở cách xa
nhau. Mạng CNN ra đời với kiến trúc thay đổi, có khả năng xây dựng liên kết chỉ
sử dụng một phần cục bộ trong ảnh kết nối đến node trong lớp tiếp theo thay vì
toàn bộ ảnh như trong mạng nơ-ron truyền thẳng.
1.3 Thuật toán FaceNet
Được phân tích và so sánh đánh giá bởi các nhà khoa học cho thấy thuật toán
Facenet độ chính xác khá cao, ứng dụng vào nhiều ứng dụng. Thật vậy, với công
bố ”Face Recognition Algorithm Bias: Performance Differences on Images of
Children and Adults”[7] của nhóm tác giả Nisha Srinivas, Karl Ricanek, Dana
Michalski đã cho thấy ứng dụng của thuật toán vào phân tích sự khác nhau giữa
trẻ em và người lớn. Thuật toán có thể được trainning từ nhiều nguồn dataset
nâng cao độ chính xác có thể thấy tính tiện lợi của thuật toán. Để thấy được sự
vượt trội của thuật toán, nhóm tác giả Ivan William, De Rosal Ignatius Moses
Setiadi , Eko Hari Rachmawanto đã so sánh đánh giá với các phương pháp khác
8


với đề tài “Face Recognition using FaceNet (Survey,Performance Test, and
Comparison)”[8] để thấy tính vượt trội về độ chính xác so với phương pháp
PCA,…
FaceNet cung cấp khả năng nhúng thống nhất cho các tác vụ nhận dạng, xác
minh và phân cụm khuôn mặt. Nó ánh xạ mỗi hình ảnh khuôn mặt vào một
không gian euclide sao cho khoảng cách trong không gian đó tương ứng với
khuôn mặt, tức là hình ảnh của một người sẽ được đặt gần hơn với tất cả các hình

ảnh khác của người đó so với hình ảnh của bất kỳ người nào khác có trong tập dữ
liệu.
Đầu tiên ta sẽ tìm hiểu cách biểu diễn khuôn mặt khi xử lý. Khi xử lý, khuôn
mặt sẽ được biểu diễn dưới dạng vector để quá trình nhận dạng, so sánh toán học
trở nên dễ dàng. Nói đến việc nhận dạng, xác định khuôn mặt này là của ai, chúng
ta sẽ cần tính độ giống, khác nhau giữa các khuôn mặt chúng ta lấy được. Và nói
về độ giống, khác nhau, để đơn giản, chúng ta sẽ quy về bài toán tính khoảng cách
giữa các vector.

Hình 1.7: FaceNet process

9


Bài toán đặt ra là tìm cách chuyển từ khung hình khuôn mặt sang vector sao
cho ảnh hai khuôn mặt gần nhau thì 2 vector tương ứng cũng phải có khoảng
cách gần nhau. Ảnh 2 khuôn mặt khác nhau thì 2 vector tương ứng cũng phải xa
nhau hơn. Như sơ đồ trên, mô hình sử dụng Triplet Loss.
Triplet là bộ ba thông số ta bao gồm: 1 ảnh mặt của 1 người bất kỳ (query), 1
ảnh mặt khác của người đó (positive), 1 ảnh mặt của người khác (negative). Với
việc huấn luyện mô hình như thế, chúng ta sẽ có thêm thông tin về mối quan hệ
giữa các ảnh, điều này giúp mô hình chúng ta phù hợp hơn nhiều với bài toán.

Hình 1.8: Triplet Loss

Để mô hình của chúng ta hiểu được khi huấn luyện để có thể giúp chúng ta
tạo ra các vector như ý, cần sử dụng bộ ba thông số trở nên hiệu quả. Và hàm
loss của mô hình chúng ta sẽ có dạng như sau:

l ( pi , p  i , p i )  max{0, g  D( f ( pi ), f ( p  i ))  D( f ( pi ), f ( p i ))} (1.4)

Với:
- f(p) là vector biểu diễn p
- D là khoảng cách giữa 2 vector
Chúng ta đang huấn luyện để cho hàm trên càng lớn càng tốt. Điều này có
nghĩa là mô hình chúng ta sẽ cố gắng học sao cho càng ngày, nó càng giảm
khoảng cách giữa 2 vector f(pi) (Query Image) và f(pi+) (Positive Image), và
tăng khoảng cách giữa Query Image và Negative Image. Đây là điều chúng ta
đang muốn mô hình học được.

10


Cụ thể hơn, chúng ta cần tính được hàm Loss. Chúng ta cần một ảnh xia của
một người tiến gần những ảnh khác xip (positive) của người đó trong bộ dataset
hơn là những ảnh của người khác xin (negative), được đại diện bới hệ số khoảng
cách α, cụ thể:

|| xia  xip ||22  || xia  xin ||22 ( xia , xip , xin ) 

(1.5)

Từ đó tính được hàm Loss:
N

L  [|| f ( xia )  f (xip ) ||22  || f ( xia )  f ( xin ) ||22  ]

(1.6)

i


Huấn luyện mô hình
Dataset huấn luyện bao gồm hai phần chính: Dataset cho quá trình pre-train
trích chọn đặc trưng của hệ thống. Ở đây sử dụng tập Labeled Face in Wild
(LFW). Dataset này bao gồm hơn 13000 ảnh mặt người (được gán nhãn) thu thập
trên mạng internet.

Hình 1.9: Dataset LWF

Phần thứ hai là data trainning để nhận diện nhúng vào trong phần mềm hệ
thống điểm danh. Quá trình thu tập dữ liệu trainning nhận dạng được mô tả chi
tiết như sau. Xây dựng cơ sở dữ liệu ảnh 150 người thu thập từ nhiều nguồn dữ
liệu khác nhau. Ảnh của 50 người đầu tiên được lấy chủ yếu từ nguồn website
chuyên phục vụ cho bài toán dò tìm khuôn mặt. 50 ảnh
người tiếp theo được lấy từ trang web với
khuôn mặt trực diện rất thích hợp cho việc trainning, nhận dạng. Cuối cùng là 50
ảnh của học sinh, sinh viên chụp từ điện thoại.

11


Hầu hết các khuôn mặt của tập mẫu dữ liệu xuất hiện trong ảnh là khuôn mặt
trực diện với mặt phẳng ảnh và mỗi khuôn mặt đều đầy đủ thông tin đặc trưng.
Một số khuôn mặt quay với một góc không đáng kể.
Kích thước chuẩn hoá của mỗi mẫu trong tập huấn luyện 30x30 (pixels) hoặc
32x32 (pixels). Tuỳ thuộc vào đặc trưng xử lý của mỗi thuật toán ta sử dụng một
trong hai dạng kích thước ảnh chuẩn trên.
Biểu diễn ảnh: Dữ liệu ảnh là cường độ sáng của điểm ảnh, tại vị trị X và Y,
I(x,y). Để biểu diễn dữ liệu cho các thuật toán học nhận dạng, ta dùng hai cách tổ
chức dữ liệu như sau:
Bước 1: Đọc từng dòng ảnh theo thứ tự từ trên xuống, mỗi dòng ảnh được bố trí

liên tục nhau trên một mảng số thực một chiều. Như vậy từ ảnh có kích thước
30x30 (pixels) ta biểu diễn thành mảng vector một chiều trong máy tính X =
(X1,X2,….,X900).
Bước 2: Đọc từng khối ảnh có kích thước 8x32 (pixel) theo thứ tự khối dưới
chồng lấp khối trên một nửa kích thước tính theo chiều cao, trên mỗi khối ảnh
này ta lại tiếp tục tách ra mỗi khối con 8x8 liên tục nhau. Từ khối 8x8 (pixels), ta
sẽ chọn ra 20 hệ số đặc trưng từ phép biến đổi trên miền tần số. Mỗi khối ảnh
8x32 sẽ được lượng hoá thành mỗi vector một chiều. Như vậy đối với ảnh mỗi
khuôn mặt ta biểu biển trong máy tính thành một chuỗi các vector một chiều liên
tiếp nhau.
1.4 Thuật toán MTCNN
Mục đích: Phát hiện khuôn mặt và các điểm trên mặt như mắt, mũi,…Phát
hiện khuôn mặt và căn chỉnh trong là một thách thức lớn do nhiều tư thế, ánh
sáng khác nhau. Với Deep Learning trên nền tảng MTCNN, chúng ta hoàn toàn
có thể nhận dạng, định vị chính xác khuôn mặt và các điểm trên khuôn mặt như
mắt, mũi,…
Thuật toán tốc độ tính toán nhanh, hiệu quả do MTCNN đã được rất nhiều tác
giả nghiên cứu và nâng cao độ chính xác. Điển hình với công bố của mình, nhóm
tác giả Rong Xie, Qingyu Zhang đã so sánh đánh giá phương pháp MTCNN với
các phương pháp khác để thấy được sự ưu việt với công bố “A Method of Small
Face Detection Based on CNN” [9].

12


Hình 1.10: So sánh phương pháp MTCNN

Thuật toán MTCNN CNN sử dụng mạng hiệu chuẩn để hiệu chỉnh khuôn mặt
sau khi phát hiện khuôn mặt. Nó bao gồm nhiều mô hình với số lượng tính toán
lớn, bỏ qua các liên kết nội tại giữa các nội giới hạn hồi quy của khuôn mặt và vị

trí của khuôn mặt. Thuật toán MTCNN là một thuật toán nhận diện khuôn mặt đa
tác vụ, thực hiện nhận diện khuôn mặt và điểm đặc trưng khuôn mặt. Qua phân
tích so sánh của tác giả, ta có thể nhận ra tốc độ xử lý dữ liệu của thuật toán là
khá cao, có thể đáp ứng yêu cầu hệ thống của mình. Chúng ta có thể biểu diễn
nguyên lý hoạt động MTCNN như hình dưới [9]:

Hình 1.11: Nguyên lý hoạt động MTCNN [9]

MTCNN hoạt động theo 3 bước và mỗi bước có một mạng Neural riêng biệt
gồm: P-Net, R-Net, O-Net. Tại mỗi bước sẽ thực hiện quá trình xử lý riêng với
kết quả là có thể phát hiện khuôn mặt trong ảnh đầu vào nhanh và chính xác. Với
mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều bản sao của hình ảnh đó với các kích
thước khác nhau.Sau đây chúng ta sẽ lần lượt đi sâu và phân tích cấu tạo, nguyên
lý hoạt động của từng mạng xử lý, từ đó có cái nhìn tổng quan nhất về thuật toán
MTCNN.

13


Hình 1.12: Quá trình xử lý mạng P-Net

Bước 1: Xử lý P-Net, thuật toán sử dụng một kernel 12x12 quét toàn bộ ảnh
để thu được các cửa sổ chứa khuôn mặt và các vectơ hồi quy trong các cửa sổ đó.
Tiếp theo, các cửa sổ chứa khuôn mặt được hiệu chuẩn dựa trên các vector hồi
quy. Cuối cùng, những cửa sổ xếp chồng nhau tại một vùng được hợp nhất thành
một cửa sổ (NMS). Sau khi qua tầng P-Net, ta sẽ thu được các cửa sổ có thể chứa
khuôn mặt.

Hình 1.13: Ví dụ xử lý mạng P-Net


Bước 2: Quá trình xử lý R-Net. Tất cả các cửa sổ chứa khuôn mặt từ tầng PNet sẽ được sàng lọc bằng cách đưa vào một CNN R-Net để tiếp tục loại bỏ một
số lượng lớn các cửa sổ không chứa khuôn mặt. Sau đó thực hiện hiệu chuẩn với
vector hồi quy và thực hiện hợp nhất các cửa sổ xếp chồng nhau tại một vùng.

Hình 1.14: Quá trình xử lý mạng R-Net

14


Dưới đây là quá trình xử lý của mạng R-Net. Từ ảnh sau quá trình xử lý P-Net,
quá trình lọc được xử lý và đưa ra ảnh sau xử lý đã loại bỏ được đáng kể vùng
không chứa khuôn mặt.

Hình 1.15: Ví dụ xử lý mạng R-Net

Bước 3: Quá trình xử lý O-Net. Tầng này tương tự như tầng R-Net, nó sử
dụng CNN chi tiết nhất - Mạng đầu ra (O-Net) để lọc kết quả một lần nữa và
đánh dấu vị trí năm điểm chính trên khuôn mặt. Những cửa sổ chứa khuôn mặt
sau khi đi qua tầng 3 là khuôn mặt được phát hiện.

Hình 1.16: Quá trình xử lý O-Net

Như vậy sau khi xử lý, thuật toán đưa ra 3 kết quả đầu ra khác nhau bao gồm:
xác suất của khuôn mặt nằm trong đường bao, tọa độ của đường bao khuôn mặt
và tọa độ của các mốc trên khuôn mặt (vị trí mắt, mũi, miệng).

15



×