86
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHNGUYN MNH HÙNG NGHIÊN CU VMNG NEURAL CONVOLUTIONAL, ÁP DNG VÀO BÀI TOÁN NHN DẠNG ĐỐI TƯỢNG TRONG LĨNH VỰC THGIÁC MÁY TÍNH LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Ni 2019

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN MẠNH HÙNG

NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,

ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG

TRONG LĨNH VỰC THỊ GIÁC MÁY TÍNH

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội – 2019

Page 2: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

ĐẠI HỌC QUỘC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN MẠNH HÙNG

NGHIÊN CỨU VỀ MẠNG NEURAL CONVOLUTIONAL,

ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG

TRONG LĨNH VỰC THỊ GIÁC MÁY TÍNH

Ngành : Công nghệ thông tin

Chuyên ngành : Kỹ thuật phần mềm

Mã số : 8480103.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐỖ TRUNG TUẤN

Hà Nội – 2019

Page 3: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

i

LỜI CAM ĐOAN

Tôi xin cam đoan: luận văn “Nghiên cứu về mạng neural Convolutional, áp dụng

vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính.” là công trình nghiên

cứu của tôi dưới sự hướng dẫn của giảng viên hướng dẫn, không sao chép lại của người

khác. Các tài liệu được luận văn tham khảo, kế thừa và trích dẫn đều được liệt kê trong

danh mục các tài liệu tham khảo.

Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan trên.

Hà Nội, ngày tháng năm 2019

Học viên

Nguyễn Mạnh Hùng

Page 4: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

ii

LỜI CẢM ƠN

Em xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ, Đại học quốc

gia Hà Nội, đặc biệt các thầy cô bộ môn Kỹ thuật phần mềm, đã tận tình dạy dỗ, giúp đỡ

và tạo mọi điều kiện tốt nhất cho em trong suốt quãng thời gian em theo học tại trường, để

em có thể hoàn thành được đề tài này.

Em tỏ lòng biết ơn sâu sắc với PGS.TS Đỗ Trung Tuấn, người thầy đã tận tình

hướng dẫn khoa học và giúp đỡ, chỉ bảo em trong suốt quá trình nghiên cứu và hoàn

thành luận văn này.

Tôi xin chân thành cảm ơn các bạn học viên cao học khóa 22 tại trường Đại học

Công nghệ, Đại học quốc gia Hà Nội đã giúp đỡ tôi trong quá trình theo học tại trường,

cũng như giúp đỡ tôi thực hiện đề tài này.

Xin trân trọng cảm ơn!

Page 5: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

iii

MỤC LỤC

LỜI CAM ĐOAN .........................................................................................i

LỜI CẢM ƠN ............................................................................................. ii

MỤC LỤC ................................................................................................. iii

DANH MỤC HÌNH VẼ.............................................................................. vi

DANH MỤC BẢNG BIỂU.......................................................................... x

DANH MỤC VIẾT TẮT ............................................................................ xi

LỜI MỞ ĐẦU .............................................................................................. 1

Lý do chọn đề tài ............................................................................................. 1

Cơ sở khoa học và thực tiễn của đề tài ............................................................. 1

Mục tiêu của luận văn ...................................................................................... 2

Cấu trúc luận văn ............................................................................................. 3

CHƯƠNG 1. ................................................................................................ 4

TỔNG QUAN VỀ MẠNG NƠ RON .......................................................... 4

VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP .............................. 4

1.1. Nơ ron nhân tạo .............................................................................. 4

1.1.1 Lịch sử của nơ ron nhân tạo .................................................................... 4

1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học................................. 5

1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo ................................ 5

1.1.4. Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo .......................... 8

1.2 Mạng nơ ron nhân tạo ................................................................... 11

1.2.1 Giới thiệu mạng nơ ron nhân tạo ........................................................... 11

1.2.2 Một số kiểu mạng nơ ron ...................................................................... 11

1.2.3 Mạng nơ ron lan truyền ngược .............................................................. 13

1.3 Mạng nơ ron tích chập .................................................................. 18

1.3.1 Khái niệm về mạng nơ ron tích chập ..................................................... 18

Page 6: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

iv

1.3.2 Mô hình mạng nơ ron tích chập ............................................................ 19

1.3.2 Xây dựng mạng nơ ron tích chập .......................................................... 20

1.4 Kết luận .......................................................................................... 27

CHƯƠNG 2. .............................................................................................. 28

BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ RON TÍCH CHẬP ....... 28

2.1 Khái niệm về nhận dạng ................................................................ 28

2.1.1 Nhận dạng đối tượng ............................................................................ 28

2.1.2 Nhận dạng khuôn mặt ........................................................................... 29

2.2. Lịch sử và phát triển ..................................................................... 30

2.3. Cách thức hoạt động ..................................................................... 30

2.4 Phương pháp nhận dạng đối tượng từ ảnh chụp của camera ..... 32

2.4.1 Nhận diện khuôn mặt ............................................................................ 32

2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt ...................................... 33

2.4.3 Liên kết khuôn mặt ............................................................................... 34

2.5 Kết quả các thuật toán sử dụng mạng nơ ron nhân tạo .............. 35

2.5.1 Mô hình DeepID 2 (NIPS 2014) ........................................................... 35

2.5.2 Mô hình DeepID3 (arXiv 2015) ............................................................ 38

2.5.3 Mô hình DeepFace (Facebook, CVPR 2014) ........................................ 39

2.5.4 Mô hình FaceNet (Google 2015)........................................................... 39

2.5.5 Mô hình Baidu (2015)........................................................................... 41

2.6 Kết luận .......................................................................................... 42

CHƯƠNG 3. .............................................................................................. 44

SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP .............................................. 44

TRONG NHẬN DẠNG ĐỐI TƯỢNG ..................................................... 44

3.1 Sơ lược về áp dụng mạng nơ ron tích chập vào các giải pháp

thông minh trong thực tế ................................................................. 44

Page 7: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

v

3.2 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện

người vào/ra và đánh giá thực nghiệm, so sánh với phương pháp

HOG ................................................................................................. 44

3.2.1 Giới thiệu hệ thống nhận diện và đếm lượt người vào/ra sử dụng mạng

nơ ron tích chập ....................................................................................... 44

3.2.2 Giới thiệu kiến trúc của máy chủ xử lý nhận diện và đếm lượng người . 45

3.2.3 Giới thiệu sơ lược về phương pháp mô tả đặc trưng HOG sẽ được dùng

để so sánh ................................................................................................ 47

3.2.4 So sánh khả năng nhận diện của hệ thống nhận diện người vào/ra sử

dụng mạng nơ ron tích chập với phương pháp HOG đã có ....................... 50

3.2.5 Mô tả cơ chế chạy nhận diện người trong lõi máy chủ tính toán ............ 52

3.2.6 Mô tả quá trình sử dụng hệ thống ở giao diện người dùng để hiển thị kết

quả .......................................................................................................... 53

3.3 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện

khuôn mặt và đánh giá thực nghiệm, so sánh với phương pháp

HOG ................................................................................................. 55

3.3.1 Xây dựng hệ thống nhận diện khuôn mặt .............................................. 55

3.3.2 Giới thiệu cơ chế của máy chủ xử lý nhận diện ..................................... 56

3.3.3 Giới thiệu sơ lược về phương pháp phát hiện khuôn mặt sử dụng HOG sẽ

được dùng để so sánh .............................................................................. 58

3.3.4 So sánh hệ thống nhận diện khuôn mặt với phương pháp HOG đã có ... 59

3.3.4 So sánh khả năng nhận diện khuôn mặt giữa HOG và CNN .................. 62

3.2.5 Kết quả hệ thống web nhận diện khuôn mặt .......................................... 64

3.3 Kết luận .......................................................................................... 67

KẾT LUẬN ................................................................................................ 68

Kết quả đã thực hiện được của luận văn......................................................... 68

Phương hướng phát triển luận văn ................................................................. 69

TÀI LIỆU THAM KHẢO ......................................................................... 70

Page 8: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

vi

DANH MỤC HÌNH VẼ

Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10]............. 4

Hình 1.2: Hình ảnh một nơ ron sinh học [14] .................................................................... 5

Hình 1.3: Công thức của một nơ ron nhân tạo [41]............................................................ 5

Hình 1.4: Hình ảnh một nơ ron nhân tạo ........................................................................... 6

Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế ...................................... 6

Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có

thiên lệch .......................................................................................................................... 7

Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau ........................ 7

Hình 1.8: Đồ thị hàm Sigmoid .......................................................................................... 8

Hình 1.9: Đồ thị hàm TanH .............................................................................................. 9

Hình 1.10: Đồ thị hàm tuyến tính ...................................................................................... 9

Hình 1.11: Đồ thị hàm RELU ......................................................................................... 10

Hình 1.12: Đồ thị hàm ELU ............................................................................................ 10

Hình 1.13: Mạng nơ ron truyền thẳng ............................................................................. 11

Hình 1.14: Mạng nơ ron hồi quy ..................................................................................... 12

Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy ............................................. 12

Hình 1.16: Các tầng (layer) trong CNN là 3 chiều........................................................... 18

Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20] ................... 19

Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19] ....................................... 19

Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ ............................................ 20

Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron ............ 20

Hình 1.21: Ví dụ về lớp tích chập ................................................................................... 21

Hình 1.22: So sánh giữa ReLU và Sigmoid. .................................................................... 23

Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp ............................................................ 24

Hình 1.24: Một ví dụ của lớp được kết nối đầy đủ .......................................................... 25

Hình 1.25: Ví dụ về trường hợp quá khớp (bên trái) và trường hợp chuẩn (bên phải) ...... 25

Page 9: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

vii

Hình 1.26: Cấu trúc của AlexNet .................................................................................... 26

Hình 1.27: Cấu trúc của VGGNet ................................................................................... 27

Hình 2.1: Sự khác biệt giữa nhận dạng đối tượng và phát hiện đối tượng ........................ 29

Hình 2.2: Một minh họa về một số bản đồ đặc trưng của các lớp DC12, conv22, conv32,

conv42 và conv52 được đào tạo cho nhiệm vụ nhận dạng khuôn mặt.............................. 29

Hình 2.3: Tổng quan về phương pháp nhận dạng khuôn mặt người ................................. 31

Hình 2.4: Thiết kế mạng nơ ron để xử lý ảnh .................................................................. 31

Hình 2.5: Các giai đoạn dò tìm và hiệu chỉnh .................................................................. 32

Hình 2.6: Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu ................. 33

Hình 2.7: Kiến trúc DCNN được sử dụng để trích xuất các mô tả cục bộ cho nhiệm vụ

phát hiện các điểm mốc trên khuôn mặt .......................................................................... 33

Hình 2.8: Ví dụ về các điểm mốc trên khuôn mặt............................................................ 34

Hình 2.9: Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS

CS2, là bộ dữ liệu mở rộng của IJB-A ............................................................................ 35

Hình 2.10: Kiến trúc mạng của mô hình DeepID 2 ......................................................... 36

Hình 2.11: 25 phần khuôn mặt tốt nhất được chọn để trích xuất đặc điểm ....................... 36

Hình 2.12: Kiến trúc mạng của mô hình DeepID3 .......................................................... 38

Hình 2.13: Kiến trúc của DeepFace ................................................................................ 39

Hình 2.14: Hình ảnh: Mô hình lấy cảm hứng từ Zeiler & Fergus .................................... 40

Hình 2. 15 Mô hình GoogleNet ....................................................................................... 40

Hình 2.16: Tổng quan về cấu trúc CNN trên nhiều phần khuôn mặt của Baidu ............... 41

Hình 2.17: Thống kê các mô hình, số lượng bộ dữ liệu sử dụng, và các mốc thời gian xuất

bản .................................................................................................................................. 42

Hình 3.1: Hình ảnh thiết kế của hệ thống nhận diện đối tượng ........................................ 45

Hình 3.2: Phương pháp mạng YOLO sử dụng để nhận diện đối tượng. ........................... 46

Hình 3.3: Mô hình mạng yolo ......................................................................................... 47

Hình 3.4: Tiền xử lý để xác định khung hình .................................................................. 48

Hình 3.5: Độ dốc sau khi tính toán .................................................................................. 48

Page 10: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

viii

Hình 3.6: Kết quả sau khi tính toán véc tơ đặc trưng cho từng ô ..................................... 49

Hình 3.7: Biểu diễn các véc tơ chỉ hướng theo HOG thu được sau khi tính toán ............. 50

Hình 3.8: Hình ảnh nhận diện bằng phương pháp HOG .................................................. 50

Hình 3.9: Hình ảnh nhận diện bằng phương pháp CNN .................................................. 51

Hình 3.10: Hệ thống sử dụng ffmpeg để trích xuất các khung hình trong video .............. 52

Hình 3.11: Các khung hình lần lượt được hệ thống trích xuất và đưa vào lõi để xử lý. .... 52

Hình 3.12: Dữ liệu số người vào/ra được nhập vào cơ sở dữ liệu, và video báo cáo được

hệ thống tự động xuất ra để làm đối chiếu. ...................................................................... 53

Hình 3.13: Hình ảnh đăng nhập vào hệ thống.................................................................. 53

Hình 3.14: Kết quả dữ liệu đã được thêm vào cơ sở dữ liệu và hiển trị trên web. ............ 54

Hình 3.15: Một ví dụ tương tự dữ liệu được xuất báo cáo nhận diện trong hệ thống. ....... 54

Hình 3.16: Kiến trúc hệ thống nhận diện khuôn mặt, tích hợp cùng hệ thống mua hàng .. 55

Hình 3.17: Khuôn mặt được trích xuất từ bức ảnh ........................................................... 56

Hình 3.18: Hình ảnh 68 điểm mốc trên khuôn mặt được sử dụng trên bộ thư viện dlib ... 57

Hình 3.19: Hình ảnh trích xuất đặc trưng khuôn mặt ....................................................... 57

Hình 3.20: Khuôn mặt được sử dụng để nhận dạng ......................................................... 58

Hình 3.21: Khuôn mặt được trích xuất ............................................................................ 58

Hình 3.22: Hình ảnh được xử lý sau khi qua bộ lọc Gabor .............................................. 58

Hình 3.23: Các đặc trưng được trích xuất bằng HOG ...................................................... 59

Hình 3.24: Phát hiện khuôn mặt sử dụng HOG ............................................................... 59

Hình 3.25: Phát hiện khuôn mặt sử dụng CNN ............................................................... 60

Hình 3.26: Phát hiện khuôn mặt sử dụng HOG với góc nghiêng lớn ............................... 60

Hình 3.27: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn ............................... 61

Hình 3.28: Kết quả nhận diện khuôn mặt với HOG ......................................................... 62

Hình 3.29: Phát hiện khuôn mặt sử dụng CNN ............................................................... 62

Hình 3. 30: Nhận diện khuôn mặt sử dụng HOG với góc nghiêng lớn ............................. 63

Hình 3.31: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn ............................... 63

Page 11: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

ix

Hình 3.32: Giao diện hệ thống trên web (hai hình trên) và giao diện hệ thống trên mobile

(hai hình dưới) ................................................................................................................ 65

Hình 3.33: Huấn luyện thêm khuôn mặt mới ................................................................... 65

Hình 3.34: Kết quả nhận diện sau khi huấn luyện ........................................................... 66

Hình 3.35: Nhận diện user có ID 00280 với góc nghiêng khoảng 80 độ và user có ID

00388 với góc nghiêng 30 độ trên mặt phẳng Oxz .......................................................... 67

Page 12: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

x

DANH MỤC BẢNG BIỂU

Bảng 2.1: Thống kê xác minh độ chính xác của khuôn mặt bằng DeepID2 khi tăng dần số

lượng của các phần khuôn mặt ........................................................................................ 36

