Những mạng nơ ron thông thường sử dụng phép nhân ma trận ảnh với một ma trận khác được cấu thành bởi các trọng SỐ, các trọng SỐ này mô tả sự tương tác giữa dữ liệuđầu vào và đầu ra.. Tro
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
TRAN CAO KHAI NGUYEN HOANG NGHIA
KHOA LUAN TOT NGHIEP PHAN LOAI BE MAT DAT BANG MANG NO RON
TÍCH CHAP HIỆN THUC TREN FPGA SỬ DUNG KIÊN
TRUC DEEPLABV3+
LAND COVER CLASSIFICATION BY DESIGNING AND
IMPLEMENTING CONVOLUTIONAL NEURAL NETWORK
ON FPGA USING DEEPLABV3+ ARCHITECTURE
KY SƯ NGANH KỸ THUAT MAY TÍNH
TP HO CHi MINH, 2023
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
TRAN CAO KHAI - 18520877
NGUYEN HOANG NGHIA- 18521143
KHOA LUAN TOT NGHIEP PHAN LOAI BE MAT DAT BANG MANG NO RON
TÍCH CHAP HIEN THUC TREN FPGA SU DUNG KIÊN
TRUC DEEPLABV3+
LAND COVER CLASSIFICATION BY DESIGNING AND IMPLEMENTING CONVOLUTIONAL NEURAL NETWORK
ON FPGA USING DEEPLABV3+ ARCHITECTURE
KY SƯ NGANH KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN
THAC Si PHAM THANH HUNG
THẠC SĨ HO NGỌC DIEM
TP HÒ CHÍ MINH, 2023
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 75/QD-DHCNTT
ngày 15 tháng 02 năm 2023 của Hiệu trưởng Trường Đại hoc Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Trong quá trình thực hiện khóa luận tốt nghiệp này, chúng em đã nhận được rất nhiều
sự hỗ trợ đến từ các thầy cô cũng như bạn bè.
Trước tiên, xin cho phép chúng em được gửi lời cảm ơn sâu sắc đến thầy Phạm Thanh
Hùng và cô Hồ Ngọc Diễm Cảm ơn thầy cô vì đã luôn đồng hành và hỗ trợ tối đa để chúng
em có thể hoàn thành được khóa luận tốt nghiệp này Những kinh nghiệm cũng như kiến thức mà thầy cô đã truyền đạt trong suốt thời gian vừa qua sẽ là hành trang quý giá cho
con đường phát triển bản thân sau này của chúng em.
Tiếp đến, chúng em xin được cảm ơn công sức giảng dạy của các thầy cô trong khoa
Kỹ Thuật Máy Tính nói riêng và các thầy cô của trường Đại Học Công Nghệ Thông Tin nói chung Cảm ơn các thầy cô đã cho chúng em được rèn luyện bản thân trong một môi
trường học tập năng động, đã định hướng cho chúng em về một tương lai rộng mở Chúng
em rất hy vọng thầy cô sẽ mãi là điểm tựa tỉnh thần vững chắc, là những người lái đò cần
mẫn đưa nhiều thế hệ học sinh sinh viên sau này đến bến bờ tri thức.
Chúng em cũng muốn gửi lời cảm ơn đến các bạn sinh viên của Trường Đại Học Công Nghệ Thông Tin Thật là một điều tuyệt vời khi được học tập và làm việc với các bạn,
chính các bạn là những nguồn động lực to lớn dé chúng mình cố gắng cải thiện bản thân nhiều hơn Mong rằng tất cả các bạn sẽ luôn luôn thành công với những gì mà mình đã
lựa chọn.
Lời cuối cùng, chúng em xin được bày tỏ lòng biết ơn với tất cả thầy cô, cán bộ công nhân viên nhà trường, các bạn sinh viên vì đã đồng hành cùng chúng em trong suốt khoảng
thời gian theo học tại trường.
Một lần nữa, chúng em xin chân thành cảm ơn!
Thành phố Hồ Chí Minh, 16 tháng 02 năm 2023
Sinh viên thực hiện
Trần Cao Khải Nguyễn Hoàng Nghĩa
Trang 52.2.2 Bước trượt (Stride)
2.2.3 Tích chập giãn nở (Dilated Convolution)
2.3 Lớp Tổng Hop — Pooling Layer
2.3.1 Lớp tổng hợp giá trị lớn nhất (Max Pooling)
2.3.2 Lớp tong hợp giá trị trung bình (Average Pool):
2.4 Các lớp thành phần khác
2.4.1 Lớp tăng lấy mẫu - Upsampling
2.4.2 Hàm Sigmoid — Sigmoid Function
Chuong3 THIET KE VA HIỆN THUC
3.1 Mô hình thiết kế tong quát
Trang 63.3.1.2.1.1 Khối Xử lý ma trận ảnh 48 3.3.1.2.1.2 Khối Xử lý ma trận trọng số 51
3.3.1.2.1.3 Khối Tính toán tích chập 52 3.3.1.2 Khối tích chập 2D dành cho bộ lọc 3x3 và 7x7 với bước trượt là 2
3.3.2.1.1 Khối Tim giá trị lớn nhất (maxp_core) 65
3.3.2.1.2 Khối tổng hợp Giá trị trung bình 66 3.3.2.2.1 Khối Tính giá trị trung bình (avgp_core): 67
3.3.3 Các khối thành phan khác 69 3.3.3.1 Khối Tang lấy mẫu 69 3.3.3.2 Khối Kết nối 71 3.3.3.2.1 Khối Kết nối 2 đầu vào (concat_2in) 71
3.3.3.2.2 Khối Kết nối 5 đầu vào (concat_5in) 72 3.3.3.3 Khối Cộng ma trận 75
3.3.3.4 Khối Hàm đơn vị tuyến tính chỉnh lưu 76 3.3.3.5 Khối Hàm Sigmoid 78 Chương 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ KET QUA 80
Trang 74.1 Kết quả mô phỏng 80 4.1.1 Kết quả dạng sóng 80 4.1.2 Kết qua sai số 87
4.2 Két qua tổng hợp 87 4.3 So sánh kết quả với các mô hình khác 89
Trang 8DANH MỤC HÌNH
Hình 2 1: Ví dụ khát quát mô hình CNN - ¿5 5++sctererxerrrkrrrrrrerrrree 6
Hình 2 2: Trường thị giác và trường tiếp nhận của mắt người .- - 6
Hinh 2 3: M6 0nì,:00) 111 7
Hình 2 4: Ảnh đầu vào của mang CNN -22222++222+22CEE22122227112 221 crrrrvee 9
Hình 2 5: Ví dụ cho cách hoạt động của lớp tích chập . - - - +5++x+s+xexecxe 9 Hình 2 6: Ví dụ cho bước tính toán của lớp tích chập . -: :+-+=<++ 0
Hình 2 7: Công thức tính kích thước ma trận đầu ra sau khi đi qua lớp tích chập 1
Hình 2 8: Tối ưu hóa điểm ảnh cho lớp tích chập có kích thước 1x1, 2x2, 3x3 2 Hình 2 9: Tích chập ma trận 2 chiều có viền đệm -. ¿522+czz+:z++ 2 Hình 2 10: Phép tương quan chéo bước trượt chiều cao là 3, chiều rộng là 2 4
Hình 2 11: Tích chập và tích chập giãn no . +55 S+++c‡vststevrererererexee 6
Hình 2 12: Hoạt động của lớp tổng hợp giá trị lớn nhất -: -cc++ § Hình 2 13: Hoạt động của lớp tổng hợp giá trị trung bình -ccc-++ 8
Hình 2 14: Biểu đồ mô tả phương pháp nội suy tuyến tính - 21 Hình 2 15: Biểu đồ mô tả phương pháp nội suy bậc hai - ¿©2252 21
Hình 2 16: Tăng kích thước ảnh gấp 2 lần so với kích thước ban đầu 23 Hình 2 17: Giải thuật nội suy điểm ảnh gần nhất -¿+£©+zz+2225zceccssz 24
Hình 2 18: Công thức và biểu đồ giá trị của hàm Sigmoid -cc 25
Hình 3 1: Ảnh dữ liệu đầu vào cho mô hình mạng phân loại bề mặt dat [17] 27 Hình 3 2: Anh mask của ảnh dữ liệu đầu vào [17] -zz5ccc+csceczxccee 28
Hình 3 3: Minh họa tích chập giản nỡ - ¿+ + 1k it 29
Hình 3 4: Quá trình hiện thực phần cứng cho mô hình mạng DeepLabV3+ 34 Hình 3 5: Sơ đồ khối tổng quan của mô hình mạng DeepLabV3+ - - 35
Hình 3 6: Các mô hình mạng Resnet 36
Hình 3 7: Sơ đồ khối của mô hình mạng Resnet18 „36
Hình 3 8: Lớp tích chập 1 của mô hình mạng Resnet18 37 Hình 3 9: Lớp tích chập 2 của mô hình mạng Resnetl 8 37 Hình 3 10: Lớp tích chập 3 của mô hình mang Resnet] 8 - ¿+ -<+++c++ 38
Trang 9: Lớp tích chập 4 của mô hình mạng ResnetÏ 8 - - « <+<<+++ 38
: Sơ đồ khối của bộ ASPP ¿ 2¿©2+2+2+EE2EE2EEE211271221 21121 cv 39
: So sánh tích chập thông thường với tích chập giãn nở (Atrous) 40
: Sơ đồ khối tong quan của CNN IP COre - 2 2 2+s+£E+£x+£xsrerszes 41
: Sơ đồ khối tích chập (Convolution) 3D .c.ccccccssesscessessessessessessesssesesseaee 43
: Sơ đồ khối conv loop data_in - - 2 2522c22E2EcEEeEkerkerxersres 45
: Sơ đồ khối tích chập 2D dành cho bộ lọc 3x3 với bước trượt là I 47
: Sơ đồ khối thiết kế Xử lý ma trận ảnh (conv_ buffer) - 48
: Sơ đồ khối thiết kế Xử lý Vien đệm ”padding” -z+cs+cxsrxersee 50
: Sơ đồ khối thiết kế Xử lý ma trận trọng số (conv_buffer_weights) 51 : Sơ đồ khối thiết kế Tính toán tích chập (CONV _core) -s-s-ss 53 : Sơ đồ khối thiết kế tích chập 2D cho bộ lọc 3x3, 7x7 với bước trượt là 2.
Hkkrerrsserrecrrc.c.c fP ////7, ẾẾết À, Ê co 55
: Sơ đồ thiết kế khối tích chập 2D dành cho bộ lọc 1x1 với bước trượt 1 56 : Sơ đồ thiết kế khối Xử lý ma trận ảnh 1x1 (conv_buffer_IxI) 58 : Sơ đồ thiết kế khối Xử lý ma trận trọng $6 IxI - 5 s54 59 : Sơ đồ thiết kế khối tích chập 2D dành cho bộ lọc 1x1 với bước trượt 2 60 : Sơ đồ thiết kế khối Cộng kênh ảnh đầu vào (conv_channel_in_adder) .62 : Sơ đồ thiết kế khối tong hợp Giá trị lớn nhất -2- 5 52 s54 64 : Sơ đồ thiết kế khối Tìm giá trị lớn nhất 2 -¿- 5c 5++cs++zxzcxees 65
: Sơ đồ thiết kế khối tổng hợp Giá trị trung bình . - 2-5552 66
: Sơ đồ thiết kế khối Tính giá trị trung bình 2-2 2s s£s+cs+£szsz 68 : Sơ đồ thiết kế khối Tăng lay mẫu -2- 2 ©225£+2xe£E+2Ez+Exerxersee 69
: Sơ đồ thiết kế khối Kết nối 2 đầu vào -¿ 2 ++cxccxzzzrxerxerree 71 : Sơ đồ thiết kế khối Kết nối 5 đầu vào -¿- 5¿©2+cxzvrxesrxrersees 73
: Minh hoa Residual Block - - - << 33311331221 E‡£S vs kksrsexkscee 75
: Sơ đồ thiết kế khối COMg Ma tran 0.0 75
: Sơ đồ thiết kế khối ReLU . 2¿22 +2x+2E++EE+EEtEErrEzrerrxerxerxee 71 : Khai triển Hàm Sigmoid bằng công thức Taylor cho €* - 78
Di 5‹54 001.88 78
Trang 1040: Sơ đồ máy trạng thái điều khiển hoạt động khối Sigmoid - 79
1: Kết quả mô phỏng khối Sigmoid - 2-2: 52522522 ++£E+£E£+E++£xe£xezsez 80
2: Biểu đồ sai số của khối Sigmoid (Với số vòng lặp lần lượt là 32 và 30) .81
3: Biểu d6 sai số của khối Sigmoid (Với số vòng lặp lần lượt là 25 và 20) .81
4: Kết quả mô phỏng khối tích chập 3D 3x3 . - 2-2 255 +cs+£szs+2 82 5: Kết quả mô phỏng khối tích chập 3D 7x7 . -¿ 5¿©cs+©c++cxz+cxe2 83 6: Kết qua mô phỏng khối tích chập 3D 1x] -2- 52 ©5225s+cs+zxzsz 84 7: Kết quả mô phỏng khối tổng hợp Giá trị lớn nhất 3x3 - 85 8: Kết quả mô phỏng khối tổng hợp Giá trị trung bình 3x3 86 9: Kết quả mô phỏng khối Tăng lấy mẫiu - 2-2 2 2 £+E££E£E+£+zEzes 87
10: Công thức tinh độ chính xác - ¿2S 3+3 EEveereeerrserrrrrerree 91
11: Anh dé liệu đầu vào (119) của mô hình mang DeepLab V3+ 92 12: Ảnh mask của ảnh dữ liệu đầu vào (1 19) . -sc 5c ©sz+cs+c+zxecse+ 93 13: Anh đữ liệu đầu ra (119) của mô hình mạng DeepLab V3+ 93 14: Ảnh dữ liệu đầu vào (911457) của mô hình mạng DeepLabV3+ 94 15: Ảnh mask của ảnh dữ liệu đầu vào (91 1457) -¿ ¿-s+-s+cxe=se+ 94 16: Anh đữ liệu đầu ra (911457) của mô hình mạng DeepLab V3+ 95 17: Cơ chế đối chiỀu : ¿52 2St‡2E2E2EE2EEEEE2E121122121 7112112121 96
Trang 11DANH MỤC BANG Bảng 3 1: Các nhãn phân loại cho mô hình phân loại bề mặt đắt - 27
Bảng 3 2: Thông số của khối Mã Hóa ¿22 2 SESE£SE£2EE+EESEEEEE2EESEEerxerree 30
Bang 3 3: Thông số của khối Mã Hóa . - ¿2£ E+SE+EE+EE£EE£EEEEEeEEeEErrkrrxee 31 Bảng 3 4: Thông số của bộ giải mã của mô hình mạng DeepLabV3+ 33 Bang 3 5: Thông số của bộ giải mã của mô hình mạng DeepLabV3+ 33
Bang 3 6: Mô tả tín hiệu của CNN IP COFe - Q5 SH HH HH gi, 42
Bang 3 7: Mô tả tín hiệu của khối tích chập 3D 2- 2-2 2£2+£z+£++zxzsez 44
Bang 3 8: Mô tả các tham số của khối tích chập 3D 2-2 52552 2+£++£xzse2 44
Bang 3 9: Mô ta tín hiệu của khối Lap lại dit liệu đầu vào (conv_loop_ data_in) .46 Bảng 3 10: Mô tả tín hiệu khối tích chập 2D dành cho bộ lọc 3x3 với bước trượt 1 .48 Bảng 3 11: Mô tả tín hiệu của khối Xử lý ma trận ảnh (conv_buffer) 49 Bảng 3 12 Mô tả tín hiệu của khối Xử lý Viền đệm 2- 2 2 + s£s+£++zxcxeẻ 50 Bang 3 13: Mô tả tín hiệu của khối Xử lý ma trận trọng số (conv_buffer_weights) 52 Bảng 3 14: Mô tả tín hiệu của khối Tính toán tích chập (conv_core) - 54 Bảng 3 15: Mô ta tín hiệu khối tích chập 2D cho bộ lọc 3x3, 7x7 với bước trượt 2 56 Bảng 3 16: Mô tả tín hiệu của khối tích chập 2D cho bộ loc IxI với bước trượt là 1.57 Bảng 3 17: Mô tả tín hiệu của khối Xử lý ma trận ảnh 1x1 (conv_buffer_1x1) 58 Bang 3 18: Mô ta tín hiệu của khối Xử lý ma trận trong số 1xI - 60 Bảng 3 19: Mô tả tín hiệu của khối tích chập 2D cho bộ lọc 1x1 với bước trượt là 2.61 Bang 3 20: Mô tả tín hiệu của khối Cộng kênh ảnh đầu vào -2 5¿52¿ 63 Bang 3 21: Mô tả các tham số của khối tong hợpp 2-2 2 2+s++x+£xzzxezxsrxee 63 Bang 3 22: Mô tả tín hiệu của khối tong hợp Giá trị lớn nhất 5: 5+: 65 Bảng 3 23: Mô tả tín hiệu của khối Tìm giá trị lớn nhất 2 52 s2 ©5+cs+ 66 Bảng 3 24: Mô tả tín hiệu của khối tong hợp Giá trị trung bình - 67 Bảng 3 25: Mô tả tín hiệu của khối Tính giá trị trung bình -. : 5- 69 Bảng 3 26: Mô tả tín hiệu của khối Tăng lấy mẫu -2- 2-52 5S2£22£2+£E+£xrsez 70 Bang 3 27: Mô tả các tham số của khối Tăng lấy mẫu 2 2-5 52 s+cs2 552 70 Bảng 3 28: Mô tả tín hiệu của khối Kết nối 2 đầu vào - ¿5c + s+cxscxee 72 Bảng 3 29: Mô tả tín hiệu của khối Kết nối 5 đầu vào -2-c2- 55x52 74
Trang 121: Thời gian xử lý của khối Sigmoid với số vòng lặp khác nhau 82 2: Bảng biểu thị sai số lớn nhất và nhỏ nhất của các khối tính toán 87 3: Kết qua tong hợp Mô hình tổng quat c ccccccccscsssesssesseesseessecstecsessseessecseeeses 88
4: Bang so sánh mục tiêu mô hình của nhóm với các mô hình khác 90
5: Bảng so sánh mục tiêu đã đề ra với kết qua mà nhóm đã đạt được 91
6: Các nhãn phan loại cho mô hình phân loại bề mặt đất - -csss¿ 96
Trang 13DANH MỤC TỪ VIET TAT
AI Artificial Intelligence — Trí Tuệ Nhân Tạo.
ANN Artificial Neural Network — Mang No Ron Nhân Tao
ASPP Atrous Spatial Pyramid Pooling — Kim tự thập bộ loc Atrous.
CNN Convolutional Neural Network — Mang No Ron Tich Chap.
FPGA Field-programmable gate array.
IP Intellectual Property — Khối logic tính toán được thiết kế và phát
triển để có thê sử dụng lại trong các thiết kế phần cứng.
Red — Green — Blue — Hệ mau sử dụng 3 màu đỏ, xanh lục, xanh
RGB dương dé hién thị điểm ảnh.
ROM Read Only Memory — Bộ nhớ chỉ đọc.
RS Remote Sensing — Céng Nghé Vién Tham, Vé Tinh
Space Invariant Artificial Neural Network — Mang No Ron Nhan
SIANN =À A
Tao Không Gian Bat Biên.
3D 3 Dimensions — 3 chiéu
Trang 14TÓM TẮT KHÓA LUẬNTrong đề tài khóa luận này, nhóm tiến hành nghiên cứu xây dựng kiến trúc CNN trongứng dụng phân loại bề mặt đất của một khu vực (sử dụng bộ dữ liệu DeepGlobe LandCover Classification) trên FPGA Kiến trúc mà nhóm sử dụng trong việc thiết kế là mạngDeeplabV3+ với các trọng số đã được huấn luyện từ trước trên Pytorch, các trọng số nàysau đó sẽ được trích xuất dưới định dang file text và nạp vào thiết kế phần cứng nhằm
phục vụ cho ứng dụng của mạng.
Về phần cứng: nhóm tiến hành nghiên cứu các giải thuật, thuật toán cần thiết trong
mang CNN mà nhóm đã chon, sau đó sẽ ứng dụng các thuật toán nay để hiện thực mạng.
Ngôn ngữ phần cứng được sử dụng trong việc hiện thực mạng CNN là: Verilog
Về phan dữ liệu xử lý và tính toán: nhóm sử dụng kiểu dữ liệu là số dấu thực dấu phẩyđộng với độ chính xác đơn (Floating Point 32-bit Single Precision) Chức năng của thiết
kế được mô phỏng và tan số cao nhất mong muốn đạt được là: 50MHz.
Kết quả đạt được sẽ được đánh giá qua các tiêu chí:
e Tốc độ: tần số hoạt động tối đa mong muốn của thiết kế là 50MHz
e Tính chính xác về chức năng của thiết kế so với cơ sở lý thuyết và kết quả phân
loại trên mô hình phần mềm (Độ chính xác mong muốn là trên 70%)
e Tài nguyên phan cứng: đảm bảo thiết kế hoạt động ở tần số tôi đa với lượng tài
nguyên sử dụng là tối ưu nhất
Trang 15MỞ ĐẦUTrong ngành công nghiệp nước ngầm, một mô hình mạng nơ ron tích chập (CNN)đóng vai trò quan trọng trong việc đánh giá tiềm năng nước ngầm và các thay đổi của bểmặt đất dựa trên công nghệ viễn thám (RS) Mạng nơ ron tích chập có khả năng tríchxuất các đặc tính hình thể phức tạp với những tầng lớp khái quát cao Mục tiêu của nhómđối với đề tài nghiên cứu cho khóa luận này sẽ là hiện thực và đánh giá mức độ hiệu quảcủa các thuật toán học sâu bằng ngôn ngữ thiết kế phần cứng Có rất nhiều các yếu tốảnh hưởng đến độ chính xác của những dự đoán về tiềm năng nước ngầm của một khuvực, một trong số đó là kỹ thuật phân loại bề mặt đất Phân loại tiềm năng nước ngầm
và đánh dấu những khu vực đó là yếu tổ rat quan trọng trong việc tối ưu hóa nguồn nướcngầm Điều này cũng giúp đơn giản hóa các chiến lược phù hợp trong việc quản lý nguồntài nguyên nước ngầm Các nghiên cứu đã chỉ ra rằng, bề mặt đất có ảnh hưởng rất lớnđến sự phát triển của các nguồn nước ngầm trong một khu vực nhất định Lay vi du, cac
vùng đất đô thi đã bị con người thay đôi bề mặt đất bên trên sẽ làm giảm đi khả năng
thấm thấu nước Tuy nhiên, đất rừng sẽ là khu vực có kha năng thâm thấu và tích trữnước ngầm cao Vì vậy, phương pháp cải tiễn nhất và chính xác nhất dé xác định nguồnnước ngầm chính là sự liên kết giữa tiềm năng nước ngầm và bề mặt đất của chính khu
vực đó.
Trang 16Chương 1 GIỚI THIEU DE TÀI
1.1 Lý do chọn đề tàiNgày nay, với sự phát triển mạnh mẽ của thị giác máy tính, các công việc mà từ trướcđến nay chỉ có con người mới có thé thực hiện được, thì hiện tại máy móc đã có thể hoànthành những công việc đó với chất lượng tương đương hoặc thậm chí còn tốt hơn
Các ứng dụng của thị giác máy tinh có thé nhận thấy được ở khắp moi thứ xung quanh
ta, từ những nghiên cứu học thuật cho đến ứng dụng thực tế Vì tiềm năng của lĩnh vựcnày là rất lớn, cho nên đã có rất nhiều những công ty trên thế giới đã tự sản xuất các conchip AI với các kiến trúc khác nhau được ứng dụng cho các lĩnh vực khác nhau Và bêntrong những con chip AI này sẽ là những mô hình kiến trúc mạng nơ ron tích chập đã
được tích hợp, nhờ vào khả năng xử lý dữ liệu chính xác, thời gian hoạt động nhanh.
Tuy nhiên, nhu cầu của con người ngày càng cao và lượng dit liệu mà các mô hình mangnày cần xử lý ngày càng lớn, cho nên đã tạo áp lực cho hệ thống các máy chủ xử lý.Chính vì vậy mà nhóm quyết định chọn đề tài là hiện thực mô hình mạng nơ ron tíchchập ứng dụng trong phần loại bề mặt đất bằng ngôn ngữ phần cứng, với lượng tàinguyên sử dụng là tối ưu nhất
1.2 Mục tiêu đề tài
Trong dé tài này, nhóm tập trung tìm hiểu kiến trúc của mô hình mang CNN là
DeepLabV3+ ứng dung trong phân loại bề mặt đất Nhóm dé ra những mục tiêu sau đây:
s Tiến hành thiết kế mô hình mang DeepLabV3+ có thé phân loại được bề mặt dat
từ dir liệu ảnh đầu vào Tiến hành so sánh kết quả có được từ mô hình phan cứng
với ảnh đã được phân loại dé đánh giá được độ chính xác (Mục tiêu của nhóm là trên 70%) của thiết kế khi hiện thực bằng ngôn ngữ phần cứng.
“+ Hiện thực mô hình mạng DeepLabV3+ trên FPGA Sử dung board Virtex7.
Trang 171.3 Bố cục bố cáo
Báo cáo này chia làm 05 chương chính Các chương được trình bày như sau:
Chương 1: GIỚI THIỆU ĐÈ TÀI
Chương | sẽ giới thiệu đề tài nhóm đang thực hiện
Chương 2: NGHIÊN CỨU MẠNG NƠ RON TÍCH CHẬP
Chương 2 sẽ trình bày các kiến thức, nghiến cứu tổng quan về mạng nơ ron tích chập
Chương 3: THIẾT KE VÀ HIỆN THUC
Chương 3 trình bày phương pháp thiết kế, xây dựng mô hình mạng và các khối thànhphần chỉ tiết, cách hoạt động
Chương 4: THUC NGHIỆM VA ĐÁNH GIÁ KET QUÁ
Chương 4 sẽ trình bày kết quả và phương pháp đánh giá của thiết kế
Chương 5: KET LUẬN VÀ HƯỚNG PHÁT TRIEN
Chương 5 sẽ tom tắt toàn bộ công việc và kết quả đạt được Đồng thời đề ra phương
hướng phát triển cho đề tài trong tương lai cũng được trình bày ở chương này
Trang 18Chương 2 NGHIÊN CỨU MẠNG NO RON TÍCH CHAP
2.1 Tong quan
Trong lĩnh vực học sâu (Deep Learning), một mô hình mạng nơ ron tích chập (CNN)
được xem như là một tập tính của mạng nơ ron nhân tạo (ANN) Mô hình CNN được áp
dụng phổ biến nhất trong việc phân tích hình ảnh Mô hình CNN cũng được biết đến như
là mạng nơ ron nhân tạo không gian bắt biến dựa trên kiến trúc chia sẻ trọng số của các
bộ lọc tích chập Các bộ lọc này sẽ trượt đi trên những bức ảnh đữ liệu đầu vào và cungcấp ở đầu ra sẽ là các đặc tính được dịch và trích xuất ra từ bức ảnh đó Mô hình CNNđược ứng dụng trong nhận diện ảnh và video, phân loại ảnh, phân tầng ảnh, phân tích
hình ảnh y khoa, xử lý ngôn ngữ tự nhiên.
CNN được xem như là một phiên bản chính quy của mạng nơ ron truyền thắng nhiềulớp (Multilayer Perceptrons) Có thể hiểu một cách đơn giản mang no ron truyền thangnhiều lớp là mạng kết nói day đủ (Fully Connected Networks) — mỗi nơ ron của một lớphình ảnh sẽ có liên kết với tất cả các nơ ron của lớp phía sau nó Đặc tính kết nối đầy đủ
của các mạng này sẽ giúp chúng không gặp phải hiện tượng “quá khớp dữ liệu” Các
cách dé chính quy hóa, hoặc tránh sự quá khớp gồm: giảm bớt trọng số trong quá trìnhhuấn luyện hoặc cắt giảm kết nối (skipped connections, dropout, ) Tuy nhiên, mang
CNN sẽ có một cách tiếp cận khác đối với quá trình chính quy hóa này, đó là: tận dụng
đữ liệu khuôn mẫu có cấp bậc, tổng hợp các khuôn mẫu có độ phức tạp tăng dần bằngcách sử dụng các khuôn mẫu nhỏ và đơn giản hơn được tích hợp sẵn trong bộ lọc Vì
vậy, xét đến khía cạnh độ liên kết và tính phức tạp thì mô hình CNN được đánh giá là
đơn giản hơn.
Trang 19Kĩ thuật tích chập được truyền cảm hứng bởi cách mà các nơ ron được liên kết với
nhau, hoạt động này giống với cách hoạt động của mắt người Từng tế bào thần kinh nơron chỉ phản ứng với một vùng nhất định trong trường thị giác, đây được gọi là trườngtiếp nhận Các trường tiếp nhận này khi tiếp nhận nhiều các nơ ron khác nhau sẽ xếpchồng lan lên nhau cho đến khi bao phủ hết cả trường thị giác của mắt người Từ đó sẽhình thành nên hình ảnh, giúp mắt người có thê nhận biết được môi trường xung quanh
Cell's receptive field
Hình 2 2: Trường thị giác và trường tiếp nhận của mắt người
Trang 20Mô hình CNN bao gồm lớp đầu vào, lớp ân và cuối cùng là lớp đầu ra Lớp ấn chính
là lớp thực hiện việc tích chập, đầu ra của lớp tích chập này sẽ là tích vô hướng ma trậnchập của khói tích chập với ma trận dữ liệu đầu vào của lớp Khi ma trận chập này trượt
đi trên ma trận dữ liệu đầu vào sẽ tạo ra những đặc trưng (feature map), đây cũng chính
là đữ liệu đầu vào cho lớp tiếp theo Theo sau lớp tích chập sẽ là các lớp như lớp pooling,lớp kết nói đầy đủ, lớp chuẩn hóa, Tất cả các lớp trên đây sẽ được trình bày một cáchchỉ tiết ở phần bên dưới
2.2 Lớp Tích Chap — Convolutional Layer
Tích chập làm nỗi bật 3 tính chat quan trọng trong việc thúc day sự phát triển của thịgiác máy tính: tương tác rời rạc (sparse interaction), chia sẻ trọng số (parameter sharing),
và ánh xạ (equivariant representation).
Những mạng nơ ron thông thường sử dụng phép nhân ma trận ảnh với một ma trận
khác được cấu thành bởi các trọng SỐ, các trọng SỐ này mô tả sự tương tác giữa dữ liệuđầu vào và đầu ra Điều này có nghĩa là mỗi đơn vị dữ liệu đầu ra đều sẽ tương tác vớicác đữ liệu đầu vào Tuy nhiên, mạng nơ ron tích chập có tính chất tương tác rời rạc.Phương pháp này sử dụng ma trận chập với kích thước nhỏ hơn nhiều so với ảnh đầuvào Một bức ảnh đầu vào có thé có hàng nghìn đến hàng triệu điểm ảnh, và với nhiều
ma trận chập có kích thước nhỏ sẽ giúp chúng ta phát hiện nhiều những thông tin hơn so
Trang 21với phép nhân ma trận ảnh của các mang nơ ron thông thường Phương pháp nay cũng
giúp giảm bớt số lượng các trọng số cần được lưu, từ đó giảm đi dung lượng bộ nhớ cần
có và đồng thời còn giúp cải thiện hơn về mặt hiệu năng của mạng
Nếu như việc tính toán một điểm ảnh ở một vị trí nhất định (x0, y0) mang lại lợi íchthì chắc chắn rằng việc tính toán này ở vị trí điểm ảnh khác (x1, yl) cũng sẽ có anhhưởng tích cực tương tự Điều này có nghĩa là đối với ma trận chập 2 chiều sẽ tạo ra nơron đầu ra được ràng buộc sử dụng chung tập trọng số Với mạng nơ ron truyền thốngtrước đây, mỗi giá trị trong ma trận chập chỉ được sử dụng một lần duy nhất Trong khi
đó, mạng nơ ron tích chập có tính chất chia sẻ trọng số, để có được điểm ảnh ở đầu rathì trọng số được sử dụng ở một điểm ảnh đầu vao sẽ được sử dụng ở các điểm ảnh đầu
Lớp tích chập đóng vai trò quan trọng nhất và cũng chính là lớp căn bản nhất của một
mô hình CNN Lớp này sẽ đảm nhận hầu hết trọng trách trong việc tính toán của mô hìnhmạng băng cách thực hiện tích vô hướng giữa hai ma trận, trong đó, một ma trận sẽ làphan giới hạn của trường tiếp nhận (Phan 2.1.1) Ma trận chập (Kernel) sẽ có kích thướcnhỏ hơn nhưng lại có chiều sâu lớn hơn so với bức ảnh dữ liệu
Trong quá trình lan truyền xuôi, ma trận chập sẽ trượt đi trên chiều dài và chiều rộng
của bức ảnh dir liệu, từ đó tao ra một dạng biểu diễn ảnh của trường tiếp nhận là một matrận điểm ảnh hai chiều Ma trận trên là kết quả của tích vô hướng giữa ma trận chập và
vị trí nhất định trên bức ảnh dữ liệu Kích thước khi trượt đi của ma trận trượt được gọi
là bước trượt (Stride) Ma trận điểm ảnh đầu ra này sẽ cho chúng ta biết được những
thông tin như là những góc hoặc cạnh của bức ảnh dữ liệu đầu vảo Tiếp đó, ma trận này
Trang 22sẽ trở thành dir liệu đầu vào cho cách lớp khác nhăm trích xuất thêm những đặc tính từảnh đầu vào.
Lớp tích chập trong mạng CNN sẽ truyền kết quả tính toán đầu ra của mình cho cáclớp khác sau khi đã xử lý xong dữ liệu đầu vào Lớp tích chập mang lại rất nhiều lợi íchcho mạng CNN nhờ vào khả năng bảo toàn tính nguyên vẹn trong mối liên kết giữa cácđiểm ảnh
Lớp tích chập trong CNN thực hiện hoạt động tích chập của mình với hình ảnh ở chế
độ 3D vì dữ liệu ảnh đầu vào sẽ luôn có kích thước với chiều dài, chiều rộng và chiềusâu (Thông thường, chiều dài và chiều rộng sẽ bằng nhau) Chiều sâu đại diện cho các
kênh màu của anh và thường sẽ có định dạng là RGB (Red — Do, Green — Xanh Lá, Blue
0|1|1|0|1
Hình 2 5: Ví dụ cho cách hoạt động của lớp tích chập.
Trang 23Đề có thê hiểu rõ hơn về cách hoạt động của lớp tích chập, hình ảnh dưới đây sẽ làmột ví dụ trực quan hơn về những bước tính toán và xử lý của các điểm ảnh khi được
cho đi qua lớp tích chập:
Ma trận chập
bw+cx cw+dx
+fy+gz +gy+hz
ew+fx fw+gx gw+hx +iy+jz +jy+kz +ky+lz
iw+jx+ jw+kx+ kw+lx+
my+nz ny+oz oy+pz
Hình 2 6: Vi du cho bước tính toán của lớp tích chap.
aaa
Chúng ta di chuyên các diém anh của ma trận đầu vào từ trai qua phải va từ trên xuống
dưới Sau đó lấy giá trị của điểm ảnh nhân với ma trận chập sẽ thu được ma trận đầu ra
có kích thước tương đương Tùy vào bước trượt được qui định là bao nhiêu ma ta sẽ di
chuyển kết quả của mỗi lần nhân các điểm ảnh với bộ lọc sang bấy nhiêu đơn vi Sau
cùng là tính tổng các vị trí tương ứng của các ma trận kết quả dé thu được ma trận chuyển
VỊ.
10
Trang 24Giả sử, một bức ảnh đầu vào có kích thước là W x W x D (W: Width — chiều rộngbức ảnh, D: Dimension — Chiều sâu bức ảnh), sỐ lượng ma trận chập là Dout có kíchthước là F, bước trượt là S và viền đệm là P thì ta sẽ có được công thức tính kích thước
ma trận đâu ra dựa trên công thức sau đây:
sẽ nhỏ hơn so với đầu vào Giả sử chúng ta sử dụng một bức ảnh có kích thước 240x240,
đi qua 10 lớp tích chập có ma trận chập với kích thước là 5x5 thì ma trận ảnh ở đầu ra sẽ
chỉ còn là 200x200, ma trận đầu vào đã bị cắt giảm di 30% và cùng với đó sẽ làm mat
đi những thông tin hữu ích nằm ở viền của bức ảnh Bước đệm sẽ là một phương pháphữu ich dé giải quyết van dé này Trong trường hợp độ phân giải của ma trận ảnh đầuvào là quá lớn, chúng ta có thé làm giảm đáng kể kích thước ma trận này bằng bước đệm
2.2.1 Viền đệm (Padding)
Như được mô tả ở trên, một vấn đề thường gặp phải khi áp dụng tích chập đó chính
là chúng ta sẽ đánh mất những điểm ảnh nằm ở rìa ngoài của bức ảnh Trong quá trìnhtối ưu hóa điểm ảnh của lớp tích chập, những điểm ảnh nằm ở các góc của ma trận sẽhiếm khi được sử dụng:
11
Trang 25Hình 2 8: Tối ưu hóa điểm ảnh cho lớp tích chập có kích thước 1x1, 2x2, 3x3.
Với bất kì lớp tích chập nào, ma trận chập được sử dụng thường sẽ có kích thước nhỏ,
vì vậy mà chúng ta có thể sẽ bỏ qua một vài điểm ảnh Ban đầu, điều này có thể khônggây ảnh hưởng nhiều khi so sánh với lượng điểm ảnh có trong bức ảnh đầu vào, nhưngkhi bức ảnh đó đi qua nhiều lớp tích chập khác nhau, số lượng điểm ảnh bị bỏ qua sẽtăng dần lên và sẽ gây ảnh hưởng xấu đến kết quả của đầu ra Một phương pháp đơn giản
và phô biến dé giải quyết van dé này đó chính là thêm vào ria ngoài của bức ảnh cácđiểm ảnh Thông thường, chúng ta sẽ cho các diém anh được thêm vào này có giá trị là
0 Vi dụ, với hình ảnh 8 dưới đây, chúng ta tạo thêm viền đệm cho ma trận đầu vảo cókích thước là 3x3, nâng kích thước của nó lên thành 5x5 Ma trận đầu ra cũng tăng kích
thước lên thành 4x4.
Input Kernel Output
ei OBE + „ PEH - Pepe
"hà nH
= HBHHHHình 2 9: Tích chập ma trận 2 chiều có viền đệm
Nhìn chung, nêu như thêm vào ma trận dau vào sô hàng viên đệm là p, (một nửa sô
hang ở trên cùng, một nửa sô hàng ở dưới cùng) và sô cột viên đệm là py (một nửa sô hàng bên trai, một nửa sô hàng bên phải) thì kích thước của ma trận đâu ra có thê được
xác định bang công thức:
12
Trang 26(nụ — Kn + Pa + 1) X (My — ky + Pw +1) (2.2)Trong đó, n„ X ny là kích thước ma trận đầu vào (chiều cao x chiều rộng).
kn X ky là kích thước ma trận chập (chiều cao x chiều rộng)
Điều này có nghĩa là chiều dài và chiều rộng của ma trận đầu ra sẽ được tăng thêm
tương đương với số hàng và số cột viền đệm Trong nhiều trường hợp, số hàng và cột
viền đệm nên là ø„ = ky, — 1 và p„ = ky — 1 dé kích thước của ma trận đầu vào và đầu
ra là bằng nhau
Rất nhiều mô hình CNN sử dụng ma trận chập với chiều đài và chiều rộng là số lẻ, ví
dụ như: 1, 3, 5, 7 Việc lựa chọn kích thước ma trận chập là số lẻ và thêm viền đệm sẽgiúp bảo toàn được vi trí của ma trận ảnh Có thể hiểu đơn giản là với bat kì ma trận ảnh
2 chiều nào, khi ma trận chập có kích thước lẻ và sé hang cột của viền đệm là bang nhau,thi sẽ tao ra ma trận ảnh dau ra với cùng chiều dài và rộng với ma trận ảnh đầu vào Matrận đầu ra được tích toán bởi phép tương quan chéo (cross-correlation) giữa ma trận tíchchập và ma trận đầu vào, và ma trận đầu vào sẽ luôn được giữ ở chính giữa nhờ vào cácviền đệm bằng nhau ở 4 cạnh và ma trận chập kích thước lẻ
2.2.2 Bước trượt (Stride)
Khi thực hiện phép tương quan chéo, chúng ta sẽ bắt đầu di chuyên ma trận trượt từ
vị trí trên cùng góc bên trái của ma trận đầu vào, rồi sau đó sẽ cho ma trận chập di chuyền
hết các vị trí bằng cách trượt qua bên phải và xuống hết ma trận đầu vào Những ví dụ được nêu ra ở phần trên đều có bước trượt mặc định là 1 Tuy nhiên, trong một vài trường
hợp, vì dé tăng thêm hiệu quả của việc tính toán, hoặc vi chung ta muốn giảm việc lay
mau (downsample) mà bước trượt có thé sẽ lớn hơn 1 Điều này sé rất hữu ich trong trường hợp ma trận chập có kích thước lớn bởi vì nó sẽ trích xuất được một lượng lớn
điểm ảnh từ ma trận đầu vảo
Số dòng và cột được quét qua mỗi khi trượt được xem là bước trượt.
13
Trang 27Input Kernel Output
7 - [ole
_ HD
L0 4 070/070)~-~~l~~~”~~~l~~~“~ ' ©
Hình 2 10: Phép tương quan chéo bước trượt chiều cao là 3, chiều rộng là 2
Có thê thấy rằng khi giá trị thứ 2 của hàng đầu tiên của ma trận đầu ra được tính toánxong, ma trận chập sẽ trượt xuống 3 hàng Ma trận chập trượt di 2 cột về bên phải tương
tự như ở hàng đầu tiên dé tạo ra giá trị thứ 2 của hàng thứ 2 của ma trận đầu ra Khi matrận chập tiếp tục trượt thêm 2 cột về bên phải, sẽ không có giá trị đầu ra nào được tínhtoán vì kích thước ma trận chập hiện đã vượt qua kích thước ma trận đầu vào (Trừ khichúng ta tạo thêm viền đệm)
Công thức dé tính được kích thước của ma trận đầu ra được xác định bằng công thức:
L@n — kn + Pa + Sn)/Sp] X [ty — kw + Pw + Sw)/Sw] (2.3)Trong đó, s„ là chiều cao của bước trượt (Bước trượt ngang)
Sy là chiều rộng của bước trượt (Bước trượt doc)
Nếu như số hàng viền đệm là ø„ = k„ — 1 và số cột viền đệm là p„ = ky — 1 thì
công thức trên có thể được đơn giản hóa thành:
L(t + Sn — 1)/Sn] X [ứn„ + sự — 1)/sự| (2.4)
Thêm vào đó, nếu như chiều cao và chiều rộng của ma trận ảnh đầu vao có thé chia
hết cho chiều cao và chiều rộng của bước trượt thì công thức để xác định kích thước của
ma trận đầu ra sau khi đi qua lớp tích chập sẽ là:
14
Trang 28Nhìn chung, viền đệm giúp làm tăng thêm chiều cao và chiều rộng của ảnh đầu vào.
Kỹ thuật này thường được sử dung dé tạo ra được ảnh dau ra có kích thước bằng với ảnhđầu vào nhằm tránh việc thu nhỏ không mong muốn đối với anh đầu ra Hơn thế nữa,viền đệm còn giúp cho tất cả các điểm ảnh đều được xử lý như nhau, không có điểm ảnhnào được xử lý nhiều hơn hay ít hơn Thông thường, chúng ta sẽ lựa chọn viền đệm bằngnhau với chiều cao và chiều rộng của ảnh đầu vào và có thé gọi đơn giản viền đệm p,thay vì đề cập đến cả 2 giá trị (pp, Py)
Viền đệm có chiều cao và chiều rộng băng nhau cũng sẽ được áp dụng tương tự đối
với bước trượt Khi bước trượt ngang s„ và bước trượt dọc sự bằng nhau, bước trượt sẽ
được gọi đơn giản là s Bước trượt sẽ làm giảm đi độ phân giải của ảnh đầu ra, ví đụ nhưchiều cao và chiều rộng của ảnh đầu ra sẽ chi còn 1/n so với ảnh đầu vào (Với n > 1)
Mặc định, bước trượt sẽ là 1, viền đệm sẽ là 0.
2.2.3 Tích chập giãn nở (Dilated Convolution)
Mô hình mạng DeeplabV3+ có áp dụng một phương pháp khác với lớp tích chập, đó
chính là tích chập giãn nở Tích chập giãn nở là một kỹ thuật được sử dụng dé kéo giãn
ma trận chập bằng cách thêm vào những “lỗ” giữa các giá trị liên tiếp nhau Dé giải thíchđơn giản hơn, tích chập giãn nở sẽ giống với tích chập thông thường, tuy nhiên nó sẽ bao
gồm việc bỏ qua các điểm ảnh, từ đó giúp bao quát rộng hơn đối với ma trận ảnh đầuvào.
Hệ số giãn no (dilation factor - J) sẽ cho chúng ta biết được ma trận chập sẽ được kéogiãn ra bao nhiêu Nói cách khác, dựa trên hệ sỐ này mà chúng ta sẽ xác định được sẽ
tính được có (/ - 1) điểm ảnh sẽ bị bỏ qua khi áp dụng tích vô hướng giữa ma trận chập
và ma trận đầu vào Hình ảnh 11 dưới đây sẽ là phép so sánh đơn giản giữa lớp tích chập
và tích chập giãn nở Về bản chất, tích chập chính là tích chập giãn nở với hệ số giãn nở
=1.
15
Trang 29(L= 1) (L= P= Dilated Convolution
Hình 2 11: Tích chập và tích chập giãn nở.
Mục tiêu của tích chập giãn nở giúp chúng ta bao quát được nhiều thông tin hơn từ giá trị đầu ra với mỗi phép tích chập được thực hiện Phương pháp này tạo ra vùng trích
xuất thông tin rộng hơn nhưng lại yêu cầu lượng tài nguyên cần dé tính toán bằng với
phương pháp tích chập thông thường Chúng ta sẽ xác định được hệ số giãn nở (/) bằngcách thay đổi hệ số này và quan sát lượng thông tin có được từ lớp tích chập cho đến khi
có được hệ số tối ưu nhất Với việc sử dụng tích chập giãn nở, sỐ lượng trọng sỐ trongmỗi ma trận chập sẽ không hề thay đổi, nhưng lượng thông tin có được ở ma trận đầu ra
sẽ tăng lên so với tích chập thông thường.
Những lợi ích khi sử dụng tích chập giãn nở sẽ là:
e©_ Mở rộng trường tiếp nhận
e Tối ưu lượng tài nguyên tính toán
e Tiêu thụ ít bộ nhớ hơn (Bỏ qua bước tổng hợp — pooling)
e Không làm giảm độ phân giải của anh đầu ra (Lớp tổng hợp — pooling có xu
hướng làm giảm độ phân giải so với tích chập giãn nở).
16
Trang 302.3 Lớp Tổng Hop — Pooling Layer
Lớp tích chập trong mô hình CNN sử dung các ma trận chập đã được huấn luyện trước
đó để tạo ra ma trận đầu ra với các đặc trưng được tổng hợp từ ma trận đầu vào
Lớp tích chập đã chứng minh được sự hiệu quả của mình, và việc xếp chồng các lớptích chập lại với nhau giúp cho mô hình CNN có thê “học” được những đặc trưng ở mứcthấp hơn (Ví dụ như những đường ngang, hoặc đường chéo, ) Từ đó có thê nhận diệnđược những đặc trưng ở mức cao hon, rõ ràng hơn (Vi dụ như hình dáng, vật thé)
Giới hạn của ma trận đầu ra của lớp tích chập đó chính là lớp này trích xuất vị trị của
các đặc trưng có trên ma trận đầu vào một cách chuẩn xác Điều này đồng nghĩa với việc,
nếu như có bất kì sự chuyên động vi trí của đặc trưng có trên anh đầu vào sẽ tạo ra một
ma trận ảnh đầu ra hoàn toàn khác Kết quả có thé xảy ra khi chúng ta cắt, ảnh, dịch ảnhhoặc tạo ra một vài thay đổi nhỏ với ảnh đầu vào
Phương pháp thường được sử dụng dé giải quyết vấn dé này là giảm lấy mẫu Mộtphiên bản ảnh có độ phân giải thấp hơn được tạo ra và vẫn giữ nguyên được các đặc
trưng so với ảnh ban đầu Đó được gọi là giảm lay mẫu.
Giảm lấy mau có thé được hiện thực với lớp tích chập bang cách thay đôi bước trượt.Ngoài ra, phương pháp tông hợp — pooling cũng thường được sử dụng dé hiện thực việcgiảm lấy mẫu
Lớp tổng hợp hỗ trợ việc giảm lấy mẫu bằng cách tổng hợp các đặc trưng có sẵn trên
ma trận đầu ra Có 2 phương pháp tông hợp chính thường được sử dụng là: tổng hợp giá
trị lớn nhất (Max Pooling) và tổng hợp giá trị trung bình (Average Pooling) Lớp tổng
hợp thường sẽ được thêm vào phía sau lớp tích chập.
Cách hoạt động của lớp tổng hop là tương đồng với lớp tích chập: một bộ lọc đượctrượt qua ma trận đầu ra của lớp tích chập trước đó Dựa trên phương pháp tổng hợpđược lựa chọn (Giá trị lớn nhất hoặc Giá trị trung bình), bộ lọc sẽ tính toán ra kết quả
khi bộ lọc trượt qua vùng tương ứng trên ma trận ảnh.
17
Trang 312.3.1 Lớp tổng hop giá trị lớn nhất (Max Pooling)Trong lớp này, giá trị lớn nhất sẽ được chọn ra từ số điểm ảnh có trong ma trận ảnhkhi bộ lọc của lớp tổng hợp đi qua Vì vậy, kết quả đầu ra của lớp tổng hợp giá trị lớnnhất luôn là ma trận ảnh chứa các đặc tính quan trọng nhất của ma trận ảnh đầu ra củakhối trước đó.
Max Pool
——>
Filter - (2 x 2)
Stride - (2, 2)
Hình 2 12: Hoạt động của lớp tổng hợp giá trị lớn nhất
2.3.2 Lớp tông hợp giá trị trung bình (Average Pool):
Trong lớp này, giá trị trung bình của các điểm ảnh có trong ma trận ảnh khi bộ lọc của
lớp tổng hợp đi qua sẽ được tính toán Vì vậy, kết quả đầu ra của lớp tổng hợp giá trị
trung bình là ma trận ảnh chứa các đặc tính trung bình của ma trận ảnh đầu ra của khối
Trang 32Những giá trị được tính toán và lưu trữ thông qua các lớp tông hợp có thể được xemnhư dấu hiệu của các đặc trưng hiện hữu trong ảnh đầu vào Nếu như một mô hình mạng
nơ ron chỉ dựa vào ma trận đầu ra ban đầu của nó, khả năng dé tìm và phát hiện ra đặctrưng của ảnh sẽ phụ thuộc vảo vi trí trên bức ảnh Vi dụ, nếu như số 1 được tìm thấy Ởgóc phần tư bên trái phía trên của bức ảnh đầu vào, mô hình mạng sẽ chỉ “học” đượccách tìm kiếm đặc trưng là số 1 ở góc phan tư bên trái mà không phải là các vùng khác
Bằng cách áp dụng lớp tông hợp, chúng ta có thé tạo ma trận dau ra có kích nhỏ hơnnhưng lại mang theo thông tin giúp mô hình mạng nhận biết được liệu số 1 có năm ở gócphan tư đó hay không Sau khi đi qua nhiều những lớp khác nhau, chắn chắn rang matrận ảnh sẽ càng nhỏ đi, khi đó, lớp tổng hợp có thể truyền tải được những thông tin quantrọng về đặc trưng mà mô hình mạng đang quan tâm (Ví dụ là số 1 được nêu ra phíatrên) Đồng thời, khi ma trận thu nhỏ lại, thì vị trí của các đặc trưng sẽ không còn bị phụthuộc nữa, thay vào đó sẽ là những thông tin mà mô hình mạng cần để xác định đặc
trưng.
Vì tính chất tổng hợp những điểm ảnh sắc nét nhất nên lớp tổng hợp giá trị lớn nhất
có xu hướng tổng hợp những đặc trưng quan trọng, hoặc là những cạnh của ma trận ảnh.Còn đối với lớp tổng hợp giá trị trung bình thì hoàn toàn ngược lại, lớp này sẽ tạo ra matrận ảnh mượt mà hơn Trong các ứng dụng nghiên cứu thì lớp tổng hợp giá trị lớn nhất
sẽ thường được sử dụng vì nó tổng hop được các đặc trưng quan trọng Trong các ứngdụng thực tế thì lớp tổng hop giá trị trung bình sẽ chỉ được sử dụng dé giảm ma trận đầu
ra xuông kích thước mong muôn.
19
Trang 332.4 Các lớp thành phần khác
2.4.1 Lớp tăng lẫy mẫu - Upsampling
Lý do chính dé tạo ra lớp tăng lay mẫu này chính là tích chập tự mã hóa (ConvolutionalAutoencoder) Đây là phương pháp giúp chúng ta vừa trích xuất được đặc trưng từ ảnh,vừa xây dựng lại được ảnh đầu vào ban đầu
Những mô hình mạng tích chập tự mã hóa thường sẽ có 2 phần:
e_ Bộ mã hóa dé trích xuất đặc trưng từ ảnh đầu vào
e Bo giải mã để tạo lại hình ảnh đầu vào
Và 2 bộ này thường sẽ có kiến trúc đối xứng với nhau.
Trong tích chập tự mã hóa, bộ mã hóa sẽ hoạt động với các lớp tích chập va tổng hợp
Bộ giải mã sẽ cố gắng “phản chiếu” lại bộ mã hóa, nhưng thay vì làm cho ma trận ảnhđầu ra nhỏ đi, bộ giải mã sẽ mở rộng ma trận anh đầu ra dé tương xứng với ảnh đầu vào
Một lớp được xem là trái ngược với lớp tích chập là lớp giải chập (Deconvolution).
Lớp giải chập này cũng hoạt động dựa trên các bộ lọc, ma trận chập, bước trượt, hệt
như lớp tích chập Tuy nhiên, thay vì kết nối các điểm ảnh đầu vào lại với nhau thànhmột điểm anh đầu ra, lớp này sẽ sử dụng một diém anh đầu vào dé xuất ra thành nhiều
điểm ảnh đầu ra
Và cũng sẽ có lớp được xem là trái ngược lại với lớp tông hợp, đó chính là lớp tănggiải mẫu đang được đề cập Lớp tăng giải mẫu này thực chất chính là giải thuật nội suyđược sử dụng dé tăng kích thước anh Cho dù mục đích sử dung giải thuật nội suy làdùng dé thay đổi kích thước hoặc vì mục dich nào khác, kết quả sau khi tính toán sẽ luôn
có sự thay đổi nhất định Sự thay đổi này, hay còn gọi là độ biến thiên, sẽ thay đổi tùy
vào giải thuật nội suy được sử dụng Bởi vì nội suy chỉ là một phương pháp ước lượng,
cho nên ảnh đầu ra sẽ luôn luôn đánh mat một vài tính chất so với anh đầu vào mỗi khi
giải thuật nội suy được sử dụng.
Nội suy hoạt động dựa trên việc sử dụng dữ liệu có sẵn để ước lượng giá trị của nhữngđiểm mà chúng ta không biết Ví dụ, nếu như chúng ta muốn biết nhiệt độ vào buồi trưa
20
Trang 34là bao nhiêu độ, và nhiệt độ chi được đo vào 2 khung giờ là 11 giờ sang va 1 giờ chiều,giải thuật nội suy tuyến tính (linear interpolation) có thể được sử dụng dé ước lượng
nhiệt độ vào lúc gitra trưa:
Hình 2 14: Biéu đồ mô tả phương pháp nội suy tuyến tính
Và nếu như chúng ta có thêm dữ kiện là nhiệt độ được đo ở 11 giờ 30 phút sáng,
đường nét đứt nối giữa các điểm nhiệt độ được lay mau sẽ tăng lên vào lúc 12 giờ trưa
Dữ kiện đo được thêm này có thể được sử dụng cho phương pháp nội suy bậc hai
Hình 2 15: Biéu đồ mô tả phương pháp nội suy bậc hai
Cảng nhiêu thời diém gân với giữa trưa được đo nhiệt độ, thuật toán nội suy sẽ càng
phức tạp, đông nghĩa với việc độ chính xác cũng được nâng cao.
21
Trang 35Các giải thuật nội suy thường được sử dụng có thể được chia thành 2 loại: tương thích
và không tương thích (adaptive, non-adaptive) Các giải thuật tương tích thay đổi dựatrên dữ liệu mà chúng nội suy (biến các điểm ảnh ở các cạnh trở nên rõ nét, sắc bén hơn
sẽ khác so với việc thay đổi các điểm ảnh giúp chúng chuyên màu mượt mà hơn), trongkhi đó, các giải thuật nội suy không tương thích sẽ xử lý các điểm ảnh một cách côngbăng
Nội suy không tương thích (Non-adaptive Interpolation): Các giải thuật có thé ké đếnnhư: các điểm ảnh lân cận (nearest neighbor), song tuyến tính (bilinear), nội suy hai
chiều (bicubic), nội suy spline, nội suy sinc, nội suy lanczos và các giải thuật khác Dựa
vào độ phức tạp của giải thuật, những giải thuật nội suy không tương thích có thê được
sử dụng với số lượng các điểm anh gần nhau là từ 0 cho đến 256 (Có thé hơn) Càngnhiều những điểm ảnh gan nhau được thêm vào, độ chính xác của kết quả khi cho racăng cao, nhưng điều này cũng dẫn đến thời gian xử lý cho những giải thuật này cũng sẽ
kéo dai Các giải thuật nội suy không tuyến tính có thé được sử dụng cho việc thay đồikích thước và hình dạng ảnh.
Nội suy tương thích (Non-adaptive Interpolation): Các giải thuật nội suy tương thích
được tích hợp rất nhiều trong các phần mềm có bản quyền, ví dụ như: Qimage,
PhotoZoom Pro, Genuine Fractals và các phần mềm khác Các phần mềm này áp dụng rất nhiều các phiên bản khác nhau của giải thuật (vẫn dựa trên nền tảng xử lý từng điểmảnh — pixel by pixel) khi chúng phát hiện ra sự hiện diện của các cạnh — với mục đích
giảm thiêu các dấu vết sử dụng nội suy Những giải thuật này được thiết kế với mục đíchphóng to ảnh mà không đề cho người sử dụng biết được ảnh đã được xử lý với giải thuậtnội suy, vì vậy mà các giải thuật nội suy tương thích sẽ không thê được sử dụng cho việcthay đổi hình dang ảnh hoặc xoay chiều bức ảnh
Lớp tăng lay mẫu của mô hình mang DeeplabV3+ này sử dụng giải thuật nội suykhông tương thích, đó chính là giải thuật nội suy song tuyến tinh Tuy nhiên, do độ phức
tạp, tài nguyên tính toán đồng thời là thời gian xử lý của giải thuật này khi hiện thực
22
Trang 36băng phần cứng sẽ rất phức tạp, cho nên nhóm đã quyết định sử dụng giải thuật thay thế
là nội suy điểm ảnh lân cận Giải thuật này sẽ đơn giản hơn và thời gian tính toán cũng
sẽ là ít hơn so với giải thuật gốc được sử dụng bởi kiến trúc phần mềm ban dau
Về giải thuật nội suy điểm ảnh lân cận, đây là giải thuật nội suy căn bản nhất và sẽtiêu tốn tính thời gian xử lý nhất trong các giải thuật nội suy Bởi vì giải thuật này sẽ chỉtính toán dựa trên một điểm ảnh — điểm ảnh gần nhất với vị trí cần nội suy Giải thuậtnày đơn giản sẽ chỉ là làm cho các điểm ảnh trở nên lớn hơn
Dé hiểu hơn về giải thuật này, dưới đây là một ví dụ đơn giản Giả sử, chúng ta cómột bức ảnh với kích thước 2x2 và muốn tăng kích thước của bức anh này lên gấp 2 lần
so với kích thước ban đâu:
Hình 2 16: Tăng kích thước ảnh gap 2 lần so với kích thước ban dau
Với giải thuật nội suy điểm ảnh lân cận này, có 2 bước đơn giản dé có thé thực hiện
được giải thuật, đó là:
Bước 1: Tìm vi trí của từng điểm ảnh trên bức ảnh kết quả khi so với bức ảnh cầnđược ndi suy Điều này có thé được thực hiện băng cách phản chiếu bức ảnh 4x4 trênbức ảnh 2x2 Nhờ vậy mà ta có thê dễ dàng tìm được tọa độ của từng điểm ảnh chưa
biết.
23
Trang 37Bước 2: So sánh tọa độ diém ảnh chưa biét trên bức ảnh két quả với tọa độ của diém ảnh trên bức anh cân được nội suy dé tìm ra diém ảnh gân nhât.
Hình ảnh dưới đây là minh họa cho giải thuật nội suy điểm ảnh gần nhất:
Hình 2 17: Giai thuật nội suy điểm ảnh gan nhat
Mục đích của mô hình mang DeeplabV3+ trong ứng dụng này là dé phân loại trênchính bức ảnh dữ liệu đầu vào, có nghĩa là nó sẽ không đưa ra các con số phần trăm dựđoán, mà là các dai màu trên bức ảnh Đối với tat cả các mô hình CNN, những bức anh
sẽ luôn có xu hướng thu nhỏ lại sau khi được xử lý qua nhiều lớp tích chập Trong khi ứng dụng này yêu cầu dữ liệu đầu ra phải là một bức ảnh có kích thước bằng với kích thước ảnh đầu vào Chính vì điều này mà những lớp tăng giải mẫu sẽ cần được sử dụng
đến, nhằm mục tiêu phóng to những bức ảnh sau khi được xử lý về lại kích thước banđầu khi được đưa vào mạng Lớp tăng giải mẫu này sẽ thường được sử dụng với các kiếntrúc mạng có 2 thành phan chính là mã hóa và giải ma (Encoder và Decoder)
2.4.2 Hàm Sigmoid — Sigmoid Function
Ham Sigmoid thường được sử dụng trong các mô hình có dữ liệu đầu ra là phan trăm
chúng ta cần phải dự đoán về xác suất xảy ra của nó Bởi vì xác suất sẽ là những con sốnăm trong khoảng từ 0 đến 1, và hàm Sigmoid sẽ là một lựa chọn đúng đắn nhờ vào
24
Trang 38khoảng giá trị đầu ra của nó Hàm Sigmoid là chìa khóa dé giúp chúng ta hiểu được bằng
cách nào mà các mô hình mạng nơ ron tích chập có thể học và hiểu được các vấn đề phức
tạp Hàm này còn đóng vai trò nền tảng cho việc phát hiện ra các hàm khác có độ chính xác và hiệu suất hoạt động tốt hơn trong việc giảm sát các mô hình học sâu.
Hàm Sigmoid là một dạng đặc biệt của hàm logic và được biểu diễn với công thức
Hình 2 18: Công thức và biểu đồ giá trị của hàm Sigmoid.
Hàm Sigmoid đã trở nên rất phô biến trong lĩnh vực học sâu vì nó có thê được sử dụng
như một hàm kích hoạt trong hệ thống nơ ron nhân tạo Hàm này được truyền cảm hứng bởi tiềm năng kích hoạt trong các hệ thống nơ ron sinh học.
Hàm Sigmoid cũng rất hữu ích trong các ứng dụng máy học, nơi mà các số thực cần phải được chuyền đổi sang xác suất Hàm Sigmoid được đặt ở lớp cuối cùng của các mô
hình máy học, đóng vai trò chuyển đổi dữ liệu đầu ra của mô hình thành những con số xác suất cụ thé, điều này giúp cho các di liệu dé hiểu và trực quan hơn khi đưa qua các
hệ thống xử lý sau đó.
25
Trang 39Chương 3 THIẾT KE VÀ HIEN THỰC
3.1 Mô hình thiết kế tổng quát
Việc tự động hóa phân loại bề mặt dat là yếu tố rất quan trọng trong phát triển bền
vững nền nông nghiệp tự động và quy hoạch thành thị Như được trình bày ở phần đầu
ở mục đặt vấn đề, ứng dụng rộng rãi nhất của các mô hình CNN là phân loại và nhận
diện ảnh Với đề tài khóa luận này, nhóm lựa chọn đề tài phân loại bề mặt đất sử dụng
tập dữ liệu DeepGlobe Land Cover Classification [17]
Dữ liệu được dùng đề huấn luyện của tập dữ liệu này bao gồm 803 ảnh vệ tinh có 3
kênh màu RGB, kích thước là 2448x2448x3 (Được thay đổi thành 256x256x3 dé phù hợp hơn cho mục đích hiện thực phần cứng) Mỗi bức ảnh có độ phân giải điểm ảnh là
50cm, được thu thập bởi vệ tinh của DigitalGlobe Tập dit liệu có 171 anh cho việc xác minh và 172 ảnh cho thử nghiệm.
Mỗi bức ảnh vệ tinh sẽ đi kèm với một bức ảnh mask là chú thích của phân loại bề
mặt đất Bức ảnh mask này hiển thị cho 7 lớp nhãn dán, sử dụng kỹ thuật mã màu (R, G,
B) được trình bày dưới đây:
© Đất đô thi: 0,255,255 — Những vùng dat đô thị được xây dựng bởi con người.
(Đường sá vẫn chưa thé dán nhãn được do khả năng nhận diện rất khó)
e Đất nông nghiệp: 255,255,0 — Nông trại, thảm thực vật,
° Đồng cỏ: 255,0,255 — Đồng cỏ, những khu vực không phải rừng hoặc nông trại.
e Dat rừng: 0,255,0 — Những khu vực có độ bao phủ cây xanh cộng với
e Thuy vực: 0,0,255 — Những dong song, đại dương, hồ, dam lay, ao,
e Đất bỏ hoang: 255,255,255 — Những vùng núi đá, sa mạc, bờ biển, những khu
Trang 40Nhãn Phân Loại R G G
Dat Đô Thi 0 255 255 Đắt Nông Nghiệp 255 255 0
Đồng Cỏ 255 0 255 Đất Rừng 0 255 0
Thủy Vực 0 0 255
Dat Bỏ Hoang 255 255 255 Không Thé Nhận Diện 0 0 0
Bảng 3 1: Các nhãn phân loại cho mô hình phân loại bê mặt đất.
Hình 3 1: Ảnh dữ liệu đầu vào cho mô hình mạng phân loại bề mặt đất [17]
27