Tải bản đầy đủ (.docx) (119 trang)

ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG TỰ ĐỘNG NHẬN DIỆN VÀ GIÁM SÁT LỢN QUA CAMERA SỬ DỤNG YOLOv4 DeepSORT

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 (16.53 MB, 119 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN
----------

ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG TỰ ĐỘNG NHẬN
DIỆN VÀ GIÁM SÁT LỢN QUA CAMERA

ĐỖ ĐÌNH NAM


Chuyên ngành Hệ thống Thông tin
Giảng viên hướng dẫn:

TS. Dương Trần Đức

Khoa:

CÔNG NGHỆ THÔNG TIN 1

HÀ NỘI, 12/2021


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

ĐỀ TÀI TỐT NGHIỆP
Thơng tin sinh viên







Họ và tên: Đỗ Đình Nam
Số diện thoại: 0358574282
Lớp học: D17HTTT1
Email:
Chuyên ngành: Hệ thống thông tin

Mục tiêu chính của đồ án
 Nghiên cứu vấn đề nhận diện, giám sát đối tượng qua ảnh, video sử dụng học máy
 Nghiên cứu quy trình giám sát lợn trong trang trại, ứng dụng học máy để giám sát lợn
qua hình ảnh camera
 Phát triển hệ thống tự động nhận diện và giám sát lợn qua camera sử dụng học máy
giúp quản lý các cá thể lợn
Nhiệm vụ cụ thể của đồ án
 Huấn luyện model YOLOv4 với dataset về lợn trong trang trại.
 Xây dựng module streaming realtime hình ảnh từ camera/video trang trại, tích hợp
nhận diện và theo dõi lợn.
 Xây dựng hệ thống quản lý trang trại lợn với các chức năng nghiệp vụ riêng cho
ngành chăn ni lợn. Ghép nối với module streaming realtime hình ảnh để người
dùng có thể tương tác trực tiếp trên hệ thống.

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức


Cam kết của sinh viên
Tơi là Đỗ Đình Nam cam đoan rằng nội dung trong đồ án này là của tôi dưới sự hướng
dẫn của TS. Dương Trần Đức.
Các đề xuất và kết quả trong đồ án này đều là xác thực và nguyên bản.
Sinh viên thực hiện

Đỗ Đình Nam

Xác nhận về mức độ hoàn thiện đồ án và cho phép được bảo vệ bởi giáo viên hướng
dẫn
......................................................................
...........................................................................
...........................................................................
...........................................................................
...........................................................................
...........................................................................
...........................................................................
...........................................
Giảng viên hướng dẫn

TS. Dương Trần Đức

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức


LỜI CẢM ƠN

Sau bốn năm rưỡi tại Học viện Cơng nghệ Bưu chính Viễn thơng đã có rất nhiều sự thay
đổi tích cực với cá nhân tôi. Dưới sự dạy dỗ của các thầy cô, tôi đã được trang bị lượng kiến
thức quý báu và đầy đủ nhờ đó giúp em hồn thành đồ án nghiên cứu. Đồ án nghiên cứu này
đánh dấu sự chuyển tiếp trong quá trình học tập tới sự nghiệp của em.
Trước tiên, em muốn gửi lời cảm ơn đến gia đình của mình, những người ln đồng
hành và động viên em cố gắng trong quá trình học tập. Em cũng bày tỏ tấm lòng biết ơn sâu
sắc thầy Dương Trần Đức qua những bài giảng, lời khuyên, định hướng và sự hỗ trợ nhiệt
tình từ giảng viên hướng dẫn của thầy. Thầy đã cho em rất nhiều cơ hội học hỏi bằng những
dự án thực tế và lời khuyên cho cả học tập và sự nghiệp sau này. Bên cạnh đó em cũng xin
bày tỏ lịng biết ơn sâu sắc tới các anh chị và các bạn tại viện INRES đã nhiệt tình hỗ trợ và
đưa ra những định hướng, lời khuyên trong suốt quá trình em thực hiện đồ án. Em xin cảm
ơn những người bạn tại ngơi trường Học viện Cơng nghệ Bưu chính Viễn thơng đã giúp đỡ
em rất nhiều trong thời gian học tập tại trường và trong quá trình thực hiện đồ án.
Lời cuối cùng, em cũng xin bày tỏ lòng biết ơn đến các thầy cô công tác tại Học viện
Công nghệ Bưu chính Viễn thơng đã ln nhiệt huyết với nghề, với sứ mệnh truyền tải kiến
thức, đam mê và trải nghiệm tới thế hệ trẻ chúng em.

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

TÓM TẮT NỘI DUNG ĐỒ ÁN
Việt Nam là một nước có rất nhiều lợi thế về khí hậu, đất đai,.. để phát triển nơng
nghiệp. Ngành nơng nghiệp nói chung, ngành chăn ni nói riêng của Việt Nam đã khẳng
định được vị thế của mình trên trường quốc tế. Những năm gần đây, với sự phát triển vượt

bậc về công nghệ, ngành nông nghiệp của Việt Nam cũng khơng đứng ngồi sự ảnh hưởng
đó. Việc ứng dụng công nghệ vào nông nghiệp đã giúp đỡ rất nhiều các doanh nghiệp, người
nông dân trong công việc ni trồng và chăn ni của mình. Dựa vào tình hình thực tế, nhu
cầu ứng dụng cơng nghệ vào nông nghiệp ngày càng cao. Những yêu cầu khắt khe trong
quản lý chăn nuôi cũng là lý do cho việc áp dụng công nghệ sẽ giúp giải quyết rất nhiều vấn
đề cho người quản lý.
Cùng với sự phát triển của ngành trí tuệ nhân tạo những năm gần đây – sự ra đời của
cấu trúc học sâu mạng tích chập Convolutional Neural Networks (CNNs) được ứng dụng
trong thị giác máy tính giúp nhận dạng vật thể và xác định đối tượng trong hình ảnh. Tính ưu
việt của việc ứng dụng trí tuệ nhân tạo vào trong ứng dụng nhận diện và giám sát vật như
tính chính xác cao, tốc độ vượt trội,.. đã mang em đến với đồ án có tính thực thế cao với chủ
đề Nghiên cứu phát triển hệ thống tự nhận diện và giám sát lợn qua camera.
Nội dung đồ án bao gồm 4 chương:
 Chương 1. Cơ sở lý thuyết. Phần này trình bày những kiến thức về Deep Learning, áp
dụng trong nhận diện, giám sát đối tượng qua ảnh, video.
 Chương 2. Nhận dạng lợn sử dụng mạng học sâu YOLOv4 và cấu hình chi tiết.
 Chương 3. Hệ thống tự động nhận diện và giám sát lợn qua camera sử dụng
YOLOv4.
 Chương 4. Kết luận và hướng phát triển.

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

MỤC LỤC

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

TĨM TẮT NỘI DUNG ĐỒ ÁN.....................................................................................5
DANH MỤC HÌNH VẼ.................................................................................................8
DANH MỤC BẢNG BIỂU..........................................................................................12
MỘT SỐ KÍ HIỆU VIẾT TẮT.....................................................................................14
CHƯƠNG I. CƠ SỞ LÝ THUYẾT................................................................................1
1.1.

HỌC SÂU: DEEP LEARNING.......................................................................1

1.1.1. Mạng nơ-ron nhân tạo................................................................................3
1.1.2. Mạng nơ-ron tích chập (Convolutional Neural Network)..........................6
1.2.

NHẬN DẠNG ĐỐI TƯỢNG: OBJECT DETECTION...................................9

1.1.3. Mạng phát hiện đối tượng theo khu vực....................................................9
1.1.4. Mạng phát nhận dạng một bước...............................................................11
CHƯƠNG II. NHẬN DẠNG LỢN SỬ DỤNG MẠNG HỌC SÂU YOLOv4.............15
2.1.

CẤU TRÚC VÀ PHƯƠNG THỨC HOẠT ĐỘNG CỦA YOLOv4..............15

2.1.1. Cấu trúc mạng YOLOv4..........................................................................15
2.1.2. Phương thức hoạt động............................................................................28
2.2.

TRIỂN KHAI MẠNG YOLOv4 SỬ DỤNG THƯ VIỆN TENSOFLOW.....34

2.2.1. Xây dựng mơ hình YOLOv4 trong Tensorflow........................................37
2.3.


CHUẨN BỊ TẬP DỮ LIỆU HUẤN LUYỆN VÀ GÁN NHÃN....................38

2.3.1. Chuẩn bị tập dữ liệu.................................................................................38
2.3.2. Gán nhãn..................................................................................................39
Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

2.4.

GVHD: TS. Dương Trần Đức

Tiến hành Training trên Google Colab...........................................................47

2.4.1. Chuẩn bị dữ liệu.......................................................................................47
2.4.2. Bắt đầu train mơ hình YOLOv4 với dataset nhãn lợn với Google Colab. 47
CHƯƠNG III. HỆ THỐNG TỰ ĐỘNG NHẬN DIỆN VÀ GIÁM SÁT LỢN QUA
CAMERA SỬ DỤNG YOLOV4..........................................................................................56
3.1.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG...........................................................56

3.1.1. Đặc tả yêu cầu hệ thống...........................................................................56
3.1.2. Phân tích hệ thống...................................................................................82
3.1.3. Thiết kế hệ thống.....................................................................................84
3.2.

PHÁT TRIỂN ỨNG DỤNG..........................................................................88


3.2.1. Streaming Service....................................................................................88
3.2.2. PigAI Service...........................................................................................92
3.2.3. ReactJS WebApp.....................................................................................98
3.3.

HOÀN THIỆN HỆ THỐNG........................................................................102

3.3.1. Kết quả ứng dụng mạng học sâu vào nhận dạng và theo dõi lợn...........102
3.3.2. Một vài hình ảnh khác của hệ thống......................................................104
CHƯƠNG 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN............................................105
4.1.

KẾT LUẬN.................................................................................................105

4.2.

VẤN ĐỀ CÒN TỒN TẠI............................................................................105

4.3.

HƯỚNG PHÁT TRIỂN...............................................................................105

DANH MỤC TÀI LIỆU THAM KHẢO....................................................................106

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp


GVHD: TS. Dương Trần Đức

DANH MỤC HÌNH VẼ
Hình 1.1. Mối liên hệ giữa AI, Machine Learning và Deep Learning.............................2
Hình 1.2. Hình ảnh tương quan giữa cấu trúc nơ-ron tự nhiên và nhân tạo....................3
Hình 1.3. Sơ đồ mạng nơ-ron lan truyền thẳng...............................................................4
Hình 1.4. Sơ đồ thể hiện giá trị mất mát sau khi huấn luyện qua các gói dữ liệu...........6
Hình 1.5. Cấu trúc của FCN và CNN.............................................................................6
Hình 1.6. Ví dụ về bài tốn phân loại ảnh sử dụng CNN................................................7
Hình 1.7. Ví dụ tích chập ảnh với bộ lọc........................................................................8
Hình 1.8. Cấu trúc mạng Fast R-CNN..........................................................................10
Hình 1.9. Cấu trúc mạng SSD sử dụng mạng cơ sở VGG-16.......................................11
Hình 1.10. Cách thức nhận dạng của YOLO................................................................12
Hình 1.11. Quá trình nhận dạng của YOLO..................................................................13
Hình 2.1. So sánh YOLOv4 và YOLOv3.....................................................................14
Hình 2.2. Cấu trúc YOLOv4.........................................................................................15
Hình 2.3. Ba backbone model tác giả so sánh..............................................................16
Hình 2.4. Cấu trúc DenseNet và CSPDenseNet............................................................16
Hình 2.5. Cấu trúc chi tiết DenseNet............................................................................17
Hình 2.6. Sơ đồ khối một Object Detector....................................................................17
Hình 2.7. Một số cấu trúc sử dụng cho phần cổ (Neck)................................................18
Hình 2.8. Cấu trúc lớp SPP...........................................................................................19
Hình 2.9. Kết quả dự đốn bounding box dựa trên một anchor box (hộp neo).............21
Hình 2.10. Khi 2 vật thể người và xe trùng mid point và cùng thuộc một cell.............22
Hình 2.11. Điều chỉnh hue của ảnh...............................................................................23
Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp


GVHD: TS. Dương Trần Đức

Hình 2.12. Xoay ảnh.....................................................................................................24
Hình 2.13. Sau khi chuyển đổi......................................................................................24
Hình 2.14. Mixup.........................................................................................................25
Hình 2.15. Cutmix........................................................................................................25
Hình 2.16. Biểu đồ giá trị của Mish cùng với một vài hàm kích hoạt...........................26
Hình 2.17. Output Landscape cho ReLU, Swish và Mish............................................27
Hình 2.18. So sánh độ chính xác (Accuracy) ứng với số lượng hidden layer...............28
Hình 2.19. Cấu trúc Darknet-53....................................................................................29
Hình 2.20. Mơ phỏng cách thức hoạt động của mơ hình..............................................30
Hình 2.21. Ví dụ ảnh đầu vào.......................................................................................31
Hình 2.22. Các thuộc tính của hộp giới hạn dự đốn của YOLOv4..............................31
Hình 2.23. Vị trí của hộp dán nhãn và hộp anchor........................................................32
Hình 2.24. Cách xác định độ chính xác theo vùng chồng chéo IoU và confident point
của YOLOv4......................................................................................................................... 34
Hình 2.25. Một số hỉnh ảnh của dataset cho tập training..............................................39
Hình 2.26. Các định dạng tập training cho mỗi mạng Roboflow cho phép...................40
Hình 2.27. Tạo dataset mới trên Roboflow...................................................................41
Hình 2.28. Chọn ảnh đưa vào dataset...........................................................................41
Hình 2.29. Chia tập ảnh Train/Test...............................................................................42
Hình 2.30. Lựa chọn tiền xử lý ảnh..............................................................................42
Hình 2.31. Các lựa chọn Augmentation cho ảnh...........................................................43
Hình 2.32. Ảnh trước khi gán nhãn..............................................................................44
Hình 2.33. Ảnh sau khi gán nhãn..................................................................................44
Hình 2.34. Exported Dataset được gán nhãn theo YOLO Darknet format....................45
Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp


GVHD: TS. Dương Trần Đức

Hình 2.35. Nội dung file _darknet.labels......................................................................45
Hình 2.36. Nội dung file .txt của một ảnh trong dataset...............................................46
Hình 2.37. Lựa chọn RuntimeType trên Google Colab................................................48
Hình 2.38. Kết nối với Google Drive............................................................................48
Hình 2.39. Pull mã nguồn YOLOv4 từ git của tác giả..................................................49
Hình 2.40. Mã nguồn được thêm thành cơng vào GDrive............................................49
Hình 2.41. Thư mục Darknet........................................................................................50
Hình 2.42. Giải nén file data.zip...................................................................................50
Hình 2.43. Chuỗi lệnh tạo file yolo.names...................................................................51
Hình 2.44. Tạo file yolo.data........................................................................................52
Hình 2.45. Biên dịch mã nguồn Darknet bằng lệnh......................................................52
Hình 2.46. Tải pretrain weight......................................................................................52
Hình 2.47. Thực hiện train YOLOv4............................................................................53
Hình 2.48. Thư mục backup chứa các file weights.......................................................53
Hình 2.49. Kết quả của quá trình training.....................................................................54
Hình 3.1. Usecase tổng quan........................................................................................56
Hình 3.2. Usecase chức năng quản lý danh sách trang trại...........................................57
Hình 3.3. Usecase chức năng quản lý danh sách chuồng ni......................................62
Hình 3.4. Usecase chức năng quản lý danh sách cá thể lợn..........................................67
Hình 3.5. Usecase chức năng quản lý sự kiện chuồng ni..........................................72
Hình 3.6. Usecase chức năng xem video từ camera tích hợp nhận diện lợn.................77
Hình 3.7. Usecase chức năng xem tồn bộ camera trong trang trại..............................80
Hình 3.8. Sơ đồ lớp thực thể.........................................................................................81
Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp


GVHD: TS. Dương Trần Đức

Hình 3.9. Sơ đồ lớp thực thể pha phân tích...................................................................83
Hình 3.10. Mơ hình kiến trúc tổng thể hệ thống...........................................................83
Hình 3.11. Sơ đồ lớp pha thiết kế.................................................................................85
Hình 3.12. Biểu đồ cơ sở dữ liệu của hệ thống.............................................................86
Hình 3.13. Sơ đồ khối Streaming Video API................................................................89
Hình 3.14. Danh sách các API của component Event...................................................93
Hình 3.15. Danh sách các API của component Users...................................................93
Hình 3.16. Danh sách các API của component EventType...........................................94
Hình 3.17. Danh sách các API của component Pig.......................................................94
Hình 3.18. Danh sách các API của component Farm....................................................95
Hình 3.19. Danh sách các API của component HealthStatus........................................95
Hình 3.20. Danh sách các API của component Pen......................................................95
Hình 3.21. Danh sách các API của component WeightType.........................................96
Hình 3.22. Cấu trúc thư mục của ReactJS WebApp......................................................99
Hình 3.23. Streaming video từ các chuồng ni.........................................................101
Hình 3.24. Thông tin chi tiết của lợn khi chọn xem trên video...................................102
Hình 3.25. Xem tồn bộ streaming video từ các chuồng ni....................................102

DANH MỤC BẢNG BIỂ

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức


Bảng 3.1. Kịch bản xem danh sách trang trại...............................................................61
Bảng 3.2. Kịch bản thêm trang trại...............................................................................62
Bảng 3.3. Kịch bản sửa thông tin trang trại..................................................................63
Bảng 3.4. Kịch bản xóa trang trại.................................................................................64
Bảng 3.5. Kịch bản xem danh sách chuồng nuôi..........................................................66
Bảng 3.6. Kịch bản thêm chuồng nuôi..........................................................................67
Bảng 3.7. Kịch bản sửa thông tin chuồng nuôi.............................................................69
Bảng 3.8. Kịch bản xóa chuồng ni............................................................................70
Bảng 3.9. Kịch bản xem danh sách cá thể lợn..............................................................71
Bảng 3.10. Kịch bản thêm cá lợn..................................................................................72
Bảng 3.11. Kịch bản sửa thông tin cá thể lợn...............................................................73
Bảng 3.12. Kịch bản xóa cá thể lợn..............................................................................74
Bảng 3.13. Kịch bản xem danh sách sự kiện chuồng nuôi............................................76
Bảng 3.14. Kịch bản thêm sự kiện chuồng nuôi...........................................................77
Bảng 3.15. Kịch bản sửa thông tin sự kiện...................................................................79
Bảng 3.16. Kịch bản xóa sự kiện chuồng ni.............................................................80
Bảng 3.17. Kịch bản xem video từ video tích hợp nhận diện lợn.................................81
Bảng 3.18. Kịch bản xem thông tin lợn bằng cách chọn trực tiếp trên video................82
Bảng 3.19. Kịch bản xem toàn bộ camera trong trang trại............................................84
Bảng 3.20. Thư viện sử dụng trong Streaming Service................................................92
Bảng 3.21. Danh sách Endpoints của Streaming Service..............................................92
Bảng 3.22. Thư viện sử dụng trong PigAI Service.......................................................97
Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

Bảng 3.23. Thư viện sử dụng trong ReactJS WebApp................................................102

Bảng 3.24. Danh sách thư mục/files của ReactJS WebApp........................................103

Đỗ Đình Nam – B17DCCN434


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

MỘT SỐ KÍ HIỆU VIẾT TẮT

TT

S

Từ
viết tắt

Từ tiếng Anh

AI

Artificial Intelligent

Nghĩa tiếng Việt

Trí tuệ nhân tạo

.
CNN

.

Convolution Neural
Network

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

DL

Deep Learning

Học sâu

GPU

Graphics Processing

Bộ xử lý hình ảnh

.

.

Unit
IoU

.
TPU
.


7.

8.

9.

Intersection over
Union
Non-Maximum
Suppression

ROI

SSD

Region of Interest
Single Shot Multibox
Detection

YOLO

Đỗ Đình Nam – B17DCCN434

You only look once

Vùng chồng lấn

Bộ xử lý tùy chỉnh theo
khuôn Tensorflow
Vùng chú ý


Mạng học sâu SSD

Mạng học sâu YOLO


Đồ án tốt nghiệp

Đỗ Đình Nam – B17DCCN434

GVHD: TS. Dương Trần Đức


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

CHƯƠNG I. CƠ SỞ LÝ THUYẾT

Ngày nay, Deep Learning được ứng dụng rất rộng rãi ở hầu hết các ngành bao gồm:
công nghiệp, y học, giáo dục, nơng nghiệp,... với các bài tốn điển hình như nhận diện hình
ảnh, giọng nói, xử lý ngơn ngữ tự nhiên. Trong đó, Convolutional Neural Network (CNNs –
Mạng nơ-ron tích chập) là một trong những mơ hình Deep Learning tiên tiến được sử dụng
phổ biến.
Chương này sẽ tìm hiểu tổng quan về mạng học sâu (Deep Learning), mơ hình mạng
nơ-ron trong nhận dạng đối tượng và các mạng phổ biến nhất hiện nay trong bài toán nhận
dạng đối tượng.

1.1.


HỌC SÂU: DEEP LEARNING
Học sâu (viết tắt là DL – Deep Learning) là một nhánh của học máy (Machine

Learning), được xem là một thuật toán dựa trên ý tưởng đến từ bộ não thông qua việc tiếp
thu nhiều tầng biểu đạt hay trừu tượng để có thể làm rõ nghĩa của các loại dữ liệu. Những
thuật toán của Deep Learning vơ cùng đa dạng, mỗi thuật tốn được ứng dụng tùy vào từng
bài toán cụ thể.
Deep Learning là thứ xuất hiện sau trí tuệ nhân tạo (Artificial Intelligence – AI) và
Machine Learning và đang là thứ thúc đẩy sự bùng nổ AI ngày nay – là vòng tròn nhỏ nhất.

Đỗ Đình Nam – B17DCCN434

1


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

Hình 1.1. Mối liên hệ giữa AI, Machine Learning và Deep Learning

Kỹ thuật học sâu được ứng dụng vào rất nhiều ngành công nghiệp bao gồm xe hơi tự
hành, phát hiện các bệnh lý trong ứng dụng y học, cơng nghệ điện tốn đám mây, nhận diện
giọng nói và các ứng dụng trí tuệ. Cũng như các thuật toán học máy, học sâu cũng dựa trên
các thuật toán phức tạp và kỹ thuật xác suất thống kê. Một số loại mạng nơ-ron nhân tạo phổ
biến như mạng tích chập Convolutional Neural Networks (CNN) và mạng nơ-ron hồi qui
Recurrent Neutral Netwrok (RNN) là những ứng dụng của kỹ thuật học sâu hiện đại – mạng
lưới này mô phỏng tương tự như mạng lưới thần kinh của con người. Mỗi một loại mạng nơron được sử dụng vào ứng dụng phức tạp khác nhau như: bài tốn phân loại, hay bài tốn dự
đốn. Ví dụ, nhận diện hình ảnh và nhận diện khn mặt người ta sẽ sử dụng mạng tích chập
CNN, trong khi xử lý ngôn ngữ tự nhiên – Natural Language Processing (NLP) thì người ta

lại sử dụng mạng hồi qui RNN.

Đỗ Đình Nam – B17DCCN434

2


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

1.1.1.

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

1.1.1.1.

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

Mạng lưới
tạo làquan
các mơ
tốn tuy
cách
Hìnhthần
1.2. kinh
Hìnhnhân
ảnh tương
giữahình
cấu tính

trúc nơ-ron
tự được
nhiênra
vàđời
nhân
tạo đây hơn
60 năm về trước nhưng sự khởi đầu mạnh mẽ của nó mới chỉ diễn ra vào những năm của
đầu thế kỷ 20. Và mạng nơ-ron nhân tạo đã trở thành một trong những trụ cột căn bản nhất
của ngành điện toán hiện đại chỉ với một số chứng minh của mơ hình đơn giản ban đầu.
Nơ-ron học máy tuy là một hàm nhưng nó lại có cấu tạo dựa trên mơ hình cấu trúc như
của nơ-ron sinh học.
Tương tự như trong mơ hình sinh học, các xung thần kinh được truyền qua sợi trục
thần kinh với một tỷ lệ nào đó, thì ở mơ hình học máy khi mơ phỏng lại cũng có một hàm
phi tuyến được sử dụng để điều chỉnh tỉ lệ đầu ra sao cho càng giống dữ liệu đầu vào.
Hàm đó được gọi là hàm kích hoạt (activation function), có rất nhiều loại hàm kích hoạt
có thể kể đến như Sigmoid, ReLU, Tanh. Trong đó hàm Leaky ReLU là một trong các
hàm kích hoạt được sử dụng phổ biến trong nhiều nghiên cứu những năm gần đây do hàm
này khắc phục được hạn chế được “vùng chết” của hàm ReLU.
���������(�) = max(0.01�,�)

(1)

Đầu ra của một “đơn vị” nơ-ron được tính qua cơng thức (2) hàm tuyến tính
� =  (�� �� + � )

Đỗ Đình Nam – B17DCCN434

(2)

3



Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

Trong đó là dữ liệu đầu vào thứ , là trọng số của nơ-ron, b là nhiễu bias,  là hàm
kích hoạt.

Hình 1.3.
đồ mạng
nơ-ronlưới
lan truyền
Mạng truyền thẳng nhiều
lớp Sơ
là mơ
hình mạng
nơ-ronthẳng
nhân tạo được tạo bởi một

tập hợp của các nơ-ron. Mỗi nơ-ron sẽ chứa một hàm kích hoạt, tùy thuộc vào dữ liệu đầu
vào mà mạng lưới sẽ tính tốn ra một đầu ra bằng cách áp dụng hàm kết hợp (3). Kiến trúc
của mạng nơ-ron bao gồm 3 loại lớp nơ-ron: lớp đầu vào (input layer), lớp ẩn (hidden layer)
và lớp đầu ra (output layer). Lớp đầu vào là nơi dữ liệu được đưa vào hệ thống, phần lớp ẩn
là nơi dữ liệu được tính tốn và được kết nối với nhau thơng qua các lớp ẩn. Mỗi mạng nơron có thể chứa nhiều lớp ẩn. Gọi lớp � = 0 là lớp đầu vào, và lớp đầu ra là � = � − 1, gọi là
trọng số kết nối từ node thứ i của lớp � − 1 đến node thứ j của lớp �. Tương tự ta có hệ số
bias của node thứ j trong lớp � là , và ta có ma trận hệ số giữa hai lớp � − 1 và lớp �, ma trận
này có kích thước . Ta tính được tổng hàm tuyến tính của lớp l qua cơng thức (3) sau:
(3)
Rồi áp dụng hàm kích hoạt:

Cuối cùng ta sẽ có hàm kích hoạt cho lớp l:

Đỗ Đình Nam – B17DCCN434

(4)
(5)

4


Đồ án tốt nghiệp

1.1.1.2.

GVHD: TS. Dương Trần Đức

Hàm mất mát và Gradient

Mục tiêu của bài toán khi huấn luyện mạng học sâu là tìm được tham số dựa trên tập
dữ liệu huấn luyện mà ta đưa vào mơ hình và dữ liệu đầu ra , sao cho giảm sai lệch giữa đầu
ra của mạng huấn luyến và dữ liệu thực (dữ liệu đã được dán nhãn). Nói cách khác là ta phải
làm giảm giá trị của hàm mất mát . Ví dụ như trong mạng phát hiện vật thể YOLO có sử
dụng hàm mất mát sai số tồn phương trung bình (Mean Squared Error Loss Function) để
tính giá trị sai lệch tọa độ đầu ra của mạng huấn luyện và giá trị thực của hộp giới hạn
(bounding box). Hàm mất mát MSE được viết theo công thức sau:
(6)
Khi ta đã xác định hàm mất mát với hàm MSE, mơ hình mạng học sâu sẽ được huấn
luyện bằng cách cập nhật hệ số trọng số thơng qua thuật tốn tối ưu dựa trên gradient: Giảm
độ dốc (Gradient Descent). Thuật toán giảm độ dốc là một thuật toán tối ưu lặp được sử
dụng trong các bài toán học máy và học sâu với mục tiêu tìm một tập các tham số cho việc

tối ưu mơ hình mạng nơ-ron. Để giảm dần giá trị hàm mất mát và tìm hệ số trọng số � tối
ưu, theo thuật toán giảm độ dốc ta sẽ tính độ dốc gradient của hàm mất mát theo hệ số �
bằng đạo hàm
(7)
Sau đó hệ số được cập nhật theo phương pháp làn truyền ngược (Backpropagation)
theo công thức (8)
(8)
Trong đó  là tập các tham số � cần cập nhật,  là tham số tốc độ học (learning rate),
là đạo hàm Gradient của hàm mất mát theo tập . Việc lựa chọn tham số tốc độ học  cũng
quan trọng khơng kém, nếu hệ số q nhỏ thì mỗi lần tính gradient cập nhật hệ số giảm rất ít,
nên sẽ mất rất nhiều thời gian để cập nhật. Còn nếu hệ số học quán lớn nó sẽ gây ra hiện
tượng quá độ và rất khó cập nhật được giá trị tối ưu giúp giá trị của hàm là nhỏ nhất.

Đỗ Đình Nam – B17DCCN434

5


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

Hình 1.4. Sơ đồ thể hiện giá trị mất mát sau khi huấn luyện qua các gói dữ liệu

Giá trị học hợp lý sẽ làm cho giá trị mất mát giảm dần theo thời gian huấn luyện qua
các Epoch như trong hình 1.4. Epoch là một tham số để chỉ việc hoàn thành huấn luyện toàn
bộ dữ liệu huấn luyện, khi đã hoàn thành bước lan truyền tiến và lan truyền ngược để cập
nhật hệ số.
1.1.2.


Mạng nơ-ron tích chập (Convolutional Neural Network)

Mạng lưới thần kinh tích chập được tạo ra để giải quyết vấn đề về số lượng tham số rất
lớn giữa các nốt của các lớp ẩn trong mạng lưới thần kinh kết nối đầy đủ. Trong mạng lưới
thần kinh chuyển đổi, các lớp ẩn được thay đổi bằng các lớp tích chập, tại các lớp ẩn sẽ sử
dụng ơ tích chập để thực hiện phép tính tích chập lên tồn bộ dữ liệu bức ảnh đầu vào, hay
nói cách khác là các pixel chia sẻ hệ số với nhau.

Hình 1.5. Cấu trúc của FCN và CNN

Nếu như trong mạng kết nối đầy đủ ta có lớp đầu vào, các lớp ẩn và lớp đầu ra. Ở trong
mạng tích chập các nơ-ron được sắp xếp thành 3 chiều: chiều rộng, chiều cao, độ sâu. Đây là
Đỗ Đình Nam – B17DCCN434

6


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

một thiết kế rất phù hợp cho bài toán phân loại dữ liệu đầu vào là dữ liệu ảnh có kích thước
chiều cao x chiều rộng x 3 kênh màu (Đỏ-Lục-Lam). Các nơ-ron trong mạng tích chập
khơng kết nối đầy đủ từng nốt mà chỉ kết nối một vùng nhỏ của lớp tích chập trước đó, liên
kết này được gọi là vùng lĩnh hội.
Cấu trúc của mạng tích chập bao gồm đầu vào → lớp tích chập → hàm kích hoạt ReLU
→ Lớp đầu ra, được mơ tả trong hình ví dụ dưới đây:

Hình 1.6. Ví dụ về bài tốn phân loại ảnh sử dụng CNN


Ơ tích chập có kích thước n x n sẽ được áp dụng lên toàn bộ dữ liệu ảnh, nó sẽ lần lượt
dịch cửa sổ bộ lọc qua từng pixel lần lượt từ trái qua phải, từ trên xuống dưới với bước nhảy
(stride) thường là 1, do kết quả của tích chập sẽ cho ra kích thước nhỏ hơn nên nhờ việc
thêm padding = 1 sẽ thêm vào các cột và hàng xung quanh dữ liệu ảnh các giá trị bằng
khơng để giúp đầu ra bảo tồn được kích cỡ. Sau mỗi lớp tích chập, ta sẽ thu được bản đồ
đặc trưng trừu tượng (feature map), bản đồ đặc trưng trừu tượng sẽ cho ta biết thông tin đặc
trưng của ảnh như viền của vật thể nếu như ta cho tích chập ảnh với cửa sổ bộ lọc viền, khi
trượt qua ảnh đầu vào những pixel trung tâm sẽ có giá trị lớn nhất, và những pixel xung
quanh sẽ tối đi khi đó nó sẽ để lại những pixel trung tâm, đó chính là viền của vật thể như
trong ảnh 1.7 dưới đây.

Đỗ Đình Nam – B17DCCN434

7


Đồ án tốt nghiệp

GVHD: TS. Dương Trần Đức

Hình 1.7. Ví dụ tích chập ảnh với bộ lọc

Sau khi có được bản đồ đặc trưng trừu tượng, áp dụng hàm kích hoạt (như Leaky
ReLU, ReLU, Sigmoid) để có được các thơng tin trừu tượng rõ ràng hơn cho các lớp tiếp
theo. Tiếp theo, để giảm khối lượng tính tốn và giúp cải thiện thời gian học, ta sử dụng lớp
tổng hợp Max Pooling, ngồi ra nó cịn giúp tránh vấn đề thừa ăn khớp (overfitting). Và cuối
cùng lớp đầu ra sẽ sử dụng lớp kết nối đầy đủ, để biến đổi các đặc trưng trừu tượng 3 chiều
thành một véc-tơ một chiều để đưa ra kết quả xác xuất tương ứng với mỗi đặc trưng của từng
đối tượng cần phân loại.


Đỗ Đình Nam – B17DCCN434

8


Đồ án tốt nghiệp

1.2.

GVHD: TS. Dương Trần Đức

NHẬN DẠNG ĐỐI TƯỢNG: OBJECT DETECTION
Phát hiện đối tượng là làm nhiệm vụ xác định một hoặc nhiều đối tượng hiện diện

trong cùng một hình ảnh. Việc phát hiện đối tượng bao gồm hai phần cụ thể là phân loại và
xác định vị trí. Đây là một thách thức trong bài tốn này vì phải phân loại đối tượng mà cịn
phải xác định chính xác vị trí tất cả các đối tượng có trong hình ảnh cùng với việc phát hiện
sự hiện diện của chúng. Phát hiện đối tượng là một trong số ứng dụng quan trọng, bởi nhiều
nhiệm vụ cần sự giám sát của con người có thể tự động hóa bằng cách phát hiện các đối
tượng trong hình ảnh. Phát hiện đối tượng về cơ bản là phân loại và định vị các đối tượng,
gắn nhãn cho chúng bằng các hộp hình chữ nhật để thể hiện điểm tin cậy của dự đốn. Mạng
nơ-ron tích chập (CNN) kết hợp với sliding windows cửa sổ trượt để phân loại từng hình ảnh
này có đối tượng hoặc khơng đối tượng, sau đó kết hợp các kết quả lại với nhau để thực hiện
dự đoán.
Trong những năm gần đây, rất nhiều mạng hiện đại phát hiện đối tượng đã được đề
xuất bởi cộng đồng học sâu DL, như Faster R-CNN [1], YOLO [2], R-FCN [3] và SSD [4].
Mục tiêu chính của các thiết kế này là cải thiện độ chính xác phát hiện theo mAP và độ phức
tạp trong tính tốn của các mơ hình giúp cải thiện thời gian xử lý, để có thể đạt được hiệu
suất thời gian thực cho các nền tảng nhúng và di động. Các mơ hình mạng phát hiện vật thể
này có thể được chia thành hai loại dựa trên kiến trúc của chúng: 1) phương pháp tiếp cận

