(Luận văn thạc sĩ) 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 - Pdf 70

ĐẠ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


ĐẠ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

Chun ngành

: Kỹ thuật phần mềm




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ể hồ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 q trình nghiên cứu và hồ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!

ii


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

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 khn mặt ............................................................................... 34

2.5 Kết quả các thuật tố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

iv


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

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
vi


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

Hình 3.6: Kết quả sau khi tính tố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 tố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 khn mặt, tích hợp cùng hệ thống mua hàng .. 55
Hình 3.17: Khn 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 khn mặt ....................................................... 57
Hình 3.20: Khn mặt được sử dụng để nhận dạng ......................................................... 58
Hình 3.21: Khn 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 khn mặt sử dụng HOG ............................................................... 59
Hình 3.25: Phát hiện khn mặt sử dụng CNN ............................................................... 60
Hình 3.26: Phát hiện khn mặt sử dụng HOG với góc nghiêng lớn ............................... 60
Hình 3.27: Phát hiện khn 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 khn mặt với HOG ......................................................... 62
Hình 3.29: Phát hiện khn 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 khn mặt sử dụng CNN với góc nghiêng lớn ............................... 63

viii



x


DANH MỤC VIẾT TẮT
Ý nghĩa

Từ viết tắt
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


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

xi


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

đ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 tố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
tố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
1


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 tốn mà tính tố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ấ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 tố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. Ngồ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. Ngồ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.

3


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

 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]

5


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ế

6

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, ngun 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.
8


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

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 tố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
tố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

11



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status