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: Bộ tăng tốc AI tích hợp trên Ultra96-V2 cho smart camera

85 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 đề Bộ tăng tốc AI tích hợp trên Ultra96-V2 cho smart camera
Tác giả Nguyễn Tiến Bảo, Nguyễn Phan Hoàng Đức
Người hướng dẫn Tiến sĩ Nguyễn Minh Sơn
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 85
Dung lượng 49,88 MB

Nội dung

Nhóm muốn sử dụng nên tang System on Chip dé xây dựng một hệ thống smart camera streaming hình ảnh qua kết nối không dây với độ trễ thấp và tiệm cận được với thời gian thực.. Việc áp dụn

Trang 1

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

KHOA KY THUAT MAY TÍNH

NGUYEN TIEN BAO NGUYEN PHAN HOANG DUC

KHOA LUAN TOT NGHIEP

BO TANG TOC AI TICH HOP TREN ULTRA96-V2 CHO

Trang 2

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

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

NGUYEN TIEN BẢO - 18520492 NGUYEN PHAN HOANG DUC - 18520614

KHOA LUAN TOT NGHIEP

BO TANG TÓC AI TÍCH HOP TREN ULTRA96-V2 CHO

SMART CAMERA

AI ACCELERATION ON FPGA ULTRA96-V2 FOR SMART

CAMERA

KỸ SƯ NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN TIEN Si NGUYEN MINH SON

TP HO CHi MINH, 2022

Trang 3

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

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 528/QD-DHCNTT

ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LOI CAM ON

Lời đầu tiên chúng em xin gửi lời cảm ơn 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 Hoc 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 than 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ý 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 04 tháng 08 năm 2022

Sinh viên thực hiện

Nguyễn Tiến Bảo Nguyễn Phan Hoàng Đức

Trang 5

MỤC LỤC

Chương l GIỚI THIỆU DE TÀI -cccc:¿5222cvvvevrtrrrrrrrecee 2 1.1 Lý do chọn đề tài 222-2222 2222122222111122221122211112222111 E111 cerrree 2 1.2 Một số nghiên cứu liên quan -2+++222Vvv+++etttEEEvvvrrrrrrtrrrrrrree 3

1.2.1 _ Nghiên cứu ngoài nưỚC - + 5+ srrterrkskekrkrkrkrrreree 3 1.2.2 Nghiên cứu trong nưỚC -¿- +5 sksevEkrekerekekrkrrkrrrreree

13 Mục tiêu đề tài cute 5 1.4 Giới hạn để tài -:-22222c 2222112222111 2222111122211112211112.21111 1111 cce 6 1.5 Kết quả mong muốn -:-++++22E2++222EES++22222E22221111222211 222L 6

1.6 Bố cục luận văn -2¿-22222+2222E+22221111222211222111122221111 21.11 cerrrve 6

2.3.2 Cấu trúc phần cứng của một SoC - : -c+ssc+cz+scee 4

2.4 Smart CaI€TA óc 11h ST H1E1211 1 TH HH Hư 6

Trang 6

2.5 áo 04909 722 d- 20 2.5.1 Batch normalization.

2.5.2 High resolution clasSifIer -¿- set 20

2.5.3 Kiến trúc Anchor Box.

