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

(Đồ án hcmute) thiết kế mô hình ứng dụng nhận diện nhãn hiệu

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

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ KỸ THUẬT MÁY TÍNH

THIẾT KẾ MƠ HÌNH ỨNG DỤNG
NHẬN DIỆN NHÃN HIỆU

GVHD: HUỲNH HOÀNG HÀ
SVTH : NGUYỄN PHẠM DUY ÐỨC
MSSV: 15119015

SKL 0 0 5 4 8 8

Tp. Hồ Chí Minh, tháng 07/2019

do an


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày … tháng 07 năm 2019

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên:

NGUYỄN PHẠM DUY ĐỨC

MSSV:



15119015

Ngành:Công Nghệ Kỹ Thuật Máy Tính

Lớp: 15119CL2

Giảng viên hướng dẫn: Ths. Huỳnh Hồng Hà

ĐT: 0962443310

Ngày nhận đề tài: 2019

Ngày nộp đề tài: 2019

1. Tên đề tài: Thiết kế mơ hình ứng dụng nhận diện nhãn
hiệu.
2. Các số liệu, tài liệu ban đầu:
Kiến thức cơ bản về các mơn Tốn Cao Cấp, Xác suất
Thống kê ứng dụng, Máy học, Thiết kế ứng dụng di động.
3. Nội dung thực hiện đề tài:






Thiết kế mơ hình máy học nhận diện nhãn hiệu
trong ảnh.
Thu thập dữ liệu và gắn nhãn.

Thiết kế mơ hình trao đổi thơng tin giữa thiết bị
với server và ứng dụng android cho smartphone.
Triển khai thực tế và đánh giá.
Viết báo cáo.

4. Sản phẩm:
Mơ hình ứng dụng nhận diện nhãn hiệu trên smartphone.
GIẢNG VIÊN HƯỚNG DẪN

TRƯỞNG NGÀNH

i

do an


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Nguyễn Phạm Duy Đức
MSSV: 15119015
Ngành: Cơng nghệ Kỹ thuật máy tính
Tên đề tài: Thiết kế mơ hình ứng dụng nhận diện nhãn hiệu
Họ và tên Giáo viên hướng dẫn: ...............................................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
....................................................................................................................................................................
....................................................................................................................................................................

....................................................................................................................................................................
....................................................................................................................................................................
2. Ưu điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
3. Khuyết điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
....................................................................................................................................................................
5. Đánh giá loại:
....................................................................................................................................................................
6. Điểm: ................................. (Bằng chữ: ................................................................................................ )
....................................................................................................................................................................
Tp. Hồ Chí Minh, ngày... tháng... năm 20…
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)

ii

do an


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----


PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Phạm Duy Đức
MSSV: 15119015
Ngành: Cơng nghệ Kỹ thuật máy tính
Tên đề tài: Thiết kế mơ hình ứng dụng nhận diện nhãn hiệu
Họ và tên Giáo viên phản biện: .................................................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
2. Ưu điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
3. Khuyết điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
....................................................................................................................................................................
5. Đánh giá loại:
....................................................................................................................................................................
6. Điểm: ................................. (Bằng chữ: ................................................................................................ )
....................................................................................................................................................................
Tp. Hồ Chí Minh, ngày... tháng... năm 20…

Giáo viên phản biện
(Ký & ghi rõ họ tên)

iii

do an


