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: Tối ưu streaming cho bộ tăng tốc AI tích hợp trên Ultra96-v2 cho smart camera

95 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 đề Tối Ưu Streaming Cho Bộ Tăng Tốc AI Tích Hợp Trên Ultra96-V2 Cho Smart Camera
Tác giả Võ Phúc Vinh Khang, Lê Hoài
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 - Đại Học Quốc Gia TP. Hồ Chí Minh
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ố TP. Hồ Chí Minh
Định dạng
Số trang 95
Dung lượng 47,08 MB

Nội dung

Nhóm muốn sử dụng giao thức RTSP Real-time Streaming Protocal để cải thiện tốc độ stream hình ảnh của hệ thống smart camera qua kết nối không dây với độ trễ thấp và sát với thời gian thự

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

VO PHUC VINH KHANG

LE HOAI

KHOA LUAN TOT NGHIEP

TOI UU STREAMING CHO BO TANG TOC AI TÍCH

HỢP TREN ULTRA96-V2 CHO SMART CAMERA

STREAMING OPTIMIZATION FOR AI ACCELERATION ON

FPGA ULTRA96-V2 FOR SMART CAMERA

KY SƯ NGANH KY THUAT MAY TÍNH

TP HO CHÍ MINH, 2023

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN

KHOA KỸ THUẬT MÁY TÍNH

VÕ PHÚC VINH KHANG - 17520621

LÊ HOÀI - 18520770

KHÓA LUẬN TÓT NGHIỆP

TÓI ƯU STREAMING CHO BỘ TĂNG TÓC AI TÍCH

HỢP TRÊN ULTRA96-V2 CHO SMART CAMERA

STREAMING OPTIMIZATION FOR AI ACCELERATION ON

FPGA ULTRA96-V2 FOR SMART CAMERA

KY SƯ NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN TIEN Si NGUYEN MINH SON

TP HO CHi MINH, 2023

Trang 3

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

75/QD-ĐHCNTT ngày 15 tháng 02 năm 2023.

Trang 4

LOI CAM ON

Lời đầu tiên chúng em xin gửi lời cảm ơn chân thành va sự tri ân sâu sắc với quý thầy cô đang công tác tại trường Đại học Công Nghệ Thông Tin — Dai Học Quốc Gia TP Hồ Chí Minh, đặc biệt là quý thầy cô trong khoa Kỹ Thuật Máy Tính

đã tận tình giảng dạy, truyền đạt những kiến thức quý giá cho chúng em trong 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 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à cung cấp cho chúng em nhiều kiến thức chuyên môn quý báu dé chúng em có thé hoàn thành khoá luận Đồng thời, 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 đã luôn quan tâm, giúp đỡ cho nhóm trong

suốt quá trình thực hiện nghiên cứu này.

Chúng con cũng xin 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 tinh thần cũng như thé chat trong suốt khoảng thời gian chúng con thực hiện đề tài khoá luận này.

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của sinh viên nên trong báo cáo này chúng em không thể tránh khỏ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ý thay cô dé chúng em được bổ sung, nâng cao kiến thức của mình 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 16 tháng 02 năm 2023

Sinh viên thực hiện

Võ Phúc Vinh Khang Lê Hoài

Trang 5

MỤC LỤC

)/0/9090 2 -4 5

Chương 1 GIỚI THIỆU DE TÀI ¿+¿+2222++++222++zrstrrsecree 2 1.1 Lý do chọn đề tài 22¿-22222222221222221111222211222211122111 E121 re 2 1.2 Một số nghiên cứu liên quan -¿-22++++22EE++++22EEE+rtrrxxerrrrrkecree 3

1.2.1 Nghiên cứu ngoài nưỚC + + ssEeterrksrekerkrrrreree 3 1.2.2 _ Nghiên cứu trong nước - - - + +S++t+t+keterkrkrkererrrkerke 3

1.3 Mute can ẽ 5 1.4 Giới hạn để tài 25c 22x 221122211 2221222111221 ca 6 1.5 Kết quả mong muốn -. -:+¿2222V2222++2222EE2EEErrtttEEEEEErrrrrrrrrrrkrrree 6 1.6 Bố cục luận văn -: 22+2++2222122222211122211112222112227111 2.211 E1 cce 6

Chương2 CƠ SỞ LÝ THUYẾT / -22©+2+22EE+E+tEEEEEE+tEEEESzrtrrkrcree 8

2.1 Field Programmable Gate Array (FPGA)

Trang 6

2.4 Smart CaITA nh t1 T011 H0 HH1 ưn 16 2.5 Thuật toán YOLOv2

2.5.1 Batch normalization

2.5.2 High resolution classifier

