1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Cải thiện về năng lượng cho bộ tăng tốc AI tích hợp trên Ultra96-V2 cho smart camera

94 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cải thiện về năng lượng cho bộ tăng tốc AI tích hợp trên Ultra96-V2 cho smart camera
Tác giả Trần Doãn Minh, Nguyễn Tuấn Khoa
Người hướng dẫn Tiến sĩ Nguyễn Minh Sơn
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 94
Dung lượng 51,87 MB

Nội dung

Smart camera cũng đang là một xu hướng được sủ dụngrộng rãi trong nhiều lĩnh vực và được định nghĩa là một hệ thống được tích hợpnhiều chức năng: truyền tải hình ảnh qua kết nối không dâ

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

TRAN DOAN MINH NGUYEN TUAN KHOA

KHOA LUAN TOT NGHIEP

CAI THIEN VE NANG LUONG CHO BỘ TANG TOC AI

TÍCH HỢP TREN ULTRA96-V2 CHO SMART CAMERA

IMPROVEMENT POWER PERFORMANCE FOR AI ACCELERATION ON FPGA ULTRA96-V2 FOR SMART

CAMERA

KY SU NGANH KY THUAT MAY TÍNH

TP HO CHÍ MINH, 2023

Trang 2

ĐẠ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

TRAN DOAN MINH - 18521109

NGUYEN TUAN KHOA - 18520928

KHOA LUAN TOT NGHIEP

CẢI THIEN VE NANG LUONG CHO BO TANG TOC AI

TICH HOP TREN ULTRA96-V2 CHO SMART CAMERA

IMPROVEMENT POWER PERFORMANCE FOR AI ACCELERATION ON FPGA ULTRA96-V2 FOR SMART

CAMERA

KY SU NGANH KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TIEN SI NGUYEN MINH SON

TP HO CHi MINH, 2023

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng chấm 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 học Công nghệ Thông tin.

Trang 4

LOI CAM ON

Lời đầu tiên chúng em xin gửi lời cảm ơn đến các quý thầy,cô và các giảngviên đã và đang giảng dạy tại trường Dai hoc Công nghệ Thông tin - Dai học Quốcgia Thành phố Hồ Chi Minh đã góp công xây dựng trường của chúng ta ngày hôm

nay Trong quá trình học tập và rèn luyện tại trường, chúng em nhận được sự chỉ

bảo tận tình, nhận được những kiến thức, kinh nghiệm quý báu của các thầy, cô Từ

đó đã giúp chúng em có được kiến thức chuyên môn sâu rộng như ngày hôm nay

Đặc biệt, chúng em xin chân thành cảm ơn thầy Tiến sĩ Nguyễn Minh Sơn đãhướng dẫn nhóm rat tận tình trong suốt quá trình thực hiện đề tài, hỗ trợ và cungcấp cho chúng em nhiều kiến thức chuyên môn cần thiết trong suốt quá trình thực

hiện đề tài Bên canh đó, thầy luôn ủng hộ, động viên và đưa ra những hướng giải

pháp cần thiết mỗi khi chúng em gặp khó khăn Đồng thời, chúng em xin chânthành cảm ơn những chỉ dẫn của thầy phản biện Tiến sĩ Đỗ Trí Nhựt đã hướng dẫnchúng em hoàn thiện báo cáo cũng như góp ý đề đề tài hoàn thiện hơn

Sau cùng, chúng em muốn gửi lời cảm ơn đến gia đình và bạn bè, anh chị đã

luôn bên cạnh, động viên tinh thần, là hậu phương vững chắc, là chỗ dựa tinh thầngiúp chúng em có thê hoàn thành khóa luận

Tuy đã có gắng thực hiện đề tài nhưng với điều kiện thời gian cũng như kinhnghiệm còn hạn chế của bản thân nên trong báo cáo này chúng em không thể tránhkhỏi những thiếu sót Chúng em rất mong nhận được sự đóng góp ý kiến của quý

thầy cô dé chúng em được bồ sung, nâng cao kiến thức của minh hơn

Một lần nữa, chúng em xin chân thành cảm ơn!

Thành phố Hồ Chí Minh, ngày 13 tháng 02 năm 2023

Sinh viên thực hiện

Trần Doãn Minh Nguyễn Tuấn Khoa

Trang 5

MỤC LỤC

Chương 1 GIỚI THIỆU DE TÀI 2- 22 2+<+EE+EE£+E£+EE+EEzE++Eerrxerxee 2

1.1 Lý do chọn đề tài -:- 5c Se2S22E E1 1E11211211211 2111111111111 cy0 21.2 Các nghiên cứu về smart €aimea - 2-2 5¿©2+2+++2x++£x+2Exvtxterxeerxesrxee 3

1.2.1 Nghiên cứu ngoài HƯỚC - c2 s11 SH vn HH HH re 3

1.2.2 Nghiên cứu trong TƯỚC - «+ + E191 vn nHhnnhnHhng nnnưệt 3

1.3 Mục tiêu đề tài cccccc tt HH tre 5

14 Giới hạn đề tài @z⁄⁄sốc À 61.5 Kết quả mong muốn - 2-2 2 £+E‡EEÉEE#EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEkrrkrreee 6

Chương2 CO SỞ LÝ THUYÊT 2-2 SE+SE+EE+EE£E£EEEeEEeEEerrrxrrrrei 9

2.1 Field Programmable Gate Array (FPGA) - - SH ng, 9

2.3.1 Dinh nghĩa hệ thống SOC - 2-2 ¿+ SE+EE+EE£EE2EE2EEEEeEEerkerkrrkrree 15

Trang 6

2.3.2 Câu trúc phần cứng của một SoC - : 2 +2c+++zx2x++zx++rxe+ 15

2.4, Smart CAITFA Q G0 HH HH ng 17

“h1 nu 40092 21

2.5.1 Batch normaliZafIOTA - - «x19 9191 191 91 HH nghệ 21 2.5.2 High resolution CÏaSSIÍI€T - c1 1119119119 19 vn rvrg 21

2.5.3 Kiến trúc Anchor BOX ccsscssssssessessesssessessecsvesssssessecsucsusssecsecsssussseesecaes 22

2.5.4 K-means cÏUS€TITIE, - -. «s11 nh ng Hết 22

2.5.5 Direction location predICfIOIN s56 + E**kE+EeEseeeeeeeeeeeere 22 2.5.6 Fine-grained Í€afUI€ - - ch vv HH ng gh ghrư 23 2.5.7 MultI-sCaÌe fraInINE c- 6 x3 HH HH rư 24 2.5.8 Light-weight backbone - - - + + +11 3+ 1E EESrsrerseereeeerrre 24

2.13.1.Phân chia miền clock (Multi clock domain) - - 5 5s+sezx+s+zxez 352.13.2 Hiệu chỉnh tần số clock (clock frequency scaling) -: 362.13.3 Tối ưu tài nguyên (€SOUTC€) 2 2 2+ SE‡EE+EE£EEEEE2EEEEEEEerkerkrrrrree 36

Trang 7

2.13.4 ClocK ØtInB sọ Tnhh 37

PK Wvo cá nh ố e43 - 37