một bước và 2) phương pháp hai bước (dựa trên khu vực – region based). Cách tiếp cận một
bước có tốc độ chạy nhanh hơn và cho thấy hiệu quả bộ nhớ cao hơn trong khi cách tiếp cận
hai bước tuy đạt được độ chính xác mAP tốt hơn nhưng lại tốn bộ nhớ hơn để chạy.

1.1.3.

Mạng phát hiện đối tượng theo khu vực

Mạng phát hiện đối tượng theo khu vực được chia làm hai bước. Bước thứ nhất là tạo
các phân vùng trong ảnh mà khả năng đối tượng cần phát hiện sẽ nằm trong đó. Bước thứ
hai sẽ thực hiện việc phát hiện đối tượng và phân loại đối tượng đó là vật gì dựa theo đầu
vào phân vùng được tạo ở bước thứ nhất. Có thể kể đến một số mơ hình nổi tiếng như RCNN, Fast R-CNN, FPN và R-FCN.
Đỗ Đình Nam – B17DCCN434

9


Đồ án tốt nghiệp

1.2.1.1.

GVHD: TS. Dương Trần Đức

Mạng Fast R-CNN

Để tăng tốc cho R-CNN, Girshick đã cải thiện quá trình huấn luyện bằng các hợp nhất
3 mơ hình độc lập thành một và được đào tạo chung và tăng khả năng tính tốn. Mơ hình này
gọi là Fast-RCNN. Thay vì trích xuất đặc trưng bằng CNN cho mỗi vùng ảnh, mơ hình tổng
hợp chúng thành một CNN forward trên tồn bộ hình ảnh. Chính vì điều này giúp cho mạng
Fast R-CNN giảm được cả thời gian chạy và khối lượng tính tốn. Ngồi ra Fast R-CNN cịn