LỜI CẢM ƠN
Để hoàn thành đề tài nghiên cứu này, lời đầu tiên cho phép tôi được gửi lời cảm
ơn chân thành đến tồn thể q thầy cơ Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
nói chung và các thầy cô trong Khoa Điện – Điện Tử và Khoa Chất Lượng Cao nói
riêng, những người đã tận tình dạy dỗ, trang bị cho tôi những kiến thức nền tảng và
kiến thức chun ngành quan trọng, giúp tơi có được cơ sở lý thuyết vững vàng và đã
luôn tạo điều kiện giúp đỡ tốt nhất cho tơi trong q trình học tập và nghiên cứu.
Đặc biệt, tôi xin chân thành cảm ơn thầy Huỳnh Hồng Hà đã tận tình giúp đỡ,
hỗ trợ các ý kiến tôi đề nghị, đưa ra những định hướng nghiên cứu cũng như hướng
giải quyết một số vấn đề để tơi có thể thực hiện tốt đề tài. Trong thời gian làm việc với
thầy, tôi đã không ngừng tiếp thu thêm nhiều kiến thức được chỉ dạy từ thầy, luôn thể
hiện một thái độ nghiên cứu nghiêm túc, hiệu quả và đây cũng là điều rất cần thiết
trong quá trình học tập và làm việc sau này đối với tôi.
Cũng xin được gửi lời cảm ơn đến anh Phạm Hồng Thơng và tập thể cơng ty
TNHH Hệ Thống Thông Minh đã không ngần ngại giúp đỡ, truyền đạt những kiến thức
và kinh nghiệm của bản thân để giúp tơi vượt qua những khó khăn và khúc mắc, hỗ trợ
phương tiện trong suốt quá trình nghiên cứu đề tài.
Đồng thời cảm ơn Computer Vision Group của Queen Mary University ở
London đã thu thập dữ liệu Weblogo-2M Dataset và cho phép tơi dùng dữ liệu này với
mục đích nghiên cứu.
Mặc dù đã cố gắng hết sức, song do điều kiện thời gian và kinh nghiệm thực tế
của tôi nghiên cứu cịn ít, cho nên đề tài khơng thể tránh khỏi thiếu sót. Vì vậy, tơi rất

mong nhận được sự đóng góp ý kiến của q thầy, cơ giáo.
Xin chân thành cảm ơn!

TP.HCM, ngày 26 tháng 6 năm 2017
Sinh viên thực hiện
Nguyễn Phạm Duy Đức

iv

do an


TÓM TẮT
Trong thời đại số bây giờ, việc quảng cáo trên mạng internet là một hướng màu
mỡ mà các công ty quan tâm, vì thế mà kéo theo nhu cầu nhận diện logo để tính tốn
thời gian quảng cáo trên các phương tiện truyền thơng.
Ngồi ra, Logo Detecting là một trong những hướng phát triển của Image
Recognition, một lĩnh vực nghiên cứu phát triễn trí thơng minh nhân tạo và máy học.
Việt Nam đang trên đà phát triển và hội nhập, nhiều cơng ty Việt đã có những
thành cơng nhất định trên thế giới và cả trong nước. Tuy nhiên, các công ty chưa thật
sự quan tâm đúng mực về nhãn hiệu của mình, qua đó khách hàng chưa thể tin tưởng
mà ưu tiên chọn hàng Việt.
Trong thời đại bùng nổ internet, mỗi bạn trẻ đều có thể lên mạng mọi lúc mọi
nơi, và các bạn có một nhu cầu tìm hiểu kiến thức xung quanh một cách thú vị hơn.
Điển hình ta thấy có rất nhiều kênh youtube như thế này và có 1 lượng đăng kí nhất
định như: kênh “người nổi tiếng” có 741000 subscriber, kênh “Vfacts” có 403000
subscriber, kênh “Zoom TV” với từ 1-2 triệu lượt xem mỗi video.
Ngồi ra, đã có các ứng dụng để nhận diện và đưa ra thông tin ngắn về thế giới
xung quanh như: PlantSnap có hơn 10 triệu lượt tải xuống,...
Từ những điều trên, người thực hiện đề tài nghiên cứu về một ứng dụng nhận

diện logo trên smartphone và từ đó giúp mọi người có thêm kiến thức về các cơng ty và
doanh nghiệp có các sản phẩm xung quanh ta, giúp các khách hàng có thêm thơng tin
để đặt niềm tin vào sản phẩm Việt.
Hệ thống này sử dụng android application để lấy ảnh (từ ảnh chụp hoặc ảnh
trong bộ nhớ) để gửi lên đến server xử lý nhận diện logo và server sẽ gửi thông tin đã
nhận diện về cho android application. Bài toán nhận diện logo này giải quyết bằng
thuật toán Object Detection.

v

do an


MỤC LỤC
NHIỆM VỤ ĐỒ ÁN MÔN HỌC ................................................................................... i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN............................................. ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ..............................................iii
LỜI CẢM ƠN ................................................................................................................ iv
TÓM TẮT ....................................................................................................................... v
MỤC LỤC ...................................................................................................................... vi
DANH MỤC VIẾT TẮT ............................................................................................viii
MỤC LỤC HÌNH ẢNH ................................................................................................ ix
MỤC LỤC BẢNG ......................................................................................................... xi
CHƯƠNG 1: GIỚI THIỆU ........................................................................................... 1
1.1.