Bảng 2.2: So sánh độ chính xác của mô hình DeepID2 với các kết quả mô hình trước đó

trên bộ thư viện LFW...................................................................................................... 37

Bảng 2.3: Kết quả so sánh của mô hình DeepID3 với các mô hình trước trên bộ thư viện

LFW ............................................................................................................................... 38

Bảng 2.4: Kết quả của khi so sánh DeepFace với các công nghệ hiện đại trên bộ dữ liệu

LFW ............................................................................................................................... 39

Bảng 2.5: Bảng so sánh hiệu suất của kiến trúc mạng trên FaceNet ................................ 41

Bảng 2.6: Bảng so sánh độ chính xác dựa trên số lượng dữ liệu đào tạo .......................... 41

Bảng 2.7: Tỉ lệ lỗi trên lượng dữ liệu khác nhau ............................................................. 42

Bảng 3.1 Kết quả so sánh nhận diện người giữa phương pháp mạng nơ ron tích chập và

phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống ................... 51

Bảng 3.2: Kết quả so sánh phát hiện khuôn mặt giữa phương pháp mạng nơ ron tích chập

và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống .............. 61

Bảng 3.3: Kết quả so sánh nhận diện khuôn mặt giữa phương pháp mạng nơ ron tích chập

và phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống .............. 64

Bảng 3.4: Cơ sở dữ liệu thời gian phát hiện khuôn mặt của hệ thống .............................. 67

Page 13: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

xi

DANH MỤC VIẾT TẮT

Từ viết tắt Ý nghĩa

AI Artificial Intelligence - Trí tuệ nhân tạo

ANN Artificial Neural Network – Mạng thần kinh nhân tạo

CNN Convolutional Neural Network – Mạng thần kinh tích chập

ReLU Rectified Linear Unit – Điều chỉnh đơn vị tuyến tính

CSDL Cơ sở dữ liệu

GPU Graphics Processing Unit – Vi xử lý đồ họa

CPU Central Processing Unit – Bộ xử lý trung tâm

CUDA Compute Unified Device Architecture - kiến trúc tính toán song song

do hãng NVIDIA phát triển.

IOT Internet of Things – vạn vật kết nối

ASCI Red Accelerated Strategic Computing Initiative Red – một siêu máy tính

của Intel

W Watt – một đơn vị đo lường của điện lực

kW KiloWatt – một đơn vị đo lường của điện lực

SVM Support Vector Machine – một thuật toán phân lớp

DP2MFD Deep Pyramid Deformable Parts Model for Face Detection

IJB-A IARPA Janus Benchmark-A – một thử thách mở cho nhận diện khuôn

mặt

KLT Kanade–Lucas–Tomasi – một giải thuật thị giác máy tính

LFW Labeled Faces in the Wild – một bộ thư viện khuôn mặt

Page 14: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

xii

API Application Programming Interface – giao diện lập trình

YOLO You only look once – một hệ thống mạng nơ ron nhân tạo phát hiện

đối tượng thời gian thực

HOG Histogram of Oriented Gradients – biểu đồ độ dốc định hướng

PCA Principal Component Analysis - Phân tích thành phần chính

Page 15: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

1

LỜI MỞ ĐẦU

Lý do chọn đề tài

Trong giai đoạn gần đây, cụm từ cách mạng công nghiệp lần thứ tư được nhắc đến

rất nhiều trên truyền thông. Khái niệm cách mạng công nghiệp 4.0 được đưa ra dựa trên

xu thế bùng nổ của nhiều công nghệ mới như: công nghệ truyền dẫn tốc độ cao, CPU rất

mạnh, GPU hàng ngàn nhân, công nghệ chế tạo bộ nhớ đạt nhiều đột phá. Song song với

đó, công nghệ dần làm các thiết bị nhỏ lại, nhưng sức mạnh tăng lên đáng kể. Công nghệ

mạch nhúng cũng bùng nổ không kém với nhiều mạch nhúng nhỏ, sử dụng lượng điện

khiêm tốn, nhưng khả năng tính toán lên tới hàng ngàn tỉ phép tính trên giây, tương

đương sức mạnh của 1 siêu máy tính cách đây khoảng 20 năm. Ví dụ như board mạch

Nvidia's Jetson TX1 được ra mắt năm 2015, có thể nằm vừa trong lòng bàn tay và chỉ sử

dụng 10 oát điện, đã có sức mạnh tính toán tới 1 ngàn tỉ phép tính trên giây, điều mà cách

đó tròn 20 năm, vào năm 1996, siêu máy tính ASCI Red của Intel, phải sử dụng tới 6000

vi xử lý Pentium Pros, vận hành với 1000 kW mới có thể đạt được sức mạnh tính toán

trên.

Máy tính hiện nay có sức mạnh tính toán lớn nhưng giá thành lại ở mức phổ thông,

dẫn tới người làm nghiên cứu rất dễ dàng để có thể tự kiểm nghiệm được các lý thuyết về

trí tuệ nhân tạo từ nhiều năm trước. Cùng với mã nguồn mở, hiện làn sóng trí tuệ nhân tạo

đang bùng nổ mạnh mẽ trong thời gian gần đây, và đem lại rất nhiều ứng dụng trong đời

sống

Chính vì lý do trên, việc tìm hiểu và nghiên cứu thị giác máy tính rất có ý nghĩa và

thiết thực. Hiện nay trên thế giới, nhiều nước đã và đang ứng dụng thị giác máy tính vào

đời sống hàng ngày, ví dụ như SkyNet của Trung Quốc, các hệ thống kiểm duyệt nội

dung tự động, …

Cơ sở khoa học và thực tiễn của đề tài

Ngày nay, trong kỷ nguyên số, máy tính là một phần không thể thiếu trong nghiên

cứu khoa học cũng như trong đời sống hàng ngày. Tuy nhiên, do hệ thống máy tính dựa

trên lý thuyết cổ điển (tập hợp, logic nhị phân), nên dù có khả năng tính toán lớn và độ

chính xác cao, thì máy tính cũng chỉ có thể làm việc theo một chương trình gồm các thuật

toán được viết sẵn do lập trình viên chứ chưa thể tự lập luận hay sáng tạo.

Học máy (Machine learning) là một phương pháp phân tích dữ liệu có thể tự động

hóa phân tích dữ liệu và tìm ra các trích xuất đặc trưng của bộ dữ liệu. Học máy sử dụng

các thuật toán trừu tượng để tự học từ dữ liệu, cho phép máy tính tìm thấy những thông

Page 16: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

2

tin có giá trị ẩn ở rất sâu mà không thể lập trình được bằng cách thông thường. Khi tiếp

xúc với dữ liệu mới, học máy có thể thích ứng rất nhanh và độc lập.

Học sâu (Deep Learning) là một ngành đặc biệt của học máy. Học sâu sử dụng

mạng nơ ron nhân tạo (Artificial Neural Networks) để giải quyết các bài toán mà tính toán

cứng chưa thể xử lý được như dữ liệu trừu tượng, dữ liệu mờ, dữ liệu không rõ ràng,...

Với tính chất như vậy, học sâu thường được ứng dụng trong nhận diện hình ảnh, nhận

diện giọng nói, xử lý ngôn ngữ tự nhiên hoặc dự đoán, dự báo.

Mạng nơ ron nhân tạo (Artificial Neural Networks) là một mô hình xử lý thông tin,

cấu thành từ các lớp nơ ron, được ra đời trên cơ sở mô phỏng hoạt động não bộ của sinh

vật. Mạng nơ ron nhân tạo gắn kết nhiều nơ ron theo một mô hình nhất định, được trải

qua huấn luyện để rút ra được kinh nghiệm, và sử dụng các kinh nghiệm đã có để xử lý

các thông tin mới. Mạng nơ ron nhân tạo thường áp dụng vào giải các bài toán nhận dạng

mẫu, hoặc dự đoán.

Mạng nơ ron Tích chập (Convolutional Neural Network) là một trong những mô

hình học sâu hiện đại nhất hiện nay. Mạng nơ ron Tích chập hiện nay thường được sử

dụng nhiều trong các hệ thống thông minh do ưu điểm của mạng là có độ chính xác cao,

tuy nhiên tốc độ tính toán lại rất nhanh. Vì lý do đó, mạng nơ ron tích chập rất mạnh trong

xử lý hình ảnh, và được ứng dụng rất nhiều trong ngành thị giác máy tính trong các bài

toán liên quan đến nhận dạng đối tượng.

Ngày nay, với sự phát triển của công nghệ bán dẫn, máy tính ngày càng nhỏ đi,

năng lượng tiêu thụ ngày càng thấp xuống, trong khi sức mạnh lại ngày càng tăng lên. Với

những ưu điểm như vậy, chúng ta có thể thấy rất nhiều thiết bị thông minh đã và đang

hiện diện mọi nơi trong đời sống, với camera nhiều điểm ảnh, bộ nhớ trong lớn và vi xử

lý mạnh như: điện thoại thông minh, máy ảnh kỹ thuật số, camera hành trình,… Ngoài ra,

với sự bùng nổ của xu hướng mạng vạn vật IOT, người ta có thể sẽ còn thấy rất nhiều

thiết bị thông minh mới xuất hiện: xe ô tô tự lái, thiết bị bay không người lái tự giao

hàng,... Có thể thấy, việc sử dụng trí thông minh nhân tạo để khai thác dữ liệu hình ảnh

trong các thiết bị thông minh trong tương lai đã và đang trở thành xu hướng. Từ nhận

định trên và sự gợi ý của giảng viên hướng dẫn, tôi quyết định chọn nội dung “Nghiên

cứu về mạng Neural Convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh

vực thị giác máy tính” để làm đề tài nghiên cứu thực hiện luận văn thạc sỹ của mình.

Mục tiêu của luận văn

Luận văn của tôi tập trung vào nghiên cứu, tìm hiểu về mạng nơ ron tích chập. Sau

đó so sánh các phương pháp học sâu ở mức độ tổng quan trên phương diện học thuật, từ

Page 17: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

3

đó thấy được tiềm năng cũng như hạn chế của AI với cái nhìn khách quan nhất. Ở phần

ứng dụng, tôi sử dụng mạng nơ ron tích chập để áp dụng vào hai bài toán thực tế: bài toán

nhận dạng người và bài toán nhận diện khuôn mặt trong lĩnh vực thị giác máy tính.

Cấu trúc luận văn

Luận văn được tổ chức gồm ba chương gồm:

Chương 1: Trình bày tổng quan về nơ ron, các thành phần và cơ chế hoạt

động của nơ ron. Từ đó, trình bày về một số kiểu mạng nơ ron và cơ chế lan

truyền ngược. Cuối cùng là giới thiệu về cấu tạo và cách hoạt động của

mạng nơ ron tích chập;

Chương 2: Trình bày tổng quan về bài toán nhận dạng bằng mạng nơ ron

tích chập, cách thức hoạt động của việc nhận dạng đối tượng và nhận dạng

khuôn mặt của mạng nơ ron tích chập. Ngoài ra, chương hai giới thiệu về

các mô hình sử dụng nơ ron tích chập nổi tiếng đang được áp dụng hiện nay

và kết quả của từng mô hình;

Chương 3: Áp dụng mạng nơ ron tích chập vào trong thực tế. Ở chương

này, tác giả báo cáo về kết quả đạt được khi áp dụng mạng nơ ron tích chập

để xây dựng hai hệ thống: hệ thống nhận dạng người và hệ thống nhận diện

khuôn mặt. Ngoài ra, tác giả có thực hiện so sánh với phương pháp cũ để có

thể thấy ưu điểm và hạn chế của mạng nơ ron tích chập.

Cuối cùng là phần kết luận cho phép tóm tắt kết quả đã đạt được và nêu ra những

tồn tại, dựa vào đó để đưa ra những mục tiêu và phương hướng phát triển cho hệ thống

sau này.

Page 18: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

4

CHƯƠNG 1.

TỔNG QUAN VỀ MẠNG NƠ RON

VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP

1.1. Nơ ron nhân tạo

1.1.1 Lịch sử của nơ ron nhân tạo

Vào năm 1943, nhà thần kinh học Warren McCulloch đã cùng nhà toán học

Walter Pitts đã viết một cuốn sách về cách mạng thần kinh hoạt động. Và họ đã thực hiện

mô phỏng một mạng thần kinh đơn giản trên một mạch điện. [9]

Vào năm 1949, Donald Hebb đã viết cuốn sách Organization of Behavior. Điểm

nhấn chính là mạng thần kinh nào được sử dụng nhiều sẽ được tăng cường.

Vào năm 1959, David Hubel và Torsten Wiesel đã xuất bản cuốn sách Receptive

fields of single neurons in the cat’s striate cortex, miêu tả về phản ứng của các tế bào thần

kinh thị giác trên loài mèo, cũng như cách loài mèo ghi nhớ và nhận diện hình dạng trên

kiến trúc vỏ não của nó.

Hình 1.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10]

Vào năm 1989, Yann LeCun đã áp dụng thuật toán học cho mạng nơ ron theo kiểu

lan truyền ngược vào kiến trúc mạng nơ ron tích chập của Fukushima. Sau đó vài năm,

LeCun đã công bố LeNet-5 [13]. Có thể nói, LeNet-5 là một trong những mạng nơ ron

tích chập sơ khai nhất, tuy nhiên các dấu ấn của nó vẫn tồn tại tới ngày nay, có thể thấy

thông qua một số thành phần thiết yếu mà các mạng nơ ron tích chập của ngày nay vẫn

đang sử dụng

Page 19: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

5

1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học

Hình 1.2: Hình ảnh một nơ ron sinh học [14]

Một nơ ron gồm có: thân nơ ron, tua gai thần kinh, sợi trục thần kinh, trong đó:

Thân nơ ron: là nơi xử lý các tín hiệu được đưa vào;

Tua gai thần kinh: là nơi nhận các xung điện vào trong nơ ron;

Sợi trục thần kinh: là nơi đưa tín hiệu ra ngoài sau khi được xử lý bởi nơ

ron;

Khớp thần kinh: vị trí nằm giữa tua gai thần kinh và sợi trục thần kinh, đây

là điểm liên kết đầu ra của nơ ron này với đầu vào của nơ ron khác.

1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo

Dựa vào cấu tạo của một nơ ron sinh học, các nhà khoa học nghiên cứu và lập trình

đã đưa ra kiến trúc của một nơ ron nhân tạo:

Hình 1.3: Công thức của một nơ ron nhân tạo [41]

Page 20: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

6

Mạng nơ ron nhân tạo có thể mô tả đơn giản lại như sau:

Hình 1.4: Hình ảnh một nơ ron nhân tạo

Trong đó:

Danh sách các đầu vào: Là các thuộc tính đầu vào của một nơ ron. Số

lượng thuộc tính đầu vào thường nhiều hơn một, do dữ liệu thô đầu vào

thường là một vector nhiều chiều, hoặc nhiều nơ ron tầng trước kết nối tới

một nơ ron tầng sau.

Trọng số liên kết: Các liên kết được thể hiện độ mạnh yếu qua một giá trị

được gọi là trọng số liên kết. Kết hơp với các đầu truyền, tín hiệu đến các

nơ ron nhân tạo khác sẽ được tính bằng ;

Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế

Page 21: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

7

Hàm tổng: Tổng các tích của các đầu vào với trọng số liên kết mô phỏng

các khớp kết nối. Sau đó đi qua hàm tính tổng để tính ra giá trị trước khi

đưa vào hàm truyền;

Thiên lệch (b): Độ lệch được đưa vào sau khi khi tính toán xong hàm tổng,

tạo ra giá trị cuối cùng trước khi đưa vào hàm truyền. Mục đích của việc

thêm vào thiên lệch nhằm dịch chuyển chức năng của hàm kích hoạt sang