2.5.3 Kiến trúc Anchor Box -5222cvvvccrrrrrrrrrreererrrrer 21 2.5.4 K-means clustering

2.5.5 Direction location prediction - - ss++x+x+eeesrereresrersre 21 2.5.6 _ Fine-grained feature 2.5.7 Multi-scale training 5 che 23 2.5.8 Light-weight backbone - 5< c+S++x+cseeterrkekererrre 23 2.6 OpenCV K22 sấết À, Hee 25 2.7 Streaming videO 6c 2c St 3t 222111011121 0101011111 11 re 26 2.8 FEmpcg đ 5 „ c HN v.ợm , À LẠ HH in 27 2.8.1 Các công cụ xử lý audio, video của FFmpeg - 28

2.8.2 Các gói thư viện của FÏmpeg ¿-:- + csce+xzesrrrsrx 28 2.9 SSH Tunnel - cà St tt tt grgrưet 29 Chương 3 THIẾT KE HỆ THÓNG - -: -¿222v+++22vvvvzrscrvscee 31 3.1 Ý tưởng để xuất cho hệ thống 222++++222EEEvrvrrtrrrtrrrrrrrrrrrrer 31 3.2 Thiết kế tổng quát của hệ thống -. -:-¿¿-2vvvc+ztttcvvvvvrrrrrrrrrr 32 3.3 Hệ thống SoC tích hợp IP YOLO2_FPGA trên Vivado 2019.2 32

3.4 Cải tiến tốc độ của khối YOLOv2 và hệ thống SoC Smart Camera 33

3.5 Xây dựng luồng streaming cho Smart Camera -:-£+ 38

3.5.1 Streaming phạm vi Internet với camera hình ảnh thường 39

3.5.2 Streaming phạm vi Internet với camera hình ảnh xử lý YOLOv2 41

Trang 7

3.6 Xây dựng chương trình thực thi bằng công cụ Vitis 2019.2 - 41

3.7 Sử dụng ZoneMinder dé theo dõi camera Chương 4 HIỆN THỰC, THUC NGHIEM VA ĐÁNH GIA KET QUA 45

4.1 Zynq UltraScale+ MPSoC

4.2 FPGA Ultra96-V2 5c St 2tr 46 4.3 Petalinux 2019.2

4.4 Kịch ban thực nghiệm va phương pháp đánh giá -¿ -©-s++ 54 4.4.1 Kịch bản thực nghiệm 4.4.2 Phương pháp đánh giá ¿- «cư 55 4.5 Trình quản lý và theo dõi CaIm€ra - ¿5c tes +++t+E‡+eEerkrkexererrrkree 56 4.5.1 ZZOI€ImiI€T 6E S4 S11 EE SE 1H TT Hiên 56 4.5.2 Custom WebServer -.-cĂccSSeeererierereeeeed 62 4.6 Kết quả thực nghiệm -2-222222+22222222222111222211222211222E.ccrrkeg 63 4.6.1 Kết quả nhận điện cccc522cvvvvccrrerrccrvveccrrcrrre 63 4.6.2 Kết qua thực nghiệm khi streaming phạm vi Internet 63

4.6.3 Kết quả kiểm tra tính ồn định khi stream liên tục - 65

4.6.4 Kết quả thực nghiệm stream song song 2 camera trên | board 67

4.6.5 Kết quả thực nghiệm kết nối Ethernet - : 69

4.7 Đánh giá hệ thống -c2::¿-222EE+22vr22222111 22121111 ccrrrrrrree 72 4.7.1 Độ phân giải ccccccctierethherererereree 73 4.7.2 Khoảng cách kết nối :¿-+2222++ceEEEkrrrrrrkrrerrrrecrrer 73 4.8 Đóng gói sản phẩm 2+:222+2+t2222++tE22EEEtEEEEEvrttEErvrrrrrrkrrrrrrrke 74 Chương 5 | KET LUẬN VÀ HƯỚNG PHAT TRIÊN - 78

5.1 Kết quả dat được 2222ct222 22222 E221 E121 78

Trang 8

5.2 Hướng phát triển của dé tài

Trang 9

DANH MỤC HÌNH ANH

Hình 2.1: Kiến trúc cơ bản của FPGA 22:tttrtrrrrriririrrrrrriee 9 Hình 2.2: Mô hình cơ bản của một hệ thống nhúng -:- 22252 11 Hình 2.3: Phan cứng của một hệ thống nhúng -: ¿©+++225s+++z++ 13 Hình 2.4: Kiến trúc cơ bản của một SoC -::ccccccccrrrrriirrrrrrrrrrie l6 Hình 2.5: Sơ đồ khối của MOE SMALE CAIT€T S2 5S 2E ‡‡£v£v£sEekekrkrxreree 17