Giới thiệu đề tài................................................................................................. 1

1.2.


Tính cấp thiết đề tài .......................................................................................... 1

1.3.

Muc tiêu đề tài................................................................................................... 2

1.4.

Phạm vi đề tài .................................................................................................... 2

1.5.

Phương pháp nghiên cứu ................................................................................. 2

1.6.

Bố cục đề tài ...................................................................................................... 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN ..................................................... 3
2.1.

Machine learning và Object Detection ........................................................... 3

2.1.1.

Khái niệm Machine Learning ................................................................... 3

2.1.2.

Image Recognition and Object Detection ................................................ 3


2.2.

CNN - Convolutional Neural Network ........................................................... 3

2.2.1.

Convolutional ............................................................................................. 3

2.2.2.

Cấu trúc của mạng CNN ........................................................................... 4

2.2.3.

Trường tiếp nhận cục bộ (local receptive field) ...................................... 5

2.2.4.

Trọng số chia sẻ (shared weight and bias) ............................................... 8

2.2.5.

Lớp tổng hợp (pooling layer) .................................................................... 8
vi

do an


2.3.


Region Proposal Network (RPN) .................................................................. 10

2.4.

Faster R-CNN ................................................................................................. 12

2.5.

Loss Function [1] ............................................................................................ 15

2.6.

Cách tạo mơ hình máy học bằng tensorflow API. ....................................... 17

2.7.

Xây dựng hệ thống firebase. .......................................................................... 24

2.7.1.

Liên kết firebase với python ................................................................... 24

2.7.2.

Liên kết firebase với android application .............................................. 25

2.8.

Base64. ............................................................................................................. 27


CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG ỨNG DỤNG NHẬN DIÊN NHÃN
HIỆU .............................................................................................................................. 29
3.1.

Sơ đồ khối hệ thống ........................................................................................ 29

3.1.1.

Yêu cầu hệ thống ...................................................................................... 29

3.1.2.

Sơ đồ khối ................................................................................................. 29

3.1.3.

Chức năng từng khối ............................................................................... 29

3.1.4.

Hoạt động của hệ thống ........................................................................... 29

3.2.

Thiết kế hệ thống ............................................................................................ 30

3.2.1.

Khối xử lý trung tâm ............................................................................... 30


3.2.2.

Khối nhập xuất ......................................................................................... 32

3.2.3.

Khối lưu trữ .............................................................................................. 34

3.2.4.

Thiết kế mơ hình máy học ....................................................................... 35

CHƯƠNG 4: KẾT QUẢ VÀ THỰC NGHIỆM ........................................................ 39
4.1.

Kết quả............................................................................................................. 39

4.2.

Thực nghiệm ................................................................................................... 41

CHƯƠNG 5: NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN .......................................... 48
5.1.

Kết luận ........................................................................................................... 48

5.2.

Hướng phát triển ............................................................................................ 48


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

vii

do an


DANH MỤC VIẾT TẮT
DNA: Deoxyribonucleic acid.
CNN: Convolutional Neural Network.
ReLU: Rectified Linear Unit.
RPN: Region Proposal Network.
FCs : Fully connected layer.
ROI: Region of Interest.
IoU : Intersection-overUnion.

viii

do an


MỤC LỤC HÌNH ẢNH
Hình 2.1: Cách Convolutional tạo feature map .........................................................................................4
Hình 2.2: Một ví dụ các lớp trong CNN ...................................................................................................5
Hình 2.3: Vùng tiếp nhận cục bộ ..............................................................................................................6
Hình 2.4: Tạo neuron ẩn đầu tiên ..............................................................................................................6
Hình 2.5: Tạo neuron ẩn thứ hai ...............................................................................................................7
Hình 2.6: Tạo ra nhiều feature map bằng nhiều loại trường tiếp nhận cục bộ ..........................................7
Hình 2.7: Ví dụ pooling trong CNN..........................................................................................................9