2.5.4 K-means cÏus(€ring 6S ngư 21 2.5.5 Direction location prediction.

2.5.6 Fime-grained ÍeatUre cv giờ 22 2.5.7 Multi-scale training

2.5.8 Light-weight backbone ee eseesesesesteseseetsesteneseeneeaees 23 2.6 Open 0 000+++-s sgt gers anagc GO .ssssscscseescsssssssssousesssssoseeees 25

2.7 Streaming videO 6c St St St t2 E2 2191011121212101.1411 1.1 de 26 2.8 FEmpeg ⁄ ie Mr x£ LH Hyun 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 ¿- -ccccscecxseseersre 28 2.9 SSH Tunnel - 5c 2 2S 1912 11212121 1112111211111 re 29

Chương 3 THIẾT KE HỆ THÓNG -¿:2+++222++z++2cvvvrrsrrvrree 31 3.1 Ý tưởng dé xuất cho hệ thống . ¿¿£©2++++22E++vrttvvvvrrsrrrsrrrrrr 31 3.2 Thiết kế tổng quát của hệ thống -.-.-c:¿¿-222©cvvv+eettrrrrrrrrrrrrrrrrr 31 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 z c2 Al

3.5.1 Streaming phạm vi local đối với camera hình ảnh thường 41 3.5.2 Streaming phạm vi local đối với camera hình ảnh xử lý YOLOv2 43 3.5.3 Streaming phạm vi Internet đối với camera hình ảnh thường 43

Trang 7

3.5.4 Streaming phạm vi Internet đối với camera hình ảnh xử lý YOLOv2

45

3.6 Xây dựng chương trình thực thi bằng công cụ Vitis 2019.2 46 Chương4 HIỆN THỰC, THỰC NGHIỆM VÀ ĐÁNH GIA KET QUA 48

4.1 Zynq UltraScale+ MPSoC

4.2 FPGA Ultra96-V2 Set H122 49 4.3 Petalinux 2019.2

4.4 Kịch bản thực nghiệm và phương pháp đánh giá - - 5555 58

44.1 Kịch bản thực nghiệm

44.2 Phương pháp đánh giá - St setekererrrrrirerrrereek 58

4.5 Két quả thực nghiém

4.5.1 Kết quả nhận diện 22¿c5222++teccvvrreetrrvrrerrrrrrrrrr 59 4.5.2 Tốc độ nhận diện cccccscccckrreerirtrtrrrrrrrrrrrrrrer 59 4.5.3 Kết quả thực nghiệm khi streaming phạm vi Local 60 4.5.4 Kết quả thực nghiệm khi streaming phạm vi Internet 62

4.6 Đánh giá hệ thống 22¿-22222222222111122221112212111222111 E1 ccrrkeg 63

Trang 8

DANH MỤC HÌNH

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

Hình 2.2: Mô hình cơ bản của một hệ thống nhúng 2 25 + s2 s+£s25+2 11

Hình 2.3: Phan cứng của một hệ thống nhUing oo essessessessessesessessessessessesseeee 13Hình 2.4: Kiến trúc cơ bản của một SOC - - + kk‡EE+E+EEEEEEEEEEEEEkeErkererrrrs 16Hình 2.5: Sơ đồ khối của MOt SMALE CaIT€TA - 2c <5 52232221 E£+++eeveessssse 17

Hình 2.6: Smart camera HANET AI CAMERA .- - cc SH re, 19

Hình 2.7: Một số công kết nối trên smart camera :- ¿2£ 5z2++2£++2s++zsz 19

Hình 2.8: Dự đoán bounding box của YOUOV2 5 3 + seeresereersrrrre 22

Hình 2.9: Kiến trúc YOLOV2 22+c222vx2221 t2 tri 22

Hình 2.10: Kỹ thuật Reorg trong YOLOV2 - 5 111k tr, 23

Hình 2.12: WordTree trong YOLQV2 - <1 199 1 HH kg nh 24

Hình 2.13: Kiến trúc cơ bản của streaming video - 2 2 s+x+zxz+£z+zxsrxzsz 27

Hình 2.14: Quy trình xử lý video bằng FEmpeg - 2-2 2+2 +szx+zx+rserszsez 28

Hình 2.15: Tổng quan về SSH Tunneling 2 2 s2 +2 +2 £+E£+Ee£Eerxerxzrszxez 30Hình 3.1: Mô hình trực quan của hệ thống 31Hình 3.2: Thiết kế tong quát của hệ thong cceccccscessesssesssesssecssesseessecssecsseeseessecsseess 32Hình 3.3: Sơ đồ khối SoC tích hợp IP YOLOv2 trên FPGA -2-5¿ 33Hình 3.4: Kết quả sau khi generate bitstream của nhóm tác giả [I] . 35Hình 3.5: Cau hình strategy mặc định cho quá trình Synthesis - - 37Hình 3.6: Cấu hình strategy mặc định cho quá trình Implementation - 37

Hình 3.7: Worst Negative Slack (WNS) có giá tri âm - -«cc«csscssssessee 38

Hình 3.8: Cau hình strategy mới cho quá trình Synthesis -¿ 5¿ 5+ 38Hình 3.9: Cau hình strategy mới cho quá trình Implementation 39Hình 3.10: Kết quả sau khi generate bitstream của nhóm s22 s2 40

Hình 3.11: Năng lượng tiêu thụ của nhóm tác giả [1] -+-s<++<<++see+ssss+ 40 Hình 3.12: Năng lượng tiêu thụ của nhóm - ¿+ + *+k+veereeeeeeerereere 41

Trang 9

Hình 3.13: Mô hình xử ly streaming bằng ffmpeg -¿-cs¿©cscc+cc++ 42

Hình 3.14: Streaming thông qua giao thức SFTP ở phạm vi local 43

Hình 3.15: Mô hình streaming lên zoneminer bằng ffmpeg - 44

Hình 3.16: Streaming hình ảnh xử lý YOLOv2 phạm vi Internet 45

Hình 3.17: Chương trình xử lý YOLOv2 trên FPGA - c5 c2 <+sssssee 46 Hình 3.18: File smart_camera.elf trong thư mục sd_ card - « -s«++sss++ 47

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

Hình 4.4: Config hardware đ€SCTIDIOH - ó5 S13 vn ng ngư 52 Hình 4.5: Image packaging COnÍiØUT8fIOI <5 + E1 1E E+EESeeEeeeeeeeeeereere 53

Hình 4.6: Boot image setting - SG 1121111211111 21H TH HH ng net 53 Hình 4.7: USB Gadget Support cece eee 2112 93 1 HT Hư 54 Hình 4.8: Enable Debug Tweaks - - + kg HH HH giết 55

Hình 4.9: Wilc module bitbake - - - s3 11 91 931 9119 1 vn ng ng tr 55

Hình 4.10: Khai báo reserved Memory :.ceccceesccesseeeseeeeeeeseecececeaeeesaeeeseeeenessaes 56

Hinh 4.11: Két quả nhận diện của Smart Camera Ultra96-V2 - «+ s«++<s+ 59

Hình 4.12: Tốc độ nhận diện của nhóm tác fea ee à S2 S2 sSSsseeersseeesereeere 60Hình 4.13: Tốc độ nhận diện của nhóm - 2 + x+£EE+E++E£EE+E£EE+EeExererxererxrrs 60Hình 4.14: Ảnh chụp khi streaming hình ảnh thường 2- ¿525252 61Hình 4.15: Ảnh chụp khi streaming hình ảnh xử lý YOLOv2 - 61Hình 4.16: Ảnh chụp khi streaming hình ảnh thường 2 ¿5 52 s52 +2 62Hình 4.17: Ảnh chụp khi streaming hình ảnh xử lý YOLOv2 2: 5+ 63Hình 4.18: Đóng gói sản phẩm -¿- 2-22 5¿+EE+2EE£EEE2EEE2EEE2EEE2EESEErrrrerrrsree 68Hình 4.19: Đóng gói sản phẩm ¿- 2-22 S222 2EE2EEE2EE22EE2EEEEEESEErrrkrrkrcree 68

Trang 10

DANH MỤC BANG

Bảng 2.1: Các thư viện của FÏFmp€Ø -c + c 3111391113911 E1 EeErreerere 29

Bảng 3.1: Tần số ước lượng của nhóm tác giả [ ] -: -¿-2©5z2-x++cx+zs+e=s+ 34Bảng 3.2: Tài nguyên sau khi tổng hợp YOLO2_FPGA của nhóm tác giả [1] 34

Bang 3.3: Timing report của nhóm tac gia [ Ï] - - 56 + £++vE+seEseeeeeseeesee 35

Bảng 3.4: Tần số ước lượng của IP YOLO2_FPGA mới -. ¿- 55552 36

Bảng 3.5: Tài nguyên ước lượng sau khi tổng hop IP mới s52 s2 36

Bảng 3.6: Timing report Của nhÓim - - + + 1113911391119 11 911 9 ve 39

Bang 4.1: Luông thiết kế petalinux - +: 5c 5£2S£+EE+EE£EE+2EE+EEeEEerkerrkrrkerkeree 51

Bảng 4.2: Các thư viện cai đặt trên PetaÌinuxX - - - 5c + *+k+kEseeeserssrsee 56

Bảng 4.3: Kết quả streaming phạm vi local - 2-2 s2£2£+£x+£xezE+zzzrxerxezez 64

Bảng 4.4: Kết quả streaming phạm vi Internet -¿- 5c ©s©sz+zx2z++zxesrsz 65

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

00019)1151009:101201 10Ẻ 110077 65