trái hoặc phải, giúp ích khi mạng được huấn luyện. Hình ảnh vị trí thiên

lệch được thêm vào trong mạng nơ ron thực tế.

Hình ảnh huấn luyện khi có và không có thiên lệch:

Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có thiên lệch

Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau

Hàm kích hoạt (Activation functions): Hàm này được sử dụng để tính toán giá trị

của đầu ra dựa vào giá trị của hàm Tổng.

Page 22: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

8

1.1.4. Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo

1.1.4.1 Hàm Sigmod

Biểu diễn hàm:

Đạo hàm của hàm:

Hàm Sigmoid được sử dụng vì ngưỡng của nó nằm trong khoảng (0, 1). Do đó,

hàm này được sử dụng nhiều cho các mô hình dự đoán xác suất đầu ra, tức kết quả chỉ tồn

tại trong khoảng từ 0 đến 1: khi đầu vào là số dương lớn, đầu ra của hàm sigmoid gần

bằng 1. Khi nhỏ hơn 0, đầu ra gần bằng 0. Tuy nhiên, việc tối ưu của hàm này khó

khăn, nguyên nhân vì nếu giá trị đầu vào của hàm là 1 số rất lớn, thì đầu ra của hàm càng

về 2 đầu xấp xỉ 1 hoặc 0, nên tốc độ hội tụ sẽ rất chậm.

Hình 1.8: Đồ thị hàm Sigmoid

1.1.4.2 Hàm TanH

Biểu diễn hàm:

Đạo hàm của hàm:

Hàm TanH được sử dụng vì đầu ra của hàm nằm trong khoảng , thích hợp

với các mô hình đầu ra có ba giá trị: âm, trung tính (0) và dương. Chúng ta có thể thấy rõ

hơn điều này trong hình minh họa.

Page 23: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

9

Hình 1.9: Đồ thị hàm TanH

1.1.4.3. Hàm tuyến tính

Biểu diễn hàm:

Đạo hàm của hàm:

Hàm tuyến tính áp dụng thao tác nhận dạng trên dữ liệu với dữ liệu đầu ra tỷ lệ

thuận với dữ liệu đầu vào.

Hình 1.10: Đồ thị hàm tuyến tính

1.1.4.4 Hàm RELU

Biểu diễn hàm:

Đạo hàm của hàm:

Hàm RELU áp dụng với những trường hợp cần đầu ra nằm trong khoảng (0, +∞).

Hàm RELU có tốc độ tính toán rất nhanh, gán các giá trị âm trở thành 0 ngay lập tức, phù

Page 24: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

10

hợp cho việc huấn luyện từ dữ liệu chuẩn. Tuy nhiên, điều này khiến hàm RELU không

ánh xạ các giá trị âm một cách thích hợp.

Hình 1.11: Đồ thị hàm RELU

1.1.4.5 Hàm ELU

Biểu diễn hàm:

Đạo hàm của hàm:

Hàm ELU là một biến thể của hàm RELU. Hàm thường được sử dụng khi ngưỡng

đầu ra của nó nằm trong khoảng (-1, +∞). Hàm ELU khắc phục hạn chế ánh xạ các giá trị

âm của hàm RELU.

Hình 1.12: Đồ thị hàm ELU

Page 25: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

11

1.2 Mạng nơ ron nhân tạo

1.2.1 Giới thiệu mạng nơ ron nhân tạo

Mạng nơ ron nhân tạo (Artificial Neural Network ANN) là một chuỗi các giải

thuật lập trình, mô phỏng dựa trên cách hoạt động của mạng lưới thần kinh trong não bộ

các sinh vật sống. Mạng nơ ron nhân tạo được sử dụng để tìm ra mối quan hệ của một tập

dữ liệu thông qua một thiết kế kiến trúc chứa nhiều tầng ẩn (hidden layer), mỗi tầng lại

chứa nhiều nơ ron. Các nơ ron được kết nối với nhau và độ mạnh yếu của các liên kết

được biểu hiện qua trọng số liên kết.

Lập trình thông thường có thể làm được rất nhiều phần mềm lớn, như tính toán mô

phỏng các vụ nổ hạt nhân trong siêu máy tính ở các phòng thí nghiệm, hoặc tái hiện các tế

bào ở cấp độ phân tử để phân tích các thử nghiệm thuốc. Một siêu máy tính có thể tính

toán được nhiều tỉ phép tính trên giây, tuy nhiên lập trình thông thường lại gặp khó khăn

trong việc nhận ra các mẫu đơn giản, ví dụ như nhận diện mặt người, điều mà một bộ não

sinh học xử lý nhanh và chính xác hơn nhiều.

Áp dụng với các kỹ thuật học sâu, mạng nơ ron nhân tạo hiện nay đang được áp

dụng để giải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giải

quyết được. Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xu

thế trên nhiều lĩnh vực.

1.2.2 Một số kiểu mạng nơ ron

Có hai kiểu mạng nơ ron chính: mạng nơ ron truyền thằng (feedforward neural

network) và mạng nơ ron hồi quy (recurrent neural network).

Mạng truyền thẳng và hồi quy được minh họa như sau:

Hình 1.13: Mạng nơ ron truyền thẳng

Page 26: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

12

Dễ thấy, ở mạng nơ ron truyền thẳng, các nơ ron trong tầng ẩn đều được kết

nối với các nơ ron trong tầng n. Do có nhiều tầng ẩn nên chúng ta có thể thấy rằng mạng

truyền thẳng kéo dài trong không gian, và là không có bất kỳ đường tuần hoàn (cyclic

path) nào nằm trong mạng. Mạng nơ ron truyền thẳng rất phổ biến hiện nay.

Hình 1.14: Mạng nơ ron hồi quy

Một loại khác là mạng nơ ron hồi quy. Không giống như mạng nơ ron truyền

thẳng, mạng nơ ron hồi quy có ít nhất một đường dẫn tuần hoàn. Chúng ta có thể thấy nó

ở hình minh họa phía trên. Vì có một đường dẫn tuần hoàn, nên mạng nơ ron hồi quy có

thể gây ra vòng lặp vô cực. Tuy nhiên, mạng nơ ron tuần hoàn có một ứng dụng quan

trọng là chúng có thể nhận diện cho các giai đoạn thời gian khác nhau, như hình minh họa

sau:

Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy

Như ví dụ trên, có một nút A kết nối với nút B và một chu kỳ đến chính nút A.

Mạng nơ ron hồi quy không xử lý đường dẫn tuần hoàn và các kết nối cùng một lúc.

Mạng nơ ron hồi quy giả sử rằng đầu ra của nút A trong thời gian n là đầu vào của nút B

và nút A trong thời gian n + 1. Vì vậy, ngoài tính chất kéo dài trong không gian khi kết

nối với các tầng nơ ron tiếp theo, mạng nơ ron hồi quy cũng nằm sâu trong thời gian. Vì

vậy, các mạng nơ ron hồi quy có thể mô hình hóa các hệ thống thay đổi theo bối cảnh. Ví

dụ: mạng nơ ron hồi quy thường được sử dụng trong xử lý ngôn ngữ theo ngữ cảnh. Mạng

Page 27: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

13

nơ ron hồi quy có thể xử lý các phụ thuộc xa (long-term dependencies) theo mốc thời

gian, ví dụ như mạng bộ nhớ dài-ngắn (Long Short Term Memory networks).

1.2.3 Mạng nơ ron lan truyền ngược

1.2.3.1 Tổng quan về mạng nơ ron lan truyền ngược

Giải thuật lan truyền ngược được mô tả ngắn gọn như sau:

1. Bước 1: Lan truyền. Giai đoạn lan truyền có hai bước, lan truyền tiến và lan

truyền ngược. Bước lan truyền tiến là nhập dữ liệu huấn luyện vào các

mạng nơ ron và tính toán đầu ra. Sau đó, dựa vào kết quả đầu ra, so sánh với

dữ liệu huấn luyện. Chúng ta có thể sử dụng lan truyền ngược để cập nhật

ngược lại trọng số lại cho các nơron trong các tầng trước đó.

2. Bước 2: Cập nhật trọng số. Mạng cập nhật các giá trị của trọng số của nơ

ron theo lỗi của kết quả đầu ra.

3. Bước 3: Lặp hai bước trên. Lặp lại bước một và hai cho đến khi sai số tối

thiểu. Sau đó kết thúc khóa huấn luyện.

1.2.3.2 Cách thức lan truyền ngược

1. Sử dụng để biểu diễn đầu vào cho nút của lớp .

2. Sử dụng cho trọng số từ nút của lớp đến nút của lớp

3. Sử dụng được biểu diễn cho độ lệch của nút của lớp .

4. Sử dụng đại diện cho đầu ra của nút của lớp .

5. Sử dụng đại diện cho đầu ra mong muốn, dựa trên tập huấn luyện được sử

dụng.

6. Sử dụng là hàm kích hoạt, sử dụng Sigmoid cho hàm kích hoạt.

Để có được lỗi tối thiểu, hàm chi phí được tính toán với công thức như sau:

Page 28: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

14

Trong đó x là đầu vào dữ liệu huấn luyện và là đầu ra mong muốn. L là tổng số

lớp và L

jylà đầu ra của mạng nơ ron tương ứng với đầu vào x. Để đạo hàm dễ dàng, ta

nhân tổng của (4) với một hằng số 1/2.

Để tìm ra mức tối thiểu. Trước tiên, ta tính toán các đạo hàm riêng của hàm chi phí

đối với bất kỳ trọng số nào, với công thức sau:

Có hai trường hợp: Nút là một nút đầu ra hoặc trong một tầng ẩn. Trong trường

hợp ở tầng đầu ra, trước tiên chúng ta tính đạo hàm chênh lệch:

Phương trình cuối cùng dựa trên quy tắc chuỗi. Nút là nút duy nhất có trọng số

nên các giá trị khác sẽ bằng 0. Và là đầu ra của hàm kích hoạt (hàm Sigmoid). Do

đó, phương trình mới thu được là:

Trong đó L

kx sự kết hợp tuyến tính của tất cả các đầu vào của nút j trong tầng L với

các trọng số. Hàm sigmoid là đạo hàm có dạng sau:

Page 29: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

15

Do đó, hàm trên trở thành:

Vì 1

1

L L

ik i

L

k

i L

x yW

. Vì vậy, (9) trở thành:

(10)

Vì liên quan đến và không liên quan khi khác . Do đó, có mối

quan hệ giữa nút của tầng và nút của tầng . Ta có công thức:

để biểu diễn nút của tầng . Do vậy, phương trình mới thu được là:

Ta xem xét các nút của tầng ẩn . Ở lớp ngay trước lớp đầu ra. Áp dụng đạo

hàm riêng một phần trên trọng số cho hàm chi phí. Các trọng số cho các nút của tầng ẩn

này:

Page 30: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

16

Vì có một tổng trên tầng. Do thay đổi của các trọng số cho các nút của các

tầng ẩn sẽ ảnh hưởng đến đầu ra mạng nơ ron. Do đó, áp dụng quy tắc chuỗi (chain rule):

Sau đó, đạo hàm theo quy tắc chuỗi:

Dòng thứ 2 của (14) dựa vào đầu vào của là sự kết hợp tuyến tính giữa các đầu

ra của nút của lớp trước với trọng số. Vì đạo hàm không liên quan đến nút của lớp L.

Do đó, ta đơn giản hóa đạo hàm dựa trên quy tắc chuỗi:

Chuyển thành . Do đó phương trình trở thành:

Ta xét 2 trường hợp:

Page 31: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

17

Đối với tầng đầu ra nút k: , trong đó:

Đối với tầng ẩn nút j: , trong đó:

Áp dụng quy trình tương tự. Ví dụ, Tính đạo hàm riêng cho độ lệch của nút k trong

lớp cuối cùng và thu được:

Bởi vì nên . Phương trình có thể được cập nhật

thành:

Công thức trên áp dụng với bất kể đầu ra nào. Vì vậy, độ dốc của hàm chi phí so

với độ lệch là:

Rút ra từ công thức trên, giải thuật loan truyền ngược sẽ được mô tả như sau:

Bước 1: Chạy mạng tính toán với dữ liệu đầu vào để có được đầu ra mạng

Bước 2: Đối với mỗi nút đầu ra, ta thực hiện phép tính:

Bước 3: Đối với mỗi nút ở tầng ẩn, ta thực hiện phép tính:

Page 32: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

18

Bước 4: Cập nhật các trọng số và thiên lệch như sau:

Giả thiết:

Áp dụng:

Tham số trong thuật toán được gọi là tốc độ học tập. Thuật toán này lặp lại cho

đến khi đạt sai số tối thiểu hoặc dưới ngưỡng chấp nhận được để hoàn thành quá trình

huấn luyện.

1.3 Mạng nơ ron tích chập

1.3.1 Khái niệm về mạng nơ ron tích chập

Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt. Mạng nơ

ron tích chập là một mô hình học sâu phổ biến và tiên tiến nhất hiện nay. Hầu hết các hệ

thống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lý

nhanh và độ chính xác cao. Trong mạng nơ ron truyền thống, các tầng được coi là một

chiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: chiều cao,

chiều rộng và chiều sâu (Hình 1.11). Mạng nơ ron tích chập có hai khái niệm quan trọng:

kết nối cục bộ và chia sẻ tham số. Những khái niệm này góp phần giảm số lượng trọng số

cần được huấn luyện, do đó tăng nhanh được tốc độ tính toán.

Hình 1.16: Các tầng (layer) trong CNN là 3 chiều

Page 33: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

19

Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20]

1.3.2 Mô hình mạng nơ ron tích chập

Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập:

1. Tầng tích chập;

2. Tầng gộp (pooling layer);

3. Tầng được kết nối đầy đủ (fully-connected).

Tầng kết nối đầy đủ giống như các mạng nơ ron thông thường, và tầng chập thực

hiện tích chập nhiều lần trên tầng trước. Tầng gộp có thể làm giảm kích thước mẫu trên

từng khối 2x2 của tầng trước đó. Ở các mạng nơ ron tích chập, kiến trúc mạng thường

chồng ba tầng này để xây dựng kiến trúc đầy đủ. Ví dụ minh họa về một kiến trúc mạng

nơ ron tích chập đầy đủ:

Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19]

Page 34: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

20

1.3.2 Xây dựng mạng nơ ron tích chập

1.3.2.1 Mạng được kết nối cục bộ

Trong xử lý hình ảnh, thông tin của hình ảnh là các điểm ảnh (pixel). Nếu sử dụng

mạng được kết nối đầy đủ, chúng ta sẽ có rất nhiều tham số. Ví dụ, một hình ảnh RGB có

kích thước 512x512 pixel sẽ có 786432 (= 512 x 512 x 3) tham số đầu vào. Vì vậy, nếu

chúng ta sử dụng kiến trúc mạng nơ ron trong hình sau:

Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ

Hình trên cho thấy nếu áp dụng mạng nơ ron được kết nối đầy đủ, toàn bộ kiến trúc

mạng sẽ cần tính toán hơn 3 triệu nơ ron. Số lượng lớn các nơ ron làm cho toàn bộ quá

trình học rất chậm và dẫn đến quá tải so với khả năng tính toán của máy tính hiện tại.

Qua một vài nghiên cứu về xử lý ảnh, các nhà nghiên cứu nhận thấy rằng các tính

năng trong một hình ảnh thường là cục bộ, và các nhà nghiên cứu chú ý đến các tính năng

cấp thấp đầu tiên khi xử lý ảnh. Vì vậy, kiến trúc mạng có thể chuyển mạng được kết nối

đầy đủ sang mạng được kết nối cục bộ, nhằm làm giảm độ phức tạp của tính toán. Đây là

một trong những ý tưởng chính trong CNN. Chúng ta có thể thấy rõ hơn qua hình sau:

Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron

tầng ẩn

Giống như xử lý hình ảnh thông thường, chúng ta có thể kết nối cục bộ một khối

vuông ma trận với nơ ron. Kích thước khối thông thường là 3x3, 5x5, hoặc 7x7. Ý nghĩa

vật lý của khối giống như một cửa sổ trượt (cửa sổ trượt là một trong những phương pháp

Page 35: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

21

xử lý ảnh). Bằng cách đó, số lượng tham số có thể giảm xuống rất nhỏ nhưng không gây

ra giảm hoặc mất thông tin, vì hình ảnh thông thường thường có tính lặp trong không

gian. Để trích xuất nhiều thông tin hơn, các mạng nơ ron kết nối khối cùng với một nơ ron

khác. Độ sâu trong các tầng là số lần chúng ta kết nối một khu vực với các nơ ron khác

nhau. Ví dụ, mạng kết nối cùng một khu vực với 5 nơ ron khác nhau. Vì vậy, độ sâu là

năm trong tầng mới. Chúng ta có thể thấy rõ hơn qua hình sau:

Hình 1.21: Ví dụ về lớp tích chập

Trong thực tế, có thể kết nối tất cả thông tin độ sâu (ví dụ: kênh 3 RGB) với nơ ron

tiếp theo vì kết nối là cục bộ trong không gian và có chiều sâu đầy đủ. Tuy nhiên ở ví dụ

này chỉ kết nối thông tin cục bộ về chiều cao và chiều rộng. Vì vậy, có thể có

các tham số trong hình trên cho nơ ron sau lớp màu xanh nếu chúng ta sử dụng cửa sổ

. Biến thứ nhất và thứ hai là chiều cao và chiều rộng của kích thước cửa sổ và biến

thứ ba là độ sâu của lớp.

Ví dụ này di chuyển cửa sổ bên trong hình ảnh và làm cho tầng tiếp theo cũng có

chiều cao và chiều rộng, và là một hai chiều. Ví dụ: nếu chúng ta di chuyển cửa sổ 1 pixel

mỗi lần, gọi là bước nhảy là 1, trong một hình ảnh và kích thước cửa sổ là

sẽ có các nơ ron ở tầng tiếp theo. Có thể thấy rằng, kích

thước đã giảm từ 32 xuống 28. Vì vậy, để bảo toàn kích thước, chúng ta thêm phần trống

vào đường viền. Quay lại ví dụ trên, nếu chúng ta đệm với 2 pixel, có

các nơ ron ở lớp tiếp theo để giữ kích thước chiều cao và chiều

rộng. Như ví dụ trên, nếu chúng ta sử dụng kích thước cửa sổ w, chúng ta sẽ có 1 vùng

được tích chập với kích cỡ của cửa sổ mới là pixel. Thông tin đường viền sẽ

không ảnh hưởng nhiều vì những giá trị đó chỉ được sử dụng một lần.

Page 36: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

22

Phần kế tiếp sẽ chi tiết hơn về bước nhảy của cửa sổ trượt, tức khoảng cách thay

đổi của cửa sổ mỗi lần. Ví dụ: giả sử bước nhảy là 2 và cửa sổ trượt bao phủ vùng

Sau đó, cửa sổ thứ hai bao phủ vùng và cửa sổ thứ 3 bao phủ vùng

Ví dụ, nếu chúng ta sử dụng bước nhảy 1 và kích thước cửa sổ trong hình

ảnh và không sử dụng bù viền (pad-zero), thì chúng ta sẽ có

các nơ ron ở lớp tiếp theo. Nếu chúng ta thay đổi bước nhảy 1 thành

bước nhảy 2 và những tham số khác vẫn giữ nguyên, thì chúng ta sẽ có có

những nơ ron ở lớp tiếp theo. Chúng ta có thể kết luận rằng nếu chúng

ta sử dụng bước nhảy s, kích thước cửa sổ trong ảnh , thì sẽ có

các nơ ron ở lớp tiếp theo. Khi

chúng ta sử dụng bước nhảy 3 và những tham số khác vẫn giữ nguyên thì chúng ta sẽ

nhận được Vì kết quả không phải là số nguyên, nên bước nhảy 3

không thể dùng vì chúng ta không thể có được một khối hoàn chỉnh trong một mạng nơ

ron.

1.3.2.2 Chia sẻ tham số

Trong ví dụ minh họa của mục 1.3.2.1, ta sẽ có số lượng là nơ ron

ở tầng tiếp theo có bước nhảy 1, kích thước cửa sổ 5 x 5 và không có đệm, với độ sâu là 5.

Mỗi nơ ron sẽ có tham số. Vì vậy, trong tầng tiếp theo sẽ có

tham số. Ở đây, chúng ta có thể chia sẻ các tham số

theo từng độ sâu, do đó nơ ron ở mỗi tầng ẩn sẽ sử dụng tham số giống nhau là

, và tổng tham số sử dụng cho mỗi tầng là . Điều này làm số

lượng tham số giảm một cách đáng kể. Tương tự, các nơ ron ở mỗi độ sâu trong tầng tiếp

theo sẽ áp dụng tích chập cho tầng trước đó. Và quá trình học tập giống như học lõi (core)

tích chập. Đây là lý do mà các mạng nơ ron này được gọi là mạng nơ ron tích chập.

1.3.2.3 Hàm kích hoạt

Trong mô hình nơ ron truyền thống, các mạng thường sử dụng hàm sigmoid cho

hàm kích hoạt. Tuy nhiên Krizhevsky [21] đã thử với hàm kích hoạt RELU. Sau khi so

Page 37: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

23

sánh hiệu quả của hàm kích hoạt RELU và hàm kích hoạt sigmoid trong CNNs. Họ thấy

rằng mô hình với RELU cần ít thời gian lặp hơn trong khi đạt tỷ lệ lỗi khi huấn luyện

tương đương. Chúng ta có thể thấy kết quả trong hình sau:

Hình 1.22: So sánh giữa ReLU và Sigmoid.

Như hình trên, đường liền nét là mô hình sử dụng RELU và đường đứt nét là sử

dụng hàm Sigmoid. Có thể dễ dàng thấy rằng, RELU cần ít vòng lặp hơn để đạt tỉ lệ lỗi

chấp nhận được. Do đó, ngày nay đa số các mô hình CNN gần đây sử dụng RELU để làm

hàm kích hoạt.

1.3.2.4. Tầng gộp

Tầng gộp sẽ giảm kích cỡ của hình ảnh ngay sau khi thực hiện tích chập, giúp giữ

lại các đặc điểm, tính chất nổi bật nhất của ảnh. Điều này cho phép giảm mức độ tính toán

khi hình ảnh có kích thước quá lớn, đồng thời không làm mất đi các đặc điểm quan trọng

của ảnh.

Tuy đã sử dụng các mạng được kết nối cục bộ và chia sẻ tham số, tuy nhiên số

lượng tham số trong mang nơ ron vẫn là quá lớn. So với một tập dữ liệu tương đối nhỏ, nó

có thể gây ra tình trạng quá khớp (overfitting). Vì vậy, mạng nơ ron nhân tạo thường chèn

các tầng gộp vào mạng. Tầng gộp xử lý để giảm dần số lượng tham số nhằm cải thiện thời

gian tính toán trong mạng nơ ron. Tầng gộp áp dụng lấy mẫu xuống cho tầng trước bằng

cách sử dụng hàm max. Tầng gộp hoạt động độc lập trên mỗi tầng trước đó. Ngoài ra, có

Page 38: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

24

thể đặt lượng pixel khi chúng ta di chuyển cửa sổ trượt hoặc bước nhảy, như làm với tầng

tích chập. Ví dụ, trong hình sau:

Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp

Ở ví dụ trên, kích thước cửa sổ trượt là và bước nhảy mỗi lần trượt là 2. Tại

mỗi cửa sổ, hàm max sẽ lấy giá trị tối đa để đại diện cho giá trị của tầng tiếp theo. Có hai

loại tầng gộp: Nếu kích thước cửa sổ trượt bằng bước nhảy, đó là gộp chung (traditional

pooling). Nếu kích thước cửa sổ trượt lớn hơn bước nhảy, đó là gộp nhóm (overlapping

pooling). Trong thực tế, các mạng nơ ron thường sử dụng kích thước cửa sổ cùng

kích thước bước nhảy là 2 trong gộp chung và sử dụng kích thước cửa sổ cùng

kích thước bước nhảy là 2 trong gộp nhóm, vì nếu tăng kích cỡ cửa sổ sẽ rất dễ làm mất

các đặc tính của dữ liệu.

Ngoài việc gộp sử dụng hàm max, người ta có thể sử dụng các hàm khác. Ví dụ

người ta có thể sử dụng hàm tính trung bình của cửa sổ trượt để tính toán giá trị cho tầng

tiếp theo, được gọi là gộp trung bình.

1.3.2.5. Tầng được kết nối đầy đủ

Tầng thứ ba là tầng được kết nối đầy đủ. Tầng này giống như mạng nơ ron truyền

thống: các nơ ron ở tầng trước sẽ kết nối với một nơ ron ở tầng tiếp theo và tầng cuối

cùng là đầu ra. Để có thể đưa hình ảnh từ những tầng trước vào, ta phải dàn phẳng dữ liệu

ra thành một véc tơ nhiều chiều. Cuối cùng là sử dụng hàm softmax để thực hiện phân

loại đối tượng

Page 39: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

25

Hình 1.24: Một ví dụ của lớp được kết nối đầy đủ

1.3.2.6 Mô hình quá khớp

Cấu trúc của một mạng CNN rất lớn, trong mạng có rất nhiều nơ ron, kết nối,

cũng như có rất nhiều trọng số cần thiết để huấn luyện. Nhưng lượng dữ liệu huấn luyện

thường không đủ để huấn luyện hoàn thiện cho một mạng nơ ron lớn. Nó có thể gây ra

một số vấn đề về quá khớp, khiến cho khi huấn luyện có kết quả rất cao, nhưng áp dụng

thực tế gây ra sai số lớn. Có một số kỹ thuật để cải thiện điều này.

Hình 1.25: Ví dụ về trường hợp quá khớp (bên trái) và trường hợp chuẩn (bên phải)

Một trong những phương pháp đó là là giảm trọng số trong lúc huấn luyện.

Dropout là một trong những kỹ thuật nổi tiếng và khá phổ biển để khắc phục vấn đề này.

Dropout đặt đầu ra của mỗi nơ ron ẩn thành 0 với xác suất 0,5. Vì vậy, các nơ ron này sẽ

không đóng góp vào lan truyền tiến, do đó và sẽ không tham gia vào lan truyền ngược.

Thông thường, đối với các đầu vào khác nhau, mạng nơ ron xử lý dropout theo một cấu

trúc khác nhau.

Một cách khác để cải thiện việc việc quá khớp là tăng lượng dữ liệu. Chúng ta có

thể phản chiếu hình ảnh, lộn ngược hình ảnh, lấy mẫu hình ảnh, v.v. Những cách này sẽ

tăng số lượng dữ liệu huấn luyện. Vì vậy, nó có khả năng ngăn chặn quá khớp. Với ví dụ

thực tế, trong một vài dự án, các bức ảnh được sử dụng để huấn luyện đã được xử lý thêm

Page 40: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

26

bước xoay, với mỗi lần từ 15 đến 20 độ cũng như áp dụng thêm phương pháp phản chiếu

bức ảnh. Kết quả, hệ thống AI đã phát hiện cải thiện đáng kể việc nhận diện.

1.3.2.7. Một số mạng tích chập nổi tiếng

Có một số kiến trúc mạng nơ ron tích chập nổi tiếng. Một số thử nghiệm cho thấy

chúng có hiệu suất tốt hơn. Vì vậy, đôi khi nhiều người sử dụng mạng được thiết kế sẵn

thay vì tự thiết kế mạng. Ở các phần sau luận văn sẽ giới thiệu một vài mạng tích chập nổi

tiếng và thông dụng hiện nay.

AlexNet

Hình 1.26: Cấu trúc của AlexNet

Alex đã phát triển mạng này vào năm 2012. Cho tới thời điểm hiện tại, AlexNet

vẫn còn đang được sử dụng phổ biến và rộng rãi. Mạng AlexNet có năm lớp chập và ba

lớp kết nối đầy đủ. Cấu trúc trong AlexNet được chia thành hai khối. Nguyên nhân vì tác

giả đã sử dụng hai GPU để huấn luyện dữ liệu song song. Mạng này được sử dụng trong

phân loại đối tượng quy mô lớn. Lớp đầu ra có một nghìn nơ ron. Đó là bởi vì kiến trúc

ban đầu được thiết kế để phân loại một nghìn nhãn. Thông thường, những người áp dụng

kiến trúc mạng nơ ron AlexNet sẽ thay thế lớp cuối cùng, phụ thuộc vào mục đích của họ.

Tác giả của mạng này đã làm nhiều thử nghiệm để có thể ra được mô hình này có kết quả

tốt nhất. Vì vậy, hiệu suất của cấu trúc này rất ổn định và mạng này được sử dụng rộng rãi

trong nhiều ứng dụng.

VGGNet

VGGNet [10] được phát triển vào năm 2014 và đã giành chiến thắng trong cuộc thi

ILSVRC-2014. Mạng này mạnh hơn mạng AlexNet nhưng rất sâu. Mạng này có 16 đến

19 tầng (Hình 1.21). Mạng này đã được thiết kế với 5 cấu trúc. Sau một số thí nghiệm, D

và E là cấu trúc tốt nhất. Hiệu suất của E tốt hơn một chút so với B. Nhưng các tham số

trong E lớn hơn D. Vì vậy, người sử dụng có thể chọn một trong số cấu trúc mạng dựa

trên những gì họ cần. Đặc điểm của VGGNet là việc áp dụng nhiều lớp chập với kích

Page 41: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

27

thước cửa sổ nhỏ thay vì lớp chập với kích thước cửa sổ lớn, sau đó là lớp gộp. Nó làm

cho mạng linh hoạt hơn.

Hình 1.27: Cấu trúc của VGGNet

1.4 Kết luận

Mạng nơ ron nhân tạo là một chuỗi các thuật toán được sử dụng để tìm ra mối

quan hệ của một tập dữ liệu thông qua cơ chế vận hành của bộ não sinh học. Mạng nơ ron

nhân tạo thường được huấn luyện qua một tập dữ liệu chuẩn cho trước, từ đó có thể đúc

rút được kiến thức từ tập dữ liệu huấn luyện, và áp dụng với các tập dữ liệu khác với độ

chính xác cao.

Các phương pháp sử dụng để huấn luyện mạng nơ ron nhân tạo ngày càng tối ưu

hơn về mặt tính toán và phục vụ cho nhiều mục đích khác nhau. Hiện nay, kiến trúc mạng

nơ ron ngày càng được hoàn thiện cho nhiều nhiệm vụ, trong đó mạng nơ ron tích chập

được chú ý rất nhiều vì tính hiệu quả trong thị giác máy tính. Mạng nơ ron tích chập với

các cải tiến góp phần giảm thời gian tính toán và tăng độ chính xác hứa hẹn sẽ là một

trong những phương pháp được áp dụng rất nhiều vào thực tế trong tương lai.

Page 42: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

28

CHƯƠNG 2.

BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ RON TÍCH CHẬP

2.1 Khái niệm về nhận dạng

Nhận dạng là một ngành thuộc lĩnh vực trí tuệ nhân tạo. Nhận dạng mẫu là khả

năng phát hiện sự sắp xếp các đặc tính hoặc dữ liệu mang lại thông tin về một hệ thống

hoặc tập dữ liệu nhất định. Nhận dạng mẫu chia thành nhiều lĩnh vực trong công nghệ

thông tin, bao gồm phân tích dữ liệu lớn, nhận dạng sinh trắc học, bảo mật và trí tuệ nhân