Hình 2.8: Max-pooling 2x2 .......................................................................................................................9
Hình 2.9: Ví dụ mơ hình CNN ............................................................................................................... 10
Hình 2.10: Region proposal ................................................................................................................... 10
Hình 2.11: Vùng anchor ......................................................................................................................... 11
Hình 2.12: Faster RCNN là một mạng đơn và thống nhất [1] ............................................................... 12
Hình 2.13: Ví dụ về ROI ........................................................................................................................ 14
Hình 2.14: Thực hiện ROI pooling ........................................................................................................ 14
Hình 2.15: Mẫu trình bày file csv để chuẩn bị tập huấn luyện .............................................................. 20
Hình 2.16: Code khai báo đường dẫn đến firebase ................................................................................ 25
Hình 2.17: Code upload ảnh từ server lên firebase ................................................................................ 25
Hình 2.18: Code lấy hình ảnh và biến processing từ id yêu cầu ............................................................ 25
Hình 2.19: Vị trí tool firebase của android studio .................................................................................. 26
Hình 2.20: Trợ lý firebase của android studio ....................................................................................... 26
Hình 2.21: Các bước thiết lập realtime database.................................................................................... 27
Hình 3.1: Sơ đồ khối tổng quát của hệ thống ..........................................................................................29
Hình 3.2: Sơ đồ hoạt động của hệ thống .................................................................................................30
Hình 3.3: Lưu đồ khối xử lý trung tâm ...................................................................................................31
Hình 3.4: Lưu đồ khối nhập xuất ............................................................................................................33
Hình 3.5: Giao diện ứng dụng .................................................................................................................34
Hình 3.6: Cấu trúc firebase .....................................................................................................................35
Hình 3.7: Mẫu dữ liệu đã label................................................................................................................36
Hình 3.8: So sánh tốc độ Faster RCNN so với các loại CNN khác ........................................................37
Hình 3.9: Biểu đồ hàm mất mát cho RPN ...............................................................................................37
Hình 3.10: Biểu đồ hàm mất mát cho bước phân loại cuối cùng ............................................................38
Hình 3.11: Biểu đồ tổng hàm mất mát của mơ hình ...............................................................................38
Hình 4.1: Giao diện chính ứng dụng .......................................................................................................41
Hình 4.2: Nút nhấn chọn chụp ảnh từ camera .........................................................................................41
Hình 4.3: Camera khi chọn nút chụp ảnh................................................................................................42
Hình 4.4: Giao diện ứng dụng sau khi chụp ảnh hoặc chọn ảnh đã lưu trong bộ nhớ ............................42
Hình 4.5: Nhãn hiệu được nhận diện bằng ứng dụng..............................................................................43

Hình 4.6: Giao diện hiện thơng tin pepsi của ứng dụng ..........................................................................43
ix

do an


Hình 4.7: Vị trí mũi tên để quay lại giao diện chính ...............................................................................44
Hình 4.8: giao diện chính sau khi quay về từ giao diện thơng tin ...........................................................44
Hình 4.9: Vị trí nút nhấn chọn ảnh có sẵn...............................................................................................45
Hình 4.10: Giao diện chọn ảnh có sẵn ....................................................................................................45
Hình 4.11: giao diện thơng tin của các loại nhãn khác nhau ...................................................................46
Hình 4.12: Giao diện thơng tin của các loại nhãn khác nhau ..................................................................47

x

do an


MỤC LỤC BẢNG
Bảng 2.1: Bảng mã convert base64 .........................................................................................................28
Bảng 3.1: Thông tin tập dữ liệu ảnh........................................................................................................35
Bảng 4.1: tỷ lệ nhận diện và tỷ lệ chính xác của mơ hình theo từng nhãn ..............................................39

xi

do an


CHƯƠNG 1: GIỚI THIỆU
1.1.


Giới thiệu đề tài

Trong thời đại số bây giờ, việc quảng cáo trên mạng internet là một hướng màu
mỡ mà các cơng ty quan tâm, vì thế mà kéo theo nhu cầu nhận diện logo để tính tốn
thời gian quảng cáo trên các phương tiện truyền thơng.
Ngồi ra, Logo Detecting là một trong những hướng phát triễn của Image
Recognition, một lĩnh vực nghiên cứu phát triễn trí thơng minh nhân tạo và máy học.
Hiện nay, đã có rất nhiều cơng cụ hỗ trợ cho việc này vì dụ: Google Image
Recognition, Amazon Rekognition, Ditto Labs, GumGum, LogoGrab, IBM Image
Detection
Tuy nhiên, việc nhận diện Logo còn rất nhiều hạn chế về dữ liệu và số lượng Logo
luôn phát triễn nên ngồi những cơng ty lớn thì hầu hết các ứng dụng chỉ nhận diện 1 số
lượng logo đặt trước và các logo ngồi lượng đó với 1 độ chính xác nhất định.
Tóm lại, thì Logo Detection đã có một số thành cơng nhất định nhưng vẫn cịn nhiều
hạn chế. Trong đề tài này, em làm ứng dụng để ứng dụng mơ hình này vào thực tế.
1.2.

