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: Nghiên cứu cải tiến khối nhận dạng YOLOv2 tích hợp trên board Ultra96v2 cho smart camera

83 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

Nội dung

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

Trang 1

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

LÊ HỮU KIÊN - 19521716 NGUYEN ĐÌNH DUC HIỂU - 19520542

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

NGHIÊN CỨU CẢI TIEN KHOI NHAN DẠNG YOLOV2 TÍCH HỢP TRÊN BOARD ULTRA96V2 CHO SMART

CAMERA

RESEARCH ON IMPROVE THE YOLOV2

IDENTIFICATION BLOCK AND INTEGRATED ON

ULTRA96V2 BOARD FOR SMART CAMERA

KY SU NGÀNH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

TIEN SĨ NGUYEN MINH SON

TP HO CHÍ MINH, 2023

Trang 2

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âu sắc đến quý Thay

Cô đã và đang giảng dạy tại trường Dai học Công Nghệ Thông Tin — Đại 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 Nhờ

sự tận tâm và chỉ dẫn của quý Thầy Cô, chúng em đã có cơ hội tiếp thu và vận dụng

những kiến thức quý giá vào quá trình nghiên cứu khóa luận tốt nghiệp cũng như chuyên ngành mà chúng em đang theo đuôi.

Đặc biệt, chúng em xin chân thành cảm ơn thầy Tiến sĩ Nguyễn Minh Sơn đã ướ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 để chúng em có thể hoàn thành

hoá 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ị,

ạ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 tỉnh thần cũng như thẻ chất 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ý thầy 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 18 tháng 07 năm 2023

Nhóm sinh viên thực hiện

Lê Hữu Kiên Nguyễn Đình Đức Hiếu

Trang 3

MỤC LỤC

Chương I GIỚI THIỆU DE TÀI -ce<©2c+eeeEEExeererrxeerrrrreeere 2 1.1 Lý do chọn đề tài -c-e-<©+vrerkxeseettrrrrkkreersrtrrkkrddde 2

1.2 Một số nghiên cứu liên quan s se sss2+sseevzvsseecre 3

1.2.1 Nghiên cứu ngoài nưỚC -¿- 5+ c5 tt re rrey 3 1.2.2 Nghiên cứu trong nue - - - ¿+ St+k*k*kEEEEETk HH1 tr yy 3

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

1.4 Giới hạn đề tài -ce<ccccveseecrreeseerrressetrrsesrerrreserii 6

1.5 Kết quả mong muốn

1.6 _ Bố cục luận văn -ec©c+ee©©-eecc++eterkeetrvestErksterkestrreserrsserree 7 Chương 2 CƠ SỞ LÝ THUYÉT -cccces++ccc+cveeeesetttrrreeeersrrrkr 9

2.1 Field Programmable Gate Array (EFPGA) -<-<ceseseseseeeeeesesee 9

2.1.1 Định nghĩa SE Hung 9

2.1.2 Kiến trúc tổng quất -.¿ 2+++22E+++++2EE+vrretrkkxrrsrrrxrrrrrrkrcree 9 2.1.3 Ưu và nhược điểm của FPGA -cccccccccccrrrrrrrrrrrrrrrrrrrie 1

2.2 Hệ thống SoC (System on Chip) « ccc.sssccsssscsssecssseessseccsssccsssecsssecsssecessees 12 2.2.1 Định nghĩa hệ thống SOC scccscsssssesesssssesssssseeesssseesesssseceessssessessseeeesssees 2 2.2.2 Câu trúc phần cứng của một SoC -2c++z+222vvvvvrrzrrrrrr 2 2.2.3 Ưu và nhược điểm của hệ thống SOC c¿©csccz+ccsscee 5

2.3 Hệ thống nhúng -e esvcvvvserervreserrrrrsssrrrre 15

2.3.1 Định nghĩa cscs 6 SE t2 E1 11121 010101 2110111 re 5

2.3.2 Phần mềm của một hệ thống nhúng -¿-z++ 6 2.3.3 Phần cứng của một hệ thống nhúng -z++22+zz+22+scee 6

2.3.4 Đặc điểm của một hệ thông nhúng -¿¿2z++22++z+22+zce2 7

2.3.5 Ưu và nhược điểm của hệ thống nhúng -2 8

2.4 Thuật toán YOLOV 2 cssssssssssssseessseessssssessssssssssssessssessssssssessessssessees 19 2.4.1 Batch normaliZatiOn - esse eeeesesessseeescscsneessseessesneseseseeeeees 9

Trang 4

2.4.2 High resolution €ÌaSSIIeT - + St tk uy 19

2.4.3 Kiến trúc Anchor BOX 2:+22222+ztS2CvSrrttErkvrrrrrrrrrrrrrrrree 20