Hình 2.6: Smart camera HANET AI CAMERA - 55 5+Sc+c+csrersrrkexer 19

Hình 2.7: Một số cổng kết nối trên smart camera -: 2czz+222zvsz+ 19

Hình 2.8: Dự đoán bounding box của YOLOV2 ¿5 + ssrvsvevsrrrerrrerverer 2

Hình 2.9: Kiến trúc YOILOV2 -2¿-222+++22E+++222E511222211112222112222112 2221 xe 22

Hình 2.10: Kỹ thuật Reorg trong YOLOV2 ¿+ ¿+ 5+ £++t+k+xexererrkexee 23 Hình 2.11: Darknet- [ - t1 cành HH HH HH 00H ggưên 24

Hình 2.12: WordTree trong YOlLOV2 - ¿+ c5 E22 £EEESEEkEkrkErrrrrrrkrkek 24

Hình 2.13: Kiến trúc cơ bản của streaming video c¿5scc++ccvvvcvccrvscee 27 Hình 2.14: Quy trình xử lý video bằng FEmpeg -c-ccccceseerererree 28 Hình 2.15: Tổng quan về SSH Tunneling -ccccc++cccvsscccccesrrccseec-3Ù Hình 3.1: Mô hình trực quan của hệ thống ¿+ 222222222222 +zss+ 30 Hình 3.2: Thiết kế tổng quát của hệ thống -¿¿2z++22++zt+22zvzerrrrxscee 32 Hình 3.3: Sơ đồ khối SoC tích hợp IP YOLOv2 trên FPGA - 33 Hình 3.4: Cua hình strategy mặc định cho quá trình Synthesis 35 Hình 3.5: Cấu hình strategy mặc định cho quá trình Implementation 35

Hình 3.6: Worst Negative Slack (WNS) có giá trị âm - - -ccccccrcreerrrek 36

Hình 3.7: Câu hình strategy mới cho quá trình Synthesis - + 36 Hình 3.8: Cấu hình strategy mới cho quá trình Implementation 37 Hình 3.9: Kết quả sau khi generate bitstream -2¿+22++z+2vv+zerrrrxscee 38

Hình 3.10: Năng lượng tiêu thụ - ¿525cc tt 38

Hình 3.11: Mô hình streaming lên zoneminer bằng ffmpeg . - 40

Hình 3.12: Streaming hình anh xử lý YOLOv2 phạm vi Internet Al Hình 3.13: Chương trình xử lý YOLOv2 trên EPGA -. 25-55-5255 42

Trang 10

Hình 3.14: File smart_camera.elf trong thư mục sd_ card ‹- - -<+<s++ 43 Hình 3.15: Giao diện Web của ứng dụng Zoneminđer -‹-s-+<s=+sexsxe+ 43

Hình 3.16: Giao diện WebServer của nhóm tác giả -. ‹ :5+5+5+5++5<< 44

Hình 4.1: Các khối chức năng trong Zynq UltraScale+ MPSoC - 45 Hình 4.2: Các thành phan chính trên board Ultra96-V2 . :- ¿+22 4 Hình 4.3: Sơ đồ khối của board Ultra96-V2 2ccccrrereeceerrrrrrrrrrrre 48

Hình 4.4: Config hardware đ€$CTID(IOI ¿+ SE 2x ngư 49

Hình 4.5: Image packaging configuratiOI ¿- - - + + 5+++++‡xexeEerkrkeketerkrkrkvee 49 Hình 4.6: Boot image se(ting +- 5:52 S222 tt 2 9212121212 E1 rên 50

Hình 4.7: USB Gadget SuppOrI ¿S1 11221 HH HH ớt 51

Hình 4.8: Enable Debug TWweaks - «¿5+ tt H212 1g ưưn 52 Hình 4.9: Wile module bitbake - ¿5+5 cxcxtzverererxerrrrerrrrrrrrrrrrrrrrrr 52

Hình 4.10: Khai báo reserved memory 53

Hình 4.11: Giao diện dang nhập vào Zoneminder 5Ó Hình 4.12: Giao diện chính của ứng dụng Zoneminder 2Ó

Hình 4.13: Lựa chọn ngôn ngữ tiếng việt được thêm vào hệ thông

Hình 4.14: Phần mềm đã được việt hóa thành công „58

Hình 4.15: Cài đặt màn hình của Zoneminder (chung) - : + 55-5 +<+s++ 59

Hình 4.16: Cài đặt màn hình của Zoneminder (nguồn) —— 60

Hình 4.17: Giao diện màn hình của Zoneminnder -¿-¿- + s5 +s++£v+v£exexexex 61 Hình 4.18: Script streaming normal to cÏOud -. ‹- «+ s5+5++s+s+se+<+s+x+se+ 61

Hình 4.19: Giao diện WebServer mới của nhóm ¿+ +++++s+es+s>sx+ezeszesss+ 62

Hình 4.20: Kết quả nhận diện của Smart Camera Ultra96- V2 -. : 63 Hình 4.21: Ảnh chụp khi streaming hình ảnh thường -. ¿22552 64 Hình 4.22: Ảnh chụp khi streaming hình ảnh xử lý YOLOVv2 - 65 Hình 4.23: Console kiểm tra ôn định khi stream camera thường - 65 Hình 4.24: Hiền thị thời gian đã stream đơn vị giây -ccc+cccscccccrxscee 67

Hình 4.25: Thời gian stream nghiệm thu được - 5 5+ ccx+ccscccxe 67

Hình 4.26: 1 camera được lắp đặt thêm dé thực nghiệm stream song song 68

Trang 11

Kết quả thực nghiệm cùng lúc stream 2 camera trên l board 68

USB to Ethernet AapI€T - tt re 69

Kết nói Ethernet với board Ultra96v2 ccccrrtttrrrtrrrrrrrre 70 Tốc độ khi stream bang wifi không ổn định -:c-5+ 71 Tốc độ khi stream bằng Ethernet khá ồn định - + 71 Đóng gói sản phẩm của nhóm tác giả -:: 7222vvcccceecrrr 75

Vỏ hộp đóng gói của nhóm tác giả - 6-5 cScsrkrkexerrrererke 75

Dé hộp Camera mới -2:+22©V++++222E++++tEES+++ettExvrrerrrrrrrrrr 76 Hộp Camera mới có thể bố trí thêm quạt tản nhiỆt - 76

Hộp Camera mới sau khi đóng gói hoàn chỉnh -«-5- «+ T7

Trang 12

DANH MỤC BANG BIEU

Bảng 2.1: Các thư viện của FFmpeg - 5+5: 52222*£+2E2t+t+xexererkrkrkerrrree 29

Bang 3.1: Tan số ước lượng của IP YOLÒ_FPGA 55-22 222* +22 ** s22 33

Bảng 3.1: Tan số ước lượng của IP YOLO2_FPGA 22c2:525scceccz 34 Bảng 3.2: Tài nguyên ước lượng sau khi tổng hợp IP : -+ 34

Bang 3.3: Timing T€pOII - 5 52552222 v22 T

Bang 4.1: Ludng thiết kế petalinux 222c+222222vvvrrrrttEEEEExrrrrrrrrrrrrrrrrree 48

Bảng 4.2: Các thư viện cai đặt trên Petalinux - ¿5+ 5s+cccxsccrxrrreercee 53

Bang 4.3: Kết qua streaming phạm vi Internet ssscccsssssesccssssessssssecesssesscessseeees 73 Bang 4.4: Kết quả dựa trên khoảng cách kết nối khi streaming camera hình ảnh

thường ở phạm vi Internet

Bảng 4.5: Kết quả dựa trên khoảng cách kết nói khi streaming camera hình ảnh xử

-Ö-74 79

lý YOLOv2 ở phạm vi Internet.

Bang 5.1: Tổng kết và so sánh với một số nghiên cứu trước đó trong nước

Trang 13

DANH MỤC TU VIET TAT

Tir viét tat Tên day đủ

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

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

Trang 14

RAM Random Access Memory

RGB Red Green Blue

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 15

TÓM TÁT 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 camera cũng là một phan 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ô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 đặc trưng của chúng, đã và đang được nhiều nhóm tác gia, 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 đó là độ chính xác, tốc độ thu nhận và truyền dữ liệu, năng lượng tiêu tốn và giá thành sản phẩm.

Trong đề tài này, nhóm đặc biệt quan tắm đến vấn dé khi stream của một hệ thống smart camera Nhóm muốn sử dụng giao thức RTSP (Real-time Streaming Protocal) để cải thiện tốc độ stream hình ảnh của hệ thống smart camera qua kết nối không dây với độ trễ thấp và sát với thời gian thực Smart camera được tích hợp thuật toán YOLOv?2 xử lý ảnh trên phan cứng FPGA, kết hợp với bộ vi xử lý core ARM và một số module khác đề đ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 Ngoài

ra nhóm cũng sẽ tiến hành sử dụng mang có day thay vì không day dé đánh giá tốc

độ cũng như tính ổn định khi stream của smart camera.

Nhóm đề xuất thiết kế hệ thống smart camera trên bộ công cụ phần mềm Vivado phiên bản 2019.2 của Xilinx ( Gồm có Vivado HLS, Vivado Design Suite, Petalinux và Vitis ), sử dung board Ultra96-V2 trên nền tảng Zynq UltraScale+ MPSoC của nhà phát hành Avnet Tần số hoạt động của hệ thống là 300MHz và có thể đáp ứng được tỉ lệ khung hình full HD ở độ trễ thấp nhất.

Trang 16

Chương I 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 ngày càng nhanh của công nghệ, các ứng dụng

thông minh hỗ trợ con người trong công việc ngày càng được quan tâm nghiên cứu.

Các hệ thống này mô phỏng dựa trên các giác quan của con người để tạo ra các hệ thống thông minh Trong đó kênh thông tin thị giác của con người được sử dụng nhiều nhất để xây dựng những hệ thống nhận dạng và tìm kiếm các đối tượng Do

đó smart camera đã trở thành đề tài thu hút được nhiều sự quan tâm từ các nhóm nghiên cứu, trường đại học và nhiều ngành công nghiệp Khác với máy ảnh thông thường, nó không chỉ thực hiện việc chụp ảnh mà còn phân tích hình ảnh dé nhận dạng và đưa ra thông tin về đối tượng nào đó trong ảnh hoặc có thể chỉnh sửa ảnh trực tiếp mà không cần sự can thiệp của con người tat cả đều được tích hợp trong một hệ thống nhỏ gọn Sự phổ biến ngày càng tăng của smart camera được xây dựng dựa trên những tiến bộ đạt được trong công nghệ bán dẫn, kỹ thuật thị giác máy tính và được thúc day bởi các yếu tố kinh tế - xã hội như độ an toàn, bảo mật giúp tăng năng suất và tiết kiệm chỉ phí.

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 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ải tiến các vấn đề ảnh hưởng đến tốc độ của một hệ thống smart camera bao gồm kỹ thuật video streaming cho smart camera để có thé truyền hình anh streaming (bao gồm hai chế độ: camera hình ảnh thường và camera

xử lý thuật toán nhận dạng vật thể) thông qua Wifi Access Point, với một độ trễ thấp và có khả năng đáp ứng khung hình Full HD.

Trang 17

1.2 Một số nghiên cứu liên quan

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é dang 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ư:

“* Bai báo [4] “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ử dung module camera Micron MT9POO1 trên FPGA Xilinx Virtex-5 ML506 áp

dụng thuật toán Histogram đã thu được anh với tốc độ 30 FPS và độ phân giả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ình

dạng, kết cau 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.

“ Bài báo [5] “DreamCam: A modular FPGA-based smart camera

architecture” của nhóm tác giả Merwan Birem, Francois Berry vào năm 2014

sử dụng module camera MT9M031, EV76C560 trên FPGA Altera Cyclone

TH đã thu được ảnh với tốc độ 42 FPS và độ phân giải 800 x 1024 Ưu điểm củ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 [2] “The Research And Implementation Of CNN Algorithm On Zedboard Zynq-7000” của nhóm sinh viên Phan Tuấn Thanh, Vũ

Hoang Hy năm 2020 sử dụng thuật toán YOLOv?2 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ật thể 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 18

Nhược điểm của đề 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 [6] “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 dé 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ới tốc độ khung hình khi streaming ổn định ở mức 5.5-6 FPS Nhược điểm là đề tài này chưa thể tích hợp thuật toán xử lý AI vào để 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ử dụng module camera OV7670 trên FPGA DEI0-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ễ dàng, tốc độ xử lý khá nhanh (vì dữ liệu xử lý là 1 kênh mau 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 mắt mát (vì nhóm tác giả sử dụng ảnh 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 [1] “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

dé 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 Ở đây

nhóm tác giả đã sử dụng bộ YOLOv2 có sẵn để tích hợp lên kiến trúc SoC của smart camera và không quan tâm đến độ trễ của khói AI này Vì thế nhóm muốn kế thừa bộ YOLOv2 của nhóm tác giả này để phục vụ mục đích nghiên cứu va cải tiến.

Trang 19

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 và công

nghệ giúp nâng cao khả năng streaming video của smart camera trên SoC

Ultra96-V2 thông qua đường truyền internet theo thời gian thực giữa hai hay nhiều thiết bị nhận Đề đá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ộ Tăng Tốc AI CNN YOLOv2 từ luận văn [1] “Bộ

tăng tốc AI 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 đề nghiên cứu, phục vụ cho việc cải tiễn tốc độ của hệ thống smart camera.

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

Wi-Fi.

4 _ * Kế tiếp nhóm tìm hiểu và xây dựng hệ điều hành Linux, sau đó nap lên board

Ultra96-V2 bằng công cụ Petalinux của Xilinx phát hành đề điều khiển hoạt động của cả hệ thống.

kẻ Tiếp theo nhóm nghiên cứu các phương pháp streaming để cải thiện tốc độ

streaming tích hợp AI so với nhóm trước.

$ Tiếp theo nhóm tìm hiểu các công nghệ hỗ trợ như FFmpeg, OpenCV và

giao thức truyền dữ liệu RTSP dé 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 bang Vitis và nạp lên hệ

điều hành Linux trên board Ultra96-V2 để điều khiển hoạt động hệ thống.

Nhóm sẽ thực hiện kiểm tra hệ thống, đánh giá, so sánh và đưa ra các kết

luận dựa trên các kết quả thử nghiệm.

Trang 20

1.4 Giới hạn đề tài

Do thời gian hạn chế trong quá trình làm luận văn nên nhóm sẽ chỉ tập trung thực hiện cải thiện tốc độ streaming hơn là tinh chỉnh về IP core Ngoài ra, nhóm cũng sẽ thực hiện các biện pháp gián tiếp bao gồm giải quyết vấn dé tản nhiệt của board dé nâng cao tính 6n định khi streaming, hạn chế xảy ra van dé quá nhiệt gây ảnh hưởng đến quá trình stream.

1.5 Kết quả mong muốn

Ở dé tài này nhóm sẽ tập trung vào việc cải tiến tốc độ 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 và không xử

lý AI thông qua mạng internet sau đó gửi dữ 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 chi 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

để lấy luồng video streaming về coi Đối với camera hình ảnh thường, độ trễ mong muốn trên thiết bị nhận nhỏ hơn 4 giây, tốc độ hiển thị khung hình trung bình lớn hơn 3 fps đối với độ phân giải full HD 1920 x 1080 Đối với camera hình ảnh xử lý YOLOv2, nhóm mong muốn có thể giảm độ trễ khi streaming video ở độ phân giải full HD 1920 x 1080 trên thiết bị đầu cuối nhỏ hơn 25 giây và tốc độ hiền thị khung

hình trên 0.3fps.

1.6 Bố 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: Giới thiệu đề tài

Chương đầu tiên 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 dé 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

Trang 21

Chương này trình bày những cơ sở lý thuyết được sử dụng có liên quan đến nộ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ệu nhó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ủa khoa KTMT cũng như những góp ý của các thầy cô, anh chị bao gồm: kiến thức chung về FPGA, smart camera, tìm hiểu về các kỹ thuật streaming video và nghiên cứu giao thức RTSP, các phương pháp ổn định streaming, cuối cùng sẽ đưa ra các

đề xuất phù hợp nhất.

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

Dựa vào những kiến thức về cơ sở lý thuyết đã tìm hiểu được ở Chương 2 thì

ở Chương 3 này nhóm sẽ đề xuất một mô hình hệ thống một cách chỉ tiết của khóa luận Giải thích nguyên lý hoạt động của cả hệ thống.

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.

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ày nhó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 22

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 phần tử logic mà 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ất phứ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:

© 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

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

e Phan tử thiết kế sẵn 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 dụng 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ậy FPGA ưu việt hơn ở chỗ có thê tái cấu 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.

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 hãng sản xuất FPGA lớn như 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 nay như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tat cả 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 phần 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 cấu hình (Logic

Trang 23

Blocks hoặc Configurable Logic Blocks - CLB) Các khối CLB được tô chức sắp xếp theo mảng với 2 hướng doc và ngang như Hình 2.1.

một Flip-Flop hoặc một chốt (latch) LUT (Look Up Table) 1a khối logic có thé thực

hiện bất 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 dòng chip của mỗi hãng) Kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phan 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ể, chang 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) Tất nhiên,

Trang 24

cấu hình bộ nhớ được sử dụng trên tất cả các khối logic được dùng để điều khiển các chức năng cụ thé của mỗi phan 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ới nhau đề tạo thành một thiết kế hoàn chỉnh Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứ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ết nố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út chuyề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 đế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 ấp 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 dung) User

Pin: người dùng có thé lập trình như đầu vào, dau 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 Vee 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ư:

® Power Pin

¢ Configuration Pin: các pin dé cấu hình FPGA.

¢ 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 bản đã đượ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ý 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

đó.

10

Trang 25

2.2 Hệ thống nhúng

2.2.1 Dinh nghĩa

Hệ thống nhúng là một loại hệ thống máy tính được thiết kế dé thực hiện một

số tác vụ như truy cập, xử lý, lưu trữ và kiểm soát dữ liệu trong các hệ thống thiết bị điện tử khác nhau Các hệ thống nhúng là sự kết hợp giữa phần cứng và phần mềm,

ở đây phần mềm được nhúng vào phần cứng Một trong những đặc điểm quan trọng nhất của các hệ thống này là nó chỉ cung cấp input/output trong một khoảng thời gian giới hạn Sự hỗ trợ của các hệ thống nhúng giúp cho công việc trở nên hoàn thiện và thuận tiện hơn 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 cơ bản của một hệ thống nhúng.

Link to Other Systems

Hình 2.2: Mô hình cơ bản của một hệ thống nhúng 2.2.2 Phần mềm của một hệ thống nhúng

Phần mềm được viết cho hệ thống nhúng được gọi là phần mềm nhúng hay firmware Phần mềm nhúng là một chương trình được viết, biên dịch trên máy tính

và nạp vào một hệ thống khác bao gồm một hoặc nhiều bộ vi xử lý đã được cài đặt sẵn một hệ điều hành, bộ nhớ ghi chép được, các công giao tiếp được với các phần cứng khác Phần mềm nhúng là phần mềm tạo nên phần hồn, phần trí tuệ của các

11

Trang 26

sản phẩm nhúng Phần mềm nhúng ngày càng có giá trị cao trong các sản phâm

nhúng.

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 để thực thi các hoạt động Phần 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ống phan cứng nay bao gồm các yếu tố như giao điện cho các dit liệu đầu vào/đầu ra, bộ nhớ, giao điện người dùng và bộ hiền thị dữ liệu Về cơ bản, một hệ thống nhúng thường bao gồm:

e _ Bộ cung cấp năng lượng

e Bộnhớ

e Bộ xủ lý

e Timers

¢ Đầu ra/ bảng mạch đầu ra

e Cổng giao tiếp nói tiếp

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

một hệ thống cụ thể nào đó)

12

Trang 27

_.——-— —— _ _—

Hình 2.3: Phần 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ế dé 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ép

tí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êu

thụ it năng lượng hon 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ó

13

Trang 28

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ệ thống nhúng phải được kết nối với các thiết bị ngoại vi để 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 so

sánh cùng một thiết kế Ngoài ra, hệ thống đơn 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 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ữ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.

14

Trang 29

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 phan 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

e Khối tao 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

15

Trang 30

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 dé 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ễ

16

Trang 31

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 |

Ethernet Image

Sensor

Serial Processor

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 dé 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 hau hết các máy anh 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 ảnh

khô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ả

17

Trang 32

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 ra

cò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 HANET AI CAMERA của

Việt Nam 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.

18

Trang 33

Hình 2.6: Smart camera HANET AI CAMERA

* Kha 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 vài 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

19

Trang 34

“+ 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 convolution

củ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 mangclassifier với ảnh đầu vào có kích thước nhỏ (224x224) và pha sau sẽ loại bỏ lớpfully connected và sử dụng mang classifier này như phần 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 mang classifier, sau đó sẽ được sử dụng như một pretrained

model cho phan backbone của các mang 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

20

Trang 35

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 đề 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 mạng đã đượ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ủa bounding 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 vi phải chon anchor box bang tay, YOLOv2 sử dụng thuật toán means dé đưa ra các lựa chon anchor box tốt nhất cho mang Viéc nay gitip tao ra mean Intersection Over Union tốt hon.

K-2.5.5 Direction location prediction

YOLOvI không có các hạn chế trong việc dự đoán vi trí của bounding box Khi các trọng số được khởi tạo ngau nhiên, bounding box có thé được dự đoán ở bat

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í

của grid cell.

YOLOv2 sử dụng ham sigmoid (ø) đề 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 ồn định hơn 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.

21

Trang 37

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

epee fe

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

Hình 2.10 là một lát cắt (channel) của feature map kích thước 4x4 Dé đưa vềkích thước 2x2 thì phải giảm chiều rộng đi 2 lần và chiều đà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 VỊ trí các giá trị trong mỗi channel của feature map 2x2 mới

sẽ lấy 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 mang được thay

đôi thành 416x416 thay vì 448x448 Tuy vậy, YOLOv2 được thiết kế chi gồm cáclớ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 khả năng xử lý của YOLOv2 với đa dạng kích thước ảnh.

2.5.8 Light-weight backbone

Điểm cải tiến của YOLOv2 còn 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

23

Trang 38

Type Filters | Size/Stride Output

Convolutional 32 3x3 224 x 224

Maxpool 2x 2/2 112 x 112 Convolutional 64 3x3 112 x 112 Maxpool 2x 2/2 56 x 56 Convolutional 128 3x3 56 x 56 Convolutional 64 1x1 56 x 56

Convolutional 128 3x3 56 x 56

Maxpool 2x 2/2 28 x 28

Convolutional 256 3x3 28 x 28

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

Maxpool 2x2/2 14 x 14

Convolutional 512 3x3 14 x 14

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

Maxpool 2x 2/2 7x7

Convolutional 1024 3x3 7x7 Convolutional 512 1x1 7x7

Convolutional 1024 3x3 7x7

Convolutional 512 1x1 7x7

Convolutional 1024 3x3 7x7 Convolutional 1000 1x1 7x7 Avgpool Global 1000

Softmax

Hinh 2.11: Darknet-19

Ngoài ra, YOLOv2 còn đưa ra cách kết hợp 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 dé xay dung 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 YOLOVv2.

WordTree

physical object

animal i natural object phenomenon

tabby Persian

biplane jet airbus stealth golden potato felt sea American

fighter fern fern fern lavender twinflower

Hinh 2.12: WordTree trong YOLOv2

24

Trang 39

2.6 OpenCV

Open Source Computer Vision Library là một tập các thư viện mã nguồn mở

dành cho thị giác máy tính, máy học và xử lý ảnh OpenCV được thiết kế dé hỗ trợ

hiệu quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gian thực).Nếu được viết trên C/C++ tối ưu, thư viện này có thé tận dụng được bộ xử lý đa lõi