Tính cấp thiết đề tài

Việt Nam đang trên đà phát triển và hội nhập, nhiều cơng ty Việt đã có những
thành cơng nhất định trên thế giới và cả trong nước. Tuy nhiên, các công ty chưa thật
sự quan tâm đúng mực về nhãn hiệu của mình, qua đó khách hàng chưa thể tin tưởng
mà ưu tiên chọn hàng Việt.
Trong thời đại bùng nổ internet, mỗi bạn trẻ đều có thể lên mạng mọi lúc mọi
nơi, và các bạn có một nhu cầu tìm hiểu kiến thức xung quanh một cách thú vị hơn.
Điển hình ta thấy có rất nhiều kênh youtube như thế này và có 1 lượng đăng kí nhất
định như: kênh “người nổi tiếng” có 741000 subscriber, kênh “Vfacts” có 403000
subscriber, kênh “Zoom TV” với từ 1-2 triệu lượt xem mỗi video.
Ngồi ra, đã có các ứng dụng để nhận diện và đưa ra thông tin ngắn về thế giới

xung quanh như: PlantSnap có hơn 10 triệu lượt tải xuống.
Từ những điều trên, người thực hiện đề tài nghiên cứu về một ứng dụng nhận
diện logo trên smartphone và từ đó giúp mọi người có thêm kiến thức về các cơng ty và

1

do an


doanh nghiệp có các sản phẩm xung quanh ta, giúp các khách hàng có thêm thơng tin
để đặt niềm tin vào sản phẩm Việt.
1.3.

Muc tiêu đề tài

Xây dựng ứng dụng android để chụp ảnh, nhận diện logo và cung cấp thơng tin
về doanh nghiệp.
Xây dựng mơ hình nhập diện logo với độ chính xác trên 85%.
Xây dựng hệ thống xử lý realtime lấy ảnh và dữ liệu từ các thiết bị về máy chủ
xử lý và gửi thông tin đã xử lý từ máy chủ về lại thiết bị.
1.4.

Phạm vi đề tài
Nhận diện mười loại logo nhãn hiệu theo thời gian thực.
Ứng dụng cho điện thoại thông minh android 8.0 trở lên.

1.5. Phương pháp nghiên cứu
Tham khảo tài liệu, các bài báo về máy học, nhận diện vật thể và neural network.
Các khóa học online về máy học trên coursera.org.
Tham khảo các thảo luận trên github.

1.6.
Bố cục đề tài
CHƯƠNG 1: TỔNG QUAN: Trong chương này người thực hiện trình bày tổng
quan về đề tài, tình hình nghiên cứu về đề tài này, động lực lựa chọn đề tài cũng như tính
cấp thiết xoay quanh vấn đề đó và trình bày cấu trúc của đề tài.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT: Giới thiệu khái niệm về Máy học, và những
giải thuật sử dụng để xây dựng mơ hình cũng như thư viện sử dụng chính – Tensorflow.
CHƯƠNG 3: THIẾT KẾ VÀ THI CƠNG ỨNG DỤNG NHẬN DIÊN NHÃN
HIỆU: Trình bày thiết kế và thi công
CHƯƠNG 4: KẾT QUẢ VÀ THỰC NGHIỆM: Chương này trình bày kết quả
thực nghiệm,.
CHƯƠNG 5: NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN: Đưa ra những nhận xét
trong quá trình hồn thiện luận văn cũng như hướng phát triển của hệ thống trong tương
lai.

2

do an


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN
2.1.

Machine learning và Object Detection