tạo. Nhận dạng đối tượng trong hình ảnh là một nhánh của nhận dạng mẫu. Nhận dạng đối

tượng trong hình ảnh thể hiện qua các công nghệ máy tính có thể nhận ra người, động vật,

vật thể hoặc các đối tượng mục tiêu khác thông qua việc sử dụng các thuật toán và khái

niệm học máy.

2.1.1 Nhận dạng đối tượng

Một số khái niệm liên quan:

Nhận dạng đối tượng (object recognition) là một thuật ngữ chung để mô tả

một tập hợp các cách xử lý trong thị giác máy tính có liên quan đến việc xác

định các đối tượng trong ảnh kỹ thuật số.

Phân loại hình ảnh (image classification) liên quan đến việc dự đoán, phân

loại các lớp thông tin của một đối tượng trong một hình ảnh.

Khoanh vùng đối tượng (object localization) là việc xác định vị trí của một

hoặc nhiều đối tượng trong một hình ảnh bằng hình chữ nhật xung quanh

phạm vi của đối tượng bằng hộp chứa (bounding box).

Phát hiện đối tượng (object detection) kết hợp cả hai nhiệm vụ nhận dạng

đối tượng và khoanh vùng đối tượng. Phát hiện đối tượng là việc khoanh

vùng và phân loại một hoặc nhiều đối tượng khác nhau trong một hình ảnh.

Nhận dạng đối tượng khác với phát hiện đối tượng ở chỗ nhận dạng đối tượng

mang ý nghĩa rộng hơn, bao gồm cả việc phân loại hình ảnh (đòi hỏi thuật toán xác định

các lớp của đối tượng xuất hiện trong hình ảnh), cũng như phát hiện đối tượng (đòi hỏi

thuật toán khoanh vùng, định vị được tất cả các đối tượng có trong hình ảnh)

Page 43: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

29

Hình 2.1: Sự khác biệt giữa nhận dạng đối tượng và phát hiện đối tượng

2.1.2 Nhận dạng khuôn mặt

Nhận dạng khuôn mặt là khả năng nhận diện, lưu trữ,so sánh và phân tích các mẫu

dựa trên đường nét khuôn mặt để nhận dạng người từ hình ảnh hoặc video. Hệ thống

thường sử dụng các công nghệ để thực hiện nhận dạng khuôn mặt như sử dụng sinh trắc

học để ánh xạ các đặc điểm khuôn mặt từ ảnh hoặc video. Hệ thống so sánh thông tin này

với một cơ sở dữ liệu đã lưu trữ về các khuôn mặt để tìm ra một kết quả khớp chính xác

Nhận dạng khuôn mặt ngày càng được quan tâm trong nhiều lĩnh vực, như Trung

Quốc có hệ thống Skynet để chấm điểm công dân, hay nhiều chuỗi cửa hàng lớn cũng sử

dụng nhận dạng khuôn mặt khách hàng thân thiết để phân tích thói quen tiêu dùng. Trên

thực tế, công nghệ nhận dạng khuôn mặt đã nhận được sự chú ý đáng kể vì nó có tiềm

năng cho một loạt các ứng dụng liên quan đến thực thi pháp luật cũng như các doanh

nghiệp khác.

Hình 2.2: Một minh họa về một số bản đồ đặc trưng của các lớp DC12, conv22, conv32, conv42 và

conv52 được đào tạo cho nhiệm vụ nhận dạng khuôn mặt.

Page 44: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

30

2.2. Lịch sử và phát triển

Nhận dạng khuôn mặt tự động là một khái niệm tương đối mới, được phát triển vào

những năm 1960. Hệ thống bán tự động đầu tiên cho nhận dạng khuôn mặt cần quản trị

viên phải xác định được vị trí các điểm cần được đánh dấu (như mắt, tai, mũi và miệng)

trên các bức ảnh, sau đó tính toán khoảng cách và tỷ lệ đến một điểm tham chiếu chung,

cuối cùng đó được so sánh với dữ liệu để ra kết quả.

Vào những năm 1970, Goldstein, Harmon và Lesk1 sử dụng 21 loại thông tin cụ

thể, chẳng hạn như màu tóc và độ dày môi để tự động nhận dạng. Vấn đề với cả hai giải

pháp ban đầu này là các phép đo dựa trên vị trí, và cần sự tính toán thủ công của con

người để có thể vận hành.

Năm 1988, Kirby và Sirovich áp dụng phân tích các thành phần nổi bật, một kỹ

thuật đại số tuyến tính tiêu chuẩn vào việc nhận dạng khuôn mặt. Đây được coi là một

phần của cột mốc thay đổi vì dưới một trăm giá trị được yêu cầu mã hóa chính xác một

hình ảnh khuôn mặt được căn chỉnh và chuẩn hóa phù hợp.

Vào năm 1991, Turk và Pentland phát hiện ra rằng trong khi sử dụng kỹ thuật

thành phần riêng, lỗi dư (residual error) có thể được sử dụng để phát hiện khuôn mặt

trong hình ảnh - một khám phá có thể tạo ra được một hệ thống nhận diện khuôn mặt tự

động, thời gian thực và đáng tin cậy. Mặc dù cách tiếp cận có phần bị hạn chế bởi các yếu

tố máy móc của giai đoạn đó, nhưng nó đã tạo ra sự quan tâm đáng kể trong việc phát

triển công nghệ nhận dạng khuôn mặt tự động.

Công nghệ đầu tiên đã thu hút được sự chú ý rất lớn của truyền thông khi triển khai

thử nghiệm tại Super Bowl tháng 1 năm 2001, trong đó ghi lại hình ảnh từ camera giám

sát và so sánh chúng với một cơ sở dữ liệu kỹ thuật số. Sau sự kiện này, đã có các phân

tích về tính cần thiết của việc sử dụng công nghệ để hỗ trợ nhu cầu quốc gia, trong khi

vẫn quan tâm đến các mối quan tâm xã hội và quyền riêng tư của cộng đồng. Ngày nay,

công nghệ nhận dạng khuôn mặt đang được sử dụng để chống lại gian lận hộ chiếu, hỗ trợ

thực thi pháp luật, xác định trẻ em mất tích, và giảm thiểu gian lận danh tính.

2.3. Cách thức hoạt động

Phương pháp bao gồm các bước khác nhau để thực hiện nhận diện khuôn mặt tự

động. Đầu tiên là thực hiện phát hiện khuôn mặt để khoanh vùng khuôn mặt trong từng

khung hình ảnh và video. Sau đó, dữ liệu ở bước trên đuợc liên kết với các khuôn mặt

được phát hiện với danh tính chung trên các video và căn chỉnh các khuôn mặt thành tọa

độ bằng cách sử dụng các mốc được phát hiện. Cuối cùng, hệ thống thực hiện xác minh

Page 45: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

31

khuôn mặt để tính toán độ tương tự giữa một cặp hình ảnh / video. Sơ lược phương pháp

được minh họa trong hình 2.3.

Hình 2.3: Tổng quan về phương pháp nhận dạng khuôn mặt người

bằng mạng nơ ron tích chập

Cụ thể, ta có thể xem xét ví dụ với thiết kế mạng ở hình 2.4 để rõ hơn về tổng quan

cách thức hoạt động:

Hình 2.4: Thiết kế mạng nơ ron để xử lý ảnh

Từ mạng nơ ron trên, ta có thể thấy các bước xử lý ảnh từ trái sang phải. Lần lượt,

ta có thể thấy hình ảnh các cửa sổ dò tìm (ô vuông màu xanh) đang giảm dần và hiệu

chỉnh dần theo từng giai đoạn dò tìm:

Page 46: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

32

Hình 2.5: Các giai đoạn dò tìm và hiệu chỉnh

2.4 Phương pháp nhận dạng đối tượng từ ảnh chụp của camera

2.4.1 Nhận diện khuôn mặt

Tất cả các khuôn mặt trong khung hình ảnh / video được phát hiện bằng hệ thống

dò khuôn mặt dựa trên mạng nơ ron tích chập sâu (Deep Convolutional Neural Network –

DCNN), được gọi là Mô hình tháp sâu để phát hiện khuôn mặt (Deep Pyramid

Deformable Parts Model for Face Detection - DP2MFD) [38], bao gồm hai mô-đun. Mô-

đun đầu tiên tạo ra một hình tháp sâu được chuẩn hóa bảy cấp cho bất kỳ hình ảnh đầu

vào nào có kích thước tùy ý, như đã minh họa trong hình ảnh 2.3. Kiến trúc mạng nơ ron

tích chập tương tự như Alexnet, được sử dụng để trích xuất các tính năng sâu. Mạng hình

tháp này tạo ra một tháp gồm 256 bản đồ đặc trưng ở lớp tích chập thứ 5 (conv5). Bộ lọc

được áp dụng để có được lớp max5. Thông thường, cường độ kích hoạt cho một

vùng khuôn mặt giảm theo kích thước của cấp độ của tháp. Do đó, một khuôn mặt lớn

được phát hiện bởi cửa sổ trượt có kích thước cố đinh ở cấp độ tháp thấp hơn sẽ có điểm

phát hiện cao so với khuôn mặt nhỏ được phát hiện ở cấp độ tháp cao hơn. Để giảm độ

lệch này cho kích thước khuôn mặt, hệ thống áp dụng bước chuẩn hóa điểm z trên các

tính năng max5 ở mỗi cấp. Đối với vectơ đặc trưng 256 chiều ở cấp tháp i và vị trí

(j, k), tính năng chuẩn hóa được tính như sau:

Trong đó, là vectơ đặc trưng trung bình và là độ lệch chuẩn cho cấp độ tháp

i. Các tính năng max5 được chuẩn hóa là . Sau đó, các tính năng có độ dài từ mỗi

vị trí trong tháp được trích xuất bằng cách sử dụng phương pháp cửa sổ trượt. Mô-đun thứ

hai là một SVM tuyến tính (linear SVM), lấy các tính năng này làm đầu vào để phân loại

từng vị trí là mặt, hoặc không phải là mặt, dựa trên điểm được tính toán. Mô hình tháp sâu

Page 47: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

33

để phát hiện khuôn mặt - DP2MFD có khả năng nhận diện rất tốt trên các độ sáng ảnh

khác nhau, cũng như kích cỡ khuôn mặt. Chúng ta có thể thấy thông qua ví dụ sau:

Hình 2.6: Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu

2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt

Khi các khuôn mặt được phát hiện, thuật toán thực hiện phát hiện các điểm quan

trọng để căn chỉnh khuôn mặt. Thuật toán sẽ tìm cách khôi phục mặt về hình dáng mặc

định ban đầu: gọi khuôn mặt là I, hình dạng ban đầu là S0, thuật toán sẽ tính toán mức

tăng hình dạng ∆S từ các mô tả sâu (deep descriptors) và cập nhật bằng công thức sau:

Các tính năng CNN (được biểu thị là Φ trong công thức trên) được thiết kế với

bước nhảy và cách gộp hợp lý, được sử dụng làm các tính năng để thực hiện tính toán. Ở

đây, kiến trúc CNN được sử dụng tương tự như Alexnet với các trọng số được xử lý trước

cho bộ dữ liệu ImageNet như trong hình sau:

Hình 2.7: Kiến trúc DCNN được sử dụng để trích xuất các mô tả cục bộ cho nhiệm vụ phát hiện các

điểm mốc trên khuôn mặt

Vì mục tiêu mạng CNN này là phát hiện khuôn mặt. Do đó, mạng sẽ được căn

chỉnh để xử lý dữ liệu khuôn mặt tốt hơn. Các dữ liệu đầu ra ở từng tầng sẽ là dữ liệu đầu

vào ở tầng tiếp theo. Trong hình trên, chúng ta có thể thấy có 5 tầng. Sau khi hoàn thành

Page 48: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

34

phát hiện các mốc, khuôn mặt sẽ được căn chỉnh theo tọa độ bằng cách sử dụng phép biến

đổi và các điểm mốc.

Điều này giúp mạng tìm hiểu các đặc điểm cụ thể đối với khuôn mặt. Hơn nữa,

mạng áp dụng hồi quy theo tầng, trong đó đầu ra được tạo bởi giai đoạn đầu tiên sẽ được

sử dụng làm đầu vào cho giai đoạn tiếp theo, tổng là năm giai đoạn tích chập được áp

dụng trong hệ thống. Các bộ lọc được chọn để trích xuất tính năng được tinh chỉnh trong

các giai đoạn sau để cải thiện việc chuẩn hóa các mốc trên khuôn mặt. Sau khi hoàn thành

phát hiện các mốc trên khuôn mặt, mỗi khuôn mặt được căn chỉnh theo tọa độ chính tắc

bằng cách sử dụng biến đổi tương tự và các điểm mốc.

Hình 2.8: Ví dụ về các điểm mốc trên khuôn mặt

2.4.3 Liên kết khuôn mặt

Vì có nhiều đối tượng xuất hiện trong các khung hình của video, nên việc thực

hiện liên kết khuôn mặt để gán từng khuôn mặt cho đối tượng tương ứng là một bước

quan trọng để chọn đúng đối tượng khi xác minh khuôn mặt. Do đó, khi một khuôn mặt

trong khung hình của video được phát hiện, hệ thống theo dõi khuôn mặt bằng cách tích

hợp các kết quả từ trình phát hiện khuôn mặt, trình theo dõi khuôn mặt và bước liên kết

khuôn mặt.

Hệ thống áp dụng thuật toán nhận diện khuôn mặt trong mọi khung hình bằng

phương pháp nhận diện khuôn mặt được trình bày trong phần trước. Vùng phát hiện

khuôn mặt được coi như một khuôn mặt mới nếu không có tỷ lệ trùng lặp với bất kỳ vùng

phát hiện nào trong các khung hình trước. Tỷ lệ trùng lặp của một vùng phát hiện được

phát hiện và vùng phát hiện trong khung hình trước được xác định là:

Page 49: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

35

Qua thực nghiệm, ngưỡng 0,2 là đủ để coi như xuất hiện khuôn mặt mới, do các

khung hình của video cách nhau chỉ một phần nhỏ của giây. Để theo dõi khuôn mặt, các

nhà khoa học sử dụng giải thuật Kanade-Lucas-Tomasi (KLT) để theo dõi các khuôn mặt

giữa hai khung hình liên tiếp. Hệ thống cập nhật các vùng phát hiện trong quá trình theo

dõi dựa vào khung hình mới nhất. Vùng phát hiện sẽ thay thế cho vùng phát hiện

nếu nhỏ hơn ngưỡng (0,2). Quá trình theo dõi khuôn mặt sẽ bị chấm dứt nếu

không có phát hiện khuôn mặt tương ứng chồng chéo với nó cho nhiều hơn khung hình.

Hệ thống thường đặt giới hạn bằng 4 khung hình, dựa trên cơ sở thực nghiệm. Hình ảnh

kết quả của phương pháp liên kết khuôn mặt cho các video của JANUS CS2:

Hình 2.9: Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS CS2, là bộ

dữ liệu mở rộng của IJB-A

2.5 Kết quả các thuật toán sử dụng mạng nơ ron nhân tạo

2.5.1 Mô hình DeepID 2 (NIPS 2014)

Cách thức hoạt động của mô hình DeepID 2:

Trong quá trình huấn luyện, 200 phần khuôn mặt được cắt với các vị trí, tỉ lệ và

kênh màu sắc khác nhau. Mỗi phần khuôn mặt và phần đối xứng được đưa vào ConvNet.

Hai vector 160 chiều được trích xuất từ phần khuôn mặt và phần đối xứng. Chọn 25 phần

khuôn mặt tốt nhất.

Page 50: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

36

Hình 2.10: Kiến trúc mạng của mô hình DeepID 2