(multi-core processing) OpenCV có một cộng đồng người dùng khá hùng hậu hoạtđộng trên khắp thế giới bởi nhu cầu cần đến nó ngày càng tăng theo xu hướng chạy

đua về sử dụng computer vision của các công ty công nghệ.

OpenCV có cấu trúc module, nghĩa là gói bao gồm một số thư viện liên kết

tinh (static libraries) hoặc thư viện liên kết động (shared libraries) Một số module

pho biến có sẵn như:

Core functionality (core) — module nhỏ gon dé xác định cấu trúc dữ liệu cơ

bản, bao gồm mảng đa chiều dày đặc và nhiều chức năng cơ bản được sử

dụng bởi tất cả các module khác

Image Processing (imgproc) — module xử lý hình ảnh gồm cả lọc hình ảnhtuyến tính và phi tuyến (linear and non-linear image filtering), phép biến đổihình học (chỉnh size, afin va warp phối cảnh, ánh xạ lại dựa trên bảngchung), chuyên đổi không gian màu, biéu đồ, và nhiều cái khác

Video Analysis (video) — module phân tích video bao gồm các tinh năng ước

tính chuyển động, tách nên, và các thuật toán theo dõi vật thê.

Camera Calibration and 3D Reconstruction (calib3d) — thuật toán hình hoc