Bang 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 ở phạm Vi ÏOCaÌL - 6 6 + 3 x1 x1 1 1n ng ng tư 66

Bảng 4.7: 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 Ïnf€TTK - c2 3211311311121 111 11119311111 11T 1 HH ng rưy 66

Bang 4.8: Kết qua dựa trên khoảng cách kết nối khi streaming camera hình ảnh xử

lý YOLOv2 ở phạm vi ÍT(€TTIGK - G1 1121118910111 1119 11 9 11g ng ng krry 67

Bang 4.9: Đánh giá FPS giữa xem trực tiếp và xem lại video streaming 67Bảng 5.1: Tông kết và so sánh với một số nghiên cứu trước đó trong nước 69

Trang 11

DANH MỤC TỪ VIET TAT

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

AHB Advanced High performance Bus

Al Artificial Intelligence

ALU Arithmetic Logic Unit

APB Advanced Peripheral Bus

APU Application Processing Unit

ARM Advance RISC Machines

ASIC Application Specific Integrated Circuit

AXI Advanced eXtensible Interface

CCI Cache Coherent Interconnect

CNN Convolutional Neural Network

Core SW Core SoftWare

CPU Central Processing Unit

DDR4 Double Data Rate fourth generation

DMA Direct Memory Access

DRAM Dynamic Random Access Memory

DSP Digital Signal Processor

Trang 12

FPGA Field-Programmable Gate Array

FPS Frame Per Second

GPU Graphics Processing Unit

HDL Hardware Description Language

HLS High Level Synthesis

HOG Histogram of Oriented Gradients

LPDDR4 Low Power Double Data Rate fourth generation

LUT Look Up Table

OpenCV Open source Computer Vision library

PL Programmable Logic

PS Processing System

RAM Random Access Memory

Trang 13

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 14

TOM TAT KHÓA LUẬN

Ngày nay, những tiến bộ trong công nghệ vi điện tử đã giúp con người có thểtích hợp được nhiều hệ thống phức tạp trong một thiết bị duy nhất Smart cameracũng là một phần của quá trình phát triển này và có thê được định nghĩa là một hệthống được tích hợp thêm nhiều chức năng: truyền tải hình ảnh qua kết nối khô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ườnghọ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 các vấn đề ảnh hưởng đến tốc

độ của một hệ thống smart camera Nhóm muốn sử dụng nên tang System on Chip

dé xây dựng một hệ thống smart camera streaming hình ảnh qua kết nối không dây

với độ trễ thấp và tiệm cận được với thời gian thực Smart camera sẽ tích hợp thêm

thuật toán YOLOv2 xử lý ảnh trên phần cứng FPGA, kết hợp bộ xử lý core ARM

và một số module khác dé điều khién và truyền dit liệu Người dùng có thé xem kếtquả trên màn hình hiển thị thông qua một Wifi Access Point modem

Nhóm đề xuất thiết kế hệ thống smart camera trên bộ công cụ phần mềmVivado phiên bản 2019.2 của Xilinx (bao gồm: Vivado HLS, Vivado Design Suite,Petalinux, Vitis), sử dung board Ultra96-V2 trên nền tảng Zynq UltraScale+

MPSoC của nhà phát hành Avnet Tần số hoạt động mong muốn của hệ thống đạt300MHz và có thé đáp ứng được tỉ lệ khung hình full HD ở độ trễ thấp nhất

Trang 15

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

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

Ngày nay, với sự phát triển 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ụngnhiề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ómnghiê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ôngthường, nó không chỉ thực hiện việc chụp ảnh mà còn phân tích hình ảnh để 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 anhtrự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âydựng dựa trên những tiễn bộ dat được trong công nghệ bán dẫn, kỹ thuật thị giácmáy tính và được thúc đây bởi các yếu tố kinh tế - xã hội như độ an toàn, bảo mậtgiúp tăng năng suất và tiết kiệm chi 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 tốc độ thuật toán xử lý và kỹ thuật video streamingcho smart camera dé có thé truyền hình ảnh streaming (bao gồm hai chế độ: camerahình ảnh thường và camera xử lý thuật toán nhận dạng vật thể) thông qua WifiAccess Point, với một độ trễ thấp và có khả năng đáp ứng khung hình Full HD

Trang 16

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 dai học, công ty, tập đoàn lớn

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

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

s* Bài báo [4] “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 su 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ângiải 640 x 480 Ưu điểm của hệ thống này là nó có thể phân loại được nhiều

đối tượng khi thực hiện hoạt động theo dõi, giám sát bao gồm màu sắc, hình

dạng, kết cấu và chuyển động Nhược điểm là cần nhiều thời gian tính toán

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

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

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

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

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

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

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

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

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

Luận văn tốt nghiệp [2] “The Research And Implementation Of CNNAlgorithm On Zedboard Zyng-7000” của nhóm sinh viên Phan Tuấn Thành, Vũ

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

Ưu điểm của thuật toán này là độ chính xác cao, có thể nhận diện được nhiều vậ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 17

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

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

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

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

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

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

khung ảnh.

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

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

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

đó chạỹ thuật toán nhận dạng trên dữ liệu ảnh xám, rồi mới lấy kết quả nhận dạng

từ ảnh 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 [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

đề tài này đã tích hợp được thuật toán YOLOv2 để xử lý hình ảnh lấy từ smartcamera Hệ thong đã nhận diện được vat 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ó san dé 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 và cải tiến

Trang 18

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

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

tốc độ xử lý của khối YOLOv2 tích hợp trên smart camera, nhóm cũng nghiên cứu

các công nghệ giúp nâng cao khả năng streaming video cua 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 Dé đáp ứng được các yêu câu như trên, nhóm dé ra những mục tiêu cụ

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

trên Ultra96-v2 cho Smart Camera” của nhóm tác giả Bùi Nguyễn Phát và Lê

Minh Huy dé nghiên cứu, phục vụ cho việc cải tiễn tốc độ của hệ thong

smart camera.

Tiếp theo nhóm tìm hiểu board Ultra96-V2 của Avnet phân phối dựa trên hệ

thống Zynq UltraScale+ MPSoC do Xilinx phát hành Nhóm tìm hiểu thêm

bộ công cụ Xilinx Vivado (bao gồm Vivado HLS, Vitis, Vivado DesignSuite) để dù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.

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

Ultra96-V2 bằng công cụ Petalinux của Xilinx phát hành dé điều khiển hoạt

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

Tiếp theo nhóm nghiên cứu các yếu tố phần cứng ảnh hưởng đến tốc độ thuậttoán để tìm ra phương pháp cải tiến tốc độ xử lý của hệ thống

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

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

Cuối cùng nhóm viết các chương trình phần mềm bằng Vitis và nạp lên hệ

điều hành Linux trên board Ultra96-V2 dé điều khiến hoạt động hệ thống Nhóm sẽ thực hiện kiểm tra hệ thống, đánh giá và đưa ra các kết luận dựa

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

Trang 19

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 đối với việc streaminghình ảnh xử lý YOLOv2, nhóm sẽ thực hiện truyền từng frame hình ảnh chứ chưa

thé truyền luồng dữ liệu bit, điều này sẽ gây thêm 1 khoảng độ trễ cho việc lưu

frame ảnh thành file JPEG Ngoài ra, việc tích hợp xử lý camera hình ảnh YOLOv2

với tốc độ hoạt động toàn bộ hệ thống có thé thấp hơn các hệ thống smart camera sử

dụng các thuật toán AI khác.

1.5 Kết quả mong muốn

Ở đề tài này nhóm sẽ tập trung vào việc 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 chỉ ip của server

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

để lấy luồng video streaming về coi Đối với camera hình ảnh thường, độ trễ mongmuốn trên thiết bị nhận nhỏ hơn 5 giây, tốc độ hién thị khung hình trung bình lớnhơn 2 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ể tăng tốc độ xử lý của thuật toán lên trên300MHz, độ trễ khi streaming video ở độ phân giải full HD 1920 x 1080 trên thiết

bị đầu cuối nhỏ hơn 30 giây và tốc độ hiển thị khung hình trên 0.25fps

1.6 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 dau tiên sẽ giới thiệu tông quan vê dé tài khóa luận, lý do nhóm chọn đê tài này, mục tiêu đê ra của nhóm, những giới hạn của đê tài và kêt quả thực hiện mà nhóm đạt được.

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

Trang 20

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 đề tài, những thông tin này dựa vào các nguồn tài liệunhóm tìm kiếm được trên Internet, tham khảo các tài liệu có sẵn trên website củakhoa KTMT cũng như những góp ý của các thầy cô, anh chị bao gồm: kiến thứcchung về FPGA, smart camera, tìm hiểu về các kỹ thuật streaming video dé từ đó cóthé chon ra kỹ thuật phù hợp nhất với mục tiêu đề ra ban đầu của đề tài, 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 nay 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: 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àynhóm sẽ đưa ra đề xuất cho những hướng phát triển tiếp theo của đề tài trong tương

lai.

Trang 21

Chương2 CƠ SỞ LÝ THUYET

2.1 Field Programmable Gate Array (FPGA)

2.1.1 Dinh nghĩa

FPGA là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phan tử logic 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ấtphúc tạp của nhà máy bán dẫn Vi mạch FPGA được cấu thành từ các bộ phận:

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

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

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

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

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

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

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 (con gọi là mã RTL).

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

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

là các pin FPGA), khối kết nối (Interconnection), các khối logic cau hình (Logic

Trang 22

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

Lo

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

Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phan tử

nhớ cơ bản được sử dụng trong hệ thống số CLBs là phần tử cơ bản cấu thànhFPGA, là nguồn tài nguyên logic chính tạo nên các mach logic đồng bộ lẫn khôngđồng bộ Một CLB cơ bản gồm một mạch tổ hợp có thể lập trình (còn gọi là LUT),một Flip-Flop hoặc một chốt (latch) LUT (Look Up Table) là khối logic có thé thựchiệ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ủ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 phần tử nhớ flip-flop Ngoài khối logic cơ bản đó,nhiều chip FPGA hiện nay còn có một hỗn hợp các khối khác nhau, một số trong đóchỉ được dùng cho các chức năng cụ thể, chăng hạn như các khối bộ nhớ chuyên

dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers) T ất nhiên,

Trang 23

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 dé tạo thành một thiết kế hoàn chỉnh Mạng liên kết trong FPGA được cấuthà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útchuyên lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau

Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đếncác thành phần bên ngoài Một trong những vấn đề quan trọng nhất trong thiết kế

kiến trúc I/O là việc lựa chọn các tiêu chuẩn điện á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 dụng) User