2.1.1. Khái niệm Machine Learning
Học máy (machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến
việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống học tự động từ dữ liệu
để giải quyết những vấn đề cụ thể.
Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn

đốn y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khốn, phân loại các
chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trị chơi và cử động rơbốt (robot locomotion).
Một cách đơn giản là học máy có thể giúp chương trình tự đưa ra quyết định từ
những dữ liệu có sẵn mà khơng cần phải lập trình tường minh.
2.1.2. Image Recognition and Object Detection
Nhận dạng hình ảnh là giao nhau giữa Deep Learning và Computer Vision.
- Image Recognition(Image Classification): Đây là quá trình lấy một hình ảnh
làm đầu vào và xuất một class từ ra một tập hợp các class. Nếu chúng ta đưa 1 ảnh vào
thuật toán sẽ cho ta kết quả hình ảnh này thuộc class nào, hoặc là khơng có gì.
- Image Recognition with Localization: Q trình này lấy một hình ảnh làm đầu
vào, xuất ra một nhãn lớp và cũng vẽ một hộp giới hạn xung quanh đối tượng để xác
định vị trí của nó trong hình ảnh
- Object Detection: Trong quá trình này, nội địa hóa hình ảnh phải được áp dụng
cho tất cả các đối tượng trong hình ảnh, dẫn đến nhiều hộp giới hạn
2.2.

CNN - Convolutional Neural Network

2.2.1. Convolutional
Convolutional là một cửa sổ trượt (Sliding Windows) trên một ma trận như mô tả
hình dưới:

3

do an


Hình 2.1: Cách Convolutional tạo feature map
Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh
lấy ra những thơng tin chính xác nhất mà khơng cần chọn các feature.

Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có
kích thước nhỏ như trong ví dụ trên là 3x3.
Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma
trận Filter với ma trận ảnh 5x5 bên trái rồi cộng tổng kết quả.
2.2.2. Cấu trúc của mạng CNN
Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các
hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node.
Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thông tin trừu
tượng hơn cho các lớp tiếp theo.
Các layer liên kết được với nhau thông qua cơ chế convolution. Layer tiếp theo
là kết quả convolution từ layer trước đó, nhờ vậy mà ta có được các kết nối cục bộ. Như
vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ
của neuron trước đó.

4

do an


Mỗi một lớp được sử dụng các filter khác nhau thơng thường có hàng trăm hàng
nghìn filter như vậy và kết hợp kết quả của chúng lại. Ngồi ra có một số layer khác như
pooling/subsampling layer dùng để chắt lọc lại các thơng tin hữu ích hơn (loại bỏ các
thơng tin nhiễu). Trong quá trình huấn luyện mạng (traning) CNN tự động học các giá
trị qua các lớp filter dựa vào cách thức mà bạn thực hiện.

Hình 2.2: Một ví dụ các lớp trong CNN
Trong mơ hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location
Invariance) và tính kết hợp (Compositionality). Với cùng một đối tượng, nếu đối tượng
này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính
xác của thuật tốn sẽ bị ảnh hưởng đáng kể. Pooling layer sẽ cho bạn tính bất biến đối

với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn (scaling). Tính
kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và
trừu tượng hơn thơng qua convolution từ các filter. Đó là lý do tại sao CNNs cho ra mơ
hình với độ chính xác rất cao. Cũng giống như cách con người nhận biết các vật thể trong
tự nhiên.
Mạng CNN sử dụng 3 ý tưởng cơ bản: các trường tiếp nhận cục bộ (local receptive
field), trọng số chia sẻ (shared weights), tổng hợp (pooling).
2.2.3. Trường tiếp nhận cục bộ (local receptive field)
Đầu vào của mạng CNN là một ảnh. Ví dụ như ảnh có kích thước 28x28 thì tương
ứng đầu vào là một ma trận có 28x28 và giá trị mỗi điểm ảnh là một ô trong ma trận.
Trong CNN chúng ta kết nối trong một vùng nhỏ của các neuron đầu vào như một filter
có kích thước 5x5 tương ứng (28- 5 + 1) 24 điểm ảnh đầu vào. Mỗi một kết nối sẽ học
một trọng số và mỗi neuron ẩn sẽ học một bias. Mỗi một vùng 5x5 đấy gọi là một trường
tiếp nhận cục bộ.

5

do an


Hình 2.3: Vùng tiếp nhận cục bộ
Một cách tổng quan, ta có thể tóm tắt các bước tạo ra 1 hidden layer bằng các
cách sau:
- Tạo ra neuron ẩn đầu tiên trong lớp ẩn 1

Hình 2.4: Tạo neuron ẩn đầu tiên
- Dịch filter qua bên phải một cột sẽ tạo được neuron ẩn thứ 2.

6


do an