da chiều cơ bản, hiệu chuẩn máy anh single va stereo (single and stereocamera calibration), dự đoán kiểu dáng của đối tượng (object pose

estimation), thuật toán thư tín âm thanh nổi (stereo correspondence

algorithms) và các yếu tổ tái tạo 3D

2D Features Framework (features2d) — phát hiện các đặc tinh nồi bật của bộ

nhận diện, bộ truy xuất thông SỐ, thông số đối chọi

25

Trang 40

>* Object Detection (objdetect) — phát hiện các đối tượng và mô phỏng của các

hàm được định nghĩa sẵn — predefined classes (vd: khuôn mặt, mắt, cốc, con

người, xe hoi, ).

* High-level GUI (highgui) — giao diện dé dùng dé thực hiện việc giao tiếp UI

đơn giản.

# Video I/O (videoio) — giao diện dé dùng đề thu và mã hóa video

GPU — Các thuật toán tăng tốc GPU từ các module OpenCV khác

2.7 Streaming video

Thuật ngữ Streaming video lần đầu tiên được sử dụng vào năm 1990 được

mô tả là một kỹ thuật giúp thu thập dữ liệu từ camera sau đó truyền dữ liệu video đó

sang một hoặc nhiều thiết bị nhận thông qua mạng internet, được ứng dụng rộng rãitrong thực tế như: các phần mềm (media player, web browser, ) trên các máy

khách truy cập và cho phép xem video từ các máy chủ theo mô hình server/client.

Ngay từ khi ra đời, kỹ thuật streaming video đã được áp dụng vào các phầnmềm phục vụ nhu cầu giải trí, những ứng dụng hỗ trợ cho việc hội họp trực tuyến,giám sát an ninh, thị giác máy trong công nghiệp, robot, hệ thống nhà thông minh,quản lý và điều khiển trong các doanh nghiệp, cơ quan, tô chức trở nên dé dang vàhiệu quả hơn Đặc biệt là các ứng dụng được xây dựng dựa trên các hệ thong nhúng

trên phân cứng.

Đây là kỹ thuật cho phép bat kỳ nội dung video nào được vận chuyển thôngqua mạng Internet Các nội dung này có thê là chương trình TV, phim ảnh, video

ngắn, Các nền tảng giải trí như Youtube, Netflix, media player, web browser

cũng sử dụng kỹ thuật streaming video trên máy người dùng truy cập và phát video

từ một hệ thống máy chủ

26

Ngày đăng: 23/10/2024, 09:11

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

TÀI LIỆU LIÊN QUAN