Pin: người dùng có thể lập trình như đầu vào, đầu ra hoặc cả đầu vào — ra Mỗi pinđược kết nối với một “I/O Cell” bên trong FPGA, được cấp bởi các chân Vcc I/O(/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

e 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

¢ 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 cơ ban đã được phát triển nhiều hon

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 va 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ếtqua 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 24

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ờigian 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ànthiệ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ấtnhiề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

Phần mềm được viết cho hệ thống nhúng được gọi là phần mềm nhúng hayfirmware 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ệ thong khác bao gom một hoặc nhiều bộ vi xử lý đã được cài đặt

san 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

lãi

Trang 25

sản phâm nhúng Phân mêm nhúng ngày càng có giá tri cao trong các sản pham 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 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 đữ liệu Về cơ bản, một hệ thống nhúngthường bao gồm:

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

e Bộnhớ

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

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

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

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

12

Trang 26

Input devioss Interfacing! Diver Circuits

~_——~— — _ _—

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â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éptính phức tạp Tính chuyên dụng của hệ thống nhúng giúp nâng cao khả năng sử

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

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

lớn, công suất, chi phí và cả hiệu năng hoạt động của hệ thống Hệ thống phải hoạtđộng nhanh ở một mức độ chấp nhận được nào đó, đồng thời vẫn phải đảm bảo tiêuthụ ít năng lượng hơn để 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 27

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

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

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

“+ CPU (Central Processing Unit): Lõi vi xử lý là thành phần không thé thiếu

trong một SoC làm nhiệm 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 28

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

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

phâm của Renesas.

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

*

>

>

>

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

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

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

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

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

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

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

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

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

Bộ nhớ (Memory): Bộ nhớ trong một SoC gọi là bộ nhớ nội dé phân biệt với

bộ nhớ năm ngoài SoC và giao tiếp với SoC thông qua các chân (pin) điều

khiển của SoC Bộ nhớ nội này có thé là:

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

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

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

Thành phan điều khiến nội (Internal block): là thành phần chỉ điều khiển hoạtđộng bên trong SoC mà không điều khién trực tiếp port nào của SoC như:

e©_ Khối tạo clock (clock generator): Cung cấp clock cho toàn bộ các khối

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

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 29

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 30

tiếp cận và phô biến hơn, đặc biệt là trong các lĩnh vực như giám sát và thị giác máy

tính Thuật ngữ smart camera có nhiều định nghĩa khác nhau, tuy nhiên mọi người

đều thống nhất rằng một smart camera không chỉ bao gồm các cảm biến hình ảnh

mà còn có thêm một số loại chip xử lý như CPU, DSP, FPGA hoặc các thiết bị xử

lý khác Sơ đô khôi của một smart camera cơ bản được biêu diễn ở Hình 2.5.

On-board Memory

Power |

Lighting USB Controller

Encoder Input Digital I/O Display Out

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

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

xử lý hình ảnh 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 31

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:

,

> 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 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ử dụng dé cham công nhân viên trong công ty hoặc sử

dụng làm camera an ninh.

18

Trang 32

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 33

“+ 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 tat 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 mang

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

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

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

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

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

20

Trang 34

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

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

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

2.5.3 Kiến trúc Anchor Box

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

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

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

tăng lên.

2.5.4 K-means clustering

Thay vì phải chọn anchor box bằng tay, YOLOv2 sử dụng thuật toán

K-means dé đưa ra các lựa chọn anchor box tốt nhất cho mạng Việc này giúp tạo ramean Intersection Over Union tốt hơn

2.5.5 Direction location prediction

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

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

cua grid cell.

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

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

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

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

21

Trang 35

Hình 2.8: Dự đoán bounding box của YOLOv2 2.5.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 tang 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 hop feature map

26x26 lấy từ đoạn gần cuối với feature map 13x13 ở cuối để đư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ụng cho các dự đoán Hình 2.9 mô tả kiến trúc của YOLOv?2

Trang 36

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

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

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

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

IDIDILS

ie [ee [6 lim |

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

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

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

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

rộng.

2.5.7 Multi-scale training

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

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

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

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

2.5.8 Light-weight backbone

Điểm cải tiễn của YOLOv2 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.11 mô tả Darknet- 19.

23

Trang 37

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

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

Maxpool 2x 2/2 14x 14

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

Ngoài ra, YOLOv2 còn đưa ra cách kết 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ới

COCO/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 dang các class có quan hệ với

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

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 38

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 co

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 học

đa chiều cơ bản, hiệu chuẩn máy ảnh single và 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 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

25

Trang 39

>* 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ần

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

Trang 40

Streaming Server Client / Receiver

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

Hình 2.13 mô tả kiến trúc cơ bản của streaming video Về bản chất,streaming video trực tiếp qua Internet bao gồm một camera ghi lại nội dung, sự kiện

cần phát sau đó sử dụng các bộ mã hóa dé số hóa các nội dung này, một streamer

server sẽ đóng vai trò là nơi truyền dữ liệu qua mạng Internet đến một mạng lưới

phân phôi nội dung đê phân phôi và cung câp nội dung đên với người xem.

2.8 FFmpeg

FFmpeg 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, và ở trên nhiêu môi trường, kiên trúc khác nhau.

Hình 2.14 mô tả quy trình xử lý video bằng 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

Ngày đăng: 08/11/2024, 16:59