Chương3 THIẾT KE HỆ THNG -2- 2-55 E+E£+E++E£EerEerEerxrrsrree 39

3.1 Ý tưởng đề xuất cho hệ thống, 2 2 + +x++E£+E£+EE£EEtzEzEerrxrrxerreee 393.2 Thiết kế tổng quát của hệ thống 2-2-2 ++££+E£+E££E££EerEerxerxrrxee 393.3 Hệ thống SoC tích hop IP YOLO_V2_FPGA trên Vivado 2019.2 40

3.4 Cải thiện công suất thực của hệ thống SoC Smart Camera - 413.5 Xây dựng luồng streaming cho Smart Camera -: 2s se: 46

3.5.1 Streaming phạm vi local đối với camera hình ảnh xử lý YOLOv2 473.5.2 Streaming phạm vi Internet đối với camera hình ảnh xử lý YOLOv2 473.6 Xây dựng chương trình thực thi bang công cu Vitis 2019.2 48Chương 4 HIỆN THUC, THUC NGHIỆM VÀ ĐÁNH GIA KET QUA 51

4.1 Zynq UltraScale+ MPSOC - Gv gkrg 51 4.2 FPGA Ultra96-V2 22- St SE2E2E1E211211211221712112111171211 1111110 52

4.3 Petalinux 2019.2 22 St 2E 2 E122122112112112112211211211011211 211cc 54

4.4 Kịch bản thực nghiệm và phương pháp đánh giá 55555 «++<ss+ 62

4.4.1 Kịch bản thực nghiỆm - 5 c1 2 91119111 119 11H ng nh tr 62

4.4.2 Phương pháp đánh giá - c2 3332113311 EEErrerrrrrkrre 62

4.5 Kết quả thực nghiệm ¿- ¿+5 E+EE+EE+E£EEEEEEEEEEEEEEEE2112112121 E1 xe 63

4.5.1 Kết quả nhận diện - 2 +¿©2+£++++EE++EEtEEEEEEESEEEEEEEEkerkrsrkrrrrees 63

4.5.2 Kết quả đo thực nghiệm công suất và nhiệt độ - 55+: 64

4.5.2.1 Trường hợp hệ thống không có quạt tản nhiệt (kiểm tra hoạt động

của hệ thống trong 30 phút Vì khi hoạt động board quá nóng) 65

Trang 8

