Trong dé tài này, nhóm muốn sử dụng nền tảng System on Chip dé xây dựngmột hệ thống smart camera streaming hình anh qua kết nối không dây với độ trễ thấp và tiệm cận được với thời gian t
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
LÊ HUY HOÀNG
TÔ QUOC NGUYEN
KHOA LUAN TOT NGHIEP
UNG DUNG MOBILENETV2 TREN ULTRA96-V2 CHO
SMART CAMERA
MOBILENETV2 ON ULTRA96-V2 FOR SMART CAMERA
KY SU NGANH KỸ THUAT MAY TÍNH
TP HO CHi MINH, 2022
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
LÊ HUY HOÀNG - 18520779
TÔ QUOC NGUYEN - 18521165
KHÓA LUẬN TÓT NGHIỆP
UNG DỤNG MOBILENETV2 TREN ULTRA96-V2 CHO
SMART CAMERA
MOBILENETV2 ON ULTRA96-V2 FOR SMART CAMERA
KỸ SƯ NGANH KỸ THUAT MAY TÍNH
GIẢNG VIÊN HUONG DAN
TIEN SĨ NGUYEN HOAI NHÂN
TP HO CHi MINH, 2022
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 528/QD-DHCNTT
ngày 19 thang 07 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4ơn quý thầy cô đã giúp đỡ chúng em rất nhiều trong suốt thời gian qua.
Đặc biệt, chúng em xin chân thành cảm ơn thầy Tiến sĩ Nguyễn Hoài Nhân đã
hướng dẫn nhóm rat tận tình trong suốt quá trình thực hiện dé tài, hỗ trợ và cung cap
cho chúng em nhiều kiến thức chuyên môn quý báu để chúng em có thể hoàn thành
khoá luận Bên cạnh đó chúng em cũng xin chân thành gửi lời cảm ơn đến các anh chị, bạn bẻ trong khoa, những người đã giúp đỡ nhóm trong quá trình tìm kiếm thông tin, trao đổi và giải quyết nhiều vấn đề cho nhóm trong suốt quá trình học tập và
nghiên cứu.
Chúng con xin dành lời cảm ơn gia đình đã luôn tin tưởng, tạo điều kiện và ủng hộ chúng con về rất nhiều về mặt thần cũng như là chỗ dita tinh thần vững chắc
trên con đường học tập của chúng em.
Trong suốt quá trình thực hiện đề tài khóa luận, chúng em không thể tránh khỏi những khó khăn và sai sót do một só giới hạn liên quan đến chuyên ngành chuyên
sâu Vì thé, chúng em mong các quý Thay/Cé và các bạn sẽ thông cảm, và có thé
đóng góp ý kiến dé dé tài khóa luận này được phát triển và hoàn thiện hon trong tương
lai.
Một lần nữa, chúng em xin chân thành cảm ơn!
Thanh pho Hồ Chi Minh, 5 tháng 8 năm 2022
Sinh viên thực hiện
Lê Huy Hoàng Tô Quốc Nguyễn
Trang 5Chương 2 CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU
2.1 Kiến trúc Field Programmable Gate Array (FPGA)
2.1.1 Dinh nghia
2.1.2 Kién trac tong quat
2.2 Công nghệ SoC (System on Chip)
2.2.1 Định nghĩa hệ thống SoC
2.2.2 Kiến trúc cơ bản của một hệ thống SoC
2.3 Zynq UltraScale+ MPSoC
2.7 Các nghiên cứu về smart camera
2.7.1 Nghiên cứu ngoài nước
2.7.2 Nghiên cứu trong nước
Chương 3 THIET KE HỆ THONG
œ
œ
" 12 12 13
14
15
17 19 19 20
22
Trang 63.1 Ý tưởng thiết kế hệ thống
3.2 Mô hình thiết kế tong quát hệ thống
3.3 Tổng hợp IP MobileNetV2
3.4 Hiện thực Smart Camera với Petalinux 2019.2
3.5 Thiết kế block design trên công cụ Vivado
3.6 Các IP của Xilinx dùng trong thiết kế hệ thống SoC
3.6.10 IP ZynQ UltraScale + MPSoC
3.6.11 IP Block Memory Generator
Chương 4 THUC NGHIEM VÀ ĐÁNH GIA KET QUA
*
È
Trang 75.2 Khó khăn gặp phải
Trang 8Kiến trúc cơ bản của FPGA
Kiến trúc cơ bản của một SoC Các khối trong Zynq UltraScale+ MPSoC
Các thành phan chính trên board Ultra96-V2
Sơ đồ khối của board Ultra96-V2
Thuật toán MobileNetV2 Residual block của MobileNet
Kiến trúc tổng thể MobileNetV2
Số kênh/bộ nhớ
Hình 2.10 Khối Inverted Residual
Hình 2.11 So dé khối của một smart camera
IP MobileNetV2
Kết quả sau khi generate bitstream của nhóm
Năng lượng tiêu thụ Image packaging configuration Boot image settings
USB gadget support Hinh 3.10 Wilc module bitbake
Hinh 3.11 Block Diagram trén phan mém Vivado
Hinh 3.12 IP Cloking Wizard
Hình 3.13 IP AXT Interconnect
Hinh 3.14 IP Processor System Reset
Hinh 3.15 IP AXI SmartConnect
Hinh 3.16 IP AXI UART16550
10
ul 12
13 14
14
15 16 7
19
22 23
24
25 26
26 28
28 29 29
32 33
33
34 34 35
Trang 9Hình 3.17 IP AXI GPIO
Hình 3.18 IP Slice
Hình 3.19 IP AXI Interrupt Controller
Hinh 3.20 IP Concat
Hinh 3.21 IP ZynQ UltraScale + MPSoC
Hinh 3.22 IP Block Memory Generator
Hình 4.1 Hình ảnh thực tế phan cứng
Hình 4.2 Kết quả nhận diện sách
Hình 4.3 Kết quả nhận diện chai nước
Hình 4.4 Kết quả nhận diện cái ly
Hình 4.5 Kết quả nhận diện laptop
Hình 4.6 Kết quả nhận diện con chuột máy tính
Hình 4.7 Kết quả nhận diện sai con chuột máy tính
36 36
36
37 37 38 39 40 40
41 41
42 42
Trang 10DANH MUC BANG
So sánh các nghiên cứu liên quan trong nước
Tần số ước lượng của IP MobileNetV2_FPGA
Tài nguyên sau khi tổng hợp IP Luồng thiết kế Petalinux
File petalinux-user-image
Kết quả độ chính xác của hệ thông
20 25
25 27 30
43
Trang 11DANH MỤC TỪ VIET TAT
Từ viết tắt Tên đầy du
ADC Analog to Digital Converter
AHB Advanced High performance Bus
Al Artificial Intelligence
ALU Arithmetic Logic Unit
AMBA Advanced Microcontroller Bus Architecture APB Advanced Peripheral Bus
APU Application Processing Unit
ARM Advance RISC Machines
AXI Advanced eXtensible Interface
CCl Cache Coherent Interconnect
CNN Convolutional Neural Network
Core SW Core SoftWare
CPU Central Processing Unit
DDR4 Double Data Rate fourth generation
DSP Digital Signal Processor
FPGA Field-Programmable Gate Array
GPU Graphics Processing Unit
Trang 12HDL Hardware Description Language
HLS High Level Synthesis
HP High Performance
1OU Input Output Unit
IP Internet Protocol
LPDDR4 Low Power Double Data Rate fourth generation
OpenCV Open source Computer Vision library
PC Personal Computer
PL Progammable Logic
PS Processing System
RAM Random Access Memory
RISC-V Reduce Instruction Set Computer version 5
ROM Read Only Memory
SoC System on Chip
UART Universal Asynchronous Receiver Transmitter
VHDL (VHSIC-HDL)
Very High Speed Intergrated Circuit Hardware Description Language
Trang 13TOM TAT KHÓA LUẬN
Ngày nay, những tiến bộ trong công nghệ vi điện tử đã giúp con người có thểtích hợp được nhiều hệ thống phức tạp trong một thiết bị duy nhất Smart cameracũng là một phần của quá trình phát triển này và có thể được định nghĩa là một hệthống được tích hợp thêm nhiều chức năng: truyền tải hình ảnh qua kết nối khôngdây, tích hợp thuật toán xử lý ảnh Việc xây dựng smart camera có thê dựa trên nhiềunên tảng như: FPGA, Embedded system, System on Chip Mỗi công nghệ đều có ưu
nhược điểm đặc trưng của chúng, đã và đang được nhiều nhóm tác giả, trường học,
các công ty lớn cả trong và ngoài nước nghiên cứu, phát triển Các yếu tố cần lưu ýkhi thiết kế smart camera có thé là tốc độ thu nhận và hiển thị, độ chính xác, năng
lượng tiêu tốn và giá thành sản phẩm
Trong dé tài này, nhóm muốn sử dụng nền tảng System on Chip dé xây dựngmột hệ thống smart camera streaming hình anh qua kết nối không dây với độ trễ thấp
và tiệm cận được với thời gian thực Smart camera sẽ tích hợp thêm thuật toánMobileNetV2 xử lý ảnh trên phần cứng FPGA, kết hợp bộ xử lý core ARM và một
số module khác dé điều khiến và truyền dữ liệu Người dùng có thé xem kết quả trênmàn hình hiển thị thông qua một Wifi Access Point modem
Nhóm đề xuất thiết kế hệ thống smart camera trên bộ công cụ phần mềmVivado phiên bản 2019.2 của Xilinx (bao gồm: Vivado HLS, Vivado Design Suite,Petalinux, Vitis), sử dụng board Ultra96-V2 trên nền tảng Zynq UltraScale+ MPSoCcủa nhà phát hành Avnet.
Trang 14MỞ DAU
Ké từ những năm 1990, camera thông minh đã thu hút được sự quan tâm đáng
kế từ các nhóm nghiên cứu, trường đại học và nhiều phân khúc công nghiệp, đặc biệt
là trong các ngành công nghiệp sản xuất và giám sát video Điều này là do máy ảnhthông minh cung cấp lợi ích riêng biệt- vượt trội hơn so với máy ảnh bình thường(hoặc tiêu chuẩn) băng cách thực hiện không chỉ chụp ảnh mà còn phân tích hình ảnh
và nhận dạng sự kiện tat cả trong một hệ thống nhỏ gọn Sự phổ biến ngày càng tăng
của camera thông minh được xây dựng dựa trên tiến bộ đạt được trong công nghệ quy
trình bán dan, kỹ thuật thị giác máy tính nhúng và các yếu tô kinh tế - xã hội như antoàn và bảo mật, tăng năng suất và tiết kiệm chi phí Ngày nay, các sản phẩm camerathông minh được sử dụng trong nhiều ứng dụng trong thế giới thực, đặc biệt là tronggiám sát video, thị giác máy công nghiệp, robot, trò chơi và đồ chơi cũng như giao
điện máy tính của con người.
Xây dựng camera thông minh bao gồm việc áp dụng các công nghệ từ thị
giác máy tính, thị giác máy và các hệ thống nhúng Là lĩnh vực công nghệ, cả thịgiác máy tính và thị giác máy đều liên quan đến việc xây dựng các thiết bị hoặc
hệ thống có thé tìm kiếm thông tin hữu ich từ hình anh và có thé đưa ra các quyếtđịnh nhất định dựa trên thông tin đó Công nghệ hệ thống nhúng liên quan đếnviệc xây dựng các hệ thống năng lượng thấp, chi phí thấp và thời gian thực đủmạnh dé hoạt động đáng tin cậy trong các điều kiện trong thế giới thực Máy ảnhthông minh là một hệ thống nhúng thực hiện các công nghệ thị giác đồng bộ chocác ứng dụng thị giác máy Vì hiện tại, các máy ảnh thông minh không được thiết
kế cho mục đích chung mà thường dành cho các ứng dụng cụ thể, nên một mô
hình kinh doanh tốt cũng rất quan trọng để đảm bảo chúng được thị trường vàngười dùng cuối chấp nhận Khi các công nghệ và sản phẩm được người tiêu dùng
và nền xã hội sử dụng tiếp tục có nhiều sự tích hợp hơn, sức mạnh xử lý và tríthông minh, ba thuộc tính chính của camera thông minh, chắc chắn những chiếccamera này sẽ tiếp tục được chấp nhận nhiều hơn, tiên tiến hơn và trở nên phobién hon trong tuong lai
Trang 15Chương 1 GIỚI THIỆU DE TÀI
1.1 Lý do chọn đề tài
Ngày nay với sự phát triển mạnh mẽ của các ngành công nghệ vật liệu, một
cảm biến camera có thé thu được hình anh với chất lượng tốt cùng với độ phân giải
cao Việc quan sát hình ảnh thu được thông qua một đường truyền ở khoảng cách xavới độ trễ nhận được không quá cao cũng là yếu tố thu hút nhiều mối quan tâm Honnữa, sự phát triển mạnh mẽ các thuật toán thông minh, trí tuệ nhân tạo trong xử lýảnh ngày nay càng khiến cho nhiều công ty, tổ chức nghiên cứu muốn áp dụng chúngvào trong các hệ thống camera quan sát của họ Nhờ đó tạo thành các smart camera
hỗ trợ tốt hơn cho các công việc sản xuất trong nhà máy, bảo mật an ninh Do đó,
trong đề tài này, nhóm nghiên cứu muốn thiết kế hệ thống smart camera có thể truyền
hình anh streaming thông qua mang Wifi, với một độ trễ thấp ở mức khả quan và ồnđịnh.
1.2 Mục tiêu đề tài
Ở luận văn này, nhóm tập trung tìm hiểu cách thiết kế mô hình CNN trên một
hệ thống SoC (Sytem on Chip) và streaming hình ảnh thông thường Ngoài ra, smartcamera tích hợp thêm thuật toán AI dé nhận diện có người trong khung hình dựa
trên CNN MobileNet Smart Camera sẽ truyền hình ảnh dữ liệu thông qua đường
truyền Wifi lên một màn hình đề quan sát Nhóm đề ra những mục tiêu sau:
¢ Nhóm tìm hiểu board Ultra96-V2 của Avnet phân phối dựa trên hệ thống Zynq
UltraScale+ MPSoC do Xilinx phát hành Nhóm tìm hiểu thêm bộ công cụ XilinxVivado (bao gom Vivado HLS, Vitis, Vivado Design Suite) dé dùng cho việc khởitạo ra bộ CNN MobileNetV2 dưới dạng ngôn ngữ Verilog bằng Vivado HLS Sau
đó nhóm tìm cách cài đặt bộ CNN MobileNet vào hệ thống SoC trên board
Ultra96-V2 kết nối với USB Camera và module Wi-Fi
Trang 16% Kế tiếp nhóm tìm hiểu và xây dựng hệ điều hành Linux, sau đó nạp lên board
Ultra96-V2 bằng công cụ Petalinux của Xilinx phát hành dé điều khiển hoạt độngcủa hệ thống
Cuối cùng nhóm viết các chương trình phần mềm bằng Vitis và nạp lên hệ điềuhành Linux trên board Ultra96-V2 dé điều khiển hoạt động hệ thống Nhóm sẽ tiếptục kiểm tra lại hệ thống, đánh giá các kết quả thử nghiệm và đóng gói sản phẩm
1.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 1 sẽ giới thiệu dé tài nhóm đang thực hiệnChương 2: CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU
Chương 2 sẽ trình bày những công cụ phục vụ trong việc thiết kế hệ thống và
lý thuyết của các giải thuật được sử dụng trong hệ thông
Chương 3: THIẾT KE HE THONG
Chương 3 trình bay phương pháp thiết kế, xây dựng một hệ điều hành Linuxđược nạp lên Ultra96-V2 bao gồm việc kết hợp một số module Wifi, thư viện hỗ trợhiển thị ảnh OpenCV, thư viện Gstreamer, thiết kế pipeline streaming truyền hình
ảnh
Chương 4: KET QUÁ DANH GIÁ HỆ THONGChương 4 sẽ trình bày phương pháp đánh giá của thiết kếChương 5: KET LUẬN VÀ HUONG PHÁT TRIEN
Chương 5 sẽ tóm 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 17Chương2 CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU
2.1 Kiến trúc Field Programmable Gate Array (FPGA)
2.1.1 Dinh nghia
Field Programmable Gate Arrays là một chip logic số có thé lập trình được,tức là ban có thé sử dung chúng dé lập trình cho hầu hết các chức năng của bat kỳmột thiết kế số nào Đã có nhiều tai liệu trên website nói nhiều về FPGA nhưng ở đâymình muốn các bạn chú ý đến cái tên của nó Mình thấy trên các website người ta
dịch chữ FIELD là dạng trường Nhưng ở đây không phải như vậy FIELD nghĩa là
nơi sử dụng con chip Field Programmable nghĩa là có thé lập trình được tại nơi củangười sử dụng khác với một sỐ chip là phải lập trình tai nơi sản xuất FPGA được tạothành từ một mảng (matrix hay array) các phần tử khả trình nên được gọi là
Programmable Gate Array.
Bộ nhớ tĩnh đầu tiên dựa trên FPGA (thường được gọi là SRAM trên nền
FPGA) được đề xuất bởi Wahlstrom vào năm 1967 Sau đó bản thương mại của FPGA
được Xilinx giới thiệu vào năm 1984 Lúc này nó gồm có một mảng của các khốilogic có thé tái cầu hình — Configurable Logic Blocks (CLBs) và các đầu vào ra — /O(input/output) Chip FPGA đầu tiên chứa 64 CLBs và 58 I/Os Ngày nay, FPGA cóthé chứa khoảng 330,000 CLBs và khoảng 1100 I/Os Phan lớn các san pham FPGAtrên thi trường hiện nay đều dựa trên công nghệ SRAM với 2 hãng sản xuất lớn nhất
là Xilinx và Altera Ngoài ra còn có các hãng khác sản xuất FPGA nhưng với mục
đích chuyên dung (Atmel, Actel, Lattice, SiliconBlue, ).
2.1.2 Kiến trúc tổng quát
Kiến trúc cơ bản của FPGA được thể hiện qua Hình 2.1 bao gồm 3 thành phan
chính: khối logic có thé tái cấu hình, Configurable Logic Blocks (CLBs) thực hiệncác chức năng logic; các kết nối bên trong, Porgrammable Interconnect có thé lậptrình dé kết nối các đầu vào và đầu ra của các CLB và các khối I/O bên trong, cáckhôi I/O cung cap giao tiêp giữa các ngoại vi và các tín hiệu bên trong.
Trang 18kênh được dùng trong một cum logic dé kết nối các phần tử logic lại với nhau, trongkhi đó cả ba đều được dùng cho các cấu trúc định tuyến bên trong FPGA Một số
FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ítkết nối hơn nên định tuyến phức tạp hơn
Trang 19Khối I/O: I/O cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến
đến các thành phần bên ngoài Một trong những vấn đề quan trọng nhất trong thiết kếkiến trúc I/O là việc lựa chọn các tiêu chuẩn điện ap cung cấp và điện áp tham chiếu
sẽ được hỗ trợ.
Theo thời gian, các kiến trúc FPGA co bản đã được phát triển hơn nữa thôngqua việc bổ sung các khối chức năng đặc biệt có thé lập trình, như bộ nhớ trong (BlockRAMs), logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng đượcthêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng Kết quả là nhiềuFPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó
2.2 Công nghệ SoC (System on Chip)
2.2.1 Dinh nghia hé thong SoC
Thuật ngữ SoC là viết tắt cua System on a Chip Chip này có tên như vậy bởi
vì nó bao gồm nhiều thành phan tính toán thiết yếu, tat cả đều được nén vào một conchip SoC chủ yếu được sử dụng cho các thiết bi di động vì kích thước nhỏ và sử dung
ít điện năng.
Bắt đầu từ năm 1970, một số công ty đã có gắng đưa nhiều thành phần vào mộtcon chip dé cung cấp năng lượng cho đồng hồ kỹ thuật s6 Intel đã thành công trongviệc thực hiện điều này với Microma Digital Watch vào năm 1974, được tạo ra SoCthực sự đầu tiên Công ty đã tích hợp các chức năng thời gian và những bóng bán dẫn
driver LCD vào một chip.
SoC thực sự phát triển vào những năm 80 và 90 Máy tính cá nhân đã trở nên
phổ biến vào những năm 80 và chúng cần được cung cấp năng lượng bởi những con
chip nhỏ hơn Trong những năm 90, điện thoại di động sử dụng SoC và xu hướng đó
tiếp tục cho tới ngày nay
2.2.2 Kiến trúc cơ bản của một hệ thong SoC
Mỗi chip SoC có mật độ tích hợp các chức năng khác nhau nhưng hau hết cácSoC đều có các thành phần cơ bản được giới thiệu ở Hình 2.2:
Trang 20s==='.== i= = ET
Peripheral
Hình 2.2 Kiến trúc cơ ban của một SoCCPU (Central Processing Unit): Lõi vi xử lí là thành phần không thể thiếu trong
một SoC, làm nhiệm vụ quản lý toàn bộ hoạt động chính của một SoC CPU đảm
nhiệm luồng xử lý chính trong SoC, điều phối các hoạt động giữa các thành phần
khác trong SoC, thực thi các tính toán chính Một SoC có thể có một hoặc nhiềulõi CPU Một số lõi CPU thông dụng như: lõi CPU ARM dùng tập lệnh ARM và
được phát triển bởi hãng ARM; RISC-V là lõi CPU phát triển trên tập lệnh mở và
Bộ nhớ (Memory): Bộ nhớ trong một SoC được gọi là bộ nhớ nội dé phân biệt với
bộ nhớ năm ngoài SoC và giao tiếp với SoC thông qua các chân (pin) điều khiểncủa SoC Bộ nhớ nội này có thể là:
> ROM — lưu cấu hình hoặc chương trình ban đầu của SoC
Trang 21> RAM - được sử dụng để lưu thông tin hoặc giá trị tính toán trong suốt quá
trình hoạt động cua SoC.
¢ Thanh phần điều khiển nội (Internal Block): là thành phần chỉ điều khiển hoạt
động bên trong SoC mà không điều khiển trực tiếp port nào của SoC như:
> Khối tạo clock (clock generator): cung cấp clock cho toàn bộ các khối chức
năng trong SoC ké cả CPU
> Khối tao reset (reset generator): cung cấp reset cho toàn bộ các khối chức năng
trong SoC, kể cả CPU
> Các khối giám sát (monitor): là các khối có chức năng giám sát hoạt động của
SoC, kịp thời phát hiện ra các lỗi trong quá trình hoạt động dé khởi động lại
một phần hoặc toàn bộ hệ thống.
$% Ngoại vi (Peripheral): là các khối có thé điều khién trực tiếp các chân (pin hoặc
port) của SoC dé thực thi một chức năng điều khiển bên ngoai SoC như: UART —
truyền nhận dữ liệu nối tiếp; Video — điều khiển camera; Audio — thu phát âm
thanh; ADC — chuyền đôi tín hiệu tương tự thành tín hiệu SỐ
2.3 Zynq UltraScale+ MPSoC
Ở đây nhóm chỉ đề cập đến các thành phần được sử dụng trong đề tài này.Hình 2.3 mô tả các khối trong Zynq UltraScale+ MPSoC (tham khảo cấu hình tùychỉnh )
Trang 22Hình 2.3 Các khối trong Zynq UltraScale+ MPSoC
Application Processing Unit (APU): chứa chip ARM Cortex-A53, bao gồm cả
CPU va GPU, là một bộ xử lý da năng, có thể thực hiện cùng lúc nhiều chức năng
khác nhau.
Cache Coherent Interconnect (CCI): đây là giao tiếp nhận biết bộ nhớ cache giữa
các lõi CPU dé chúng có thé thay được các giá trị nhất quán khi truy cập cùng một
bộ nhớ logic Đôi khi, chúng cũng được sử dụng giữa bộ đệm CPU và thiết bịngoại vi để có quyền truy cập vào cùng một bộ nhớ
Core Sofware (Core SW): các chương trình dé điều khiến tín hiệu các bus, truyền
nhận dữ liệu.
Progammable Logic (PL): là một bộ FPGA có thể lập trình được, người dùng phải
sử dung ngôn ngữ mô tả phan cứng đặc trưng (Verilog/VHDL/SystemC ) thôngqua các phần mềm chuyên biệt đề có thé tổng hợp và sử dụng
AXI Bus: Advanced eXtensible Interface Bus là một giao thức dùng để trungchuyên dữ liệu giữa các thành phần trong hệ thống SoC, được phát triển bởi hãng
ARM Giao thức này có chức năng liên kết giữa các master, slave hoặc giữa cácbus trong hệ thống: phân xử truy cập; giải mã địa chỉ
10
Trang 23'DDR4 RAM: Double Data Rate fourth generation Ramdom Access Memory là
một bộ nhớ truy cập ngẫu nhiên nhưng có kha năng truyền tải dữ liệu gấp đôitrong một chu kì bộ nhớ mà không cần tăng tần số clock
K2
¢ Input/Output Unit (OU): là các cổng giao tiếp với thiết bị ngoại vi Trong luận
văn này, nhóm sử dụng công SD dé nạp hệ điều hành Petalinux và công USB dékêt nôi với Camera.
2.4 Board Ultra96-V2
Ultra96-V2 là một máy tinh Single Board được sản xuất với chi phí thấp nhằmmục đích sử dụng rộng rãi trong nhiều ứng dụng như: trí tuệ nhân tạo, máy học, IoT,điện toán đám mây, máy tính nhúng, robotics, hỗ trợ các kết nối không day (Wi-Fi,Bluetooth) Hình 2.4 giới thiệu các thành phần chính trên board Ultra96-V2
40-pin Low-speed INIT_B 60-pin High speed 12V Power Wi-Fi’
expansion header (J5) | LED (D5) expansion header (4) Input (J10) Bluetooth
2) D4, D6, D7)
Mini DisplayPort Wireless LAN (D9) 1x USB 3.0 Type 2x USB 3,0 Type A
(Jd) and Bluetooth Micro-B upstream downstream ports
(D10) LEDs Port (J7) (J8 and J9)
Hình 2.4 Các thành phan chính trên board Ultra96-V2
Board Ultra96-V2 gồm các thành phần chính sau:
s* Linaro 96Boards Consumer Edition compatible.
s* Xilinx Zyng UltraScale+ MPSoC ZU3EG SBVA484.
s% Bộ nhớ:
11
Trang 24B6 tao xung clock Renesas VersaClock 6E.
Infineon va ON Semiconductor dé quan lí điện năng với hiệu qua cao
Mini DisplayPort.
1 céng USB 3.0 Type Micro-B upstream
2 công USB 3.0 Type A downstream
1 céng USB 2.0 Type A downstream (trén High-speed expansion header)
40-pin Low-speed expansion header.
60-pin High-speed expansion header.
Ngoài ra, kiến trúc tong quát của board Ultra96-V2 cũng được thé hiện trong Hình
(SPI, 120, MIPI, LIART.
GPIO, etc)
Hình 2.5 Sơ đồ khôi của board Ultra96-V2
2.5 Thuật toán MobileNetV2
2.5.1 MobileNetV2
Ké từ khi ra đời, MobileNetV2 là một trong những kiến trúc được ưa chuộngnhất khi phát triển các ứng dụng AI trong computer vision Rất nhiều các kiến trúc
12
Trang 25sử dung backbone là MobileNetV2 như SSDLite trong object detection va
DeepLabV3 trong image segmentation.
MobileNetV2 có một số điểm cải tiến so với MobileNetV1 giúp cho nó có độchính xác cao hơn, số lượng tham số và số lượng các phép tính ít hơn mà chúng ta sẽ
tìm hiểu ngay sau đây
2.5.2 Khối MobileNetV2 Convolutional
conv 1x1, Linear
Dwise 3x3, stride=2, Relu6
Hinh 2.6 Thuat toan MobileNetV2
Sự khác nhau giữa MobilenetV1 so với V2 được thể hiện qua Hình 2.6 Có thể
thay V2 sử dụng nhiều bước dé giảm tham số và tăng độ chính xác cho thuật toán
MobileNetV2 cũng sử dụng những kết nối tắt như ở mạng ResNet Các khối
ở layer trước được cộng trực tiếp vào layer liền sau Nếu coi layer liền trước là x, saukhi di qua các xử lý tích chập hai chiều ta thu được kết quả F(x) thi output cuối cùng
là một residual block có giá trị x+F(x) như trong Hình 2.7.
13
Trang 26weight layer
x
identity
Hình 2.7 Residual block của MobileNet
Tuy nhiên kết nối tắt ở MobileNetV2 được điều chỉnh sao cho số kênh (hoặcchiều sâu) 6 input và output của mỗi block residual được thắt hẹp lại Chính vì thé nóđược gọi là các bottleneck layers (bottleneck là một thuật ngữ thường được sử dụng
trong deep learning dé ám chỉ các kiến trúc thu hẹp kích thước theo một chiều nao
72 x 1280 avgpool 7x7 | 1
1 < l1 x 1280 conv2d 1x1 k
-s Trong đó t : hệ -sô mở rộng, c : -sô kênh đâu ra, n : -sô lặp lại, -s: bước -sóng Hat
nhân 3 x 3 được sử dụng dé tích chập không gian
14
Trang 27v? s%% Điển hình, mạng chính (hệ số chiều rộng 1, 224 x 224 ), có chi phí tính toán
là 300 triệu phép nhân-cộng và sử dụng 3,4 triệu tham số (Hệ sé chiều rộng
được giới thiệu trong MobileNetV1 )
“ Đề đào tao mạng, 16 GPU được sử dung với kích thước lô là 96
Số kênh/bộ nhớ tối đa (tính bằng Kb) ở mỗi độ phân giải của từng kiến
trúc khác nhau được so sánh qua Hình 2.9
(2x,g=3)
112x112 64/1600 16/400 32/800 56x56 128/800 32/200 48/300 28x28 256/400 64/100 400/600K 14x14 512/200 160/62 800/310
7x7 1024/199 320/32 1600/156 1x1 1024/2 1280/2 1600/3
Hình 2.9 Số kênh/bộ nhớ
2.5.4 Inverted Residual Block
Khối Inverted residual được minh hoa cu thé qua Hinh 2.10
15
Trang 28Hình 2.10 Khối Inverted Residual
Kiến trúc residual này ngược lại so với các kiến trúc residual truyền thống vi
kiến trúc residual truyền thống có số lượng kênh ở input và output của một block lớn hơn so với các layer trung gian Chính vì vậy nó còn được gọi là kiến trúc inverted
residual block.
Tác gia cho rang các layer trung gian trong một block sẽ làm nhiệm vụ biến
đổi phi tuyến nên cần day hơn dé tạo ra nhiều phép biến đồi hơn Kết nối tat giữa các
block được thực hiện trên những bottleneck input va output chứ không thực hiện trên
các layer trung gian Do đó các layer bottleneck input va output chỉ cần ghi nhận kết
quả và không cần thực hiện biến đổi phi tuyến.
Ở giữa các layer trong một block inverted residual block chúng ta cũng sử dụng những biến đổi tích chập tách biệt chiều sâu đề giảm thiểu số lượng tham số của mô
hình Đây cũng chính là bí quyết giúp họ các model MobileNet có kích thước giảm
nhẹ.
16
Trang 292.6 Smart camera
Smart camera đã được ứng dụng trong công nghiệp được hơn hai thập kỷ, nhưng
những tiến bộ trong công nghệ vi xử lý đã làm cho thiết bị này trở nên dễ tiếp cận và phổ biến hơn, đặc biệt là trong các lĩnh vực như giám sát và thị giác máy tính Thuật ngữ smart camera có nhiều định nghĩa khác nhau, tuy nhiên mọi người đều thống nhất rằng một smart camera không chỉ bao gồm các cảm biến hình ảnh mà còn có
thêm một số loại chip xử lý như CPU, DSP, FPGA hoặc các thiết bị xử lý khác Sơ
đồ khối của một smart camera cơ bản được biểu diễn ở Hình 2.11.
Tuy nhiên, ngay cả máy ảnh kĩ thuật số thông thường cũng có sẵn một số bộ xử
lý hình ảnh để chỉnh sửa các hiệu ứng, loại bỏ các phần thừa, nhận diện khuôn mặt,
sử dụng bộ lọc hình ảnh hoặc thực hiện các tính năng xử lý ảnh khác Vì thế, một máy ảnh bao gồm bộ xử lý cùng với cảm biến hình ảnh không được gọi là smart
camera.
Không giống với hầu hết các máy ảnh thông thường, output của smart camera
không phải là hình ảnh mà là một thông tin hoặc một lựa chọn Vì thuật toán xử lý
17