Một ví dụ về 25 phần khuôn mặt tốt nhất:

Hình 2.11: 25 phần khuôn mặt tốt nhất được chọn để trích xuất đặc điểm

Kết quả của mô hình thể hiện trong bảng.

Bảng 2.1: Thống kê xác minh độ chính xác của khuôn mặt bằng DeepID2 khi tăng dần số lượng của

các phần khuôn mặt

Page 51: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

37

Qua bảng 2.1, ta có thể thấy, khi sử dụng 25 phần khuôn mặt để trích xuất đặc

điểm, độ chính xác của phương pháp rất cao, xấp xỉ tới 99%. Tuy nhiên, khi nhận diện

với 25 phần khuôn mặt, máy tính cần mất 0.035 giây để tính toán. Mặt khác, với việc chỉ

sử dụng một phần khuôn mặt để trích xuất đặc trưng, thời gian xử lý rất nhanh, chỉ 0,0017

giây, tuy nhiên độ chính xác chỉ còn 95,43%. Dựa trên bảng thống kê này, các nhà phát

triển có thể căn chỉnh số phần khuôn mặt để tối ưu cho bài toán thực tế. Ví dụ như, nếu

cần một hệ thống phản hồi nhanh mà không quá ưu tiên độ chính xác, có thể chỉ sử dụng

một phần khuôn mặt để trích xuất đặc trưng, ngược lại, ta có thể tăng số phần khuôn mặt

nhằm tăng độ chính xác.

Bảng 2.2: So sánh độ chính xác của mô hình DeepID2 với các kết quả mô hình trước đó trên bộ thư

viện LFW

Qua bảng so sánh trên, ta có thể thấy mô hình DeepID2 khi sử dụng trên bộ thư

viện LFW có độ chính xác rất cao, lên tới hơn 99%. Với độ chính xác cao như vậy,

DeepID2 có thể đưa ra làm sản phẩm và thương mại hóa.

Page 52: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

38

2.5.2 Mô hình DeepID3 (arXiv 2015)

Hình 2.12: Kiến trúc mạng của mô hình DeepID3

DeepID3 là mô hình nâng cấp của DeepID2+

Bảng 2.3: Kết quả so sánh của mô hình DeepID3 với các mô hình trước trên bộ thư viện LFW

Với bộ dữ liệu LFW năm 2015, ta có thể thấy DeepID3 đã có những cải tiến nhất

định so với DeepID2+, với độ chính xác được tăng cường lên tới 1%

Page 53: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

39

2.5.3 Mô hình DeepFace (Facebook, CVPR 2014)

Sơ lược kiến trúc DeepFace: DeepFace sử dụng căn chỉnh 3D để xử lý khuôn mặt.

Sau đó đầu vào được bộ lọc tích chập-gộp chung, tiếp theo được xử lý bởi ba tầng được

kết nối cục bộ và hai tầng được kết nối đầy đủ. Màu sắc minh họa dựa trên đặc trưng

được xử lý ở mỗi tầng. Mạng bao gồm hơn 120 triệu tham số, trong đó hơn 95% đến từ

các lớp cục bộ và được kết nối đầy đủ.

Hình 2.13: Kiến trúc của DeepFace

Bảng 2.4: Kết quả của khi so sánh DeepFace với các công nghệ hiện đại trên bộ dữ liệu

LFW

Có thể thấy, mô hình DeepFace đạt kết quả rất cao, lên đến 0.95 tới 0.97, gần ở

mức tiệm cận con người.

2.5.4 Mô hình FaceNet (Google 2015)

FaceNet là một mô hình được tạo ra từ google, và được huấn luyện bởi 260 triệu

bức ảnh. FaceNet có 2 mô hình CNN: mô hình lấy cảm hứng từ Zeiler & Fergus, và mô

hình GoogLeNet.

Page 54: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

40

Hình 2.14: Hình ảnh: Mô hình lấy cảm hứng từ Zeiler & Fergus

Hình 2. 15 Mô hình GoogleNet

Page 55: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

41

Bảng 2.5: Bảng so sánh hiệu suất của kiến trúc mạng trên FaceNet

Qua bảng trên ta có thể thấy kiến trúc NN2 và NN1 có độ chính xác cao nhất.

Bảng 2.6: Bảng so sánh độ chính xác dựa trên số lượng dữ liệu đào tạo

Quả bảng so sánh độ chính xác dựa trên dữ liệu đào tạo, ta có thể thấy độ chính

xác được cải thiện rõ rệt khi dữ liệu tăng lên đáng kể. Do đó, ngoài kiến trúc mạng hợp lý,

dữ liệu được sử dụng để đào tạo cũng là một nhân tố góp phần tạo nên độ chính xác cao

cho mô hình.

2.5.5 Mô hình Baidu (2015)

Mô hình Baidu, 2015, là mô hình được tạo ra bởi hãng Baidu, Trung Quốc. Với

nguồn lực và lượng thông tin cá nhân lớn, Baidu đã xây dựng được một hệ thống nhận

diện khuôn mặt với tỉ lệ lỗi rất thấp.

Hình 2.16: Tổng quan về cấu trúc CNN trên nhiều phần khuôn mặt của Baidu

Page 56: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

42

Bảng 2.7: Tỉ lệ lỗi trên lượng dữ liệu khác nhau

Có thể thấy, ở mô hình của Baidu, với lượng người càng lớn và số khuôn mặt càng

nhiều, hệ thống càng trở nên chính xác.

2.6 Kết luận

Bài toán nhận dạng đã có từ rất lâu với nhiều phương pháp khác nhau. Tuy nhiên,

với các kỹ thuật mới, ta có thể thấy rằng độ chính xác của các phương pháp ngày càng

tăng trong khi chi phí tính toán ngày càng giảm.

Hình 2.17: Thống kê các mô hình, số lượng bộ dữ liệu sử dụng, và các mốc thời gian xuất bản

Qua cách thức hoạt động và các mô hình được sử dụng trong bài toán nhận dạng,

ta có thể thấy dữ liệu là chìa khóa rất quan trọng trong việc đào tạo. Nếu mô hình còn hạn

chế, nhưng lại có rất nhiều dữ liệu để đào tạo thì độ chính xác của hệ thống sẽ được cải

Page 57: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

43

thiện ở mức đáng kể. Có thể thấy, các mô hình có độ chính xác cao trên 97% đều sử dụng

trên 100 nghìn ảnh để huẩn luyện. Ngoài ra, việc xử lý nhiều phần khuôn mặt cũng giúp

ích rất nhiều cho độ chính xác của nhận diện, tuy nhiên hệ thống sẽ cần số lượng tính toán

lớn hơn để có thể nhận diện.

Các phương pháp nhận dạng bằng mạng nơ ron tích chập hiện nay có độ sai số rất

nhỏ và nằm trong ngưỡng chấp nhận được. Nên việc áp dụng mạng nơ ron tích chập để

xây dựng một hệ thống nhận diện là hoàn toàn khả thi và có thể đáp ứng nhiều nhu cầu

khi chúng ta đang dần tiến tới cách mạng công nghiệp 4.0.

Page 58: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

44

CHƯƠNG 3.

SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP

TRONG NHẬN DẠNG ĐỐI TƯỢNG

3.1 Sơ lược về áp dụng mạng nơ ron tích chập vào các giải pháp thông

minh trong thực tế

Hiện nay, xã hội đang tiến dần đến kỷ nguyên cách mạng công nghiệp 4.0. Với

cách mạng công nghiệp 4.0, các mức tự động hóa, cũng như học máy đều ở mức cao, có

thể thay thế con người khỏi nhiều việc, nhằm góp phần giải phóng sức lao động. Ngoài ra,

việc khai phá dữ liệu cũng đem lại nhiều tối ưu cho các mô hình kinh doanh, cũng như

cho xã hội. Để hướng đến cách mạng công nghiệp 4.0, rất cần các giải pháp tự động hóa

cho các mô hình công hoặc mô hình kinh doanh như bệnh viện, cửa hàng hoặc siêu thị. Ở

các giải pháp này, hệ thống thông minh sẽ tự động phân tích số lượng người ra/vào, hay

nhận diện thời điểm xuất hiện của khách hàng thân thiết.

Ở phạm vi của đề tài, luận văn áp dụng hai giải pháp về nhận diện người và nhận

diện khuôn mặt sử dụng CNN để áp dụng xây dựng các hệ thống thực tế. Các phương

pháp nhận diện người cũng như khuôn mặt qua thực tế đã có độ chính xác và có khả năng

thương mại hóa cao.

3.2 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện

người vào/ra và đánh giá thực nghiệm, so sánh với phương pháp HOG

3.2.1 Giới thiệu hệ thống nhận diện và đếm lượt người vào/ra sử dụng mạng nơ

ron tích chập

Mô tả bài toán: Hiện nay, camera rất thông dụng và được lắp ở mọi nơi. Tuy nhiên,

camera dân dụng thông thường chỉ có chức năng chụp ảnh hoặc ghi hình mà không có

chức năng thông minh nào khác. Do đó, giải pháp hướng đến là lập nên một hệ thống có

chức năng thống kê người vào/ra. Hệ thống có thể áp dụng cho nhiều địa điểm như các

cổng ra vào ở bệnh viện, trường học, siêu thị, ... Dựa trên kết quả thống kê, người dùng có

thể nắm được các thông tin về trạng thái hiện tại của khu vực đặt camera. Hệ thống này

được xây dựng theo kiến trúc như trong hình. Trong đó:

1. Hệ thống camera: hệ thống camera nhận dạng đối tượng được lắp đặt ở các

khu vực cần đếm người ra/vào. Hoặc dữ liệu video do người dùng tải lên.

Page 59: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

45

2. Máy chủ xử lý nhận diện và đếm lượng người: máy chủ có cấu hình mạnh,

tốc độ xử lý cao, có thể xử lý toàn bộ dữ liệu của hệ thống camera, tạo thành

báo cáo để đẩy vào hệ thống trích xuất dữ liệu.

3. Hệ thống trích xuất dữ liệu và hình ảnh đối chiếu: sau khi được xử lý qua

máy chủ xử lý, dữ liệu được gom nhóm kèm video, và được lưu trữ ở đây

trước khi được đẩy về máy chủ trung tâm.

4. Cơ sở dữ liệu chứa thông tin nhận diện đối tượng: đây là dữ liệu bao gồm

số liệu và hình ảnh và video của hệ thống nhận diện đối tượng.

5. Quản trị viên: quản trị viên là người kết nối lên máy chủ tổng, là người xem

xét dữ liệu để nắm được thông tin số lượng người ra/vào theo khung giờ, và

lập các báo cáo cần thiết.

Hình 3.1: Hình ảnh thiết kế của hệ thống nhận diện đối tượng

3.2.2 Giới thiệu kiến trúc của máy chủ xử lý nhận diện và đếm lượng người

Máy chủ xử lý nhận diện và đếm lượng người được sử dụng trong hệ thống là mô

hình YOLO sử dụng kiến trúc mạng nơ ron tích chập. Mô hình YOLO là một cách tiếp

cận mới để phát hiện đối tượng. Với phương pháp này, ta có thể huấn luyện mạng với bộ

dữ liệu được gán nhãn. Sau đó, khi sử dụng để nhận diện, phương pháp này xác định và

đóng khung đối tượng qua một cửa sổ phân tách trong hình ảnh, kèm theo xác suất của

các đối tượng liên quan được phát hiện.

Page 60: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

46

Mô hình mạng YOLO sử dụng một mạng thần kinh duy nhất để dự đoán các hộp

giới hạn và xác suất nhãn trực tiếp từ toàn bộ hình ảnh trong một lần chạy. Vì toàn bộ hệ

thống phát hiện là một mạng duy nhất, nên nó được tối ưu hóa từ đầu đến cuối, dựa trên

hiệu suất phát hiện. Kiến trúc đơn của YOLO rất nhanh, với mô hình thường, mạng có thể

xử lý được trong thời gian thực với 45 khung hình trên giây, còn với mô hình nhỏ hơn là

FastYOLO, hệ thống có thể xử lý tới 155 khung hình trên giây.

Hình 3.2: Phương pháp mạng YOLO sử dụng để nhận diện đối tượng.

Mô hình YOLO được thiết kế với 24 tầng nơ ron tích chập và 2 tầng nơ ron được

kết nối đầy đủ. Các lớp chập 1x1 xen kẽ làm giảm dữ liệu từ các tầng trước. Các lớp tích

chập được sử dụng để trích xuất các đặc điểm từ hình ảnh, các lớp kết nối đầy đủ được sử

dụng để dự đoán xác suất và tọa độ đầu ra. Kiến trúc YOLO được lấy cảm hứng từ mô

hình GoogLeNet cho phân loại hình ảnh

Page 61: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

47

Hình 3.3: Mô hình mạng yolo

Ở hệ thống nhận diện đối tượng, hệ thống sử dụng mô hình YOLO, cùng bộ dữ

liệu trọng số đã được huấn luyện là yolov3.weights, có sử dụng thêm tối ưu bằng học tăng

cường để: tăng cường độ chính xác bằng cách huấn luyện thêm bộ dữ liệu đã có.

3.2.3 Giới thiệu sơ lược về phương pháp mô tả đặc trưng HOG sẽ được dùng để

so sánh

HOG trở nên phổ biến vào năm 2005 khi Navneet Dalal và Bill Triggs, các nhà

nghiên cứu của Viện Nghiên cứu Khoa học và Tự động hóa Quốc gia Pháp cho thấy công

việc của họ trên HOG, đây là một giải pháp đáng tin cậy. Thuật toán cũng là một trình

trích xuất các tính năng cho mục đích phát hiện đối tượng. Thay vì xem xét cường độ

điểm ảnh như phương pháp Viola Jones, kỹ thuật này đếm các lần xuất hiện của vectơ độ

dốc biểu thị hướng ánh sáng để định vị các phân đoạn hình ảnh. Phương pháp sử dụng

chuẩn hóa tương phản cục bộ chồng chéo để cải thiện độ chính xác.

3.2.1.1 Giới thiệu sơ lược về phương pháp HOG sử dụng để phát hiện đối tượng

Có 5 bước cơ bản để xây dựng một vector HOG phát hiện đối tượng cho hình ảnh,

bao gồm:

1. Tiền xử lý

Bước tiền xử lý sẽ, cắt hình ảnh thành các khối, chuyển kích thước về kích thước

chuẩn, sau đó sử dụng các khối để tính toán đặc trưng ở các bước tiếp theo.

Page 62: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

48

Hình 3.4: Tiền xử lý để xác định khung hình

2. Tính độ dốc

Để tính toán mô tả HOG, ta tính toán độ dốc trên trục Ox và Oy. Độ dốc được tính

bằng phép nhân chập ảnh gốc với véc tơ hai chiều tương ứng là:

Đối với hình ảnh màu, độ dốc của ba màu cơ bản (đỏ, xanh lá và xanh da trờii)

được tính toán. Độ lớn của dốc tại một điểm ảnh là giá trị lớn nhất của cường độ dốc của

ba kênh màu.

Hình 3.5: Độ dốc sau khi tính toán

Trong đó:

Hình bên Trái: giá trị tuyệt đối của độ dốc theo x.

Hình ở giữa: giá trị tuyệt đối của độ dốc theo y.

Hình bên phải: độ lớn của độ dốc

3. Tính vector đặc trưng cho từng ô(ví dụ 8x8 pixel)

Page 63: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

49

Dựa vào độ dốc, trên mỗi ô, ta tính toán các véc tơ đặt trưng theo hướng trên từng

ô. Trong đó ta chia không gian hướng thành p chiều vector đặt trưng của ô. Sau đó chúng

ta rời rạc hóa góc hướng nghiêng tại mỗi điểm ảnh vào trong các chiều véc tơ đặc trưng