4.5.2.2 Trường hợp hệ thong có quạt tan nhiệt (kiểm tra hoạt động của hệ

thong trong No 4 ÔÒỎ 694.6 Đánh giá hệ thống 2 2© £+EE+EE+EEEEE2E12E157121121121171711 211111 ce 73

4.6.1 Trường hợp không có quạt tản nhÄiỆt 5 55+ scssceseesessers 74

4.6.2 Trường hợp có quạt tản nhÄỆ( 5 5 2 1E ngư 75

4.7 Đóng gói sản phẩm ¿- - c©k+SE+EE+EE£EE2EEEEEEEEEEEEEE111211717121 711 xe 75Chương 5 KẾT LUẬN VA HUONG PHÁT TRIEN - 5 52 s2 71

5.1 Kết UA Mat 0i uy 775.2 Hướng phat triển của đề tai eee eeccecccescesesesessessessessessessessssesseeseesesseeseaees 71TÀI LIEU THAM KHAO ccccccssssscsessecscsesesscsesesusscsvsucscsessacsvscasaesesesacsvssataveeacees 78

Trang 9

DANH MỤC HÌNH

Hình 2.1: Kiến trúc cơ bản của FPGA - ccccc+tcccEttrrtrtrrrrrrrrrrrrrrrrrrree 10Hình 2.2: Mô hình cơ bản của một hệ thống nhúng 2- 2: 5¿©5225£22+>xz>sz 12Hình 2.3: Phần cứng của một hệ thống nhúng -. ¿- ¿+2 ©5+++++x+zs+>s+ 14Hình 2.4: Kiến trúc cơ bản của một hệ thống SoC -2- 2: 5c ©5222s+cx+zxz>sz 17Hình 2.5: Sơ đồ khối của một smart CaImeTa - 2: 5ct25+vt222xvvsvvxvvrsrrrvrrt 18

Hình 2.6: Smart camera Xiaomo AI CaIm€fa 5 5 1n ng ngư 20

Hình 2.7: Một số công kết nối trên smart caimera - 2 2 2+s2+££x+zx+£x+zszss2 20

Hình 2.8: Dự đoán bounding box của YOOV2 - 5c Si seereeeerereere 23

Hình 2.9: Kiến trúc YOILOV2 - + + ©++E£+EE£EEEEEEEEE2E1E7171121122171711 2112110 23

Hình 2.10: Kỹ thuật Reorg trong YOLOV2 cs HH ng ng trên 24 Hình 2.11: Darlnet- [ - G11 11v 1k 1 91 ng HH Hà HH Hư Hưng gà 25 Hình 2.12: WordTree trong YOÌLOV2 - ó5 E191 ng ng trờn 25

Hình 2.13: Kiến trúc cơ bản của streaming video - 2 2 2+sz+x+zx+zx+rxersxez 28

Hình 2.14: Quy tình xử lý video bằng FEmpeg - 2-2 2 2+se£xe£x+rxzrszxez 29Hình 2.15: Tổng quan về SSH Tunneling 2 2 s££+£2£++zE+zE£z£++zxerxezsz 32

Hình 3.1: Mô hình trực quan của hệ thống „Í iieie 39

Hình 3.2: Thiết kế tổng quát của hệ thống - 2-2 s2 £+££+E+E££EerEerxerxrrsree 40Hình 3.3: Sơ đồ khối SoC tích hợp IP YOLOv2 trên FPGA -. 2: 22 s2 41Hình 3.4: Sơ đồ khối hệ thống Smart Camera sau khi thêm module Clock_Divider

¬— 42 Hình 3.5: Timing report khi sử dụng Clock_divider «- -«<<<<<sx+se+sxs 42

Hình 3.6: Sơ đồ khối hệ thống Smart Camera sau khi thêm module mux_2_1 43

Hình 3.7: Timing report khi sử dụng mux_2_1 55555 s*++£+svesseeeseeers 43

Hình 3.8: Năng lượng tiêu thụ của nhóm tác gia [1] -«-+-«<++<++see++es++ 45 Hình 3.9: Năng lượng tiêu thụ của nhómm - - - 2+ xxx k +9 kg re, 46 Hình 3.10: Streaming thông qua giao thức SFTP ở phạm vi local - 47 Hình 3.11: Streaming hình ảnh xử lý YOLOv2 phạm vi Internet - 48 Hình 3.12: Chương trình xử lý YOLOv2 trên FPGA - 5 «2< <+s+sssxs 49

Trang 10

Hình 3.13: File smart_camera.elf trong thư mục sd_ card - - «-s«+s<+s++ 50

Hình 4.1: Các khối chức năng trong Zynq UltraScale+MPSoC 51Hình 4.2: Các thành phan chính trên board Ultra96-V2 c.csccsscsssessecstecseessesssessseens 53

Hình 4.3: Sơ đồ khối của board Ultra96-V2 ccccc+ccxtrrrrrrrtrrrrrrrrrrrrrrrieg 54

Hình 4.4: Config hardware d€SCTIDfIOTN - -G c 1 E1 99111 1 ng re 55

Hình 4.5: Image packaging COnÍiØUTAfIOT - <5 < 33+ E33 E+*EESeeeEeeeeeeerereere 56 Hình 4.6: Boot image S€ffIng - càng TH HH TH Hàng ngư 56 Hình 4.7: USB Gadget SupPpOT 6 5 3v THnHnHn HH n HH 57 Hình 4.8: Enable Debug Tweaks sọ HH HH HH 58

Hình 4.9: Wilc module bitbake - - - s56 01190191 HH nh 59 Hình 4.10: Khai báo reserved Memory - - c 1 119v 1H ng ng re 60

Hình 4.11: Kết quả nhận diện của Smart Camera Ultra96-V2 -‹++-s«++<s+ 63Hình 4.12: Lỗi khi hệ thống hoạt động ở tần số 200 MHz trở đi - - 64Hình 4.13: Đồ thị thê hiện nhiệt độ và công suất của hệ thông Smart Camera khi

Hình 4.17: Đồ thị thé hiện nhiệt độ va công suất của hệ thống Smart Camera khi

hoạt động ở 300 MHz (có quạt tản nhiét) - c5 5 2321 *+ +seseeeesereeesrs 69

Hình 4.18: Đồ thị thé hiện nhiệt độ và công suất của hệ thong Smart Camera khi

hoạt động ở 150 MHz (có quạt tản nhiét) - c5 5 2321 *+* sserseereeereeesrs 70

Hình 4.19: Đồ thị thé hiện nhiệt độ và công suất của hệ thong Smart Camera khi

hoạt động ở 150 MHz và 75 MHz (có quạt tản nhi€t) - 5555 <5+ss++++ 71

Hình 4.20: Đồ thi thé hiện nhiệt độ và công suất của hệ thống Smart Camera khi

hoạt động ở 100 MHz và 50 MHz (có quạt tản nhiỆt) 5555 +<<<+<<ss2 72

Trang 11

Hình 4.21: Board Ultra96-v2 đã được kết nối với Access Point :- -s 73

Hình 4.22: Quá trình xử lí qua các IGP COIIV -. 5 51kg trên 73

Hình 4.23: Đóng gói sản phẩm - ¿2-22 +£+EE2EE£EEE2EEE2EE2EEE2EE2EECErrrrrrcree 75Hình 4.24: Đóng gói sản phẩm - 2-22 +£+Ex2EE+2EESEEE2EE2EEEEEESEErrrrrrrrrree 76

Trang 12

Bảng 4.2: Các thư viện cai đặt trên PefalinuxX s5 5-5 + +sseeeeeerereere 60

Bảng 4.3: Kết quả đánh giá thực nghiệm trong trường hợp hệ thống Smart Camera

khong c6 i88: 01 74

Bảng 4.4: Kết quả đánh giá thực nghiệm trong trường hợp hệ thống Smart Camera

có quạt tan NNICt - - c +21 1011193089930 19101 91011 10K ng rưy 75

Trang 13

DANH MỤC TỪ VIET TAT

Từ viết tắt Tên đầy đủ

AHB Advanced High performance Bus

Al Artificial Intelligence

ALU Arithmetic Logic Unit

APB Advanced Peripheral Bus

APU Application Processing Unit

ARM Advance RISC Machines

ASIC Application Specific Integrated Circuit

AXI Advanced eXtensible Interface

CCI Cache Coherent Interconnect

CNN Convolutional Neural Network

Core SW Core SoftWare

CPU Central Processing Unit

DDR4 Double Data Rate fourth generation

DMA Direct Memory Access

DRAM Dynamic Random Access Memory

DSP Digital Signal Processor

Trang 14

FPGA Field-Programmable Gate Array

FPS Frame Per Second

GPU Graphics Processing Unit

HDL Hardware Description Language

HLS High Level Synthesis

HOG Histogram of Oriented Gradients

LPDDR4 Low Power Double Data Rate fourth generation

LUT Look Up Table

OpenCV Open source Computer Vision library

PL Programmable Logic

PS Processing System

RAM Random Access Memory

Trang 15

RISC-V Reduce Instruction Set Computer version 5

ROM Read Only Memory

RTL Register Transfer Level

SDIO Secure Digital Input Out

SoC System on Chip

UDP User Datagram Protocol

UART Universal Asynchronous Receiver Transmitter

YOLO You Only Look Once

Trang 16

TOM TAT KHÓA LUẬN

Ngày nay, với sự phát triển mạnh của công nghệ, đặc biệt là trong lĩnh vực vimạch Chúng ta có thé tích hợp được nhiều giải thuật, nhiều hệ thống phức tạp vàotrong một thiết bị điện tử Smart camera cũng đang là một xu hướng được sủ dụngrộng rãi trong nhiều lĩnh vực và được định nghĩa là một hệ thống được tích hợpnhiều chức năng: truyền tải hình ảnh qua kết nối không dâ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ều nền tảng như: FPGA,

Embedded system, System on Chip Mỗi công nghệ đều có ưu nhược điểm đặctrưng của chúng Vì vậy Smart camera đã và đang được nhiều nhóm tác giả, trườnghọc, các công ty lớn cả trong và ngoài nước đang tập trung nghiên cứu, phát triển

Các yêu tố quan trọng dé đánh giá một thiết kế Smart camera đó là độ chính xác, tốc

độ thu nhận và truyền dữ liệu, năng lượng tiêu thụ, độ 6n đỉnh và giá thành sảnphẩm

Trong dé tài này, nhóm đặc biệt quan tâm đến các yếu tố ảnh hưởng đến

năng lượng hoạt động của một hệ thống Smart camera Nhóm muốn sử dụng nền

tang System on Chip dé xây dựng một hệ thống Smart camera streaming hình ảnh

qua kết nối không dây với độ trễ thấp, năng lượng tiêu thụ vừa phải 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án YOLOv2 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ên mà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ụ phan mềmVivado phiên bản 2019.2 của Xilinx (bao gồm: Vivado HLS, Vivado Design Suite,

Petalinux, Vitis), sử dung board Ultra96-V2 trên nền tảng Zynq UltraScale+MPSoC của nha phát hành Avnet Tần số hoạt động mong muốn của hệ thống đạt

300MHz đối với frame ảnh có chứa nhiều vật thể, 150MHz đối với frame ảnh

không chứa vật thé Ngoài ra còn có thé đáp ứng được tỉ lệ khung hình full HD ở độ

trễ thấp nhất

Trang 17

Chương 1 GIỚI THIỆU DE TÀI

1.1 Lý do chọn đề tài

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à domáy ảnh thô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ìnhthường (hoặc tiêu chuẩn) bang cách thực hiện không chỉ chụp ảnh mà còn phân tíchhình ảnh và nhận dạng sự kiện, tất cả trong một hệ thong nho gon Su phổ biến ngàycàng tăng của camera thông minh được xây dựng dựa trên tiễn bộ đạt được trongcông nghệ quy trình bán dẫn, kỹ thuật thị giác máy tính nhúng và các yếu tổ kinh tế

- xã hội như an toàn và bảo mật, tăng năng suất và tiết kiệm chi phí Ngày nay, cácsản phẩm camera thông minh được sử dụng trong nhiều ứng dụng trong thế giới

thực, đặc biệt là trong giám sát video, thị giác máy công nghiệp, robot, trò chơi,

Việc áp dụng các thuật toán thông minh, trí tuệ nhân tạo trong xử lý ảnh vào

các hệ thống Smart camera có khả năng thu được hình ảnh với độ phân giải cao, sau

đó truyền đi thông qua một đường truyền ở khoảng cách xa mà ở thiết bị cuối nhận

được hình ảnh với độ trễ không quá cao và năng lương tiêu thụ cũng không quá

nhiều là một yếu tố khá khó khăn và thu hút nhiều sự quan tâm đặc biệt từ các tổchức thiết kế, nghiên cứu Do đó trong đề tài này, nhóm muốn nghiên cứu và cảitiễn các van đề ảnh hưởng đến năng lượng tiêu thụ của một hệ thống smart camerabao gồm tốc độ thuật toán xử lý cho smart camera để có thể truyền hình ảnhstreaming (bao gồm hai chế độ: hình ảnh không có vật thé sẽ hoạt động ở 150MHz,

hình ảnh có chứa vật thé sẽ hoạt động ở 300MHz) thông qua Wifi Access Point, vớimột độ trễ thấp và có khả năng đáp ứng khung hình Full HD

Trang 18

1.2 Các nghiên cứu về smart camera

1.2.1 Nghiên cứu ngoài nước

Hiện nay, Smart Camera luôn được các trường đại học, công ty, tập đoàn lớn

ưu tiên nghiên cứu và phát triển Vì thế, nhóm có thê dễ đàng tìm được các bài báo

khoa học về vân đê này trên internet Một sô bài báo khoa học gân đây như:

s* Bài báo [7] “Object Tracking on FPGA-based Smart Camera using Local

Oriented Energy and Phase Feature” của nhóm tác giả Ehsan Norouznezhad,

Abbas Bigdeli, Adam Postula, Brian C Lovell vào năm 2010 sử dụng

module camera Micron MT9P001 trên FPGA Xilinx Virtex-5 ML506 áp

dụng thuật toán Histogram đã thu được ảnh với tốc độ 30 FPS và độ phângiải 640 x 480 Ưu điểm của hệ thống này là nó có thể phân loại được nhiềuđối tượng khi thực hiện hoạt động theo dõi, giám sát bao gồm màu sắc, hìnhdạng, kết cấu và chuyền động Nhược điểm là cần nhiều thời gian tính toán

để có thé xác định được đối tượng đang cần theo dõi

“+ Bai báo [6] “DreamCam: A modular FPGA-based smart camera ,

architecture” của nhóm tác gia Merwan Birem, Francois Berry vào nam 2014

sử dung module camera MT9M031, EV76C560 trên FPGA Altera Cyclone

III đã thu được ảnh với tốc độ 42 FPS va độ phân giải 800 x 1024 Ưu điểmcủa hệ thống này là khả năng tùy biến kích thước của hình ảnh đầu vào, điều

chỉnh được số điểm ảnh cần thiết và nó sẽ tự biên dịch và tổng hợp thành

một hệ thống mới Nhược điểm là mat nhiều bước và nhiều thời gian để có

thể xây dựng hệ thống, thiếu các tính năng theo dõI, nhận diện

1.2.2 Nghiên cứu trong nước

Luận văn tốt nghiệp [5] “The Research And Implementation Of CNN

Algorithm On Zedboard Zyng-7000” của nhóm sinh viên Phan Tuấn Thành, Vũ

Hoàng Hy năm 2020 sử dụng thuật toán YOLOv2 trên FPGA Zedboard Zynq-7000.

Ưu điểm của thuật toán này là độ chính xác cao, có thể nhận diện được nhiều vậtthể khác nhau và tốc độ xử lý khá nhanh so với một số thuật toán xử lý ảnh khác

Trang 19

Nhược điểm của dé tài này là chưa thé xử lý hình ảnh thu được trực tiếp từ camera

mà chỉ sử dụng hình ảnh được lưu sẵn trong thẻ SD.

Luận văn tốt nghiệp [4] “Thiết kế và hiện thực IP camera trên Zynq-7000”

của sinh viên Chung Vĩnh Kiện năm 2019 sử dụng camera Raspberry Pi trên FPGA

Zynq-7000 để thu thập hình ảnh và truyền hình ảnh đến người xem qua kết nối

Ethernet Ưu điểm của hệ thống là camera hỗ trợ độ phân giải cao 1280 x 720 vớitốc độ khung hình khi streaming én định ở mức 5.5-6 FPS Nhược điểm là dé tàinày chưa thé tích hợp thuật toán xử lý AI vào dé nhận dạng được người có trong

khung ảnh.

Luận văn tốt nghiệp [3] “Real-time face detection and tracking on FPGA

DE10-Nano” của nhóm sinh viên Phan Truong Khang, La Ngoc Le năm 2020 sử dung module camera OV7670 trên FPGA DE10-Nano với thuật toán Viola-Jones.

Ưu điểm của thuật toán này là khả năng tính toán dé dang, tốc độ xử lý khá nhanh(vì dir liệu xử lý là 1 kênh màu grayscale) Nhược điềm là độ chính xác chưa cao(40-80%) Độ phân giải giảm xuống chỉ còn 320 x 420 pixel Dữ liệu màu có thêgây mat mát (vì nhóm tác giả sử dụng anh màu chuyên sang ảnh xám grayscale, sau

đó chạỹ thuật toán nhận dạng trên dữ liệu ảnh xám, rồi mới lay két qua nhan dang

từ ảnh xám chuyên lại anh màu gây ra sai sót dữ liệu).

Luận văn tốt nghiệp [2] “Thiết kế và tích hợp smart camera trên SoC Ultra96-V2”

của nhóm sinh viên Bùi Nguyễn Phát, Lê Minh Huy năm 2021 sử dụng smart

camera trên SoC Ultra96-V2 áp dụng thuật toán YOLOv2 Ưu điểm của đề tài này

đã tích hợp được thuật toán YOLOv2 dé xử lý hình ảnh lây từ smart camera Hệ

thống đã nhận diện được vật thể với độ chính xác cao (64 - 96%) ở độ phân giải

1280x960, với độ trễ trung bình khi streaming P2P là 19.26 giây.

Luận văn tốt nghiệp [1] “Bộ tăng tốc AI tích hợp trên Ultra96-V2 cho Smart

camera” của nhóm sinh viên Nguyễn Tiến Bảo, Nguyễn Phan Hoàng Đức năm 2022

sử dụng smart camera trên SoC Ultra96-V2 áp dụng thuật toán YOLOv2 và tăng tốc

độ lên tới 300MHz Ưu điểm của dé tài này đã tích hợp được thuật toán YOLOv2

Trang 20

để xử lý hình ảnh lay tir smart camera với tốc độ nhận dạng nhanh (1.41s — 1.5).

Hệ thống đã nhận diện được vật thể với độ chính xác cao ở độ phân giải 1920x1080,

với độ trễ trung bình khi streaming là khoảng 25 giây Tuy nhiên nhóm tác giả chỉ

quan tâm đến tăng tốc độ của khối YOLOv2 mà không quan tâm đến tài nguyên

tiêu thụ của hệ thống Dẫn đến hệ thống bị treo khi hoạt động trong 30 phút Vì thế

nhóm muốn kề thừa bộ YOLOv2 của nhóm tác giả này dé cải tiễn và tối ưu năng

lượng của hệ thống

1.3 Mục tiêu đề tài

Ở luận văn này, nhóm tập trung vào việc tìm hiểu các phương pháp giúp tối

ưu năng lượng tiêu thụ của khối YOLOv2 tích hợp trên smart camera, nhóm cũng

kế thừa nghiên cứu các công nghệ giúp nâng cao khả năng streaming video củasmart camera trên SoC Ultra96-V2 thông qua đường truyền internet theo thời gianthực giữa hai hay nhiều thiết bị nhận của luận văn [1] Đề đáp ứng được các yêu cầu

như trên, nhóm dé ra những mục tiêu cụ thê sau:

s* Nhóm sẽ kế thừa lại bộ CNN YOLOv2 từ luận văn [1] “Thiết kế tích hợp

trên Ultra96-v2 cho Smart Camera” của nhóm tác giả Nguyễn Tiến Bảo và

Nguyễn Phan Hoàng Đức dé nghiên cứu, phục vu cho việc cải tiễn tốc độ của

hệ thống smart camera

> +* Tiếp theo 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ụ Xilinx Vivado (bao gồm Vivado HLS, Vitis, Vivado DesignSuite) dé dùng cho việc tổng hop IP YOLOv2 và cài đặt bộ CNN YOLOv2vào hệ thống SoC trên board Ultra96-V2 kết nối với USB Camera và module

W¡-EI.

>

>» 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 bang công cụ Petalinux của Xilinx phát hành dé điều khiển hoạt

động của cả hệ thống

Trang 21

> >* Tiếp theo nhóm nghiên cứu các yếu tố phan cứng anh hưởng đến năng lượng

tiêu thu của hệ thống dé tìm ra phương pháp cải thiện năng lượng tiêu thụ

của hệ thống

D> >» Tiép theo nhóm tim hiểu các công nghệ hỗ trợ như FFmpeg, OpenCV va một

sỐ giao thức truyền dữ liệu như UDP, RTP, SFTP để thực hiện truyền hìnhảnh streaming thông qua mạng internet đạt được độ trễ thấp nhất

~ 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ều hành Linux trên board Ultra96-V2 dé điều khiến hoạt động hệ thống.

là truyền từng frame hình ảnh chứ chưa thê truyền luồng dữ liệu bit, điều này sẽ gây

thêm 1 khoảng độ trễ cho việc lưu frame ảnh thành file JPEG Việc tối ưu nănglượng tiêu thụ sẽ đánh đôi một ít về độ trễ khi streaming hình ảnh lên server Ngoài

ra, việc tích hợp xử lý camera hình ảnh YOLOv2 với tốc độ hoạt động toàn bộ hệ

thống có thể thấp hơn các hệ thống smart camera sử dụng các thuật toán AI khác

1.5 Kết quả mong muốn

Ở đề tài này nhóm sẽ tập trung vào việc tối ưu năng lượng tiêu thụ của hệthống smart camera khi thực hiện streaming hình ảnh trong trường hợp có xử lý AI

thông qua mạng internet sau đó gửi đữ liệu hình ảnh lên một cloud server có sẵn.

Người dùng có thể xem trực tiếp kết quả bằng cách nhập địa chỉ ip của server trên

trình duyệt web, hoặc dùng công cụ hỗ trợ xem video như VLC Media Player dé layluồng video streaming về xem Đối với camera hình ảnh xử lý YOLOv2, nhóm

mong muốn hệ thống smart camera có thể hoạt động ở 2 chế độ xung clock là150MHz và 300MHz, giảm công suất tiêu thụ của hệ thống (công suất động), độ trễ

Trang 22

khi streaming video ở độ phân giải full HD 1920 x 1080 trên thiết bị đầu cuối nhỏhơn 30 giây và tốc độ hiên thị khung hình trên 0.25fps.

1.6 Bo cục luận văn

Báo cáo này được chia làm năm chương, mỗi chương có nội dung được trình

bày như sau:

Chương 1: Tổng quan đề tài

Chương đâu sẽ giới thiệu tông quan về đê tài khóa luận, lý do nhóm chọn đê

tài này, mục tiêu đề ra của nhóm, những giới hạn của đê tài và kêt quả thực hiện mà nhóm đạt được.

Chương 2: Cơ sở lý thuyết

Chương này trình bày những cơ sở lý thuyết được sử dụng có liên quan đếnnội dung nghiên cứu của dé tài, những thông tin này dựa vào các nguồn tài liệunhóm tìm kiếm được trên Internet, tham khảo các tài liệu có sẵn trên website củakhoa KTMT cũng như các kiến thức được các thay, cô truyền đạt trong quá trìnhhọc tập tại trường Các kiến thức nền tảng cơ bản về FPGA, SoC, Smart camera,các kĩ thuật streaming video cũng như các kiến thức về tối ưu năng lượng tiêu thụcủa một hệ thống Từ đó nhóm chúng em có thê rút ra được các giải pháp phù hợpvới mục tiêu ban đầu đặt ra của đề tài

Chương 3: Thiết kế hệ thống

Ở chương này nhóm sẽ dựa vào các kiến thức cơ sở lý thuyết ở chương 2 déđưa ra một mô hình hệ thống chỉ tiết của khóa luận Đồng thời sẽ giải thích nguyên

lí hoạt động của hệ thống có những cải tiến gì so với luận văn kế thừa trước đó [1]

Chương 4: Hiện thực, thực nghiệm và đánh giá kết quả

Sau khi đã xây dựng được hệ thống, nhóm tiễn hành các bước chạy thử, thực nghiệm thu được các kết quả sau đó thực hiện việc đánh giá, so sánh với mục tiêu

ban đầu của đề tài cũng như so sánh với kết quả thực nghiệm của đề tài trước đó [1]

Trang 23

Chương 5: Kết luận và hướng phát triển

Chương cuối sẽ tổng kết lại khóa luận, tóm tắt toàn bộ những công việc mànhóm đã hoàn thành, những kết quả và thành tích đạt được Đồng thời chương nàynhóm sẽ đưa ra đề xuất cho những hướng phát triển tiếp theo của đề tài trong tương

lai.

Trang 24

Chương2 CƠ SỞ LÝ THUYET

2.1 Field Programmable Gate Array (FPGA)

2.1.1 Dinh nghĩa

FPGA là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phan tử logic ma

người dùng có thé lập trình được Chữ field ở đây muốn nói đến khả năng tái lập

trình "bên ngoài" của người sử dụng, không phụ thuộc vào dây chuyền sản xuấtphúc tạp của nhà máy bán dẫn Vi mạch FPGA được cấu thành từ các bộ phận:

e Các khối logic cơ bản lập trình được (logic block)

e Hệ thống mạch liên kết lập trình được

e Khối vào ra (I/O Pads)

e Phan tử thiết kế san khác như DSP slice, RAM, ROM, nhân vi xử lý

FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dung ASIC,

nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kếtrên thư viện logic thì FPGA không đạt được mức độ tối ưu như những loại này vàcòn hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp Tuy vậyFPGA ưu việt hơn ở chỗ có thé tái cau trúc lại khi đang sử dụng, công đoạn thiết kếđơn giản do vậy chỉ phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng

Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dung cấu trúcmảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ

lập trình của FPGA đơn giản hơn; khả năng lập trình linh động hơn; và khác biệt

quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượnglớn công logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước đó

Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ

mô tả phần cứng HDL như VHDL, Verilog, AHDL Các hang sản xuất FPGA lớnnhư Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá

trình thiết kế Ngoài ra cũng có một số hãng thứ ba cung cấp các gói phần mềm kiểu

này như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cả

Trang 25

các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên

HDL (còn gọi là mã RTL).

2.1.2 Kiến trúc tổng quát

Kiến trúc cơ bản của FPGA gồm 3 thành phan chính sau: Khối I/O (hay gọi

là các pin FPGA), khối kết nối (Interconnection), các khối logic cau hình (LogicBlocks hoặc Configurable Logic Blocks - CLB) Các khối CLB được tổ chức sắpxếp theo mảng với 2 hướng dọc và ngang như Hình 2.1

Hình 2.1: Kiến trúc cơ bản của FPGA

Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phan tửnhớ cơ bản được sử dụng trong hệ thống số CLBs là phần tử cơ bản cấu thành

FPGA, là nguồn tài nguyên logic chính tạo nên các mach logic đồng bộ lẫn khôngđồng bộ Một CLB cơ bản gồm một mạch tổ hợp có thể lập trình (còn gọi là LUT),một Flip-Flop hoặc một chốt (latch) LUT (Look Up Table) là khối logic có thé thực

hiện bat kì hàm logic nào từ 4 đầu vào (số đầu vào này sẽ tùy thuộc vào từng dong

chip của moi hãng) Kêt qua của hàm này tùy vào mục đích mà gửi ra ngoài khôi

10

Trang 26

logic trực tiếp hay thông qua phần tử nhớ flip-flop Ngoài khối logic cơ bản đó,

nhiều chip FPGA hiện nay còn có một hỗn hợp các khối khác nhau, một số trong đó

chỉ được dùng cho các chức năng cụ thể, chắng hạn như các khối bộ nhớ chuyên

dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers) Tat nhiên,cấu hình bộ nhớ được sử dụng trên tất cả các khối logic được dùng dé điều khiển

các chức năng cụ thé của mỗi phân tử bên trong khối đó.

Khối kết nối (Interconnections): dùng dé liên kết các khối logic và I/O lại vớinhau dé tạo thành một thiết kế hoàn chỉnh Mạng liên kết trong FPGA được cau

thành từ các đường kết nối theo hai phương ngang va đứng Tùy theo từng loại

FPGA mà các đường kết nối được chia thành các nhóm khác nhau Các đường kếtnối được nối với nhau thông qua các khối chuyển mạch lập trình được(programmable switch) Trong mỗi khối chuyển mạch chứa một số lượng nútchuyển lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau

Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đếncá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ợ Số lượng Pin (I/O) của FPGA tương đối lớn, thường được chia ra

làm 2 loại: User Pin (chân người dùng), Dedicated Pin (chân chuyên dụng) User

Pin: người dùng có thé lập trình như đầu vào, đầu ra hoặc cả đầu vào — ra Mỗi pin

được kết nối với một “I/O Cell” bên trong FPGA, được cấp bởi các chân Vcc I/O(I/O power pin) Dedicated Pin: được mã hóa cứng với một chức năng cụ thê như:

e Power Pin

© Configuration Pin: các pin dé câu hình FPGA

e Dedicated Input hay Clock Pin: điều khiển mạng lưới clock trong FPGA

e Voltage IO: cấp nguồn cho các công logic va flip-flops bên trong FPGA

Theo thời gian, các kiến tric FPGA co ban đã được phát triển nhiều hơn

thông qua việc bố sung các khối chức năng đặc biệt có thé lập trình như bộ nhớBlock RAMs, logic sỐ học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý

11

Trang 27

nhúng được thê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ều FPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước

giải đáp được các bài toán chuyên dụng trong công nghiệp, tự động hóa, truyền

tin,

Hệ thống nhúng có hoạt động ôn định và tính tự động hóa cao, thường được

thiết kế với chức năng riêng biệt Một hệ thong chỉ được thực hiện một hoặc một vàichức năng có định mà các thiết bị yêu cầu, không thê hoạt động đa năng Chúng cóthé tối ưu hóa về kích thước và chi phí sản xuất Vì thé, các hệ thống nhúng thườngđược tích hợp trong rất nhiều thiết bị từ đơn giản đến phức tạp Hình 2.2 mô tả môhình co bản của một hệ thong nhúng

User Interface

Embedded Computer

Input Variables Software >| Output Variables

Hardware

Link to Other Systems

Hình 2.2: Mô hình cơ ban của một hệ thống nhúng

12

Trang 28

2.2.3 Phần cứng của một hệ thống nhúng

Hệ thống nhúng sử dụng nền tang phần cứng dé thực thi các hoạt động Phan

cứng của hệ thống nhúng được lắp ráp cùng với bộ vi xử ly/vi điều khiển Hệ thốngphần cứng nay bao gồm các yếu tố như giao điện cho các dữ liệu đầu vào/đầu ra, bộnhớ, giao diện người dùng và bộ hiển thị dữ liệu Về cơ bản, một hệ thống nhúng

e Đầu ra/ bảng mach đầu ra

© Cổng giao tiếp nối tiếp

e SASC (System application specific circuits — Các mach ứng dụng cho

một hệ thống cu thé nao đó)

13

Trang 29

Input devices Interfacing] Driver Circuits

_—————— _

Hình 2.3: Phan cứng của một hệ thống nhúng2.2.4 Đặc điểm của một hệ thống nhúng

Hệ thống nhúng được thiết kế để thực hiện một chức năng chuyên biệt nào

đó Đây là điểm khác biệt so với các hệ thống máy tính khác như máy tính cá nhânhoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau với những phéptính phức tạp Tính chuyên dụng của hệ thống nhúng giúp nâng cao khả năng sử

dụng và tiết kiệm tài nguyên cho hệ thống

Tất cả các hệ thống máy tính đều có những hạn chế về các số liệu thiết kế, tàinguyên Số liệu thiết kế là thước đo dé đánh giá việc xây dựng các tinh năng như độ

lớn, công suất, chi phí và cả hiệu năng hoạt động của hệ thống Hệ thống phải hoạtđộng nhanh ở một mức độ chấp nhận được nào đó, đồng thời vẫn phải đảm bảo tiêuthu ít năng lượng hơn dé tăng tuôi thọ của pin Một số hệ thống nhúng phải tươngtác liên tục với những thay đổi trong hệ thống và tính toán các kết quả cụ thé trong

thời gian thực với độ trễ cực thấp hoặc hầu như không có

14

Trang 30

Hệ thống nhúng phải được nhúng vào một vi điều khiển hoặc bộ vi xử lý Hệthống nhúng luôn yêu cầu một bộ nhớ nên phần mềm nhúng thường được đưa trực

tiếp vào ROM Hệ thống nhúng không bắt buộc sử dụng bộ nhớ thứ cấp trên máy

tính Hệ thong nhúng phải được kết nối với các thiết bị ngoại vi dé kết hợp các thiết

bị đầu vào và đầu ra Hệ thống nhúng thường được tích hợp sẵn với phan cứng déđảm bảo tính bảo mật và hiệu suất để phần mềm nhúng trên hệ thống đó đáp ứng

được nhu cầu sử dụng với độ linh hoạt cao hơn

2.3 Hệ thống SoC (System on Chip)

2.3.1 Định nghĩa hệ thống SoC

System on Chip là hệ thống mạch tích hợp bao gồm tat cả các thành phan canthiết được tích hợp trên 1 chip duy nhất Thiết kế của một hệ thống SoC thường baogồm bộ xử lý trung tâm, memory, các port cho input và output, thiết bị lưu trữ thứcấp và các ngoại vi như I2C, SPI, UART, CAN, Timers, v.v Các thiết kế SoCthường tiêu tốn ít năng lượng và có giá thành thấp hơn các hệ thống đa chip nếu sosánh cùng một thiết kế Ngoài ra, hệ thống don chip cũng có tính ổn định cao hơn.Các ứng dụng xây dựng trên cơ sở sử dụng các hệ thống đơn chip cũng cho giáthành thấp hơn, không gian chiếm chỗ ít hơn Một SoC ngày nay thường có khảnăng xử lý chạy rất nhiều ứng dụng xử lý âm thanh, hình ảnh, giải mã tín hiệu,

2.3.2 Cấu trúc phần cứng của một SoC

Mỗi chip SoC có mật độ tích hợp chức năng khác nhau nhưng hầu hết cácSoC đều có các thành phần cơ bản sau đây:

“+ CPU (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 vu 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ữacá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ều lõi CPU Một số lõi CPU:

e Lõi CPU ARM dùng tập lệnh ARM và là sản phẩm của hãng ARM.

15

Trang 31

e RISC-V là các lõi CPU phát triển trên tập lệnh mở và miễn phí RISC-V.

e SH (SuperH) dùng tập lệnh RISC được triển bởi Hitachi và nay là sản

phâm của Renesas.

“ Bus hệ thống (System BUS): Bus hệ thống là có nhiệm vụ kết nối thông suốt

*

>

>

>

các thành phan chức năng khác nhau trong vi xử ly Bus hệ thống giống như

những con đường dé vận chuyền dữ liệu giữa các thành phan trong SoC Một

số cau trúc bus hệ thống:

e AMBA (AXI, AHB, APB) là chuan bus phát triển bởi ARM

e CoreConnect là chuan bus phát triển bởi IBM

e Avalon là chuẩn bus phát triển bởi Altera, hiện nay đã thuộc Intel

e STBus là chuẩn bus phát triển bởi STMicroelectronic

e Wishbone là chuẩn bus phát triển bởi Silicore Corporation, hiện nay đã

được công bố miễn phí trên OpenCores

Bộ nhớ (Memory): Bộ nhớ trong một SoC 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ển của SoC Bộ nhớ nội này có thé là:

e ROM: lưu cấu hình hoặc chương trình ban đầu của SoC

e RAM: được sử dụng dé lưu thông tin hoặc giá trị tính toán trong suốt quá

trình hoạt động của SoC

Thành phan đ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ư:

e©_ 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

se Khối tạo Reset (reset generator): Cung cap reset cho toàn bộ các khối

chức năng trong SoC, kề cả CPU

e Khối quản lý năng lượng (power management): Điều khiến cấp nguồn

(bật/tắt) cho các khối chức năng trong SoC

16

Trang 32

e 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

s* Ngoại vi (Peripheral): là các khối có thê lái trực tiếp các chân (pin hoặc port)

của SoC đề thực thi một chức năng điều khiến bên ngoài SoC, ví dụ như:

e UART: truyền nhận dữ liệu nối tiếp bat đồng bộ

e SegLCD: Điều khién hiển thị trên segment LCD

e_ Video: Điều khiển camera

e Audio: Thu phát âm thanh.

e ADC: bộ chuyên đổi tín hiệu tương tự thành tín hiệu sé

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ễ

17

Trang 33

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.5.

On-board Memory

Power |

Lighting USB Controller

Encoder Input Digital I/O Display Out

Hình 2.5: So đô khôi của một smart camera

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ônmặ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ý ảnh hoặc máy học được thực hiện trực tiếp trên smart camera nên hình ảnhkhông cần phải truyền sang máy tính hoặc các thiết bị khác Thay vào đó, kết quả

18

Trang 34

của quá trình xử lý ảnh có thê được chuyên trực tiêp đên người điêu khiên hoặc các

thiết bị khác trong hệ thống

Một smart camera giống như một người đưa ra quyết định Nó thường có các

đặc diém cơ bản sau:

*

se Hiệu suất bộ xử lý: Một số loại smart camera có hiệu suất xử lý ngang bằng

với khả năng xử lý của một hệ thống dựa trên máy tính cá nhân Smart

camera bao gồm các bộ xử lý có sẵn như DSP, PowerPC, Atom Ngoài racòn có các tùy chọn kết hợp như CPU và bộ đồng xử lý DSP cho một sốthuật toán nhất định

Kích thước: Nhiều thành phần trong smart camera được tích hợp vào một bộphận duy nhất, giúp giảm kích thước giá thành sản phẩm

Cảm biến hình ảnh: Bản chất của smart camera vẫn là một máy ảnh, nhưng

nó không chỉ dừng lại ở việc thu nhận ảnh mà còn quét ảnh với tần số lênđến 10 kHz

Phần mềm: Hầu hết các smart camera ngày nay đều được cài đặt các phầnmềm giúp người dùng dé dang thao tác hon trong việc xử lý ảnh

Độ bền: Độ bền của smart camera phụ thuộc rất nhiều vào môi trường mà nó

được triển khai Nhưng các nhà sản xuất luôn trang bị một số tính năng cơ

bản giúp hạn chế hư hỏng của smart camera như chống nước, chống va đập,chống bụi Hình 2.6 giới thiệu smart camera Xiaomo AI Camera của TrungQuốc có tính năng nhận diện khuôn mặt, nhận diện hình dáng người vào banđêm, thích hợp sử dung dé cham công nhân viên trong công ty hoặc sử dụng

làm camera an ninh.

19

Trang 35

Hình 2.6: Smart camera Xiaomo AI Camera

s* Khả năng kết nói: Mỗi smart camera đều được trang bị các công giao tiếp

giúp kết nói hoặc điều khién các thiết bị khác trong hệ thống, truyền nhận dữliệu một cách dé dang hơn Hình 2.7 giới thiệu một vai cổng kết nối I/O,công Ethernet, công USB, đèn tín hiệu

Hình 2.7: Một sô công két nôi trên smart camera

20

Trang 36

“+ Kha năng đưa ra quyết định: Ngày nay, các smart camera có thé có đủ mọi

hình dạng, kích thước và hiệu suất nhưng tất cả chúng đều có một thuộc tính

chung là khả năng xử lý ảnh và đưa ra quyết định Chính việc đưa ra quyếtđịnh làm cho một chiếc máy ảnh bình thường trở nên thông minh hơn Ngoài

ra, smart camera còn giúp tiết kiệm chi phí, dễ tích hợp và mang lại hiệu suấtcao nên nó luôn là một lựa chọn hàng đầu cho các ứng dụng về thị giác máy

tính.

2.5 Thuật toán YOLOv2

'YOLOV2 hay còn gọi là YOLO9000 đã được Joseph Redmon va Ali Farhadi

công bố và cuối năm 2017 và có mặt trong hội nghị về thị giác máy tính CVPR(Computer Vision and Pattern Recognition) Cải tiến chính của phiên bản này tốt

hơn, nhanh hơn, tiên tiến hơn để bắt kịp faster R-CNN (phương pháp sử dụng Region Proposal Network) và xử lý được những hạn chế của YOLOvI.

2.5.1 Batch normalization

Kỹ thuật Batch Normalization được đưa vào sau tất cả các lớp convolutioncủa YOLOv2 Kỹ thuật này không những giảm được thời gian huấn luyện mà còn

có tác dụng tăng tính phổ quát (generalize) cho mạng Ở YOLOv2, Batch

Normalization giúp tăng mAP lên khoảng 2% Mạng cũng không cần sử dụng thêmDropout dé tăng tính phổ quát

2.5.2 High resolution classifier

YOLOv2 được huấn luyện với hai pha Pha đầu sẽ huấn luyện một mang

classifier với ảnh đầu vào có kích thước nhỏ (224x224) và pha sau sẽ loại bỏ lớp

fully connected và sử dụng mang classifier này như phan khung xương (backbone)

để huấn luyện mạng detection Ảnh đầu vào kích thước nhỏ cũng thường được sửdụng dé huấn luyện các mạng classifier, sau đó sẽ được sử dụng như một pretrained

model cho phần backbone của các mạng detection khác Ở pha sau, YOLOv2 sẽ

finetube mang backbone dưới anh đầu vào có kích thước lớn hơn là 448x448 trước

21

Trang 37

tiên để mạng hiểu được các kích thước ảnh đầu vào lớn hơn, sau đó sử dụng kết quả

này dé huấn luyện cho quá trình detection Điều này giúp tăng mAP (mean Average

Precision) của YOLOv2 lên khoảng 4%.

2.5.3 Kiến trúc Anchor Box

Trong YOLOv2, lớp fully connect ở giữa mang đã được loại bỏ, thay vào đó

tác giả đã sử dụng kiến trúc anchor box đề dự đoán các bounding box Việc dự đoán

các offset so với anchor box sẽ dễ dàng hơn nhiều so với dự đoán tọa độ củabounding box Thay đổi này giúp giảm mAP đi một chút nhưng sẽ khiến cho recall

tăng lên.

2.5.4 K-means clustering

Thay vì phải chọn anchor box băng tay, YOLOv2 sử dụng thuật toán means dé đưa ra các lựa chọn anchor box tốt nhất cho mạng Việc này giúp tạo ramean Intersection Over Union tốt hơn

K-2.5.5 Direction location prediction

YOLOvI không có các han chế trong việc dự đoán vi trí cua bounding box.Khi các trọng số được khởi tạo ngẫu nhiên, bounding box có thé được dự đoán ở bất

kì đâu trong ảnh Điều này khiến cho mô hình không hoạt động tốt trong giai đoạnđầu của quá trình huấn luyện Vị trí của bounding box có thể ở rất xa so với vị trí

cua grid cell.

YOLOv2 sử dung ham sigmoid (ø) dé hạn chế giá trị trong khoảng từ 0 đến

1, từ đó có thê hạn chế các dự đoán bounding box ở xung quanh grid cell giúp mô

hình 6n định hon trong quá trình huấn luyện YOLOv2 đã có thêm 5% mAP khi áp

dụng phương pháp này Hình 2.8 mô tả dự đoán bounding box của YOLO.

22

Trang 38

Hình 2.8: Dự đoán bounding box của YOLOv2

Trang 39

Thông thường, việc concatenate hai feature map chỉ thực hiện được khi

chúng có cùng chiều rộng và chiều dai Và để có thé concatenate được với nhau thi

cần có lớp Reorg Reorg là kỹ thuật tổ chức lại bộ nhớ dé biến feature map 26x26

thành 13x13 với chiều sâu lớn hơn đề có thé thực hiện phép concatenate với featuremap 13x13 ở cuối Hình 2.10 mô tả kỹ thuật Reorg trong YOLOv2

IDIDILS

ie [ee [6 lim |

Hình 2.10: Kỹ thuật Reorg trong YOLOv2

Hình 2.9 là một lát cắt (chanel) của feature map kích thước 4x4 Đề đưa vềkích thước 2x2 thì phải giảm chiều rộng đi 2 lần và chiều dài đi 2 lần, ta táchchannel của feature map 4x4 thành 4 ma trận ứng với 4 channel chiều sâu của

feature map 2x2 mới Vi trí các giá trị trong mỗi channel của feature map 2x2 mới

sẽ lay thưa thớt trên feature map 4x4 ban đầu với stride bằng 2 theo hai trục dài và

rộng.

2.5.7 Multi-scale training

Sau khi thêm kỹ thuật anchor box cho YOLOv2, input của mạng được thay

đổi thành 416x416 thay vì 448x448 Tuy vậy, YOLOv2 được thiết kế chỉ gồm các

lớp convolution và pooling nên có thê thích ứng với nhiều kích thước ảnh đầu vào

khác nhau giúp tăng kha năng xử lý của YOLOv?2 với đa dạng kích thước anh.

2.5.8 Light-weight backbone

Điểm cải tiến của YOLOv2 con phải kể đến backbone mới có tên

Darknet-19 Mạng này gồm 19 lớp convolution và 5 lớp max pooling đã tạo ra tốc độ nhanh

hơn phiên bản YOLO trước Hình 2.11 mô tả Darknet- 19.

24

Trang 40

Type Filters | Size/Stride Output Convolutional 32 3x3 224 x 224

Convolutional 128 1x1 28x28 Convolutional 256 3x3 28x28

Maxpool 2x 2/2 14x 14

Convolutional 512 3x3 14 x 14 Convolutional 256 1x1 14 x 14 Convolutional 512 3x3 14x 14

Ngoài ra, YOLOv2 còn đưa ra cách kết hop các dataset khác với ImageNet

dé có thé phát hiện nhiều class hơn Một directed graph hay còn gọi là WordTree đãđược tạo ra Dé có thé merge được các label từ tập ImageNet (1000 classes) vớiCOCO/PASCAL (100 classes) thì ta phải dựa vào WordNet để xây dựng quan hệgiữa các class, từ đó có thể huấn luyện mạng nhận dạng các class có quan hệ với

nhau Hình 2.12 giới thiệu WordTree trong YOLOV2.

biplane jet airbus stealth golden potato felt sea American

fighter fern fern fern lavender twinflower

Hinh 2.12: WordTree trong YOLOv2

25

Ngày đăng: 23/10/2024, 01:28

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w