Năm 2019, trong đề tài “Efficient Fire Detection for Uncertain SurveillanceEnvironment” [3] tac giả đã sử dụng MobileNet V2 dé phat hiện đám cháy, bên cạnh đó, dé tài còn ứng dụng 5G IoT
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KĨ THUAT MAY TÍNH
TRAN QUOC VIET
NGUYEN TRUONG HOANG TRUNG
KHOA LUAN TOT NGHIEP
NGHIEN CUU VA THIET KE HE THONG PHAT HIEN
CHAY TREN SOC-FPGA
Research and Design fire detection system on SoC-FPGA
KY SƯ NGANH KY THUAT MAY TÍNH
TP HO CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KĨ THUAT MAY TÍNH
TRAN QUOC VIET - 18521644 NGUYEN TRUONG HOANG TRUNG - 18521556
KHOA LUAN TOT NGHIEP
NGHIEN CUU VA THIET KE HE THONG PHAT HIEN
CHAY TREN SOC-FPGA
Research and Design fire detection system on SoC-FPGA
KY SƯ NGANH KỸ THUAT MAY TÍNH
GIANG VIEN HUONG DAN
ThS Ngô Hiếu Trường
TP HO CHÍ MINH, 2022
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số 526/QD-DHCNTT
ngày 19 tháng Ø7 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LOI CAM ON
Thời gian trôi qua thật nhanh Làm khóa luận tốt nghiệp, cũng đồng nghĩa với việc hoàn thành mảnh ghép cuối cùng dé có thé trở thành một người kỹ sư Đối với
chúng tôi, 4 năm qua là một chặng đường vô cùng ý nghĩa Đó là khoảng thời gian
để chúng tôi đặt những viên gạch đầu tiên cho sự nghiệp của mình Trong suốt hành
trình ấy, chúng tôi đã nhận được sự dạy dỗ, chỉ bảo tận tình của các quý thầy cô Nhờ đó, đã giúp chúng tôi trang bị được những kiến thức về chuyên môn cũng như
những kỹ năng cần thiết giúp cho hành trang ấy vững chắc hơn trong cuộc sống
cũng như công việc sau này.
Trước tiên, chúng tôi muốn bày tỏ lời cảm ơn của mình đến trường Đại học
Công nghệ Thông tin và Ban lãnh đạo nhà trường vì đã tạo cho chúng tôi có môi
trường học tập tuyệt vời Xin cảm ơn khoa Kỹ Thuật Máy Tính vì đã luôn tạo mọi
điều kiện thuận lợi cho chúng tôi được học tập và phát triển.
Tiếp theo, chúng tôi xin gửi lời chân thành cảm ơn đến các quý thầy cô người
luôn đành cho chúng tôi sự yêu thương và chỉ dạy tận tình trong suốt thời gian qua.
Với chúng tôi, những kiến thức mà quý thay cô truyền đạt thật quý báu Đặc biệt dé hoàn thành khóa luận tốt nghiệp này, chúng tôi xin gửi lời cảm ơn sâu sắc nhất tới thầy Ngô Hiếu Trường vì đã tận tình chỉ bảo, trực tiếp hướng dẫn, hỗ trợ về mặt
chuyên môn và trang thiết bị cho chúng tôi trong suốt thời gian thực hiện đề tài.
Chúng tôi cũng muốn cảm ơn tắt cả các công ty và nhà phát triển cung cấp các dịch vụ miễn phí cũng như các thư viện, tài liệu và dự án mã nguồn mở Không có
những thứ nay đồ án của chúng tôi sẽ không thé có được như bây giờ.
Sau cùng nhưng không kém phần quan trọng, chúng tôi muốn bày tỏ lòng biết
ơn tới gia đình vì đã luôn là hậu phương vững chắc và bạn bè vì đã luôn sát cánh
cùng chúng tôi.
Một lần nữa chúng tôi xin chân thành cảm ơn!
Thành phố Hồ Chí Minh, tháng 6 năm 2022
Sinh viên thực hiện
Trần Quốc Việt, Nguyễn Trương Hoàng Trung
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU TONG QUAN ĐÈ TÀI -cccc-522ccvccc+2 5
1.1 Đặt vấn đề 222 22 c2 21111 E211 5 1.2 Tính cấp thiết của để tài 2222222c++222E2EEEEvrrrrtttrrkkrrrrrrrrrrrrrrrrrrer 6 1.3 Các dé tài nghiên cứu liên quan -¿-22++22E+z++22EE++rtrrrxeerrrrrecree 7
1.4 Nội dung nghiên cứu
1.5 Phạm vi để tài -2-+c 22 x22 2222211 2222112222111 0111 ce § 1.6 Hướng phát triển
Chương2 CƠ SỞ LÝ THUYÉT 2¿-©2©+2¿+22E2++222ESE+ttEEESzretrrkrcree 9
2.1 Convolutional Neural Network — Mạng Nơron tích chập.
2.1.1 Convolutional Layer — Lớp tích chập - + +-+<s++ 0
2.1.2 Pooling Layer - Lớp tong hop
2.1.3 Fully Connected Layer — Lớp kết nối đầy đủ - - 1
2.1.4 Các hàm kích hoạt thường dùng ¿- - estes 2
2.2 Giới thiệu phần cứng sử dụng, -cccccc22222Ekvrvrirtrrrrrrrrrrrrrrrrer 3
2.2.1 Altera Arria 10 SoC BOard - cty 3
2.2.2 Webcam Logitech HD C27 ¿+ Ekrrrerekskekrkrkree 6
2.3 Giới thiệu những gói thư viện, framework, phần mềm được sử dụng 6
2.3.1 OpenCV Ăn HH tre 6 2.3.2 OpenCL, LH 7
Chương 3 THIẾT KE TONG QUAN : c¿+222vvcsccvvvcrscrvscee 9 3.1 Mô tả tổng quan hệ thống 2¿©22+++22EE+++t2EEEEvrtttEExrrerrkrrrrrrr 9 3.2 Kiến trúc mô hình Alexnet được chỉnh sửa .-:-z+sczc+ 20
3.3 PipeCNN HH2 2.11 re 2
Trang 6Chương 4 | THIET KE HE THONG PHAT HIỆN CHÁY
4.1 Thu thập bộ dữ liệu va traning
4.2 Xây dựng hệ điều hành Linux trên SoC-FPGA -: zz©c5++ 26 4.3 Kiến trúc các thành phan trong PipeCNN.
4.3.1 Convolution Kernel óc xxx kg 27
4.3.2 Data Mover Kernel
4.3.3 Other Kernel s-5c+cseseseeeeeerrrrr.23
4.4 Mô hình PipeCNN được phát triển
4.4.1 Vấn đề PipeCNN dang gặp phải 22ccccccccccceccvsrrcrrr 36 4.4.2 Mô hình PipeCNN được Pipeline dữ liệu đầu vào - 37 4.4.3 Mô hình PipeCNN được Pipeline toàn bộ hệ thống 39 Chương 5 HIỆN THỰC, ĐÁNH GIA KET QUẢ .c-: sc: 41
5.1 Tổng quan hệ thống được hiện thực -¿ +sccscscxsrereersrrrrerrrrerrser Al 5.2 Thực nghiệm và đánh giá kết quả -c+z+2222vvvc+rtrtrcrvvez 41 5.2.1 Chuẩn bị tập dit liệu (es( cccccc-52222vvvcvrrercccrveecrrrrrrrg 41
5.2.2 Chinh sửa tham số quan trong trong hệ thong - - 41 5.2.3 Thực nghiệm hệ thống ¿©2+++22+vreerrverrrrrrrree 44
5.2.4 Tài nguyên sử dụng c cScSeeeieerieeeeree 5“
Chương 6 KÉT LUẬN VÀ HƯỚNG PHÁT TRIÊN DE TÀI 52
6.1 Kết luận ààHHHHHHHHHh he 52
6.2 Khó khăn gặp phải ¿55-55 cctcththttittrrrerehướn 52
6.3 Hướng phát triền -+++22V++++22E++++tEEEE+EtrEEEEvrtEEEEvrrrrrrkrrrrrrrke 53
Trang 7DANH MỤC HÌNH
Hình 2.1 Kiến trúc mang CNN Alexnet -.2::¿+222222vvvvrrttEEErkrrrrrrrrrrrrrrrree 9 Hình 2.2 Ví dụ về tích chập 2 chiều Stride 1, Valid Padding 0 Hình 2.3 Lớp Pooling khi Stride bằng 2 1 Hình 2.4 Lớp kết nói day đủ với 16 nốt đầu vào và 128 nốt đầu ra 2 Hình 2.5 Hàm kích hoạt Softmax kết nối với lớp kết nối day đủ - 3 Hình 2.6 Kiến trúc Altera Arria 10 SOC Board -: -:¿22v+z++22v+zcvtcrvscee 4
Hình 2.7 Sơ đồ khối Altera Arria 10 SoC Board :::+ccccccccrrrrrrcees 5
Hình 2.8 Webcam Logitech HD 270 -¿- ¿+ + 3kg ey 6
Hình 2.9 Ludng hoạt động của OpenCL - 2: 222++22Vv+++2222v+ztvvrxvrrsrrrsree 7 Hình 3.1 Mô tả tổng quan về toàn bộ hệ thống phát hiện cháy - 9 Hình 3.2 Kiến trúc Alexnet tổng quan sau khi chỉnh sửa -: ¿ 21 Hình 3.3 Kiến trúc tổng quan mô hình PipeCNN sssscsssssssssssssseesessseescessseescossees 22 Hình 4.1 Một vài hình ảnh về bộ dữ liệu ¿¿ -2cvvcccz+tvevvvvvvrrsrrrrrrrer 25
Hình 4.2 SD Card Layout cesses 52 3222223212 9 21212113 112121111111 xe 26
Hình 4.3 Kiến trúc Convolution Kernel .:¿¿2v222+++z+22222vvvzrrrrrrrrvree 28 Hình 4.4 Ví dụ về cách lưu trữ dữ liệu của layer 1 -ccccccc-+cccccxee 30 Hình 4.5 Kiến trúc của Data Mover Kernel -¿+++22+++++22vzz++czvseee 31
Hình 4.6 Convolution Mode ¿-¿- 555 s+stseseexsreretseerersrererrrr 32
Hình 4.7 Pooling MOde 5256222322221 321221212121 111111 211111111 cre 33
Hình 4.8 Kiến trúc Max Pooling Kernel -.-:-++222++++22vvvrztvrvvrrsrrrsree 33
Hình 4.9 Cách thức lấy dữ liệu của MaxPooling Kernel - 34 Hình 4.10 Kiến trúc của Ping-pong Buffer 2¿-©2z++222+vzererrxerrrrrrrcee 35
Hình 4.11 Pooling kernel với LANENUM 5552552 36
Hình 4.12 Kiến trúc PipeCNN của tác giả ch nnHHHH Hư 37
Hình 4.13 Kiến trúc PipeCNN đề xuất Pipeline dữ liệu đầu vào Ÿ7
Hình 4.14 Kiến trúc PipeCNN Pipeline toàn bộ hệ thống - 39
Hình 5.1 Giao diện RealVNCVi€WET + 44
Hình 5.2 Thực nghiệm hệ thống trên tập Test
Trang 8Hình 5.3 Thực nghiệm trên tập Videos 'Test - 5c 55c tre 50
Hình 5.4 Kết quả hiện thực trên Camera
Hình 6.1 Tổng quan kiến trúc mong muốn phát triỀn -:¿:+x++ 53
Trang 9DANH MỤC BANG
Bảng 3.1 Mô tả chỉ tiết mô hình Alexnet sau khi được chỉnh sửa
Bang 3.2 So sánh độ chính xác giữa Matlab va PipeCNN của Alexnet goc 21
Bang 3.3 So sánh độ chính xác giữa Matlab và PipeCNN cua Alexnet mới 21
Bang 3.4 Số lượng tham số và thời gian thực thi của các mô hình - 22
Bang 4.1 Tổng quan về bộ dữ liệu 2 22¿2222+++vEEEEE+tEEEEEErrrrrkrrrrrrkrrrrrr 24 Bảng 4.2 Chỉ tiết về bộ dữ liệu -.22 ©2222¿2222+2EEEEEEEEEEEEErEEEEkrrrrrrkrrrrer 24
Bảng 4.3 Chỉ tiết về các phân vùng của SDCard 2¿©2222sc2ccvsvcecrr 27 Bang 5.1 Kết quả hiện thực trên tập TTest -2222222+c22vvvreecvrvrrerrrrrrrrrr 45
Bang 5.2 Bảng mô tả chỉ tiết kết quả chạy trên tập Tesi -cccccc2 45
Bang 5.3 Mô tả chỉ tiết một vài videos trong thư mục Videos - 49 Bang 5.4 Kết quả chạy fireVid_001.mp4 525225ccccc2222EEvvvrrrrrrrrrrrrerree 49 Bảng 5.5 Kết quả hiện thực trên tập Videos Test -.-. -52ccccccsvcccccvsvcecrz 49
Bảng 5.6 Chỉnh sửa tham số cho Altera Arria 10 SoC Board „51
Bảng 5.7 Tài nguyên được sử dụng trên Altera Arria 10 SoC Board.
Trang 10DANH MỤC TỪ VIET TAT
CCTV Closed-Circuit Television
CNN Convolutional Neral Netork
FPGA Field Programmable Gate Array
GPU Graphics Processing Unit
HDL Hardware Description Language
loT Internet Of Thing
MCCNN Multi-Channel Convolutional Neural Network
OpenCL Open Computing Language
OpenCV Open Source Computer Vision
PipeCNN Pipelined Convolutional Neral Netork
RTL Register Transfer Level
SoC System On Chip
Trang 11TOM TAT KHÓA LUẬN
Nội dung chính của đề tài khóa luận sẽ tập trung vào việc giải quyết bài toánnhận diện cháy sử dụng mô hình mạng thần kinh tích chập Convolutional NeuralNetwork Hướng tiếp cận của đề tài là xây dựng một hệ thong có thé nhận diện cháytích hợp Real-time Camera tốc độ cao, chi phí tài nguyên vừa phải đồng thời van
đảm bảo được độ chính xác.
Mô hình đề xuất dựa trên kiến trúc PipeCNN dựa trên bài báo “PipeCNN An
OpenCL-Based Open-Source FPGA” [1], đồng thời nhóm cũng sẽ có những cải tiến
nhăm mục đích cải thiện tôc độ của hệ thông.
Về tập dữ liệu của đề tài khóa luận, nhóm sử dụng bộ dữ liệu tự xây dựng bao
gồm 26600 bức ảnh, trong đó tập train là 18000 ảnh, tập validation là 3600 và tập
test là 5000 ảnh.
Về thực ngiệm hệ thống nhóm tiến hành hiện thực hệ thống trên Altera Arria
10 SoC Board và thực nghiệm theo ba cách khác nhau nhăm mang lại kết quả tongquan nhất:
e Thực nghiệm trên tập ảnh Test.
e Thực nghiệm trên tập Videos Test.
e Thực nghiệm trên Camera.
Kết quả hiện thực nhóm đánh giá dựa vào 3 tiêu chí là tốc độ, độ chính xác và
tài nguyên sử dụng.
Theo như thực nghiệm, hệ thong da duoc hién thuc trén board Arria 10 Socvới tốc độ 15 frame/second và độ chính xác trên 80% trên tat cả các thực nghiệm
Bên cạnh đó, ở phân cuôi cùng của báo cáo, nhóm đưa ra hướng phát triên cho
dé tài với mong muôn đê tai được sớm đưa vào thực tiền.
Trang 12MỞ ĐẦU
Thời gian gần đây, do ảnh hưởng của biến đổi khí hậu dẫn đến diễn biến thờitiết thất thường khiến nhiều diện tích rừng Việt Nam bị thiêu rụi và đe dọa nghiêm
trọng đến thảm thực vật rừng, cũng như ảnh hưởng tới phát triển kinh tế - xã hội,
môi trường, khí hậu Do đó, cháy rừng đang trở thành vấn đề nghiêm trọng củaquốc gia và cần có sự chung tay vào cuộc mạnh mẽ hơn nữa của toàn bộ hệ thốngchính trị và ý thức của người dân trong bảo vệ và phát triển rừng Việt Nam
Tuy nhiên việc bảo vệ rừng khỏi các đám cháy lớn là một vấn đề nan giải vìnhững cánh rừng thường có diện tích rất lớn, ảnh hưởng của gió vào tốc độ cháy landẫn đến việc khó có thé kiểm soát bằng nhân lực Do vậy việc đưa ra các cảnh báo
cháy càng sớm càng tốt là một vấn đề mang tính cấp thiết Việc ngăn chặn các đám
cháy lớn xảy ra, không những mang lại lợi ích to lớn về kinh tế, xã hội mà còn gópphần bảo vệ bầu không khí không bị ô nhiễm bởi khói bụi từ các đám cháy
Trong những năm gan đây, nhiều phương pháp CNN được sử dụng mạnh mẽtrong việc phát hiện đám cháy Năm 2018, trong đề tài “Fire Recognition Based OnMulti-Channel Convolutional Neural Network” [2] tác giả đã thu thập bộ dữ liệu vềnhững đám cháy cụ thể, đồng thời tự xây dựng mô hình CNN của riêng mình gọi là
mô hình MCCNN (multi-channel convolutional neural network) Ưu điểm của mô
hình này là nó chú ý nhiều hơn đến màu ngọn lửa dé có thé phân biệt ngọn lửa tốt
hơn Đầu tiên, mô hình xử lý bức ảnh đầu vào dựa vào các phương pháp cụ thể Thứ
hai, mô hình nhận dạng cấu trúc và cập nhật các thông số mô hình một cách tự
động Năm 2019, trong đề tài “Efficient Fire Detection for Uncertain SurveillanceEnvironment” [3] tac giả đã sử dụng MobileNet (V2) dé phat hiện đám cháy, bên
cạnh đó, dé tài còn ứng dụng 5G IoT vào hệ thống dé làm nhiệm vụ truyền thông tin
(cháy hay không cháy).
Tuy các phương pháp này cũng đã đem lại một số hiệu quả nhất định, nhưngvẫn còn tồn tại một số yếu điểm, mà chủ yếu là tỉ lệ nhận diện sai hoặc nhằm lẫn
trong các môi trường dễ gây nhiễu như bình minh, hoàng hôn, đèn xe, hoặc gặp
Trang 13phải rất nhiều khó khăn trong việc trích xuất những đặc trưng cấp thấp dé xây dựngcác vector đặc trưng nhăm giải quyết bài toán nhận dang, cũng như khó có thể cải
tiến hoặc mở rộng lên ở mức độ cao hơn Bên cạnh đó, việc thực hiện mô hình nhận
diện cháy trên FPGA vẫn là một bài toán cần giải quyết
Dé giải quyết những nhược điểm trên, nhóm đề xuất nghiên cứu và phát triển
dựa trên mô hình PipeCNN Mô hình này được xây dựng bằng OpenCL, đây làframework cho phép chuyền đổi từ ngôn ngữ cấp cao C/C++ thành ngôn ngữ đặc tảphần cứng (RTL) như VHDL, Verilog, System Verilog, Nhờ vào việc đó, chúng
ta tiết kiệm được thời gian hiện thực mang CNN và việc triển khai thiết kế trên
SoC-FPGA.
Tap dữ liệu sử dung trong dé tai này được xây dựng nhằm mục đích đáp ứng
một môi trường cụ thể là những đám cháy ngoài trời (cháy xe, cháy nhà, cháy rừng, ) Ngoài ra, nhóm còn thu thập những bức ảnh gây nhiễu như hoàng hôn,
bình mình, sương mù, nhằm mang lại hiệu quả tốt nhất trong việc dự đoán
Bên cạnh đó nhằm mục dich đáp ứng tính chat Real-time của hệ thống pháthiện cháy, nhóm tích hợp thêm Camera và thử nghiệm trên các đám cháy giả nhămmục đích đánh giá hệ thống một cách khách quan nhất
Dựa trên những công việc mà nhóm thực hiện trong khóa luận, câu trúc của
khóa luận được tô chức thành các thành phần tương ứng như sau:
e Chương 1: Tổng quan một số công trình nghiên cứu liên quan đến đề tài
cũng như đưa ra những vấn đề tồn đọng của các công trình nghiên cứu đó
cũng như những cải tiễn của đề tài khóa luận
e_ Chương 2: Cung cấp cơ sở lý thuyết và các kiến thức nền tảng về mạng than
kinh tích chập Convolutional Neural Network, các mô hình mạng liên quan
cũng như các phương hướng giải thuật liên quan của đề tài
e Chương 3: Trinh bày tổng quan về mô hình đề xuất và đề xuất hướng phát
triên dé tai.
Trang 14e Chương 4: Trinh bay chỉ tiết mô hình đề xuất và phương hướng tiếp cận của
khóa luận cũng như giải thuật và các phương pháp tiếp cận dé giải quyết van
đề
e Chương 5: Giới thiệu các tập dữ liệu, mô hình và kịch ban mô phỏng cũng
như kết quả đạt được của đề tài khóa luận
e Chương 6: Trình bày những kết qua đã dat được của dé tài, đồng thời đưa ra
những giải pháp đóng góp và đề xuất cho hướng phát triển tiếp theo của đề
tài.
Trang 15Chương 1 GIỚI THIEU TONG QUAN DE TÀI
Thời gian gần đây, do anh hưởng của biến đôi khí hậu dẫn đến diễn biến thờitiết thất thường khiến nhiều diện tích rừng Việt Nam bị thiêu rụi và đe dọa nghiêmtrọng đến thảm thực vật rừng, cũng như ảnh hưởng tới phát triển kinh tế - xã hội,
môi trường, khí hậu
Theo Tổng cục lâm nghiệp thống kê:
Năm 2016, nước ta đã xảy ra hàng chục vụ cháy rừng Diện tích rừng thiệt
hại hơn 3000 ha.
Năm 2017, cả nước xảy ra 182 vụ cháy rừng lớn nhỏ, diện tích rừng thiệt hại
là hơn 350 ha.
Đến đầu năm 2018, có nhiều vụ cháy rừng đã xảy ra trên nhiều địa phương.Chăng hạn như Lang Sơn, Lai Châu, Điện Biên, Gia Lai, Đắk Lắk, VingTau, Binh Thuận, Kiên Giang, Ca Mau Mặc dù chưa gây thiệt hai lon về
tài nguyên và người nhưng lại cho biết diễn biến của thời tiết; cần phải nâng
cao ý thức cộng đồng trong phòng chống cháy rừng
Những năm gần đây, nhìn chung tỉ lệ cháy rừng đã giảm tuy nhiên hậu quả của
việc cháy rừng van rat nghiêm trong:
Cạn kiệt nguồn tài nguyên thiên nhiên
Gây ra tình trạng ô nhiễm môi trường, hiệu ứng nhà kính, biến đối khí hậu
Lũ lụt, xói mòn, sạt lở đất, lũ quét (nếu cháy rừng đầu nguồn, rừng phòng
hộ).
Sinh vật, động thực vật bị thiêu hủy, dẫn đến mắt cân bằng sinh thái
Ô nhiễm không khí: các đám khói lớn có thé bao trùm cả một thành phố gâyảnh hưởng nghiêm trọng đến giao thông Ngoài ra, có thể gây ảnh hưởng đến
sức khỏe của người dân sống trong khu vực đó
Thiệt hại vê kinh tê, cuộc sông con người, xã hội bị ảnh hưởng tram trọng.
Trang 16Những hệ lụy này hàng chục năm sau con người cũng không dễ dàng khắcphục Vì thế, việc chủ động phòng chống cháy rừng đã và đang được đặt lên hàng
đầu cho cả xã hội, đặc biệt vào mùa khô, nắng nóng, nguy cơ cháy rừng dễ xảy ra
hơn.
Do vậy việc phát hiện cháy càng sớm càng tốt là một vấn đề mang tính cấpthiết Việc ngăn chặn các đám cháy lớn xảy ra, không những mang lại lợi ích to lớn
cho kinh tế, xã hội mà còn góp phần bảo vệ bầu không khí không bị ô nhiễm bởi
khói bụi từ các đám cháy.
1.2 Tính cấp thiết của đề tài
Việc bảo vệ rừng khỏi các đám cháy lớn là một vấn đề nan giải và là một bàitoán khó cần giải quyết vì những cánh rừng thường rất lớn nên việc kiểm soát vànắm bắt tình hình khi những đám cháy xảy ra một cách nhanh nhất rất khó
Dé giải quyết được bài toán trên, CNNs là một trong những phương pháp tối
ưu trong việc nhận diện, phân loại và phát hiện các đám cháy trong một khu vực
lớn Đề xuất của nhóm thực thi mô hình CNNs trên SoC-FPGA dựa vào OpenCLframework vì ưu điểm mà những phương pháp hiện thực khác không có:
e CPU dường như không thể hiện thực được mô hình CNNs với tốc độ cao vì
độ phức tap của các phép tính toán trong CNNs.
e GPU có thê triển khai được mô hình CNNs, tuy nhiên vấn đề là GPU tiêu thụ
điện năng rất cao không mang lại tính thực tiễn
e Phương pháp hiện thực mô hình CNN bang ngôn ngữ RTL truyền thống
dường như cực kì phức tạp và mất rất nhiều thời gian trong công việc mô
phỏng cũng như biên dịch trước khi hiện thực trên FPGA.
e Công cu synthesis (HLS), gần đây được sử dụng rất nhiều trong công việc
chuyền đổi từ ngôn ngữ cấp cao C/C++ sang ngôn ngữ cấp thấp như VHDL,
Verilog hay System Verilog So với RTL, OpenCL có thé triển khai mô hình
CNNs một cách nhanh chóng va dễ dàng lên FPGA.
Trang 17Vì những ưu điểm mà OpenCL mang lại so với những phương pháp khác,nhóm quyết định nghiên cứu, thiết kế và hiện thực hệ thống phát hiện cháy trênFPGA sử dụng OpenCL làm nền tang.
1.3 Các đề tài nghiên cứu liên quan
Trên thế giới đã có không ít bài báo nghiên cứu về vấn đề này Tuy nhiên,không có nhiều bai báo dé cập tới việc thực hiện hệ thống cháy trên SoC-FPGA mà
chi dừng ở mức nghiên cứu thuật toán và giải thuật Nhằm tao ra một cái nhìn tổngquan về điểm khác biệt giữa nhóm chúng tôi và những nghiên cứu khác, nhóm đặc
biệt chú ý đên một sô công trình sau.
Năm 2018, trong đề tài “Early Fire Detection using Convolutional Neural
Networks during Surveillance for Effective Disaster Management” [4] tác gia cũng
đã sử dụng mô hình CNNs dé hiện thực hệ thống phát hiện cháy Kết quả của dé tàikhá kha quan khi có thé đạt được 17 FPS khi sử dụng CCTV Tuy nhiên dé tài nàyvẫn có một số hạn chế đó là: kích thước mô hình quá lớn (~238 MB), chỉ thử
nghiệm trên MATLAB R2015a do đó tính thực tiễn khi đặt ở những khu rừng vẫn
chưa có,
1.4 Nội dung nghiên cứu
Đề tài nghiên cứu về hệ thống phát hiện cháy sử dụng Camera Bao gồm
những nội dung sau:
e Thu thập dữ liệu và tiến hành training với Caffe và Google Colab
e Xây dựng Linux SDCard Image cho board Arria 10 SoC.
e Cài đặt OpenCV lên hệ điều hành Linux
e Cài đặt OpenCL lên hệ điều hành Linux
e Tìm hiểu và hiện thực kiến trúc PipeCNN
e Cải tiến mô hình PipeCNN nhằm cải thiện FPS
e Cải tiễn toàn bộ hệ thống băng phương pháp Pipeline
e Thu nghiệm mô hình trên tập dữ liệu test.
Trang 18e Tich hợp và thử nghiệm mô hình với Camera.
1.5 Phạm vi đề tài
Mục tiêu hướng đến của đề tài khóa luận là xây dựng một hệ thong phát hiện
cháy hoàn chỉnh có thể ứng dụng vào thực tiễn, do đó nhóm chỉ thu thập dữ liệu tạinhững đám cháy ngoài trời như cháy rừng, cháy xe, cháy nhà nhằm mang lại hiệu
quả cao nhất cho hệ thống
1.6 Hướng phát triển
Ý tưởng phát triển hệ thống phát hiện cháy được xây dựng dựa trên kiến trúcPipeCNN Nhóm đề xuất cải tiến kiến trúc PipeCNN đồng thời tích hợp Camera và
hiện thực trên board Arria10 SoC.
Trong khóa luận này, đầu tiên nhóm sẽ nghiên cứu và tìm hiểu lý thuyết vềkiến trúc PipeCNN và đánh giá tính khả thi của mô hình này Sau đó, nhóm tiếnhành xây dựng bộ dữ liệu với nhiều nguồn khác nhau và tiến hành đánh giá bộ dữ
liệu bằng Matlab Tiếp đó, nhóm tiến hành xây dựng Linux SDCard Image trên
board Arrial0 SoC đồng thời tích hợp nền tảng OpenCL và OpenCV vào hệ điềuhành Sau đó nhóm tiến hành nghiên cứu cải tiễn kiến trúc PipeCNN và tích hợpCamera Cuối cùng là thử nghiệm trên những đám cháy cụ thê trong môi trường
thực tế và tiến hành đánh giá kết quả
Trang 19Chuong 2 CƠ SỞ LÝ THUYET
2.1 Convolutional Neural Network — Mạng Noron tích chập
Mang noron tích chập được lấy cam hứng từ vo não thị giác Mỗi khi chúng ta
nhìn thấy một vật, một loạt các lớp tế bào thần kinh được kích hoạt, và mỗi lớp thần
kinh sẽ phát hiện một tập hợp các đặc trưng như đường thăng, cạnh, màu sắc, củađối tượng, lớp thần kinh càng cao sẽ phát hiện các đặc trưng phức tạp hon dé nhận
ra những gì chúng ta đã thấy Mạng nơron tích chập là mạng bao gồm một lớp đầuvào và một lớp đầu ra, ngoài ra, ở giữa còn có nhiều lớp an (hidden layers) Các lớp
an của mạng thường bao gồm nhiều lớp tích chập (convolutional), lớp tổng hop(pooling), lớp kết nối đầy đủ (Fully Connected) và theo sau các lớp an là các hàm
kích hoạt (ReLU, Softmax, ) Hình 2.1 mô tả kiến trúc tổng quan về mạng CNN
del Sey bên oS 5 ö ö °
same same same Max lo) ° i) e
Pool 9 1000
13 x 13 x 384 13 x 13 x 384 13 x 13 x 256 6x6x256 9216 4096 4096 Softmax
Cac mang noron tich chap nổi bac như là LeNet [5] - một trong những mang
CNN lâu đời nổi tiếng nhất duoc Yann LeCun phát triển vào năm 1998, AlexNet[6] - mạng CNN đã dành chiến thắng trong cuộc thi ImageNet LSVRC-2012 năm
2012 với large margin (15.3% VS 26.2% error rates), VGGNet [7] có tỉ lệ sai (error rate) nho hon AlexNet trong ImageNet Large Scale Visual Recognition Challenge
Trang 20(ILSVRC) năm 2014, ResNets phát triển bởi Microsoft vào năm 2015, thắng giải
ImageNet ILSVRC competition 2015 với tỉ lệ sai 3.57%,
2.1.1 Convolutional Layer — Lớp tích chap
Mỗi lớp tích chập trong mạng nơron sẽ có đầu vào là một tensor với kích
thước (Số ảnh đầu vào) x (chiều rộng ảnh) x (chiều cao ảnh) x (chiều sâu của ảnh).Lớp tích chập sẽ thực hiện nhân chập với một kernel (ma trận lọc), chiều dài vàrộng của kernel sẽ được chọn theo dạng tham số, còn chiều sâu thì phải bằng với
chiêu sâu của anh, sau đó, kêt quả của lớp này sẽ được truyên sang lớp tiép theo.
Dé tính tích chập ta cần quan tâm đến hai thông số là Stride va Padding.Kernel sẽ được trượt qua ảnh, với mỗi lần trượt ta sẽ tính kết quả tại vi trí đầu ra Sốbước ở mỗi lần trượt kernel được gọi là Stride, thông thường, trong tích chập, Stridebằng 1 Nếu tích chap Same Padding, sẽ tạo các điểm ảnh bang 0 ở ria của ảnh, đặc
trưng dau ra sẽ có kích thước không đôi so với ảnh đầu vào Còn Valid Padding, đặc
trưng dau ra sẽ giảm K - 1 so với anh dau vào, với K là kích thước kernel.
Hình 2.2 là ví dụ về nhân tích chập 2 chiều trên ảnh kích thước 5x5, kíchthước kernel là 3x3, stride bằng 1 va Valid Padding Sau đó, đặc trưng thu được có
kích thước 3x3.
Conv Feature
Hinh 2.2 Vi du vé tich chap 2 chiéu Stride 1, Valid Padding
10
Trang 212.1.2 Pooling Layer — Lớp tổng hợp
Lớp téng hop thường được sử dung xen kẽ trong những lớp tích chập trên mô
hình CNN dé giúp không những giúp giảm kích thước của ma trận đặc trưng mà
còn giảm bớt số lượng các tham số và tính toán không cần thiết trong quá trình học
hỏi của mô hình mạng, thông qua đó, giải quyết van đề overfitting Lớp tổng hợp cóthé được thực hiện một cách độc lập và được đặt ở bat kì vị trí nào cảm thấy cầnthiết trong mô hình mạng dé giảm bớt kích thước ma trận mô hình
Có hai loại Pooling là Max Pooling (trả về giá trị lớn nhất trong cửa sô trượt)
và Average Pooling (trả về giá trị trung bình trong cửa số trượt) Hình 2.3 là ví dụcủa Max Pooling và Average Pooling với cửa sô trượt kích thước 2x2, đầu vào cókích thước 4x4, stride bằng 2
11
Trang 22Đầu vào của lớp sẽ được “làm phẳng” thành ma trận một chiều, tất cả các nốt
của ma trận sẽ được nhân với một trọng số dé tạo ra một nốt dau ra Lớp này đượctính bằng (2.1, với N là số nốt đầu ra Hình 2.4 mô tả lớp kết nối đầy đủ với 16 nốtđầu vào và 128 nốt đầu ra
Hình 2.4 Lớp kết nối đầy đủ với 16 nốt đầu vào và 128 nốt dau ra
2.1.4 Cac hàm kích hoạt thường dùng
2.1.4.1 ReLU
ReLU, đầy đủ là Rectified Linear Unit, loại bỏ các giá tri âm bang cách đặt nó
về 0, làm tăng các đặc trưng phi tuyến tính của mạng tổng thé mà không ảnh hưởngtrực tiếp đến lớp tích chập Công thức đầy đủ của hàm kích hoạt ReLU được thê
hiện ở (2.2.
f(x) = max (0,x) (2.2)
12
Trang 232.1.4.2 Softmax
Hình 2.5 Hàm kích hoạt Softmax kết nối với lớp kết nối đầy đủ
Hàm kích hoạt Softmax thường được dùng sau khi thực hiện FC Layer, mục
dich dé giá trị được chuẩn hoá dưới dang xác suất Hình 2.5 mô tả hàm kích hoạt
Softmax.
Si = sc VI = Wrens (2.3)
Công thức tong quát của hàm kích hoạt Softmax, với z; là kết qua dé cập ở
trên, S;la xác suất dự đoán của từng lớp được thể hiện như (2.3.
2.2 Giới thiệu phan cứng sử dụng
2.2.1 Altera Arria 10 SoC Board
2.2.1.1 Tổng quan về board
Altera Arria 10 SoC Board được phát triển bởi Altera được ra mắt vào năm
2013 với nhiều đặc tính nổi bậc so với rất nhiều SoC board tại thời điểm đó Dựatrên quy trình công nghệ 20nm của TSMC, kết hợp với hệ thống xử lý ARMCortex A9 MPCore lõi lép, Arria 10 mang lại hiệu xuất tối ưu, tiết kiệm điện năng,chi phí thấp cho các ứng dụng tầm trung Bên cạnh đó, Arria 10 SoC còn cung cấpmột bộ xử lý với nhiều thành phần hỗ trợ đa dạng các thiết bị ngoại vi Dựa vào
13
Trang 24những ưu điểm này, đã mang lại cho Arria 10 SoC hiệu xuất, tốc độ fMAX lên tới20% so với những board khác trên thị trường tại thời điểm đó Hình 2.6 mô tả tổngquan về kiến trúc Altera Arria 10 SoC Board.
JHOỈNG
B3 Glock Cleaner FPGA
Source Select Memory Character LD
o Micro SD for HPS boot
o 8GB eMMC Flash for HPS boot (Optional)
o QSPI Flash for FPGA
e Các công giao tiếp và mạng
o 10/100/100 Ethernet PHY For HPS
o USB2.0 transceiver for HPS
e Giao tiếp Arrial0 SoC HPS IO
14
Trang 25o Gigabit Ethernet x 1 Port
o USB 2.0 OTG x | Port
o SD (4bit) x 1 Port (optional)
o SPI x 1 Port
o I2Cx 1 Port
o HPS Dedicated UART Console
o GPIOs-14 Nos
e Giao tiếp Arrial0 SoC FPGA IO
o 24 high -speed transceivers
o 48/96 LVDS from BANK 3B & 3C
o 93 SE from BANK 2A & 3A
° Nguồn
o 5V through SOM B2B connector 2
2.2.1.3 So đồ khối
Sơ đồ khối Altera Arria 10 SoC Board được mô tả như Hình 2.7
Hình 2.7 Sơ đồ khối Altera Arria 10 SoC Board
15
Trang 262.2.2 Webcam Logitech HD C270
Webcam Logitech HD C270 là webcam quay phim với hình anh ở chế độ HD
720p Webcam ứng dụng công nghệ Right Light, tự động điều chỉnh dé lay được
ánh sáng tối ưu và cho ảnh tốt ngay cả trong điều kiện ánh sáng mập mờ Tốc độ tối
đa của webcam Logitech HD C270 là 30 FPS Hình 2.8 là ảnh chụp Webcam
hình ảnh và các vấn đề liên quan tới thị giác máy OpenCV được thiết kế một cách
tối ưu sử dụng tối đa sức mạnh của các dòng chip đa lõi để thực hiện các phép tính
toán trong thời gian thực OpenCV là thư viện được thiết kế dé chạy trên nhiều hệđiều hành khác nhau như Window, Linux, MacOS
Việc sử dụng thư viện OpenCV tuân theo các quy định về sử dụng phần mềm
mã nguồn mở BSD đo đó bạn có thể sử dụng thư viện này một cách miễn phí cho cả
mục đích thương mại hay phi thương mại.
16
Trang 27đơn vị này kết nối với nhau thông qua một đường truyền PCIe tốc độ cao Đề thực
thi các hệ thống cũng như các chương trình trên FPGA, các OpenCL kernel phải
được định nghĩa và mô tả đặc tính của nó sau đó được trình biên dịch OpenCL
Compiler sẽ tiến hành chuyền đổi các kernels này thành các modules và tiến hànhthực thi trên FPGA Về phía OpenCL host sẽ đảm nhận nhiệm vụ kiểm soát hoạtđộng của các OpenCL kernels này, đảm bảo cho hệ thống hoạt động theo mong
muốn, cũng như bên cạnh đó là giao tiếp với các thiết bị ngoại vi như Camera, cảm
biến, Hình 2.9 mô tả một cách tổng quan luỗồng hoạt động của OpenCL bao gồm
CPU
(x86/arm32) PCTe
Hình 2.9 Luéng hoạt động của OpenCL
17
Trang 28OpenCL nhìn chung là một framework hỗ trợ mạnh trong việc thực thi các hệ
thống ứng dụng lên FPGA nhờ vào nhiều ưu điểm sau đây:
¢ H6 trợ mạnh mẽ trong việc chuyền đổi ngôn ngữ cấp cao như C/C++ thành
code RTL.
© _ Cung cấp một cái nhìn tông quan về kiểm soát Memory, luồng thực thi
kernel, thời gian thực thi hệ thống,
© Dé dàng tiếp cận, tìm hiểu và triển khai các hệ thông mong muốn.
18
Trang 29Chương 3 THIẾT KE TONG QUAN
Hình 3.1 Mô tả tổng quan về toàn bộ hệ thống phát hiện cháy
Mô hình bao gồm 2 phần chính như sau:
© Camera: đóng vai trò cung cấp dữ liệu đầu vào cho hệ thống.
¢ PipeCNN: mô hình này đóng vai trò xử lý dữ liệu từ camera va trả về kết
quả dự đoán có cháy hay không cháy.
19
Trang 303.2 Kiến trúc mô hình Alexnet được chỉnh sửa
Dựa vào mô hình Alexnet ban đầu bao gồm: 5 lớp Convolution và 3 lớp
connected Nhóm tiến hành thử nghiệm lượt bỏ một vài lớp Convolution và
Mô hình Alexnet được chỉnh sửa chi còn 4 lớp Convolution va kích thước của
Fully-connected 1 và 2 đã giảm từ 4096 thành 2048 Hình 3.2 mô tả tổng quan về
kiến trúc Alexnet sau khi chỉnh sửa.
20
Trang 31Hình 3.2 Kiến trúc Alexnet tổng quan sau khi chỉnh sửa
Nhóm đã tiến hành so sánh độ chính xác của mô hình Alexnet gốc và mô hình Alexnet được chỉnh sửa và tiến hành so sánh trên cả MATLAB và SoC-FPGA
board, kết quả thu được so sánh trong Bảng 3.2 và Bảng 3.3.
Bảng 3.2 So sánh độ chính xác giữa Matlab và PipeCNN của Alexnet gốc
Tập dữ liệu test Matlab PipeCNN
pic 99.5% 83%
pic2 100% 96.5%
pic7 80.5% 75%
Bang 3.3 So sánh độ chính xác giữa Matlab va PipeCNN của Alexnet mới
Tập dữ liệu test Matlab PipeCNN
pic 100% 86.5%
pic2 99.5% 96%
pic7 78.5% 71.5%
Mỗi tap đữ liệu pic bao gồm 200 ảnh trong đó có 100 ảnh gán nhãn cháy (fire)
và 100 anh gan nhãn không cháy (normal).
21
Trang 32Dựa vào hai Bảng 3.2 và Bảng 3.3, ta có thể đưa ra nhận xét sau:
Về mặt thời gian thực thi, tốc độ của mô hình Alexnet được chỉnh sửa cho kết
quả tốt hơn với 115ms cho một bức ảnh, số lượng tham số cũng giảm gần một phần hai so với các mô hình trước đó được thể hiện trong Bảng 3.4.
Bảng 3.4 Số lượng tham số và thời gian thực thi của các mô hình
Alexnet gốc Alexnet đã chỉnh sửa
Số lượng tham số ~57 triệu ~25 triệu
Thời gian thực thi 155 ms 115 ms
này.
3.3 PipeCNN
Single-threaded
Kernel
Về độ chính xác, nhìn chung không có sự thay đổi quá nhiều trong độ chính
xác giữa mô hình Alexnet gốc và mô hình Alexnet được chỉnh sửa Do đó, nhóm quyết định sử dụng mô hình Alexnet đã được chỉnh sửa dé hiện thực cho khóa luận
—* Channel/Pipes
22
Trang 33Như Hình 3.3, PipeCNN bao gồm các OpenCL kernel được xếp liên tiếp nhau Đầu tiên data mover Kernel MemRD nhận feature map va weight từ Global memory (tức là bộ nhớ DDR bên ngoài) Tiếp đến Convolution kernel (Conv) được
sử dụng để thực hiện các phép tính tích chập cho Convolution Layer và FC Layer Sau khi tính toán xong output sẽ được chuyển đến MemWR kernel và tiến hành lưu
ngược dit liệu lại Global Memory.
Bên cạnh đó còn có Pooling Kernel được sử dụng dé làm giảm số lượng noron
hiện có tại Layer đó.
Local Response Normalization (LRN) lấy dữ liệu Global Memory và thực
hiện chuân hóa trên feature map của các noron lân cận.
Đặc điêm của kiên trúc PipeCNN:
e Cac kernel xép tang tao thành một đường ống, có thể thực hiện một loạt các
hoạt động CNN cơ bản mà không cần nhu cầu lưu trữ dữ liệu tại bộ nhớ
ngoài khi thực thi một Layer nó giảm đáng kể nhu cầu về băng thông bộ nhớ
và tăng thời gian thực thi điều rất cần thiết cho FPGA.
© Str dụng duy nhất kernel đề triển khai cả Convolution Layer và lớp FC layer,
điều này cải thiện hơn nữa hiệu quả sử dụng tài nguyên phần cứng.
23