của ô

Hình 3.6: Kết quả sau khi tính toán véc tơ đặc trưng cho từng ô

Trong đó:

Hình bên Trái: dữ liệu hình ảnh được chia theo từng ô 8x8.

Hình ở giữa: độ dốc được biểu diễn trên hình ảnh bằng mũi tên.

Hình bên phải: cường độ dốc và hướng dốc được biểu thị bằng số.

4. Chuẩn hóa khối(ví dụ 2x2 ô)

Bằng cách tính một ngưỡng cường độ trong một khối và sử dụng giá trị đó để

chuẩn hóa tất cả các ô trong khối, các biểu đồ cục bộ sẽ được chuẩn hóa về độ tương phản

để tăng cường khả năng nhận dạng. Kết quả sau bước chuẩn hóa sẽ là một vector đặc

trưng được tính theo tỉ lệ ánh sáng, do đó nó có tính bất biến cao hơn đối với các thay đổi

về điều kiện ánh sáng.

5. Tính toán vector HOG

Với một ô, ta sẽ có một véc tơ có kích thước là 9 x 1. Với một khối chứa 2x2 ô, ta

sẽ có một véc tơ có kích thước là 9 x 1 x 4 = 36 x 1. Tương tự, với ví dụ một khung hình

có 7 khối ngang và 15 khối dọc, khi nối toàn bộ các véc tơ trong khối lại, ta sẽ thu được

một vec tơ HOG với kích thước là 36 x 1 x 7 x 15 = 3780 x 1.

Page 64: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

50

Hình 3.7: Biểu diễn các véc tơ chỉ hướng theo HOG thu được sau khi tính toán

Sau khi hoàn thiện các bước trên, ta có thể sử dụng véc tơ HOG để tính toán và

nhận diện đối tượng.

3.2.4 So sánh khả năng nhận diện của hệ thống nhận diện người vào/ra sử dụng

mạng nơ ron tích chập với phương pháp HOG đã có

Dựa trên thử nghiệm thực tế, ta thu được hình ảnh là kết quả của hai phương pháp

HOG và CNN như sau:

Hình 3.8: Hình ảnh nhận diện bằng phương pháp HOG

Page 65: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

51

Hình 3.9: Hình ảnh nhận diện bằng phương pháp CNN

So sánh hai phương pháp, ra có thể rút ra được một số kết luận sau:

Ở phương pháp HOG, ta có thể thấy phương pháp này không thể nhận diện

toàn bộ người xuất hiện trong bức hình, trong đó có nhận diện nhầm vị trí

nôi em bé thành một người.

Ở phương pháp CNN, ta có thể thấy phương pháp này nhận diện gần như

toàn bộ số người có trong bức hình (trừ một người áo hồng đứng ở cửa

hàng). Ngoài ra, hệ thống CNN vẫn có thể nhận diện người với độ lỗi mất

hình rất lớn (một người đứng sau cột điện)

Bảng 3.1 Kết quả so sánh nhận diện người giữa phương pháp mạng nơ ron tích chập và phương

pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống

Trường hợp thử nghiệm Kết quả phương pháp CNN Kết quả phương pháp HOG

Bức ảnh rõ người 95% 73%

Kích cỡ người trong bức

ảnh rất lớn

96% 62%

Kích cỡ người trong bức

ảnh rất nhỏ

93% 43%

Bức ảnh có người bị che

khuất

92% 13%

Có thể thấy rằng, về độ chính xác, phương pháp nhận diện bằng CNN có khả năng

nhận diện đối tượng người tốt hơn nhiều so với phương pháp HOG.

Page 66: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

52

3.2.5 Mô tả cơ chế chạy nhận diện người trong lõi máy chủ tính toán

Bước 1: Dữ liệu là các video được đầy vào hệ thống để xử lý. Hệ thống trích xuất

các hình ảnh từ video

Hình 3.10: Hệ thống sử dụng ffmpeg để trích xuất các khung hình trong video

Bước 2: Các hình ảnh lần lượt được đẩy vào lõi nhận diện đối tượng để lấy thông

số nhận diện. Thông số nhận diện gồm có: vị trí và kích cỡ đối tượng được phát hiện

Hình 3.11: Các khung hình lần lượt được hệ thống trích xuất và đưa vào lõi để xử lý.

Bước 3: Sau khi có được thông số kích cỡ, vị trí và thời gian nhận diện đối tượng

của từng khung hình, lõi tính toán để theo dõi đường đi của đối tượng, xác định đối tượng

Page 67: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

53

có đi qua vùng đếm hay không, và đếm số người ra hoặc vào trong vùng đếm. Sau đó, hệ

thống đẩy thông tin vào cơ sở dữ liệu và xuất ra một video để báo cáo.

Hình 3.12: Dữ liệu số người vào/ra được nhập vào cơ sở dữ liệu, và video báo cáo được hệ thống tự

động xuất ra để làm đối chiếu.

3.2.6 Mô tả quá trình sử dụng hệ thống ở giao diện người dùng để hiển thị kết

quả

Bước 1: Người sử dụng đăng nhập vào hệ thống bằng tài khoản đã được cung cấp

Hình 3.13: Hình ảnh đăng nhập vào hệ thống

Page 68: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

54

Bước 2: Người sử dụng nhận báo cáo số liệt kê số người vào/ra, cũng như tải video

được báo cáo tự động để đối chiếu

Hình 3.14: Kết quả dữ liệu đã được thêm vào cơ sở dữ liệu và hiển trị trên web.

Bước 3: Người sử dụng có thể xem video được báo cáo để đối chiếu và đánh giá

độ chính xác của hệ thống.

Hình 3.15: Một ví dụ tương tự dữ liệu được xuất báo cáo nhận diện trong hệ thống.

Page 69: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

55

3.3 Áp dụng mạng nơ ron tích chập để xây dựng hệ thống nhận diện

khuôn mặt và đánh giá thực nghiệm, so sánh với phương pháp HOG

3.3.1 Xây dựng hệ thống nhận diện khuôn mặt

Mô tả bài toán: Hiện nay, camera cá nhân rất thông dụng và được lắp ở mọi nơi, ví

dụ như webcam của laptop, hoặc camera của điện thoại thông minh. Tuy nhiên, cũng

giống như camera dân dụng, camera chỉ có thể thực hiện được chức năng chụp hình hoặc

ghi video cơ bản. Do đó, giải pháp hướng đến là xây dựng một hệ thống website nhận

diện khuôn mặt, có thể chạy trên mọi hệ điều hành, và mọi thết bị từ máy tính cho tới điện

thoại.

Về tính ứng dụng, hệ thống có thể sử dụng các điện thoại thông minh hoặc một

máy tính để bàn cùng webcam để làm hệ thống nhận diện khuôn mặt. Hệ thống có thể trở

thành một phần phụ trợ đối với các mô hình kinh doanh, như hệ thống nhận diện khách

hàng quen biết để tăng độ thân thiện cho nhân viên bán hàng, giúp nhân viên bán hàng

chào đúng tên khách khi khách hàng quay lại lần sau. Hoặc kết hợp với các hệ thống

khác, như thống kê cùng các đơn hàng khách hàng đã mua, việc gán nhãn đó có thể mở ra

một mô hình khai phá dữ liệu lớn, hứa hẹn có thể cải tiến nhiều cho mô hình kinh doanh.

Hệ thống này được xây dựng theo kiến trúc như sau:

Hình 3.16: Kiến trúc hệ thống nhận diện khuôn mặt, tích hợp cùng hệ thống mua hàng

Page 70: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

56

Trong đó:

1. Hệ thống tính tiền: Giả định một hệ thống tính tiền của siêu thị được tích

hợp vào hệ thống nhận diện khuôn mặt.

2. Hệ thống camera: hệ thống camera nhận diện khuôn mặt được đặt.

3. Máy chủ xử lý nhận diện: một máy chủ mạnh thực hiện nhận diện khuôn

mặt cho khách hàng thanh toán. Nhận diện được khách hàng và gửi thông

tin về máy chủ trung tâm.

4. Quản trị viên: kết nối, nhập liệu khuôn mặt, duyệt cơ sở dữ liệu và trích

xuất báo cáo. Dựa vào các báo cáo để nắm được trạng thái và làm báo cáo.

5. Hệ thống nhập liệu khuôn mặt: hệ thống nhập liệu để quản trị viên thêm

người dùng vào kho cơ sở dữ liệu.

6. Cơ sở dữ liệu: chứa thông tin nhận diện khuôn mặt, cùng các thông tin khác

tùy vào việc áp dụng hệ thống với mô hình tương ứng.

3.3.2 Giới thiệu cơ chế của máy chủ xử lý nhận diện

Máy chủ xử lý nhận diện khuôn mặt được xử lý theo ba bước như sau:

Bước 1: Phát hiện vị trí khuôn mặt trong bức ảnh, sử dụng dlib với bộ dữ

liệu nhận diện mmod_human_face_detector.dat.

Hình 3.17: Khuôn mặt được trích xuất từ bức ảnh

Page 71: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

57

Bước 2: Sau khi phát hiện khuôn mặt, hệ thống xử lý đề dò tìm các điểm

đặc trưng trên khuôn mặt. Sử dụng bộ dữ liệu

shape_predictor_68_face_landmarks.dat, ta thu được điểm mốc trên khuôn

mặt.

Hình 3.18: Hình ảnh 68 điểm mốc trên khuôn mặt được sử dụng trên bộ thư viện dlib

Bước 3: Sau khi có các điểm mốc trên khuôn mặt, ta thực hiện so sánh với

các khuôn mặt đã được huấn luyện, và đưa ra khuôn mặt có tỉ lệ chính xác

cao nhất.

Hình 3.19: Hình ảnh trích xuất đặc trưng khuôn mặt

Page 72: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

58

3.3.3 Giới thiệu sơ lược về phương pháp phát hiện khuôn mặt sử dụng HOG sẽ

được dùng để so sánh

Tổng quan về các bước:

Bước 1: Tiền xử lý: từ hình ảnh gốc, ta sử dụng phương pháp phát hiện khuôn mặt

và trích xuất khuôn mặt khỏi bức hình

Hình 3.20: Khuôn mặt được sử dụng để nhận dạng

Hình 3.21: Khuôn mặt được trích xuất

Bước 2: Lọc theo bộ lọc Gabor: Bộ lọc Gabor phân tích các thay đổi về ánh sáng

và kết cấu để phân tích hình ảnh: thay đổi cạnh và kết cấu trong một hình ảnh làm nổi bật

các đặc tính của bức ảnh. Điều này giúp loại bỏ chi tiết không mong muốn, do đó các chi

tiết mà chúng ta thực sự mong muốn như các đường viền của môi, mắt, lông mày và vị trí

của chúng trong bức ảnh sẽ rõ ràng hơn. Bộ lọc Gabor được sử dụng để phóng đại hướng

của hình ảnh khuôn mặt, ví dụ Gabor biến nụ cười thành hình tam giác như trong hình

minh họa. Các cạnh được phóng đại và sắc nét hơn, các đặc điểm khuôn mặt trở nên rõ

ràng và đơn giản hơn so với hình ảnh gốc, do đó nó tăng cường độ chính xác cho HOG

Hình 3.22: Hình ảnh được xử lý sau khi qua bộ lọc Gabor

Page 73: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

59

HOG lấy hình ảnh được chuyển đổi từ Bộ lọc Gabor và tìm hướng nổi bật nhất cho

từng nhóm điểm ảnh, được tính toán theo ô. HOG tính toán hướng dốc và cường độ của

hình ảnh Gabor để cung cấp một mô tả toán học rõ ràng về hình ảnh, tạo ra một véc tơ để

mô tả hình ảnh, phục vụ cho việc nhận diện khuôn mặt.

Hình 3.23: Các đặc trưng được trích xuất bằng HOG

Bước 3: Phân loại: véc tơ lấy được từ HOG sẽ được sử dụng theo SVM để tính

toán và phân tích, lưu trữ, và sử dụng để tính toán kết phân loại khuôn mặt

3.3.4 So sánh hệ thống nhận diện khuôn mặt với phương pháp HOG đã có

3.3.4.1 So sánh khả năng phát hiện khuôn mặt giữa HOG và CNN

1. Kết quả phát hiện khuôn mặt khi khuôn mặt ở góc trực diện

Kết quả phát hiện khuôn mặt với HOG:

Hình 3.24: Phát hiện khuôn mặt sử dụng HOG

Độ chính xác: phát hiện gần như chính xác;

Thời gian phát hiện của HOG: 0,37s

Page 74: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

60

Kết quả phát hiện với CNN:

Hình 3.25: Phát hiện khuôn mặt sử dụng CNN

Độ chính xác: phát hiện gần như chính xác

Thời gian phát hiện của CNN: 42s

2. Kết quả phát hiện khuôn mặt khi khuôn mặt bị nghiêng một góc lớn(khoảng 70

độ):

Kết quả phát hiện với phương pháp HOG:

Hình 3.26: Phát hiện khuôn mặt sử dụng HOG với góc nghiêng lớn

Phương pháp hoàn toàn không thể phát hiện được.

Độ chính xác: không thể phát hiện được;

Thời gian nhận diện của HOG: 0,27s

Page 75: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

61

Kết quả phát hiện với CNN:

Hình 3.27: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn

Với phương pháp CNN: phát hiện được với kết quả gần như chính xác

Thời gian nhận diện 27.30s

Bảng 3.2: Kết quả so sánh phát hiện khuôn mặt giữa phương pháp mạng nơ ron tích chập và

phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống

Trường hợp thử nghiệm Kết quả phương

pháp CNN

Kết quả phương pháp

HOG

Mặt nhìn trực diện vào camera 100% 100%

Kích cỡ khuôn mặt trong bức ảnh rất lớn 100% 78%

Kích cỡ khuôn mặt trong bức ảnh rất nhỏ 98% 38%

Khuôn mặt trong bức ảnh bị xoay 30 độ

theo phương ngang

99% 55%

Khuôn mặt trong bức ảnh bị xoay 50 độ

theo phương ngang

95% 20%

Khuôn mặt trong bức ảnh bị xoay 70 độ

theo phương ngang

85% 1%

Khuôn mặt trong bức ảnh bị xoay 90 độ

theo phương ngang

78% 0%

Page 76: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

62

Qua phép so sánh, ta có thể thấy tuy HOG có khả năng tính toán rất nhanh vì tính

chất đơn giản. Tuy nhiên với những hình ảnh có độ phức tạp cao, CNN thể hiện rõ khả

năng phát hiện khuôn mặt vượt trội so với công nghệ HOG.

3.3.4 So sánh khả năng nhận diện khuôn mặt giữa HOG và CNN

1. Kết quả nhận diện khuôn mặt khi khuôn mặt ở góc trực diện

Kết quả phát hiện khuôn mặt với HOG:

Hình 3.28: Kết quả nhận diện khuôn mặt với HOG

Độ chính xác: phát hiện gần như chính xác;

Kết quả phát hiện với CNN:

Hình 3.29: Phát hiện khuôn mặt sử dụng CNN

Độ chính xác: phát hiện gần như chính xác

Page 77: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

63

2. Kết quả nhận diện khuôn mặt khi khuôn mặt bị nghiêng một góc lớn(khoảng 70 độ)

Kết quả phát hiện với phương pháp HOG:

Hình 3. 30: Nhận diện khuôn mặt sử dụng HOG với góc nghiêng lớn

Độ chính xác: không thể nhận diện được;

Kết quả phát hiện với CNN:

Hình 3.31: Phát hiện khuôn mặt sử dụng CNN với góc nghiêng lớn

Độ chính xác: phát hiện gần như chính xác

Page 78: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

64

Bảng 3.3: Kết quả so sánh nhận diện khuôn mặt giữa phương pháp mạng nơ ron tích chập và

