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 3THÔ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 4LOI 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 5MỤ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 62.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 72.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 84.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 9DANH 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 10Hì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 11Hì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 12Bả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 13DANH 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 14FPGA 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 15RISC-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 16TOM 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 17Chươ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 181.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 19Nhượ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 22khi 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 23Chươ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 24Chươ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 25cá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 26logic 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 27nhú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 282.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 29Input 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 30Hệ 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 31e 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 32e 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 33tiế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 34củ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 35Hì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 37tiê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 38Hình 2.8: Dự đoán bounding box của YOLOv2
Trang 39Thô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 40Type 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