Hình 2.5: Tạo neuron ẩn thứ hai
Đối với bài tốn nhận dạng ảnh người ta thường gọi ma trận lớp đầu vào là feature
map, trọng số xác định các đặc trưng là shared weight và độ lệch xác định một feature
map là shared bias.
Như vậy đơn giản nhất là qua các bước trên chúng ta chỉ có 1 feature map. Tuy
nhiên trong nhận dạng ảnh chúng ta cần nhiều hơn một feature map.

Hình 2.6: Tạo ra nhiều feature map bằng nhiều loại trường tiếp nhận cục bộ

7

do an


Như vậy, local receptive field thích hợp cho việc phân tách dữ liệu ảnh, giúp chọn
ra những vùng ảnh có giá trị nhất cho việc đánh giá phân lớp.
2.2.4. Trọng số chia sẻ (shared weight and bias)
Đầu tiên, các trọng số cho mỗi filter (kernel) phải giống nhau. Tất cả các nơ-ron
trong lớp ẩn đầu sẽ phát hiện chính xác feature tương tự chỉ ở các vị trí khác nhau trong
hình ảnh đầu vào. Chúng ta gọi việc map từ input layer sang hidden layer là một feature
map. Vậy mối quan hệ giữa số lượng Feature map với số lượng tham số là gì?
Chúng ta thấy mỗi fearture map cần 25 = 5x5 shared weight và 1 shared bias. Như
vậy mỗi feature map cần 5x5+1 = 26 tham số. Như vậy nếu có 10 feature map thì có
10x26 = 260 tham số. Chúng ta xét lại nếu layer đầu tiên có kết nối đầy đủ nghĩa là chúng
ta có 28x28=784 neuron đầu vào như vậy ta chỉ có 30 neuron ẩn. Như vậy ta cần
28x28x30 shared weight và 30 shared bias. Tổng số tham số là 28x28x30+30 tham số
lớn hơn nhiều so với CNN. Ví dụ vừa rồi chỉ mơ tả để thấy được sự ước lượng số lượng

tham số chứ chúng ta khơng so sánh được trực tiếp vì 2 mơ hình khác nhau. Nhưng điều
chắc chắn là nếu mơ hình có số lượng tham số ít hơn thì nó sẽ chạy nhanh hơn.
Tóm lại, một convolutional layer bao gồm các feature map khác nhau. Mỗi một
feature map giúp detect một vài feature trong bức ảnh. Lợi ích lớn nhất của trọng số chia
sẻ là giảm tối đa số lượng tham số trong mạng CNN.
2.2.5. Lớp tổng hợp (pooling layer)
Lớp pooling thường được sử dụng ngay sau lớp convolutional để đơn giản hóa
thơng tin đầu ra để giảm bớt số lượng neuron.

8

do an


Hình 2.7: Ví dụ pooling trong CNN
Thủ tục pooling phổ biến là max-pooling, thủ tục này chọn giá trị lớn nhất trong
vùng đầu vào 2x2.

Hình 2.8: Max-pooling 2x2
Như vậy qua lớp Max Pooling thì số lượng neuron giảm đi phân nửa. Trong một
mạng CNN có nhiều Feature Map nên mỗi Feature Map chúng ta sẽ cho mỗi Max
Pooling khác nhau. Có thể thấy rằng Max Pooling là cách hỏi xem trong các đặc trưng
này thì đặc trưng nào là đặc trưng nhất.
Cuối cùng ta đặt tất cả các lớp lại với nhau thành một CNN với đầu ra gồm các
neuron với số lượng tùy bài toán.

9

do an



Hình 2.9: Ví dụ mơ hình CNN
Hai lớp cuối cùng của các kết nối trong mạng là một lớp đầy đủ kết nối (fully
connected layer) . Lớp này nối mọi nơron từ lớp max pooled tới mọi nơron của tầng ra.
2.3.

Region Proposal Network (RPN)
Input của RPN là feature map và output là các region proposal. Ta thấy các region
proposal là hình chữ nhật.

Hình 2.10: Region proposal
Mà một hình chữ nhật được xác định bằng 2 điểm ở 2 góc, ví dụ A(x_min, y_min)
và B(x_max, y_max). Vì thế khi RPN dự đoán ta phải rằng buộc x_min < x_max và

10

do an