đưa ra phương pháp cho phép các đầu ra phân loại và hồi quy được huấn luyện đồng thời
như trong hình 1.8.

Mạng Fast-RCNN tối ưu
tốc 1.8.
độ và
tàitrúc
nguyên
Hình
Cấu
mạnghơn
FastR-CNN.
R-CNN Hàm mất mát dễ huấn
luyện hơn và tránh được vấn đề “Nổ” Gradient (Exploding Gradient). Nổ gradient là hiện
tượng khi sai số gradient dần bị tích lũy và ngày càng tăng lên giá trị rất lớn khiến cho mạng
học sâu trở nên bất ổn định. Không những thế giá trị của trọng số trở nên lớn hơn bất thường
cịn làm gia tăng các tham số tính tốn, khiến cho tài nguyên bộ nhớ bị tràn.
1.1.4.

Mạng phát nhận dạng một bước

Mạng phát hiện đối tượng một bước có kiến trúc giản đơn và thời gian xử lý của mạng
cũng nhanh hơn, với độ chính xác có thể chấp nhận được khi so sánh với các loại mạng phát
hiện đối tượng hai bước dựa theo vùng. Các mạng phát hiện đối tượng một bước gần giống
với mạng phát hiện đối tượng hai bước RPN, nhưng thay vì dự đốn vật hay không phải là
vật, mạng phát hiện đối tượng một bước thì dự đốn phân loại vật thuộc lớp nào và cũng xác

Đỗ Đình Nam – B17DCCN434

10



×