2.4.4 K-means cÏus(€TIng ¿- 5 55t S*2**xxttreekexekerrrerrree 20

2.4.5 Direction location prediCtION ¿c6 St 20 2.4.6 Fine-grained ÍeatUe +- + St tt 12101 11121 re 21 2.4.7 Multi-scale training cv ngư nườ 22

2.4.8 Light-weight backbone «kh ngư 22

2.5 Smart CAMELA sccccecesesseeresesscecseserscscecsesesecseseseseseseseseseensnsaeseseeeeeneeeee 23 2.6 OpenCYV HH TT TT Tư 0000 n0 g0 26

2.7 EFImpeg 5s HT HH nung 27 2.7.1 Các công cụ xử lý audio, video của FFmpeg ‹ -«-s++<+ 28

2.7.2 Các gói thư viện của FÏmpeg - 5-5555 5+2++ccccxereerrerrrre 28

2.8 SSH Tunnel

2.9 Sfreaming video - s5 5< nh nung 00 150 30

Chương 3 THIET KE HE THONG VÀ HIỆN THUC SMARTCAMERA 32 3.1 Hệ thống Zynq UltraScale+ MPSoC c-‹s<<cccveceee 32

3.2 Board Ultra96-V2 cc HH HH 000110100100 ge 34

3.3 BusAXI

3.4 Thiết kế tổng quát của hệ thống -«-escccvcesecevve 36

3.5 Tích hợp IP DPU trên Vivado 2()19.2 -scsscseessssesessrs 39

3.6 Hiện thực Smart camera 5-5 5 S5 S213 41

3.6.1 Xây dựng hệ điều hành linux dé boot lên board Ultra96-V2 41 3.6.2 Xây dựng chương trình thực thi bằng công cu Vitis 2019.2 47

3.7 Xây dựng luồng streaming cho Smart Camera 48

3.7.1 Streaming với camera hình ảnh thường - 555 ++c+<<++ 49

3.7.2 Streaming camera hình ảnh xử lý YOLOV?2 « -+++++5« 50

Trang 5

3.8 Sử dụng ZoneMinder để theo dõi camera -ccccee 51 Chương 4 THUC NGHIEM VA DANH GIA KET QUẢ 55

4.1 Kịch ban thực nghiệm và phương pháp đánh giá - 55 4.1.1 Kich bản thực nghiệm - - - «5 5k tế 55 4.1.2 Phương pháp đánh giá +55 tt Hư 55

4.2 Kết quả thực nghiệm -s-esvcvvveetervreserrrvrsserrree 56 4.2.1 Kết quả nhận diện -2¿-©22222222E++t22EEE+tEEEEEvrrttrrrrrrrrrrrrrrrr 56

4.2.2 Kết quả thực nghiệm khi streaming trong phạm vi Internet 58

4.2.3 Kết quả thực nghiệm kết nối Ethernet -ccc -++ 63 4.3 Đánh giá hệ thống

4.4 Đóng gói sản phẩm cee©eecc©c+esevcEvveeeecrveseerrrressrrree 66

4.4.1 Những linh kiện cần đùng -2-2222ccceScc2cvvvvvrrrrrrrrrrrrrerrerrre 66

4.4.2 Đóng gói smart CaIm€Ta -¿-+55c5+S+S+sxsxexereretererrrersred 66

Chương 5 KET LUẬN VA HƯỚNG PHAT TRIẺN - 68

5.1 _ Kết quả dat được ceccccceesecccveeeeerrxessrrrrsessrrree 68

5.2 Hướng phát triển của đề tài «c-eseccsseerssserxeserrssee 71

Trang 6

DANH MỤC HÌNH ẢNH

Hình 2.1 Kiến trúc cơ bản của FPGA -ccc2ccccccvrrrrrrrrrrrrrrrrrrrrrrrrrre 10 Hình 2.2 Kiến trúc cơ bản của MOt SOC - 6 + 12th 14 Hình 2.3 Mơ hình cơ bản của một hệ thống nhúng - : ¿5+2 16

Hình 2.9 WordTree trong YOLOV2 + 5+1 1121 1E 12 912121111111 g vưy 23

Hình 2.10 Sơ dé khối của một smart came©ra 5-52 Ss22SE2E£2EE2EE2EEtExerree 23

Hình 2.11 Smart camera HANET AI CAMERA -. -5+555c+c+cscecccescsr 25

Hình 2.12 Một số cong kết nối trên smart camera 25 Hình 2.13 Quy trình xử lý video bằng FFmpeg

Hình 2.14 Tổng quan về SSH Tunneling

Hình 2.15 Kiến trúc cơ bản của streaming video.

Hình 3.1 Các khối trong Zynq UltraScale+ MPSoC 32 Hình 3.2 Các thành phần chính trên board Ultra96-V2 -z-sz£+ 34

Hình 3.3 Sơ đồ khối của board Ultra96-V2 e2

Hình 3.4 Kiến trúc tổng quát của hệ thơng smart camera - :-:- Ữ

Hình 3.5 Quy trình streaming của nhĩm tác giả tTƯỚC -+-+-+-++-++ 38

Hình 3.6 Quy trình streaming hiện tại ¿-¿- - ¿5< 5+5 k‡x‡EEkrkekerekrrkrkrkrtee 38

Hình 3.7 Sơ đồ khối SoC tích hợp IP DPU trên FPGA -.- 3Ø Hình 3.8 Kết quả sau khi generate bitstream -2z++222++z++vvzxzerrrrrseee 40

Hình 3.9 Năng lượng tiêu thụ ¿- - - + S5 E11 11010121 01 1g uư 40

Hình 3.10 Export hardware sau khi xây dựng hệ thống - 41

Hình 3.11 Config hardware desCriD(iON + Street 42

Hình 3.12 Image packaging configuratiOn - ¿-5- 5c 25+ S+2++xtxexerexexerrree 42

Hình 3.13 Boot image s€tting -‹ ¿6 + St HH1 1100101011 001g 42 Hình 3.14 USB Gadget SuppOT + 5-5252 22t 2tr tr ưư 43

Trang 7

Hình 3.15 Enable Debug 'TWealks - - ¿kề ST H012 H01 01012 uy 44 Hình 3.16 Wilc module bitbake -. - - 52522222 S++t+xxerererkrkererrrrkrkrrer 44

Hình 3.17 Khai báo reserved MeMOTY 5+ +5+5++++S‡se£++t+x+xexerreexevee 45

Hình 3.18 Các file quan trọng được hình thành sau khi build Petalinux 47 Hình 3.19 Chương trình xử lý YOLOv2 trên FPGA - - - +5 cv 4

Hình 3.20 File smart_camera.elf trong thư mục sd_ card -. - s- sc++©+ 48

Hình 3.21 Mô hình streaming lên zoneminer bằng ffmpeg - - 50 Hình 3.22 Video streaming camera xử lý yolov2 bằng ffmpeg và rtsp 51

Hình 3.23 Giao diện Web của ứng dụng Zoneminder - - +5 2 s= 5m Hình 3.24 Giao diện đăng nhập vào Zoneminder - + +++ss+++x+rzxece 51

Hình 3.25 Giao diện chính của ứng dung Zoneminder - - + 5 +52 <s= 52

Hình 3.26 Lựa chọn ngôn ngữ tiếng việt được thêm vào hệ thống "5D 52

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

Hình 3.28 Cài đặt màn hình của Zoneminder (chung) 53

Hinh 3.29 Cai dat man hinh cua Zoneminder (nguồn) “ „54

Hình 4.1 Mô hình smart camera 5Ó

Hình 4.2 Kết quả nhận diện của Smart Camera Ultra96-V2 257

Hinh 4.3 Thoi gian va đối tượng được nhận diện - - ¿5-5 <+sec+c++xscee 57

Hình 4.4 Độ trễ với độ phân giải 1920x 1080 - cccccccccvverrerrrvrrerrrrrrrrrr 58 Hình 4.5 Độ trễ với độ phân giải 1280X720 ccccssesccssssescessseescessseescesnseseesnneceenneeees 59 Hình 4.6 Độ trễ với độ phân giải 640x480 co: 55ccccccttrirrtrtrrrrrrrrrrrer 59 Hình 4.7 Độ trễ với độ phân giải 1920x1080 với camera xử lý yolov2 60 Hình 4.8 Độ trễ với độ phân giải 1280x720 với camera xử lý yolov2 60

Hình 4.9 Độ trễ với độ phân giải 640x480 với camera xử lý yolov2 - 61 Hình 4.10 Kết nói Ethernet với board Ultra96v2 -:ccccrrtrtrrrtrrrrrrre 63

Hình 4.11 Tốc độ khi stream bằng wifi không ổn định - 64 Hình 4.12 Tốc độ khi stream bằng Ethernet khá ồn định . - 64

Hình 4.13 Các thành phần linh kiện được đặt vào hộp - e-«cx-c 66

Hình 4.14 Smart camera được đóng hộp hoàn chỉnh - - + + +x+c+sc++ 66

Trang 8

DANH MỤC BẢNG BIÊU

Bang 2.1 Các thư viện của FEmpeg - - + +55 ‡EEekkkerrrkrkrkereree 29 Bang 3.1 Các thư viện cài đặt trên Petalinux c-ccccccccerereerrreerree 45

Bang 4.1 Độ chính xác khi nhận diện người ở các độ phân giải khác nhau 57

Bảng 4.2 Tốc độ nhận diện hình ảnh ở các độ phân giải khác nhau 58

Bang 4.3 Kết qua streaming hình ảnh thuOng ccccscssscsssssssesscsssseessssseeeessseesesssseeee 61 Bảng 4.4 Kết qua streaming hình ảnh xử lý YOIOV2 ccccsssssssssssssesssssssecssssecscesssecee 62 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

Bảng 4.6 Kết quả dựa trên khoảng cách kết nối khi streaming camera hình ảnh xử lý

Yolov2 63

Bảng 4.7 Danh sách linh kiện Ĩ6

Bảng 5.1 Tổng hợp so sánh với nghiên cứu trước[7] 69 Bang 5.2 Kết qua so sánh về FPS và độ trễ trung bình khi streaming thường 69 Bảng 5.3 Kết quả so sánh về FPS và độ trễ trung bình khi streaming yolov2 70

Bang 5.4 Kết quả về FPS và độ trễ trung bình dựa trên khoảng cách kết nồi khi

streaming Xử lý yỌOV2 - - ¿©++t2%92t 2221212123921 212121121212121111111211.101111 1 re 70

Trang 9

DANH MỤC TU VIET TAT

Từ viết tắt Tên đầy đủ AHB Advanced High performance Bus

AI 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

CCl 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

DPU Deep Learning Processing Unit

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 10

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

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 11

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 giả, trường học, các công ty lớn cả trong và ngoài nước nghiên cứu, phát triển Các yếu tố cần lưu ý

khi thiết kế smart camera có thể là tốc độ thu nhận và hiển thị, độ chính xác, năng lượng tiêu tốn và giá thành sản phẩm.

Trong dé tài này, nhóm đặc biệt quan tâm đến tốc độ nhận diện của hệ thống

smart camera Nhóm sẽ sử dụng IP DPU (Deep Learning Processing Unit) - là một

khối xử lý đặc biệt được tối ưu hóa dé thực hiện các tác vụ học sâu hiệu quả và nhanh

chóng Nó cung cấp khả năng tích hợp và tăng tốc xử lý cho các mô hình học sâu phd biến như YOLO (You Only Look Once), ResNet (Residual Network), và nhiều mô

hình khác dé cải thiện tốc độ nhận diện hình anh của hệ thống smart camera Đồng

thời nhóm sẽ video streaming hình ảnh lên web server với độ trễ thấp nhằm thực hiện kiểm tra và đánh giá kết quả Người dùng có thể xem stream trên web server thông

qua kết nối wifi.

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 Design Suite, Petalinux và Vitis ), sử dụng board Ultra96-V2 trên nền tảng Zynq UltraScale+ MPSoC của nhà

phát hành Avnet Tan số hoạt động mong muốn của hệ thông đạt 100MHz.

Trang 12

Chuong 1 GIỚI THIỆU ĐÈ TAI

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

Kể từ những năm 1990, smart camera đã thu hút được nhiều sự quan tâm từ cácnhóm nghiên cứu, trường đại học và nhiều ngành công nghiệp, đặc biệt là trong cácngành sản xuất và giám sát sử dụng video Điều này có được là do smart camera manglại những lợi thế khác biệt so với máy ảnh thông thường Nó không chỉ thực hiện việcchụp ảnh thông thường 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 tất 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 đây bởi cácyế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 chiphí Ngày nay, smart camera được sử dụng trong nhiều lĩnh vực ứng dụng, đặc biệt

là trong giám sát an ninh, thị giác máy trong công nghiệp, robot, nhà thông minh

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ómmuốn nghiên cứu và cải tiễn các vấn đề ảnh hưởng đến tốc độ nhận diện, tốc độstreaming của smart camera Hệ thống smart camera có thé truyền hình anh streamingbao gồm hai chế độ: camera hình ảnh thường và camera xử lý Yolov2 nhận dạng vậtthể 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 13

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ácbà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 [1] “Object Tracking on FPGA-based Smart Camera using Local

Oriented Energy and Phase Feature’ của nhóm tác gia Ehsan Norouznezhad, Abbas Bigdeli, Adam Postula, Brian C Lovell vào năm

2010 sử dung module camera Micron MT9P001 trên FPGA Xilinx

Virtex-5 MLVirtex-506 ap dung thuat toan Histogram da thu dugc anh voi 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 câu và chuyền động Nhược điểm là cần nhiềuthời gian tính toán dé có thé xác định được đối tượng đang cần theo dõi

>

> °® Bai báo [2] “DreamCam: A modular FPGA-based smart camera

architecture” cua nhóm tác giả 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 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à

tong 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 dé 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 [3] “The Research And Implementation Of CNN

Algorithm On Zedboard Zynq-7000” của nhóm sinh viên Phan Tuấn

Thanh, Vũ Hoàng Hy năm 2020 sử dụng thuật toán YOLOv2 trên FPGA

Trang 14

,

>

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 sovới một số thuật toán xử lý ảnh khác Nhược điểm của đề tài này là chưathê 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 dé thu thập hình anh và truyền hình ảnh đến ngườixem 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ý AIvào dé nhận dạng được người có trong khung ảnh

Luận văn tốt nghiệp [5] “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 tinh toán dé

dàng, tốc độ xử lý khá nhanh (vi dit 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 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ánnhận dạng trên di liệu ảnh xám, rồi mới lay két quả nhận dạng từ anh xám

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

Luận văn tốt nghiệp [6] “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ử dung 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 lay từ smart camera Hệ thong đã 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

Trang 15

bình khi streaming P2P là 19.26 giây Ở đây nhóm tác giả đã sử dụng bộYOLOv2 có sẵn dé tích hợp lên kiến trúc SoC của smart camera và khôngquan 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 và cải

tiên.

*

>+ Luan văn tốt nghiệp [7] “Tối uu streaming cho bộ tăng tốc AI tích hợp trên

Ultra96-V2 cho smart camera” của nhóm sinh viên Võ Phúc Vinh Khang,

Lê Hoài năm 2023 sử dung smart camera trên SoC Ultra96-V2 áp dụng

thuật toán YOLOv2 Ưu điểm của đề tài này là: Thời gian trễ trên thiết bịnhận là khoảng 3-5 giây đối với straminh camera hình ảnh thường và đối

với streaming camera hình ảnh xử lý YOLOv2 là khoảng 22.7 giây với độ

phân giải full HD 1920 x 1080 Tuy nhiên nhóm vẫn muốn tiếp tục cải tiễn

dé giảm thời gian trễ này xuống thấp nhất có thê

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ôngnghệ giúp tăng tốc quá trình nhận diên vật thể của smart camera tích hợp trên hệ thongSoC (Board Ultra96-V2) Đồng thời nhóm sé streaming hình ảnh lên web server vớitốc độ cao thông qua wifi dé thuận tiện cho việc theo đõi và đánh giá kết quả Dé đáp

ứng được các yêu câu như trên, nhóm đê ra những mục tiêu cụ thê sau:

s* Nhóm sé sử dụng IP DPU (Deep Learning Processing Unit) được nhà sản xuất

Xilinx cung cấp IP DPU là một khối xử lý đặc biệt được tối ưu hóa dé thực

hiện các tác vụ học sâu hiệu quả và nhanh chóng Nó cung cấp khả năng tích

hợp và tăng tốc xử lý cho các mô hình học sâu phổ biến như YOLO (You OnlyLook Once), ResNet (Residual Network), và nhiều mô hình khác

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ộ

Trang 16

công cụ Xilinx Vivado dé dùng cho việc tổng hợp IP DPU vào hệ thống SoC

trên board Ultra96-V2 kết nối với USB Camera và module Wi-Fi

* 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 nên tảng Petalinux của Xilinx phát hành dé điều khiến hoạtđộng của cả hệ thống

# Nhóm tìm hiểu tiếp các thư viện hỗ trợ như GStreamer, OpenCV và một sỐ

phương thức lập trình Socket đề thực hiện truyền hình ảnh streaming camerathường hay camera xử lý YOLOv2 thông qua mạng kết nối Wifi

# 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 Nhóm sẽ thực hiện kiểm tra, đánh giá hệ thống, so sánh và đưa ra các kết luận

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

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

Nhóm sẽ cải tiên hệ thong smart camera giúp giảm thời gian nhận diện vật thé

từ 1.4 giây của nhóm tác giả trước[7] xuống khoảng 0.8-1 giây cho 1 hình ảnh, đồngthời cải tiến cả tốc độ video streaming camera hình ảnh xử lý yolov2 Nhóm sẽ thực

hiện video streaming ở các độ phân giải khác nhau như là 1080p, 720p, 480p, 360p

lên web server.

1.5 Kết quả mong muốn

Về tốc độ nhận diện nhóm mong muốn thời gian nhận diện vật thể của smartcamera nhỏ hơn 1 giây cho 1 hình ảnh Về tốc độ streaming camera hình ảnh thường

có thé đạt 25fps, camera hình ảnh xử lý YOLOv2 có thé đạt 1 fps đối với độ phângiải full HD Người dùng có thể xem trực tiếp kết quả bằng cách truy cập vào địa chỉ

web trên trình duyệt, hoặc dùng công cụ hỗ trợ xem video như VLC Media Player.

Trang 17

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: 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 đề ra của nhóm, những giới hạn của đề tài và kết quả mà nhómmong muốn đạt được

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

Chương nay 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 đề tài, những thông tin này dựa vào các nguồn tài liệu nhómtìm kiếm được trên Internet, tham khảo các tài liệu có sẵn trên website của khoaKTMT 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ềField Programmable Gate Array (FPGA), Hệ thống SoC (System on Chip), Hệ thống

nhúng, Thuật toán YOLOv2, OpenCV, SSH Tunnel, Streaming video.

Chương 3: Thiết kế hệ thống và hiện thực smart camera

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óaluận Giải thích nguyên lý hoạt động của cả hệ thống

Chương 4: 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ểnChươ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

Trang 18

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 19

Chuong 2 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 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:

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ênthư viện logic thì FPGA không đạt được mức độ tối ưu như những loại này và cònhạ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 ưuviệ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 chi 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ớ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êunà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ả

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

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

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

Kiến trúc cơ bản của FPGA gồm 3 thành phan chính sau: Khối I/O (hay gọi làcác pin FPGA), khối kết nối (Interconnection), các khối logic cấu hình (Logic Blocks

Trang 20

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.

là nguồn tài nguyên logic chính tạo nên các mạch 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 dòng chip củamỗ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ựctiếp hay thông qua phần tử nhớ flip-flop Ngoài khối logic cơ bản đó, nhiều chipFPGA 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, cấu hình bộ nhớ

được sử dụng trên tat 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 đó.

10

Trang 21

Khối kết nối (Interconnections): dùng để 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 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ốivớ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 đế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 á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, đầu ra hoặc cả đầu vào — ra Mỗi pin được kết nốivớ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

¢ 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 trúc 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ố hoc (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng đượcthêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng Kết quả là nhiềuFPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó

2.1.3 Ưu và nhược điểm của FPGA

¢ Uu điểm:

e_ FPGA có thể được lập trình ở mức logic Do đó, nó có thể thực hiện xử lý tín

hiệu song song và nhanh hơn hệ thống nhúng

11

Trang 22

e FPGA có thé được lập trình lại hoặc sử dụng lại bat kỳ lúc nào FPGA cũng

có thê được lập trình từ xa

e Phat triển FPGA rẻ hơn do các công cụ ít tốn kém hơn

Nhược điểm:

e Việc lập trình FPGA đòi hỏi kiến thức về ngôn ngữ lập trình VHDL/Verilog

cũng như các nguyên tắc cơ bản về hệ thống kỹ thuật số Việc lập trình khôngđơn giản như lập trình ngôn ngữ bậc cao C hay Python được điều khiển dựatrên bộ xử lý Hơn nữa, các kỹ sư cần học cách sử dụng các công cụ mô phỏng

đa dạng.

e Khi bất kỳ FPGA cụ thé nào được sử dụng, các kỹ sư cần sử dụng tài nguyên

có san trên FPGA Điều này sẽ hạn chế về kích thước thiết kế cũng như tàinguyên hao tốn Dé tránh tình huống như vậy, FPGA thích hợp cần được chọnngay từ đầu

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

2.2.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 cần

thiế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 va 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ế SoC thườngtiê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ùngmộ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ấtnhiều ứng dụng xử lý âm thanh, hình ảnh, giải mã tín hiệu,

2.2.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:

12

Trang 23

s* 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ụ quan lý toàn bộ hoạt động chính của một SoC.

CPU đảm nhiệm luéng xử lý chính trong SoC, điều phối các hoạt động giữa

các thành phần khác trong SoC, thực thi các tính toán chính Một SoC có thể

có một hoặc nhiều lõi CPU Một số lõi CPU:

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

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.

D>

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

các thành phần chức năng khác nhau trong vi xử lý Bus hệ thống giống nhưnhững con đường đề vận chuyền dữ liệu giữa các thành phần trong SoC Một

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

e AMBA (AXL AHB, APB) là chuẩn 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é phan biét voi

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à:

¢ 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

,

s* Thanh 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ư:

se 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

13

Trang 24

e 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

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 để 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, vi dụ như:

e UART: truyền nhận dữ liệu nối tiếp bất đồ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ố

Trang 25

2.2.3 Ưu và nhược điểm của hệ thống SoC

%* Ưu điểm:

e Su dụng cho các thiết bị điện tử có kích thước nhỏ như điện thoại, tablet

e SoC có mật độ tích hợp cao, nhiều chức năng nên việc làm phần cứng cho

sản pham sẽ đơn giản hơn, dé sản xuất hơn, chỉ phí thấp hơn, thời gian thiết

kế sản phẩm nhanh hơn Khi sản xuất với số lượng đủ lớn, giá thành sẽgiảm xuống một cách đáng kể

e Sản phẩm sử dung SoC tiết kiệm năng lượng hơn so với các sản phẩm cùng

chức năng nhưng không dùng SoC vì số lượng linh kiện lớn hơn, boardmạch làm phức tạp hơn Khi sản pham các có nhiều chức năng thi đặc điểm

này sẽ ngày càng thấy rõ hơn

s* Nhược điểm: Một loại SoC khó đáp ứng được nhu cầu của nhiều loại sản phẩm

khác nhau Chính vì vậy, mỗi hãng thiết kế và sản xuất chip đều có nhiều dòngSoC khác nhau, mỗi dòng sẽ đáp ứng một phân khúc sản phẩm nhất định vàtối ưu nhất cho phân khúc sản phẩm này Tối ưu ở đây được hiểu là số lượngchức năng mà chip được tích hợp là vừa đủ Quá nhiều chức năng sẽ khiến giáthành của chip tăng cao dẫn đến giá sản phẩm cũng tăng trong khi một vàichức năng lại không được dùng đến Quá ít chức năng thì không đáp ứng được

nhu câu ứng dụng của sản phâm

2.3 Hệ thống nhúng

2.3.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 đữ liệu trong các hệ thong thiét bi

điện tử khác nhau Các hệ thống nhúng là sự kết hợp giữa phan cứng va phần mềm,

ở đây phần mềm được nhúng vào phan 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à

15

Trang 26

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.3 mô tả mô hình cơ bản của một hệ thống nhúng

User Interface

Embedded Computer

Input Variables —— Software ———*> Output Variables |

Hardware

Link to Other Systems

Hình 2.3 Mô hình cơ ban của một hệ thong nhúng

2.3.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 tinh

và nạp vào một hệ thong khac bao gom một hoặc nhiều bộ vi xử lý đã được cài đặtsẵ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ầncứng khác Phần mềm nhúng là phần mềm tạo nên phan hôn, phan trí tuệ của các sảnphẩ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.3.3 Phần cứng của một hệ thống nhúng

Hệ thống nhúng sử dụng nền tảng phần cứng dé thực thi các hoạt động Phancứ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

phần cứng này bao gồm các yếu tố như giao diệ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 thi dit 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ớ

16

Trang 27

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

© 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

Output Interfacing! Driver Circuits

Hình 2.4 Phan cứng của một hệ thống nhúng

2.3.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ân hoặ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

17

Trang 28

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ài

nguyên Số liệu thiết kế là thước đo để đánh giá việc xây dựng các tính năng như độ

lớn, công suất, chỉ 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êuthụ í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ương tácliê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ờigian thực với độ trễ cực thấp hoặc hầu như không có

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 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 phần 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.5 Ưu và nhược điểm của hệ thống nhúng

s* Ưu điểm:

e Đơn giản dé mang lai su sang tao cao

e Một số hệ thông nhúng không cần nhiều kết nối bên ngoài

© Có tốc độ ôn định tốt và cao

e Dễ sử dụng cho một việc cố định

e Đa năng, dễ di chuyên với kích thước nhỏ

e Độ chính xác tốt hơn trong kết qua

> * °® Nhược điêm:

e Nếu đã cài đặt và chạy những ứng dụng cụ thé, hệ thống nhúng khó có thé

nâng cấp và cải tiến về mặt phần cứng hoặc hiệu năng

e Nếu gặp sự có, cần phải cài đặt lại tat cả và sẽ khó khăn trong việc debug

dé tìm lỗi.

18

Trang 29

e©_ Bộ nhớ có thé bi giới hạn, nếu hệ thống nhúng càng mạnh về CPU hoặc

GPU, giá thành sẽ tang tương ứng

2.4 Thuật toán YOLOv2

YOLOv?2 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) Cai 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.4.1 Batch normalization

Kỹ thuật Batch Normalization được đưa vào sau tat cả các lớp convolution củaYOLOv2 Kỹ thuật này không những giảm được thời gian huấn luyện mà còn có tácdụng tăng tính phổ quát (generalize) cho mạng Ở YOLOv2, Batch Normalizationgiúp tăng mAP lên khoảng 2% Mạng cũng không cần sử dụng thêm Dropout để tăngtinh phổ quát

2.4.2 High resolution classifier

YOLOv2 được huấn luyện với hai pha Pha đầu sẽ huấn luyện một mạngclassifier với ảnh đầu vào có kích thước nhỏ (224x224) và pha sau sẽ loại bỏ lớp fullyconnected và sử dụng mang classifier này như phần khung xương (backbone) dé huấnluyện mạng detection Ảnh đầu vào kích thước nhỏ cũng thường được sử dụng để

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ẽ finetubemạng backbone dưới ảnh đầu vào có kích thước lớn hơn là 448x448 trước tiên đểmạng hiểu được các kích thước ảnh đầu vào lớn hơn, sau đó sử dụng kết quả này déhuấn luyện cho quá trình detection Điều nay giúp tăng mAP (mean Average

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

19

Trang 30

2.4.3 Kiến trúc Anchor Box

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

tác giả đã sử dụng kiến trúc anchor box dé 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.4.4 K-means clustering

Thay vi phải chon anchor box bang tay, YOLOv2 sử dung thuật toán K-means

dé đưa ra các lựa chon anchor box tốt nhất cho mạng Việc nay giúp tao ra meanIntersection Over Union tét hon

2.4.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 ngẫu 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ử dung ham sigmoid (ø) dé hạn chế giá tri 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 huan luyện YOLOv2 đã có thêm 5% mAP khi áp dụng

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

Trang 31

2.4.6 Fine-grained feature

YOLOv?2 sử dung feature map 13x13 dé đưa ra các dự đoán, lớn hon feature

map 7x7 của YOLOv1 YOLOv2 kết hợp các feature map ở các tầng khác nhau dé

đưa ra dự đoán Cụ thê là kiến trúc nguyên bản của YOLOv2 kết hợp feature map26x26 lay từ đoạn gan cuối với feature map 13x13 ở cuối dé đưa ra các dự đoán Các

feature map này sẽ được ghép vào nhau (concatenate) dé tạo thành một khối sử dụngcho các dự đoán Hình 2.6 mô tả kiến trúc của YOLOv2

2x3x 1024]

Hình 2.6 Kiến trúc YOLOv2

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 dài Và dé có thé concatenate được với nhau thì 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ành13x13 với chiều sâu lớn hơn dé có thé thực hiện phép concatenate với feature map

13x13 ở cuối Hình 2.7 mô tả kỹ thuật Reorg trong YOLOv?2

21

Trang 32

2.4.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ế chỉ 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 kha năng xử lý của YOLOv2 với da dạng kích thước ảnh.

2.4.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 hơn

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

Type Filers | 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 512 3x3 14 x 14 Convolutional 256 1x1 14x 14

Convolutional 512 3x3 14 x 14

Maxpool 2x2/2 7x7

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

Ngoài ra, YOLOv2 con đư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 để 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.9 giới thiệu WordTree trong YOLOVv2.

22

Trang 33

biplane jet airbus stealth golden potato _—felt sea American

fighter fern fern fern lavender twinflower

Hinh 2.9 WordTree trong YOLOv2

2.5 Smart camera

Smart camera đã được ứng dung trong công nghiệp được hon hai thập kỷ, nhưng

những tiến bộ trong công nghệ vi xử lý đã làm cho thiết bị này trở nên dễ tiếp cận vàphô biến hơn, đặc biệt là trong các lĩnh vực như giám sát và thị giác máy tính Thuậtngữ smart camera có nhiều định nghĩa khác nhau, tuy nhiên mọi người đều thốngnhấ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 co bản được biểu diễn ở Hình 2.10.

Hình 2.10 So đồ khối của một smart camera

23

Trang 34

Tuy nhiên, ngay cả máy ảnh kỹ thuật số thông thường cũng có sẵn một số bộ

xử lý hình ảnh để chỉnh sửa các hiệu ứng, loại bỏ các phần thừa, nhận diện khuôn

mặt, sử dụng bộ lọc hình ảnh hoặc thực hiện các tính năng xử lý ảnh khác Vì thế,

một máy ảnh bao gồm bộ xử lý cùng với cảm biến hình ảnh không được gọi là smart

camera.

Không giống với hầu hết các máy ảnh thông thường, output của smart camera

không phải là hình ảnh mà là một thông tin hoặc một lựa chọn Vì thuật toán xử lý

ả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ầnphải truyền sang máy tính hoặc các thiết bị khác Thay vào đó, kết quả 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 điêm cơ bản sau:

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

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 phan 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 anh: Ban 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.

* Phan mềm: Hau hết các smart camera ngày nay đều được cài đặt các phần

mề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

24

Trang 35

bụi Hình 2.11 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 hop sử dụng dé cham công nhân viên trong công ty hoặc sử dụng làm

camera an ninh.

Hình 2.11 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úpkế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.12 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.12 Một sô công kết nôi trên smart camera

25

Trang 36

Khả 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ất cao nên nó luôn là mộtlựa chọn hàng đầu cho các ứng dụng về thị giác máy tính

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 tinh, máy học và xử lý anh 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

phô biên có săn như:

s* Core functionality (core) — module nhỏ gọn đê 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 ảnh

tuyến tính và phi tuyến (linear and non-linear image filtering), phép biến đổi

hình học (chỉnh size, afin và warp phối cảnh, ánh xạ lại dựa trên bảng chung),

chuyên đổi không gian màu, biểu đồ, và nhiều cái khác

s* 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 học đa

chiêu cơ bản, hiệu chuân máy ảnh single và stereo (single and stereo camera

26

Trang 37

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 tính nổi bật của bộ

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

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

s* Video I/O (videoio) — giao điện dễ dùng dé 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 FFmpeg

FEmpeg là một framework hàng đầu về đa phương tiện (xử lý audio, video).

Nó có thể decode (giải mã), encode (mã hóa), transcode (chuyên mã), mux (ghép

kênh), demux (phân kênh, tách kênh), stream (ví dụ như livestream trên youtube,

facebook, ), filter (lọc) và play (chạy, phát video) rất nhiều thứ mà con người hay

máy móc tạo ra.

FFmpeg hỗ trợ hầu hết các định dang Và nó khá là linh hoạt, có thé compile,run và chạy trên nhiều nền tảng như Linux, Mac OS X, Microsoft Windows, BSD,

Solaris, va ở trên nhiêu môi trường, kiên trúc khác nhau.

Hình 2.13 mô tả quy trình xử lý video bang FFmpeg Video đầu vào sẽ được

phân tách thành dữ liệu hình ảnh và dữ liệu âm thanh, trải qua các quá trình decode,

encode sau đó được gộp lại thành video hoàn chỉnh ở đầu ra

27

Trang 38

Hình 2.13 Quy trình xử lý video bang FFmpeg

2.7.1 Cac công cu xử ly audio, video của FFmpeg

FFmpeg cung cấp sẵn cho người dùng những tiện ích là: ffmpeg, ffserver,

ffplay và ffprobe.

e ffmpeg: Tiện ích dựa trên command line giúp người sử dụng chuyên đôi định

dạng tệp tin (hỗ trợ rất nhiều định dạng khác nhau)

e ffserver: Server cho việc streaming.

e ffplay: Một chương trình đơn giản giúp chạy, phát video dựa trên thư viện

SDL và ffmpeg.

e ffprobe: Một chương trình đơn giản giúp phân tích việc stream các tệp tin da

phương tiện.

2.7.2 Các gói thư viện của Ffmpeg

FFmpeg có chứa các thư viện libavcodec, libavutil, libavformat, libavfilter,

libavdevice, libswscale và libswresample có thé sử dụng bởi các ứng dụng Bảng2.1 mô tả chỉ tiết các thư viện mà FFmpeg hỗ trợ

28

Trang 39

Bảng 2.1 Các thư viện của FFmpeg Thư viện Mô tả

libavutil Một thư viện chứa các ham cho việc đơn giản chương trình,

bao gồm việc sinh ra số ngẫu nhiên, cấu trúc dữ liệu, chương

trình toán học, tiện ich đa phương tiện cơ bản,

libavcodec Một thư viện chứa bộ encoder (mã hóa) và decoder (giải mã)

cho audio/video.

libavformat Thư viện chứa bộ demuxer (phân kênh) và muxer (ghép kênh)

cho những định dạng đa phương tiện.

libavdevice Thư viện chứa những thiết bị đầu vào và đầu ra cho việc lây

vào hay xuất ra nội dung đa phương tiện với những phần mềmphô biến như Video4Linux, Video4Linux2, VfW, and ALSA

libavfilter Thu vién cho viéc loc videolibswscale Thư viện cho việc tối ưu hóa ảnh về co dan, mau sắc,

libswresample Thư viện cho việc tối ưu hóa về việc lay mẫu lai audio,

2.8 SSH Tunnel

Secure Shell (SSH) là một giao thức mã hoá thường được sử dụng dé truy nhập

vào các máy chủ từ xa (đặc biệt là các máy chu Linux) Hau hêt các máy chu Linux

đều được cài đặt mặc định một chương trình SSH Server như OpenSSH hay

Dropbear, sẵn sàng phục vụ các kêt nôi tới công mặc định 22 Nó cung câp một cách

dé bảo mật luồng dữ liệu của ứng dụng bằng cách sử dung port forwarding, về cơ bản

là tạo một đường ham cho bat kỳ port TCP/IP nào thông qua SSH Điều này có nghĩa

là luồng dữ liệu bên trong kết nối SSH được mã hoá dé không thé bị nghe trộm hoặc

bị chặn lại trên đường truyền.

SSH tunneling là một phương pháp vận chuyền dữ liệu mang tùy ý qua kết nốiSSH được mã hóa Nó có thé được sử dụng để thêm mã hóa cho các ứng dụng kế

29

Trang 40

thừa Nó cũng có thé được sử dụng dé triển khai VPN (Mạng riêng ảo) và truy cập

các dịch vụ mạng nội bộ qua tường lửa.

Hình 2.14 thé hiện tong quan về SSH tunneling Kết nối an toàn qua mạng

không tin cậy được thiết lập giữa máy khách SSH và máy chủ SSH Kết nối SSH nàyđược mã hóa, bảo vệ tính bí mật và tính toàn vẹn, đồng thời xác thực các bên giao

tiép với nhau.

APPLICATION SERVER

SSH SERVER =>

<—=

Hình 2.14 Tổng quan về SSH Tunneling

2.9 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 đữ 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ãi trongthự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,

quan lý và điều khiến trong các doanh nghiệp, cơ quan, tổ chức trở nên dé dàng 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ệ thống 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 mang Internet Các nội dung này có thé là chương trình TV, phim ảnh, video

30

Ngày đăng: 02/10/2024, 04:17

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

TÀI LIỆU LIÊN QUAN