y_min < y_max và các giá trị x,y khi dự đốn có thể ra ngồi khỏi bức ảnh, do thế kĩ
thuật Anchor ra đời.
Ý tưởng xây dựng Anchor là thay vì dự đốn 2 góc ta sẽ dự đốn điểm trung tâm
(x_center, y_center) và width, height của hình chữ nhật. Như vậy mỗi anchor được xác
định bằng 4 tham số (x_center, y_center, width, height).
Vì khơng sử dụng Selective search nên RPN ban đầu cần xác định các anchor box
có thể là region proposal, sau đó qua RPN thì chỉ ouput những anchor box chắc chắn
chứa đối tượng.

Hình 2.11: Vùng anchor
Ảnh bên trái kích thước 400 * 600 pixel, tác tâm của anchor box màu xanh, cách

nhau 16 pixel => có khoảng (400*600)/(16*16) = 938 tâm. Do các vật trong ảnh có thể
có kích thước và tỉ lệ khác nhau nên với mỗi tâm ta định nghĩa 9 anchors với kích thước
64 × 64, 128 × 128, 256×256, mỗi kích thước có 3 tỉ lệ tương ứng: 1 : 1, 1 : 2 và 2 : 1.
Giống như hình bên phải với tâm ở giữa 3 kích thước ứng với màu da cam, xanh
lam, xanh lục và với mỗi kích thước có 3 tỉ lệ.
Số lượng anchor box giờ là 938 * 9 = 8442 anchors. Tuy nhiên sau RPN ta chỉ
giữ lại khoảng 1000 anchors box để thực hiện như trong Fast R-CNN.
Việc của RPN là lấy ra các region proposal giống như selective search thôi chứ
không phải là phân loại ảnh.

11

do an


Mơ hình RPN khá đơn giản, feature map được cho qua Conv layer 3*3, 512
kernels. Sau đó với mỗi anchor lấy được ở trên, RPN thực hiện 2 bước:
-

Dự đoán xem anchor đấy là foreground (chứa vật) hay background (không chứa
vật).
Dự đoán 4 offset value cho x_center, y_center, width, height cho các anchor.

Nhận xét: có rất nhiều anchor bị chồng lên nhau nên non-maxima
suppression được dùng để loại bỏ các anchor chồng lên nhau.
Sau cùng dựa vào phần trăm dự đốn background RPN sẽ lấy N anchor (N có thể
2000, 1000, thậm chí 100 vẫn chạy tốt) để làm region proposal.
2.4.

Faster R-CNN


Faster R-CNN khơng dùng thuật tốn selective search để lấy ra các region
proposal, mà nó thêm một mạng CNN mới gọi là Region Proposal Network (RPN) để
tìm các region proposal.

Hình 2.12: Faster RCNN là một mạng đơn và thống nhất [1]

12

do an


Đầu tiên cả bức ảnh được cho qua lớp convolutional layer để lấy feature map. Sau
đó feature map được dùng cho Region Proposal Network để lấy được các region
proposal.
Tiếp đó các region proposal được Flatten để dự đoán lớp của region proposal.
Tuy nhiên là kích thước của các region proposal khác nhau nên khi Flatten sẽ ra
các vector có kích thước khác nhau nên không thể áp dụng neural network được. Tuy
nhiên ở feature map ta không thể resize được, nên ta phải có cách gì đấy để chuyển các
region proposal trong feature map về cùng kích thước, Region of Interest (ROI)
pooling ra đời.
Region of Interest (ROI) pooling là một dạng của pooling layer. Điểm khác so
với max pooling hay average pooling là bất kể kích thước của mảng đa chiều đầu vào
(tensor input), ROI pooling luôn cho ra output có kích thước cố định được định nghĩa
trước. [1]
Người thực hiện đề tài kí hiệu a/b là phần nguyên của a khi chia cho b và a%b là
phần dư của a khi chia cho b.
Ví dụ: 10/3 = 3 và 10%3 = 1.
Gọi input của ROI pooling kích thước m*n và output có kích thước h*k (thơng
thường h, k nhỏ ví dụ 7*7).

-

Ta chia chiều rộng thành h phần, (h-1) phần có kích thước m/h, phần cuối có kích
thước m/h + m%h.
Tương tự ta chia chiều dài thành k phần, (k-1) phần có kích thước n/k, phần cuối
có kích thước n/k + n%k.
Ví dụ m=n=10, h=k=3, do m/h = 3 và m%h = 1, nên ta sẽ chia chiều rộng thành
3 phần, 2 phần có kích thước 3, và 1 phần có kích thước 4

13

do an


×