phương pháp HOG trên kết quả trung bình của dữ liệu thực tế của hệ thống

Trường hợp thử nghiệm Kết quả phương

pháp CNN

Kết quả phương pháp

HOG

Mặt nhìn trực diện vào camera 100% 100%

Kích cỡ khuôn mặt trong bức ảnh rất lớn 100% 62%

Kích cỡ khuôn mặt trong bức ảnh rất nhỏ 98% 35%

Khuôn mặt trong bức ảnh bị xoay 30 độ

theo phương ngang

95% 51%

Khuôn mặt trong bức ảnh bị xoay 50 độ

theo phương ngang

35% 0%

Khuôn mặt trong bức ảnh bị xoay 70 độ

theo phương ngang

12% 0%

Khuôn mặt trong bức ảnh bị xoay 90 độ

theo phương ngang

0% 0%

Qua phép so sánh, ta có thể thấy, ở những hình ảnh có độ phức tạp như khuôn mặt

có góc nghiêng lớn, xử lý bằng HOG gần như không thể nhận diện được. Nhưng xử lý

bằng CNN có sự vượt trội và chính xác hơn.

3.2.5 Kết quả hệ thống web nhận diện khuôn mặt

3.2.5.1 Giao diện hệ thống

Vì hệ thống web có thể chạy trên 2 nền tảng: nền tảng máy tính và nền tảng thiết bị

di động, nên ta có các giao diện hệ thống sau:

Page 79: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

65

Hình 3.32: Giao diện hệ thống trên web (hai hình trên) và giao diện hệ thống trên mobile (hai hình

dưới)

3.2.5.2 Kết quả chức năng nhận diện khuôn mặt

Ở hệ thống nhận diện khuôn mặt, kết quả báo cáo được lấy từ thực tế khi sử dụng

với dữ liệu được nhận diện bằng camera: Ở phần huấn luyện, dữ liệu đầu vào là một

người dùng ngồi trước camera. Hệ thống sẽ nhận diện môt lượng khung hình của người

dùng. Sau đó, ở phần nhận diện, hệ thống sẽ sử dụng dữ liệu đã được huấn luyện trước đó

để nhận diện người sử dụng được ghi hình. Các bước kết quả sẽ được báo cáo lần lượt qua

các hình ảnh sau:

Hình 3.33: Huấn luyện thêm khuôn mặt mới

Page 80: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

66

Hình 3.34: Kết quả nhận diện sau khi huấn luyện

Ở kết quả nhận diện khuôn mặt, ta có thể thấy hệ thống đã nhận diện tốt với khuôn

măt với góc nhìn thẳng, khuôn mặt với góc nhìn nghiêng xuống dưới 45 độ so với chiều

thẳng đứng, khuôn mặt với góc nhìn nghiêng lên trên 30 độ so với chiều thẳng đứng,

khuôn mặt với góc nhìn nghiêng sang trái 45 độ và khuôn mặt với góc nhìn nghiêng sang

phải 45 độ. Ngoài ra, thử với các trường hợp đặc biệt khác, như nhận diện user với góc

nghiêng khoảng 80 độ, hoặc nhận diện user với góc nghiêng 30 độ trên mặt phẳng Oxz

cũng đều cho kết quả chính xác:

Page 81: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

67

Hình 3.35: Nhận diện user có ID 00280 với góc nghiêng khoảng 80 độ và user có ID 00388 với góc

nghiêng 30 độ trên mặt phẳng Oxz

Sau khi có danh sách các người dùng sau bước huấn luyện. Ta có được các mốc

thời gian các khuôn mặt xuất hiện được lưu vào hệ thống ở bảng sau:

Bảng 3.4: Cơ sở dữ liệu thời gian phát hiện khuôn mặt của hệ thống

Trong đó:

1. user_id: ID của người dùng hệ thống

2. checkin_time: thời gian phát hiện đối tượng xuất hiện trước camera.

Dựa vào thông tin khuôn mặt xuất hiện khi nào, cùng với những thông tin cần thiết

khác, hệ thống có thể tạo ra một bộ cơ sở dữ liệu được gán nhãn để phân tích sâu hơn

như: thói quen người dùng, hoặc làm cơ sở dữ liệu đảm bảo an ninh, …

3.3 Kết luận

Khi áp dụng mạng nơ ron tích chập vào bài toán nhận diện khuôn mặt và đếm số

người ra/vào trong thực tế, hệ thống đã hoạt động ổn định và tỉ lệ sai số ở ngưỡng thấp có

thể chấp nhận được. Hệ thống đã có thể thay thế các nhân viên thống kê qua camera, cũng

như giải phóng sức lao động của con người, góp một phần nhỏ trong quá trình tiến lên

cách mạng công nghiệp 4.0.

Page 82: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

68

KẾT LUẬN

Kết quả đã thực hiện được của luận văn

Với ý tưởng áp dụng trí tuệ nhân tạo vào các nhu cầu của đời sống, nhằm giải

phóng sức lao động của con người với những công việc đơn giản và góp phần xây dựng

cách mạng công nghiệp 4.0, đề tài “Nghiên cứu về mạng Neural Convolutional, áp dụng

vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính” đã hoàn thành được

những mục tiêu sau:

Ở chương một, luận văn đã trình bày tổng quan về lịch sử hình thành, cũng

như các kiến thức về nơ ron nhân tạo, mạng nơ ron nhân tạo và mạng nơ ron

tích chập. Về mạng nơ ron, luận văn đã làm rõ được cấu trúc của một nơ ron

nhân tạo, cách hoạt động của từng thành phần nơ ron. Ngoài ra, luận văn

cũng đã làm rõ cách mạng nơ ron nhân tạo thực hiện quá trình huấn luyện

bằng hình thức lan truyền ngược. Về các kiến trúc mạng, luận văn đã giới

thiệu sơ qua về hai kiến trúc mạng phổ biến là mạng nơ ron truyền thẳng và

mạng nơ ron hồi quy. Trong đó có đi sâu vào phân tích một mạng nơ ron

truyền thẳng đặc biệt là mạng nơ ron tích chập.

Ở chương hai, luận văn đã trình bày tổng quan về bài toán nhận dạng bằng

mạng nơ ron tích chập. Luận văn đã đề cập lịch sử và phát triển của bài toán

nhận dạng đối tượng, giới thiệu và phân tích phương pháp và các bước đang

được sử dụng để nhận diện khuôn mặt với mạng nơ ron tích chập. Ngoài ra

luận văn có giới thiệu, phân tích và kết quả chi tiết của một số mạng nơ ron

tích chập nổi tiếng hoặc được các công ty lớn tạo ra.

Bên cạnh đó, ở chương ba, để tài đã bước đầu xây dựng được mô đun nhận

dạng đối tượng với hệ thống đếm người vào/ra cũng như hệ thống web nhận

diện khuôn mặt. Ngoài ra, đề tài có phân tích và so sánh với hệ thống cũ

đang được sử dụng cho chức năng nhận diện đối tượng và nhận diện khuôn

mặt trước đây là HOG. Về cơ bản, hệ thống mới có khả năng nhận diện với

các dữ liệu lỗi, nhiễu với tỉ lệ chính xác cao hơn so với hệ thống HOG.

Ngoài ra, hệ thống đã có thể vận hành tự động để thay thế được con người,

góp phần giải phóng sức lao động của con người, góp một phần nhỏ trong

quá trình tiến lên công nghiệp 4.0.

Page 83: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

69

Phương hướng phát triển luận văn

Với rất nhiều ứng dụng thực tế của mạng nơ ron nhân tạo. Đề tài có rất nhiều

hướng phát triển trong tương lai, để tạo thành một hệ thống toàn diện hơn, khai thác nhiều

thông tin hơn như:

Lập một hệ thống nhận dạng với số lượng người dùng lớn, làm cơ sở dữ liệu

dân số trong tương lai.

Phân tích hành động qua chuỗi thời gian, để phát hiện, cảnh báo và ngăn

chặn những bất thường, giúp xã hội trở nên an toàn hơn;

Nhận diện tiếng nói qua khuôn miệng của hình ảnh người dùng, hoặc Tạo ra

công cụ đọc ngôn ngữ hình thể để hỗ trợ giao tiếp với người khuyết tật,…

Ngoài ra, với xu hướng mạng vạn vật, hệ thống có thể tích hợp vào trong các bo

mạch thông minh như mạch raspberry pi hoặc Nvidia's Jetson TX1, khiến các hệ thống

thông minh có thể trở nên nhỏ gọn, tiết kiệm điện năng, cũng như dễ dàng tích hợp vào

đời sống con người hơn. Một hệ thống thông minh tự động lớn có thể góp phần xây dựng

nên một hệ thống hỗ trợ xã hội thông minh và đáp ứng các nhu cầu của con người hơn.

Page 84: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

70

TÀI LIỆU THAM KHẢO

[1] N.Q. Anh, N.H. Dũng / Tạp chí Khoa học ĐHQGHN: Khoa học Tự nhiên và

Công nghệ, Tập 33, Số 1 (2017)

[2] Linda G. Shapiro and George C. Stockman. Computer Vision. Prentice Hall.

(2001)

[3] Tim Morris: Computer Vision and Image Processing. Palgrave Macmillan.

(2004)

[4] Bernd Jähne and Horst Haußecker. Computer Vision and Applications, A Guide

for Students and Practitioners. Academic Press. (2000)

[5] Milan Sonka, Vaclav Hlavac and Roger Boyle. Image Processing, Analysis,

and Machine Vision. Thomson. (2008)

[6] David A. Forsyth and Jean Ponce. Computer Vision, A Modern Approach.

Prentice Hall. (2003)

[7] Dana H. Ballard and Christopher M. Brown. Computer Vision. Prentice Hall.

(1982)

[8] Barghout, Lauren, and Jacob Sheynin. Real-world scene perception and

perceptual organization: Lessons from Computer Vision. Journal of Vision 13.9 (2013)

[9]http://www.psych.utoronto.ca/users/reingold/courses/ai/cache/neural4.html,

(2019)

[10] Md Zahangir Alom, Tarek M. Taha, Christopher Yakopcic, Stefan Westberg,

Paheding Sidike, Mst Shamima Nasrin, Brian C Van Esesn, Abdul A S. Awwal, Vijayan

K. Asari. The History Began from AlexNet: A Comprehensive Survey on Deep Learning

Approaches. (2018)

[11] Qianli Liao. A summary of deep models for face recognition. (2015)

[12] D. H. Hubel and T. N. Wiesel. Receptive fields of single neurones in the cat's

striate cortex. URL: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1363130/ (1959)

[13] Y. Lecun, L. Bottou, Y. Bengio, P. Haffner. Gradient-based learning applied

to document recognition. (1998)

[14] Reinhard Klette. Concise Computer Vision. Springer. (2014)

[15] URL: http://disp.ee.ntu.edu.tw/tutorial/NeuralNetwork.docx, (2019)

Page 85: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

71

[16] URL: https://trantheanh.github.io/2016/10/18/ML-07/, (2019)

[17] URL: https://towardsdatascience.com/activation-functions-neural-networks-

1cbd9f8d91d6, (2019)

[18] Chen, Jun-Cheng & Ranjan, Rajeev & Sankar, Swami & Kumar, Amit &

Chen, Ching-Hui & Patel, Vishal & D. Castillo, Carlos & Chellappa, Rama. An End-to-

End System for Unconstrained Face Verifcation with Deep Convolutional Neural

Networks (2016).

[19] AbdAlmageed, W., Wu, Y., Rawls, S., Harel, S., Hassne, T., Masi, I., Choi, J.,

Lekust, J., Kim, J., Natarajana, P., Nevatia, R., Medioni, G. Face recognition using deep

multi-pose representations. In: IEEE Winter Conference on Applications of Computer

Vision (WACV) (2016)

[20] URL: https://ereka.vn/post/chia-se-ve-mang-noron-tich-chap-convolutional-

neural-networks-or-convnets-52790224348847566, (2019)

[21] Krizhevsky, A., Sutskever, I., & Hinton, G. E. Imagenet classification with

deep convolutional neural networks. In Advances in neural information processing

systems. (2012)

[22] URL: http://mlwiki.org/index.php/Overfitting, (2019)

[23] Bae, S.H., Yoon, K.J. Robust online multi-object track- ing based on tracklet

confidence and online discriminative appearance learning. In IEEE Conference on

Computer Vision and Pattern Recognition (CVPR) (2014)

[24] National institute of standards and technology (NIST): IARPA Janus

benchmark-a performance report. URL: http://biometrics.nist.gov/cs_links/face/face_

challenges/IJBA_reports.zip, (2019)

[25] Ranjan, R., Patel, V.M., Chellappa, R.. A deep pyramid deformable part

model for face detection. In: IEEE Inter- national Conference on Biometrics: Theory,

Applications and Systems (2015)

[26] Yi, D., Lei, Z., Liao, S., Li, S.Z.: Learning face repre- sentation from scratch.

arXiv preprint arXiv:1411.7923 (2014)

[27] Belhumeur, P.N., Jacobs, D.W., Kriegman, D.J., Kumar, N.: Localizing parts

of faces using a consensus of exem- plars. Pattern Analysis and Machine Intelligence,

IEEE Transactions on 35 (12) (2013)

Page 86: LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TINlib.uet.vnu.edu.vn/bitstream/123456789/1052/1/Luận văn...Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm

72

[28] Burgos-Artizzu, X.P., Perona, P., Doll´ar, P.: Robust face landmark

estimation under occlusion. URL http://dx.doi.org/10.1109/ICCV.2013.191 (2013)

[29] Chen, J.C., Patel, V.M., Chellappa, R. Unconstrained face verification using

deep cnn features. arXiv preprint arXiv:1508.01722 (2015)

[30] Crosswhite, N., Byrne, J., Parkhi, O.M., Stauffer, C., Cao, Q., Zisserman, A.

Template adaptation for face verification and identification. arXiv preprint

arXiv:1603.03958 (2016)

[31] Ranjan, R., Patel, V.M., Chellappa, R.: HyperFace: A Deep Multi - task

Learning Framework for Face Detec- tion, Landmark Localization, Pose Estimation, and

Gen- der Recognition. URL http://arxiv.org/abs/ 1603.01249 (2016)

[32] Ren, S., Cao, X., Wei, Y., Sun, J.: Face alignment at 3000 fps via regressing

local binary features. (2014).

[33] Ross, G.: Fast r-cnn. arXiv preprint arXiv:1504.08083 (2015)

[34] Roth, M., Bauml, M., Nevatia, R., Stiefelhagen, R.: Robust multi-pose face

tracking by multi-stage tracklet association. In International Conference on Pattern

Recognition (ICPR) (2012)

[35] Yan, J., Zhang, X., Lei, Z., Li, S.Z.: Face detection by structural models.

URL http://www.sciencedirect. com/science/article/pii/S0262885613001765. Best of

Automatic Face and Gesture Recognition (2013)

[36] Shuo Yang, Ping Luo, Chen Change Loy, Xiaoou Tang. From facial parts

responses to face detection. (2015)

[38] Các tài liệu tại https://www.python.org/ và các thư viện liên quan (2019)

[39] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi. You Only

Look Once: Unified, Real-Time Object Detection. (2016)

[40] URL: https://www.learnopencv.com/histogram-of-oriented-gradients/ (2019)

[41] URL: https://cs231n.github.io/ , (2019)

[42] Song, Amanda & Li, Linjie & Atalla, Chad & Cottrell, Garrison. Learning to

see faces like humans: modeling the social dimensions of faces. Journal of Vision. 17.

837. 10.1167/17.10.837, (2017).

[43] Stewart, R., Andriluka, M., & Ng, A. Y. End-to-end people detection in

crowded scenes. (2016, June).