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: Hệ thống phát hiện theo dõi người trên SoC-FPGA

76 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 đề Hệ thống phát hiện và theo dõi người trên SoC-FPGA
Tác giả Lê Ngọc Long, Phan Mạnh Khương
Người hướng dẫn ThS. Ngô Hiếu Trường
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 76
Dung lượng 78,48 MB

Nội dung

Một trong những giải pháp tiên tiến là sử dụng các hệ thống tích hợp thịgiác máy tính dé phát hiện và theo dõi đối tượng người.. Nhờ vao sự tiến bộ của mạng nơ-ron tích chậpCNN và các mô

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

LE NGOC LONG - 20521564PHAN MANH KHUONG - 20521485

KHOA LUAN TOT NGHIEP

HE THONG PHAT HIEN VA THEO DOI NGƯỜI

TREN SOC-FPGA

THE SYSTEM FOR DETECTING AND TRACKING PEOPLE

ON SOC-FPGA

CU NHAN KY THUAT MAY TINH

GIANG VIEN HUONG DAN

ThS NGO HIEU TRUONG

TP HO CHI MINH, 2024

Trang 2

LỜI CẢM ƠN

Trước tiên, nhóm gửi lời cảm ơn sâu sắc tới toàn thể các thầy cô tại Trường Đạihọc Công nghệ Thông tin — Dai học Quốc gia Thành phố Hồ Chí Minh Trong quatrình học tập tại đây, thầy cô đã chỉ dẫn và truyền đạt kiến thức quý báu, không chỉgiúp nhóm phát triển về mặt học thuật mà còn về kỹ năng sống

Nhóm cũng xin gửi lời cảm ơn chân thành đến các thầy cô tại Khoa Kỹ thuậtMáy tính Những lời khuyên cụ thé và buổi thảo luận chi tiết đã góp phần làm nên sự

thành công của khóa luận này.

Đặc biệt, nhóm xin gửi lời cảm ơn chân thành tới thay Ngô Hiếu Trường Với

sự tận tâm và kiến thức sâu rộng, thầy đã không chỉ hướng dẫn mà còn truyền cảmhứng lớn lao cho nhóm trong suốt quá trình thực hiện Thay luôn sẵn sàng hỗ trợ, giảiđáp mọi thắc mắc và chia sẻ những kinh nghiệm giúp nhóm vượt qua các khó khăn

của khóa luận.

Cuối cùng, nhóm xin cảm ơn mọi người đã luôn động viên, hỗ trợ và tin tưởngnhóm trong suốt quá trình học tập Sự quan tâm và khích lệ từ gia đình đã giúp nhóm

có sức mạnh đề vượt qua mọi trở ngại, trong khi sự hỗ trợ từ bạn bè giúp nhóm duy

trì sự cân băng trong suôt quá trình làm việc.

Trang 3

MỤC LỤC

Chương 1 Giới thiệu tong quan đề tài - 2-52 2+S£+EE+E+E£E2E2ErErkrrrerree 4

1.1 — Giới thiỆU 2Q HT HH Hà Hà Hà Hàn nrệt 4

1.2 _ Các nghiên cứu lIÊn QUAT 5 c5 1182111311 89119111 11 1911 vn 4

1.3 Mục tiêu của để tài c.ccchhrthhH re 6

Chương 2 Cơ sở lý thuyẾt - 2-2 52+SE EEEEE9EEEEE1221571211271111211 21111 tre 7

2.1 Kria KV260 Vision AI Starter KT( - s1 He, 7 2.2 _ Deep-learning Processing nI{ «+ + kxk*vkvreeeseerere 8

2.3 Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) 12

2.3.1 Lớp tích chà G222 ^ NG À, L c eeeveeeee 12

2.3.2 Pooling Lay€T Ăn ng ngư 14

2.3.3 Ham kích hoạt - Ăc 111 2111111 ng kg ve 15

2.3.4 YOLO (You Only Look NC€) 5 3+1 +*skEEsseerseseereee 15

2.4 SIT€AITT Qui gh nnHg 17

Chương 3 Phương pháp đề xuất và quá trình hiện thực đề tài - 20

3.1 Phương pháp để xuất - + s+S++EE+EEEEEEEEEEEEEEEEEEEErrrrrerree 20

3.1.1 Mô hình để xuất c2cccccrktrtttrrrttrr re 20

3.1.2 Tập dữ liệu huấn luyện và tăng cường đữ liệu -: 23

ch “ằMm Ä 24

3.1.4 Vitis Video Analytics SIDK Án HH ngư 28

3.2 Hiện thực và hoàn thiện đề tài ccccccccrterrrrrrrrrrrrriirrrrrrriie 31

3.2.1 Chuyên đổi mô hình sang TensorFlow - 2 c5z+s+2++ 31

3.2.2 Luong tử hóa mô Dinh eee cesccseceseeesceeeeeeeeeeeeeceseeeseeeeseeeeeees 32

Trang 4

3.2.3 _ Biên dịch mô hình và hiện thực xuống Kria KV260 36

3.2.4 Gửi dữ liệu lên máy ChủỦ c5 tt SS SH ri 43

3.2.5 Siamese Network và thuật toán tương đồng - 2-2 +52 45Chương 4 Kết quả 5E SESE+EE2EEEEEE E9 12E1211211211211211211 1.1 xe, 52

4.1 _ Kết quả huấn luyện trên phần mềm -2- 2 ¿2++22++2z+zs+zex 52

4.1.1 Mô hình YOLLOv3- TÌnyy - ng HnH ng HnH kg 52 4.1.2 M6 hình Siamese Network ce cee eesceseesceceseeeseeesneeeseeeseeeseeenaees 54

“mm Kich Dan 2 0h ceceeccccccesssseccceesssseeccecsssseeccecsseeeceeessseeeeeeesseeeeceestseeeeees 54

43 Két quả hiện thực trên Kria K260 c5 cv re 59

Chương 5 Kết luận và hướng phát triển tiếp theo - 2-2 2+z+sz25s+s++‡ 62

5.1 Kếtluận ⁄,sế À À 62

5.2 _ Những khó khăn gap phảI - - + +3 + * + + EseEEeererrresrererrerres 63

5.3 _ Hướng phát triển tiếp theO -:- <+c<+EE+EE+EE+EeErrkrrerrrrerree 63

Trang 5

DANH MỤC HÌNH

Hình 2.1 Kria KV260 Vision AI Starter KT( ong it 7

Hình 2.2 DPUCZDX8G Top-Level Block Diagram - 5 + s«++s£++e++sx 9

Hình 2.3 Kiến trúc phần cứng của DPUCZDX§G 2-2 22522222222 10

Hình 2.4 Ví du minh họa của một DPUCZ cho thiết bi Zynq Ultrascale+ 11Hình 2.5 Ví du về Convolutional Neunal Networks c.ccccccsssesssssssecesessecesseeeeeeveee 12

Hình 3.1 Mô hình khái quát của hệ thong c.ccecceccsscsscessssesseseesessessessesssesseesesesees 20

Hình 3.2 Kiến trúc mô hình YOLOV3-Tiny - 2-2-2 2£ ©£+++£x+zxzzzserxez 22

Hình 3.3 Block diagram của môi trường phát tích hop Vitis A[ 25

Hình 3.4 Cái nhìn tổng thé về Vitis WOrkflOW 2-2-2 2 + ++££+E+zE+E+zecrxet 28Hình 3.5 Ví dụ về một ứng dụng phân tích video điển hình của VVAS 29Hình 3.6 Các thành phần chính của VVAS -:- 2-2 2+++E++E2EE+EzErrerrerreee 30

Hình 3.7 AMD Intermediate Representation EÏOW 5+ xe ssvsseeseesse 36

Hình 3.8 Kết nối Kria KV260 với các ngoại vi cần thiẾt -2- 2 25255: 38Hình 3.9 Sơ đồ GStreamer Pipeline - 2 2 2 £+E£+E£+EE+EE+E£EE+EzEzrerrerreee 39Hình 3.10 Sơ đồ tổng quan hệ thống 2 2 2 £+S£+EE+EE+EE+E£EE+EzEzrerrerreee 39

Hình 3.11 Kiến trúc phan cứng tổng quát - 2-2 2 2+2 £+££+£+z£++£+zzezxeez 41 Hình 3.12 DPU và các PL IP trong kiến tric ccecccccsssessessesssesseessessecsecesecseesesseeses 42

Hình 3.13 PreProcess va các PL IP trong kiến tric cceccessesseesseesesssesseessssseeseesessee 42

Hình 3.14 Gửi dữ liệu lên máy chủ va xử lý - s5 + Ssk+ssiseerersek 43

Hình 3.15 Sơ đồ tổng quát của Siamese Network -¿-¿©cx++cxe+cse¿ 45Hình 3.16 Lưu đồ thuật toán định danh và quản lý CSDL -. - 5: 5¿ 47Hình 3.17 Lưu đồ thuật toán kiểm tra trạng thái của đối 100] << s2 50Hình 4.1 Biéu đồ mat mát của YOLOv3-Tiny -¿- 2 2 2£ s+£+E+Ezrrrrrezes 52

Trang 6

Hình 4.2 Biéu đồ mất mát của Siamese Network c.cccccsccsssesesesesseseseseseseeseseseseeees 54

Hình 4.3 Phân loại định danh đối tượng 2 ¿- +2+++cx++zx++zxezxxerseees 55

Hình 4.4 Ảnh định danh được cập nhật liên tục và ảnh mẫu . - 55

Hình 4.5 Toàn bộ hệ thống - 2-2 ® E2 SE SE E+EE+EE2EEEEEEEEEEEEEE2E121121221121 xe, 56Hình 4.6 Độ tin cậy khi nhận diện đối tượng trên KV260 -: -:+¿ 60Hình 4.7 Tốc độ khung hình khi chạy trên Kria KV260 - 2 2 252252: 61

Trang 7

Bang 5.1 So sánh với các nghiên cứu liên quan - s5 5s + +sveeeeeessees 63

Trang 8

DANH MỤC TU VIET TAT Viết tắt Viết đầy đủ

SSD Single Shot MultiBox Detector

YOLO You Only Look Once

DPU AMD Deep Learning Processor Unit CNN Convolutional Neural Network

GPU Graphics Processing Unit

RTSP Real Time Streaming Protocol

IP Camera Internet Protocol Camera

SPP Spatial Pyramid Pooling

COCO Common Objects in Context

VOC Visual Object Classes

HTML Hypertext Markup Language

FPGA Field-programmable gate array

Al Artificial Intelligence

SoC System on Chip

DSP Digital Signal Processors

LUT Look — Up — Table

BRAM Block Random Access Memory

VART Vitis AI Runtime

XRT Xilinx Runtime

VVAS Vitis Video Analytics SDK

Trang 9

CLE Cross-Layer Equalization

PTQ Post training quantization

QAT Quantization-Aware Training

CSDL Co sở đữ liệu

ID Identification

CUHK03 Chinese University of Hong Kong Re-identification

Trang 10

TOM TAT KHÓA LUẬN

Trong những năm gần đây, các hệ thống giám sát an ninh trở nên ngày càngthông minh hơn Phân tích video thông minh cũng đã có thể thay thế các giải phápgiám sát đã dần xuất hiện nhiều khuyết điểm Thông qua việc phân tích video thôngminh này thì những người giám sát phải thường trực tại màn anh sẽ được thay thế bởinhưng hệ thống camera thông minh có khả năng giám sát một cách tự động

Nhưng khi hệ thống cần xử lý thông tin từ nhiều camera tại cùng 1 thời điểmthì hệ thống phải có tốc độ xử lý nhanh và có nguồn tài nguyên đủ tốt [1] đồng nghĩavới việc phải bỏ ra nhiều chi phí Vì thế nhóm nham đến việc giải quyết các mô hình

AI để tăng độ chính xác cũng như tận dụng hoàn toàn tài nguyên của Kria KV260Vision AI Starter Kit và sử dụng thuật toán tương đồng để tiễn hành theo dõi đối

tượng người sau khi được phát hiện.

Nhóm bat đầu bang việc tìm hiểu các phương pháp tiên tiễn trong việc pháthiện đối tượng người Cụ thể, nhóm đã tiến hành nghiên cứu về các bài báo khoa họcliên quan đến các mô hình học sâu như SSD (Single Shot MultiBox Detector) [2],

EfficientDet [3], RetinaNet [4] và đặc biệt là các phiên ban của mô hình YOLO [5] [6] Sau đó, qua quá trình thử nghiệm, nhóm lựa chọn mô hình học sâu với độ chính

xác cao và tốc độ xử lý nhanh Tiếp theo, nhóm huấn luyện mô hình dé đạt được sự

ồn định và hiệu quả cao sau khi huấn luyện bằng tập dữ liệu tùy chỉnh.

Sau giai đoạn huấn luyện và đánh giá mô hình, nhóm tiếp tục nghiên cứu cácphương pháp triển khai hệ thống trên SoC-FPGA, với trọng tâm là bo mạch KV260của Xilinx Quá trình này bao gồm các kỹ thuật chuyên đổi mô hình thành định dạngphủ hợp dé có thé triển khai mô hình lên AMD Deep Learning Processor Unit (DPU)

— một thành phần phần cứng lập trình được tối ưu hóa cho các mô hình học sâu

Cuối cùng là gửi các thông tin đã phát hiện và tính toán được từ KV260 lênmột máy chủ dé có thé lưu trữ thông tin vào cơ sở dit liệu và thực hiện theo dõi đối

tượng.

Trang 11

MỞ ĐẦU

Trong kỷ nguyên số hóa hiện nay, công nghệ giám sát và phát hiện đối tượngđang trở nên thiết yêu trong an ninh, quản lý giao thông cho đến các ứng dụng trongcông nghiệp Một trong những giải pháp tiên tiến là sử dụng các hệ thống tích hợp thịgiác máy tính dé phát hiện và theo dõi đối tượng người Dé tài của nhóm tập trungthiết kế và triển khai hệ thống này trên nền tảng Kria KV260 Vision AI Starter Kit

Một trong những thách thức đáng ké là xử lý một lượng lớn thông tin từ nhiềunguồn đữ liệu video từ những góc quay khác nhau Điều kiện ánh sáng thay đôi, nhiễuhình ảnh, và sự đa dang của các đối tượng trong cảnh quay đòi hỏi hệ thống phải cókhả năng xử lý nhanh và hiệu quả Nhờ vao sự tiến bộ của mạng nơ-ron tích chập(CNN) và các mô hình học sâu, chúng ta có thé phát triển các thuật toán mạnh mé cókha năng “học” từ dit liệu lớn dé trích xuất và nhận điện các đặc trưng phức tạp, đápứng yêu cau trong việc phát hiện và theo dõi đối tượng trong các điều kiện thực tếday biến động

Mặc dù CNN đã chứng tỏ khả năng trong việc nhận diện và theo dõi đối tượng,việc triển khai CNNs lại yêu cầu lượng chi phí tính toán lớn, dẫn đến độ trễ tương đốilớn Điều này tạo ra thách thức trong việc ứng dụng CNNs cho các hệ thống đòi hỏiphản hồi nhanh Trong bối cảnh đó, việc sử dung Deep-learning Processing Unit

(DPU) của Xilinx như một hướng tiếp cận mới cho việc triển khai mạng nơ-ron tích

chập Được tích hợp trên các thiết bị như Kria KV260 Vision AI Starter Kit, đây làthiết kế chuyên biệt đề tối ưu hóa việc xử lý ảnh và mô hình học sâu, giúp giảm thiểucác van đề về năng lượng và nhiệt độ trong khi vẫn duy trì hiệu suất xử lý cao VớiDPU, hệ thống có thé thực hiện các tác vu phức tạp trong thời gian thực mà khôngcần đến nguồn tài nguyên lớn như GPU, mang lại lợi ích đáng ké về cả hiệu suất vàhiệu quả năng lượng Đây chính là điểm mau chốt giúp nhóm lựa chọn và phát triển

đề tài trên nền tảng này

Dựa trên các công việc và kết quả đạt được trong quá trình thực hiện đề tài,khóa luận này được tổ chức thành các chương như sau:

Trang 12

e Chương 1: Giới thiệu tổng quan đề tài

Cung cấp cái nhìn tong quát về dé tai, các giải pháp nghiên cứu trước đây, và

đánh giá điểm mạnh, điểm yếu của những giải pháp đó Qua đó giúp định vị vấn đề

và cơ sở lý luận của nghiên cứu.

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

Tập trung các nên tảng lý thuyết áp dụng trong dé tài, bao gồm các mô hình

học sâu và các công nghệ liên quan với các khái niệm, phương pháp và hình ảnh minh

họa nhằm cung cấp kiến thức cơ bản và nền tảng cho việc hiểu và triển khai cácphương pháp trong đề tài

e_ Chương 3: Phương pháp đề xuất và thực hiện đề tài

Mô tả chỉ tiết mô hình đề xuất cho hệ thống phát hiện và theo dõi người Bao

gồm lý do lựa chọn mô hình và các bước cụ thé dé hiện thực mô hình trên Kria KV260Vision AI Starter Kit Trình bày chỉ tiết quá trình hiện thực xuống KV260, cách thứclay luéng RTSP từ các IP Camera, lượng tử hóa, biên dich mô hình, chuyên đôi vàgửi dữ liệu sau khi xử lý từ board lên máy chủ cũng như giải thuật tương đồng để

nhận diện từng người.

e Chương 4: Kết qua

Tổng kết và đánh giá kết quả thực nghiệm của hệ thống Kết quả khi huấnluyện trên Google Colab sẽ được soi sánh với kết quả khi triển khai trên Kria KV260Vision AI Starter Kit Ngoài ra, chương này còn đánh giá hiệu suất hệ thống dựa trêncác yếu tố như tài nguyên sử dụng, năng lượng tiêu thụ, và nhiệt độ hoạt động, qua

đó chứng minh tính kha thi và hiệu quả của giải pháp.

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

Đưa ra kết luận chung về những đóng góp của đề tài, đánh giá những việc đãlàm và những thách thức còn tổn tại Định hướng cho các nghiên cứu tiếp theo, đề

xuât các cải tiên và mở rộng khả năng ứng dụng của hệ thông trong tương lai.

Trang 13

Chương1 Giới thiệu tổng quan đề tài

1.1 Giới thiệu

Trong bối cảnh tiến bộ nhanh chóng của trí tuệ nhân tạo, mạng nơ-ron tích chập(Convolutional Neural Networks - CNNs) đã trở thành công cụ cốt lõi cho nhiều ứngdụng nhận diện đối tượng, đặc biệt trong các hệ thống xử lý hình ảnh và video Đề tàikhóa luận này tập trung vào hiện thực hóa mạng nơ-ron tích chập trên nền tảng phầncứng KV260, nhằm phát triển một hệ thống nhận diện và theo dõi người theo mộthướng tiếp cận mới

KV260 Vision AI Starter Kit, với kha năng tích hợp Deep-learning Processing

Unit (DPU) cua Xilinx, mang dén tiém năng xử lý vượt trội cho các tac vụ học sâu

Đề tài này tận dụng sức mạnh của DPU dé triển khai và chạy CNN trực tiếp trên thiết

bị, điều này không chỉ nâng cao khả năng xử lý các mô hình học sâu, mà còn giảiquyết những hạn chế về tài nguyên và năng lượng mà các hệ thống truyền thong phảiđối mặt KV260 cho phép tích hợp các mô hình AI trực tiếp vào quy trình xử lý, cungcấp khả năng nhận diện đối tượng nhanh chóng mà không cần đến các cơ sở hạ tầng

máy chủ mạnh mẽ.

Các thách thức của dự án bao gồm tối ưu hóa hiệu năng của CNN để hoạt độnghiệu quả trên DPU, đồng thời duy trì độ chính xác cao trong nhận diện người khi thayđổi ánh sáng, góc quay, và sự hiện diện của nhiều người trong cùng một khung hình.Việc tối ưu này không những được thực hiện trên phần cứng của KV260 mà còn cácđiều chỉnh phần mềm ở máy chủ quản ly cơ sở dit liệu dé hệ thống có thể hoạt động

én định

1.2 Các nghiên cứu liên quan

Có nhiều mô hình phổ biến để tiếp cận đến hệ thống phát hiện người nhưYOLOv3 được tác giả [7] nghiên cứu và cải thiện mô hình YOLOv3 bằng cách sửdụng cấu trúc Darknet Residual kết hợp các đặc trưng nông và sâu trên các đặc trưngcủa quá trình mẫu hóa (sampling) dé có được lớp nhận diện đa quy mô (multi-scale

4

Trang 14

detection layer) Theo cách này, một lớp tổng hợp của các kích thước khác nhau củathông tin vi trí mục tiêu và thông tin ngữ cảnh được trích xuất Độ nhận diện chínhxác (prediction accuracy) của đối tượng có kích thước khác nhau đã được cải thiệnkhi tăng số lượng multi-scale fusion layer lên Đồng thời mô-đun Spatial PyramidPooling (SPP) sẽ được sử dụng dé dung hợp các đặc trưng đạt được ở các quy môkhác nhau để cải thiện độ nhận diện chính xác (detection accuracy) Kết quả khi sử

dụng mô hình lên tập VOC dataset thì YOLOv3 đạt được 79.25% thấp hơn 2.54% so với mô hình YOLOv3-Multi được tác giả cải tiến.

Trong một công trình [8], tác giả đã ứng dụng mô hình YOLOv4-Tiny vào hệ

thống tự động theo dõi người đi bộ trong đám đông Tác giả đã hiện thực mô hình

trên phần mềm và so sánh với các mô hình YOLO khác đề so sánh hiệu suất của các

mô hình Sau khi huấn luyện các mô hình bằng tập đữ liệu UCSD Pedestrian và sosánh các mô hình thì thấy mAP của mô hình YOLOv4-Tiny là 73% lớn hơn 4% so

với mô hình YOLOv3 và lớn hơn 10% so với mô hình YOLOv2.

Ở một bài báo khác, tác giả Shu-an Liu và các cộng sự [9] nghiên cứu và tiếp

cận việc nhận diện người qua việc ứng dụng mô hình SSD Sau khi tác giả khảo sátcác mô hình và so sánh các mô hình thì thấy khi so sánh với mô hình Faster-RCNN

thì thấy SSD có tốc độ tốt hơn và khi so sánh với mô hình YOLO thì thấy mô hìnhSSD có độ chính xác mAP lớn hơn đáng kể Nhưng khi hiện thực nhận diện ngườithì độ chính xác của SSD lại không được tốt đặc biệt là những đối tượng nhỏ Dé giảiquyết việc đó tác giả đã cải thiện mô hình SSD dựa trên thông tin ngữ cảnh (contextinformation) bằng cách trích xuất đặc trưng nông (shallow features) trong mạng SSD,hợp nhất các ý nghĩa của các đặc trưng trong lớp tích chập với ý nghĩa sâu của cácđặc trưng và sau đó nhận diện kích thước của người đi bộ trong tam ảnh Tinh năngPre-selection boxes được thiết kế lại với kích thước khung hình khác nhau, cải thiệnkết quả kiểm tra mô hình SSD vượt trội hơn so với mô hình SSD tiêu chuẩn Kết quả

sau khi ứng dụng mô hình trên tập dataset INRIA cho thấy mô hình của tác giả có tỉ

Trang 15

lệ sai số (missing rate) khi nhận diện là 9,8% cao hơn 2.3% so với mô hình SSD tiêu

chuân.

Trong một công trình khác, tác giả và các cộng sự [10] đã cải tiến kiến trúc

mạng của mô hình YOLO và đề xuất kiến trúc mạng YOLO-R Ba lớp Passthrough

(bao gồm Route layer và Reorg layer) được thêm vào mô hình YOLO tiêu chuẩn Vaitrò của chúng là kết nối các đặc trưng của người đi bộ lớp nông với các đặc trưng củangười đi bộ lớp sâu và liên kết độ phân giải lớn và bé đặc trưng của người đi bộ Côngtrình này còn thay đối số lớp của lớp Passthrough kết ni trong mô hình YOLO tiêuchuẩn từ layer 16 đến layer 12 đề tăng khả năng trích xuất thông tin của các đặc trưngnông Mô hình cải thiện này được thử trên tập dataset INRIA, kết quả cho thay công

trình nay cải thiện được độ nhận diện chính xác (detection accuracy) của người di bộ,

giảm FDR (False Detection Rate) va MDR (Missed Detection Rate), tốc độ nhận diện

là 25 fps và độ mat mát trung bình (Average Loss) là 0.6%

1.3 Mục tiêu của dé tài

Dé giải quyết bài toán nhận diện và theo dõi người được quay từ nhiêu camera khác nhau, trong khóa luận này, nhóm đưa ra 3 mục tiêu chính:

1 Lựa chọn, huấn luyện, lượng tử hóa mô hình máy học có kích thước nhẹ, phùhợp dé triển khai lên DPU của Kria KV260 Vision AI Starter Kit với tập dữ liệu tùychỉnh với tiêu chí có thể bao quát cụ thể các trường hợp dựa vào góc quay, ánh sáng,thời tiết và tư thế người đa dạng, mục tiêu accuracy >= 90%

2 Biên dịch mô hình và hiện thực xuống Kria KV260, đánh giá hiệu suất môhình trên KV260 so với trên phần mềm Tối ưu hiệu suất bằng các công nghệ từ

Xilinx và các thư viện mã nguôn mở.

3 Gửi các khung hình và thông tin bounding box của đối tượng lên máy chủ déthiết lập cơ sở đữ liệu sau quá trình xử lý ở KV260 Sử dụng giải thuật tương đồng

dé định danh từng người và phân loại cơ sở dữ liệu Cuối cùng sẽ là thiết kế một trangweb cơ bản bằng HTML cho người dùng sử dụng

6

Trang 16

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

2.1 Kria KV260 Vision AI Starter Kit

Kria KV260 Vision AI Starter Kit là một sản phẩm phan cứng đột phá đượcphát triển bởi Xilinx, dành riêng cho các ứng dụng trí tuệ nhân tạo (AI) và thị giácmáy tính Được tích hợp các tính năng tiên tiến và tích hợp chặt chẽ với các giảipháp phát triển ứng dụng, KV260 đem đến một nền tảng mạnh mẽ cho phép triển

khai và thử nghiệm các ứng dụng AI một cách dễ dàng và nhanh chóng [11].

J4 Micro-USB UART/JTAG J11 Connector

DS36

PS Status LED

DS35 Heartbeat LED

DS34

PS Done LED

jo

XaKTS0072221

Hình 2.1 Kria KV260 Vision AI Starter Kit

Kria KV260 Vision AI Starter Kit được xây dựng trên nền tảng FPGA XilinxZynq UltraScale+, tích hợp nhiều khối phần cứng (Hình 2.1) và phần mềm dé hỗ trợ

các tác vụ AI:

Trang 17

+ SoC (System on Chip): KV260 sử dụng Zynq UltraScale+ MPSoC, kết hop

giữa các thành phần xử lý hệ thống như CPU ARM Cortex-A53, bộ xử lý thời gianthực ARM Cortex-R5, và các đơn vị xử ly FPGA có thé cấu hình lại Kiến trúc SoCnày mang lại sự linh hoạt và hiệu suất cao cho các ứng dụng AI

+ Deep-learning Processing Unit (DPU): là thành phần chuyên biệt, tăng tốccác tác vụ học sâu với hiệu suất cao và tiêu thụ năng lượng thấp DPU giúp xử lý các

mạng nơ-ron tích chập (CNN) và các mô hình học sâu khác hiệu quả.

+ Bộ nhớ: Hỗ trợ nhiều loại bộ nhớ bao gồm DDR4, LPDDR4, và bộ nhớ

ngoài đề tối ưu hóa khả năng lưu trữ và truy cập dữ liệu trong các tác vụ học sâu và

xử lý video.

+ Giao diện kết kối: Hỗ trợ nhiều giao diện kết nối như USB, Ethernet, HDMI,MIPI CSI-2, giúp dé dàng tích hợp với các thiết bị ngoại vi và cảm biến hình ảnh

Kria KV260 Vision AI Starter Kit được thiết kế dé phục vụ nhiều ứng dụng AI

và thi giác máy tinh, từ các hệ thống nhận diện đối tượng trong an ninh và giám sát,đến các ứng dụng tự động hóa công nghiệp và phân tích dit liệu y tế Những tính năng

nổi bật của KV260 bao gồm khả năng xử lý video trực tiếp từ camera, hỗ trợ triển

khai các thuật toán nhận diện và theo dõi đối tượng trong thời gian thực và tích hợp

dễ dàng với các hệ thong hién co

2.2 Deep-learning Processing Unit

The Xilinx Deep Learning Processing unit (DPU) là một động co tính toán có

thé cau hình được, nó được tối ưu dé sử dụng cho các mạng nơ-ron tích chập Mức

độ xử lý song song được sử dụng trong động cơ là một Design Parameter và nó có

thé được chon tương ứng với thiết bị sử dụng và ứng dụng cụ thể Tham số thiết kế

đó bao gồm một tập hợp các lệnh được tối ưu hóa cao và hỗ trợ nhiều loại mạng như

VGG, ResNet, GoogLeNet, YOLO, SSD, MobileNet, FPN và các mạng khác.

Các lệnh được đưa vào DPU sẽ được tạo ra bởi The Vitis AI compiler Khi mạng

nơ-ron hoặc kiến trúc phần cứng DUT thay đổi thì file *.elf liên quan chứa các câu

lệnh dé đưa vào DPU phải được tạo lại

Trang 18

Kiến trúc của một DPU bao gồm một mô-đun lập lịch hiệu xuất cao (high

performance scheduler module), một mô-đun mang tinh toán lai (hybrid computing

array module), một đun bộ lay lệnh (instruction fetch unit module) và một

mô-dun bộ nhớ toàn cục (Hình 2.2) DPU sử dụng một bộ lệnh chuyên dụng cho phép DPU có khả năng hiện thực hiệu quả các mô hình nơ-ron tích chập khác nhau [12].

Hinh 2.2 DPUCZDX8G Top-Level Block Diagram

The DPU IP có thé được hiện thực trong phan PL (programmable logic) củathiết bi Zynq-7000 SoC hay Zynq UltraScale+ MPSoc với hệ thống xử lý (PS -

processing systems) (Bảng 2.1) DPU yêu cầu các lệnh dé hiện thực một mạng

no-ron cho các ảnh 1nput cũng như là dữ liệu tạm thời và output Một chương trình chạy

trên bộ xử lý ứng dung (Application Processing Unit — APU) cũng cần phải xử lý cácngắt và điều phối việc truyền dữ liệu DPU yêu cầu một driver ứng với thiết bị tương

ứng mà đã được tích hợp vào Xilinx Vitis AI development kit [13].

Trang 19

Bảng 2.1 Các loại DPU của Xilinx

Tên DPU Nền tảng phần cứng

DPUCZDXSG | AMD ZynqTM UltraScale+TM MPSoC

DPUCVDX8G | AMD VersalTM adaptive SoC VCK190 evaluation board,

Versal AI Core Series

DPUCVDX8H _| Versal adaptive SoC VCK5000 evaluation kit

DPUCV2DX8G | Versal adaptive SoC VEK280 evaluation board, Versal AI Edge

series, Versal adaptive SoC V70 evaluation kit, Alveo V70 Accelerator Card

Vitis AI Development Kit: môi trường được xây dựng cho những mô hình AI

trên các platform phần cứng của Xilinx Nó bao gồm các cores IP được tối ưu hóa,

tools , thư viện, các mô hình AI và các thiêt kê mâu.

Off-Chip Memory

Processing System

Memory Controller

Instruction Scheduler On-chip Buffer Controller

On-chip Buffer BRAM Reader/Writer

Computing Engine

Hình 2.3 Kiến trúc phần cứng của DPUCZDX8G

10

Trang 20

Sau khi khởi động (Hình 2.3), DPU sẽ tìm nạp các lệnh luồng từ Off-chip đểđiều khiển các động cơ tính toán (Computing Engine) vận hành Lệnh luồng này đượctạo ra trong quá trình biên dịch bằng công cụ Vitis AI Compiler, trình biên dich nay

đã được nhà phat triển Xilinx cải tiến và tối ưu khá đáng kể

Bộ nhớ On-chip được sử dụng lưu trữ dữ liệu nhập vào, dir liệu xử lý giữa các

bước, và dữ liệu xuất ra cuối cùng, từ đó cải thiện hiệu quả và tốc độ của hệ thống

Dữ liệu được tái sử dụng nhiều nhất có thể để giảm băng thông bộ nhớ Một thiết kế

pIpeline chuyên dụng được dùng cho động cơ tính toán Các PE sẽ tận dụng chức

năng của các khối cấu tạo lên nó như các bộ nhân, các bộ cộng và các bộ tích lũytrong các thiết bị được cung cấp bởi Xilinx

Một DPU bao gồm các phần tử có sẵn trong cấu trúc logic có thể lập trình của

AMD (Hình 2.4) chăng hạn như là DSP, BRAM, UltraRAM, LUTs, Flip-Flops hoặc

có thé được phát triển dưới dạng một tập hop các chức năng mã vi lệnh được triểnkhai trên cấu trúc AMD AI Engine, hay còn gọi là AI Engine Hơn thế nữa, trong một

số ứng dụng, DPU thê được cau thành từ các logic có thé lập trình và mảng AI Engine

Off-Chip Memory (External DDR)

PS

Ld

PL ựụiiia.

DPU | Config Instruction Fetch

& & On-chip memory

Status Scheduler (Weights / Activations)

Element-wise

Zynq UltraScale+ MPSoC Device / Platform

Hình 2.4 Vi du minh hoa của một DPUCZ cho thiết bi Zynq Ultrascale+

11

Trang 21

2.3 Mang nơ-ron tích chập (Convolutional Neural Network - CNN)

Mang nơ-ron tích chap (CNN) là một loại mang no-ron sâu thường được áp

dụng trong việc xử lý và phân tích hình ảnh Được đặc biệt thiết kế để hiểu cấu trúc

không gian của đữ liệu hình ảnh, CNN đã đem lại những đột phá đáng kể trong các bài toán như nhận diện đối tượng, phân loại ảnh và phát hiện vật thể.

CNN bao gồm các lớp chính (Hình 2.5) như lớp tích chập, lớp Pooling và lớpkích hoạt Mỗi lớp có nhiệm vụ riêng biệt Quan trọng nhất, lớp tích chập là lớp làm

mô hình học được các đặc trưng cục bộ trong ảnh bằng cách áp dụng các bộ lọc nhỏtrượt qua toàn bộ không gian đầu vào

Fully Connected

Convolution

Hinh 2.5 Vi du vé Convolutional Neunal Networks

CNN không chi giúp giảm chiều đữ liệu mà còn giúp tăng kha năng tổng quát

hóa, giảm thiểu overfitting và tối ưu hóa việc học từ dữ liệu lớn Đặc biệt, việc áp

dụng CNN trong các mô hình như YOLO (You Only Look Once) đã cải thiện đáng

kề hiệu suất và tốc độ của các ứng dụng nhận diện vật thể thời gian thực

2.3.1 Lớp tích chập

Lớp tích chập (Convolutional Layer) là thành phần chính của mạng nơ-ron tíchchập (CNN), giữ vai trò quan trọng trong việc trích xuất đặc trưng từ dữ liệu đầu vào.Đây là lớp học sâu được thiết kế để khai thác các mẫu không gian trong đữ liệu,thường là hình ảnh hoặc chuỗi thời gian, bằng cách sử dụng các phép toán tích chập

12

Trang 22

với các bộ lọc (filter) học được Dưới đây là các khía cạnh chi tiết về chức năng, cơchế hoạt động, và vai trò của lớp tích chập trong một CNN.

Bộ lọc và Kernel:

+ Bộ lọc (Filter): một ma trận nhỏ hon nhiều so với dit liệu đầu vào, chăng hạn

như 3x3, 5x5, hoặc 7x7 Mỗi bộ lọc có thê được coi là một “kính lúp” di động quétqua dir liệu đầu vào dé phát hiện các đặc như cạnh, góc, hoặc các họa tiết phức tạp

+ Kernel: Thuật ngữ “kernel” thường được sử dụng đồng nghĩa với bộ lọc, mô

tả ma trận chứa các trọng số được áp dụng trong phép tích chập Các trọng số này

được khởi tạo một cách ngẫu nhiên và được điều chỉnh qua quá trình huấn luyện

+ Stride: Là bước nhảy của bộ lọc khi quét qua dữ liệu đầu vào Stride xác

định khoảng cách đi chuyền của bộ lọc giữa các vị trí tiếp theo, quyết định đến kích

thước của ban đồ đặc trưng đầu ra Ví du, stride = 1 nghĩa là bộ lọc di chuyền từng 6

một, trong khi stride = 2 nghĩa là bộ lọc di chuyển mỗi hai 6

+ Padding: Là kỹ thuật thêm các giá trị (thường là số 0) xung quanh đữ liệu

đầu vào dé tính toán lại kích thước của ban đô đặc trưng đầu ra Padding giúp duy trìhoặc thay đổi kích thước của bản đồ đặc trưng sau khi áp dụng bộ lọc, tránh mat mát

thông tin biên.

Bản đồ đặc trưng:

+ Bản đồ đặc trưng (Feature Map): Là kết quả của phép tích chập, chứa thông

tin về các đặc trưng mà được phát hiện trong dữ liệu đầu vào Mỗi bộ lọc tạo ra một

13

Trang 23

bản đồ đặc trưng riêng biệt, và lớp tích chập có thể có nhiều bộ lọc dé phát hiện nhiều

(Convolutional Neural Networks - CNNs) Nó được thiết kế để giảm chiều không

gian của dữ liệu đầu vào và số lượng tham số trong mạng, qua đó giúp giảm tải tínhtoán và tăng cường khả năng tổng quát hóa của mô hình Dưới đây là các khía cạnhchỉ tiết về chức năng, hoạt động, và vai trò của lớp pooling trong CNN

Chức năng của lớp Pooling:

+ Giảm kích thước: Lớp pooling giúp giảm kích thước của bản đồ đặc trưng(feature map) từ các lớp tích chập trước đó, làm cho bản đồ đặc trưng trở nên nhỏ gọn

hơn mà vẫn giữ lại các đặc trưng quan trọng Việc này giúp giảm độ phức tạp của mô

hình và tăng tốc độ xử lý trong các lớp tiếp theo

+ Giảm số lượng tham số: Khi kích thước của bản đồ đặc trưng được giảm

thông qua lớp pooling, số lượng tham số và các kết nối trong mạng cũng giảm theo,giúp tiết kiệm tài nguyên và tăng hiệu quả trong quá trình huấn luyện

+ Tăng cường khả năng tông quát hóa: Lớp pooling giúp mạng trở nên khôngnhạy cảm với sự dịch chuyên, co giãn, và các biến đôi khác của dữ liệu đầu vào Điềunày cải thiện khả năng tổng quát hóa của mạng đối với dữ liệu mới, không xuất hiệntrong tập huấn luyện

+ Chống quá khớp (Overfitting): Bằng cách giảm bớt các phần không cần thiết

và tập trung vào các đặc trưng quan trọng, lớp pooling giúp giảm nguy cơ quá khớp trong mô hình.

14

Trang 24

2.3.3 Hàm kích hoạt.

Hàm kích hoạt (Activation Function) là một thành phan quan trọng trong mangnơ-ron tích chập (Convolutional Neural Networks - CNNs) Nó quyết định cách thức

mà các nơ-ron của mạng xử lý và truyền thông tin Hàm kích hoạt cung cấp tính phi

tuyến cho mạng, cho phép mô hình có thé học các chi tiết phức tap và trích xuất các

đặc trưng từ đữ liệu Đây là yếu tố then chốt để mạng nơ-ron có thể mô hình hóa vàhọc từ các mẫu không tuyến tinh trong dữ liệu đầu vào Dưới đây là phan giải thíchchỉ tiết về vai trò, các loại hàm kích hoạt phổ biến, và tác động của chúng đến hiệu

suất mạng

Vai trò của hàm kích hoạt:

+ Phi tuyến tính: Hàm kích hoạt cung cấp tính phi tuyến cho các đầu ra của

các lớp tích chập hoặc lớp fully connected Điều này giúp mạng có khả năng mô hìnhhóa và học các quan hệ phi tuyến tính trong dữ liệu, vượt xa khả năng của các môhình tuyến tính đơn giản

+ Tach biệt dữ liệu: Nhờ có phi tuyến tinh, các lớp kích hoạt cho phép mang

học cách phân tách và phân loại các đặc trưng từ các lớp tích chập và pooling, giúp

phân biệt giữa các mẫu phức tạp.

+ Chuẩn hóa đầu ra: Hàm kích hoạt giúp chuẩn hóa đầu ra của các lớp nơ-ron,

giúp duy trì tính ôn định của quá trình lan truyền ngược (backpropagation) và ngănngừa van dé gradient biến mat hoặc bùng nổ

+ Điều chỉnh phản hồi: Bằng cách chuyên đổi các giá trị đầu vào thành một

phạm vi giới hạn, hàm kích hoạt giúp kiểm soát độ lớn của tín hiệu qua các lớp của

mạng.

2.3.4 YOLO (You Only Look Once)

YOLO (You Only Look Once) là một trong những kiến trúc mang no-ron tiên

tién trong linh vuc phat hién đối tượng YOLO được phát triển đề thực hiện phát hiệnđối tượng với hiệu suất và tốc độ cao, cho phép xử lý gần như trong thời gian thực

15

Trang 25

Kiến trúc này nổi bật bởi khả năng kết hợp đồng thời việc phát hiện và phân loại cácđối tượng trong một khung hình duy nhất Phần dưới đây sẽ nêu chỉ tiết về hoạt động,

các biến thé, và ưu điểm của YOLO

Phương pháp luận:

+ Phân vùng ảnh: YOLO phân chia hình ảnh đầu vào thành SxS ô vuông Mỗi

6 chiu trách nhiệm phát hiện và dự đoán các hộp giới han (bounding boxes) cho các

đối tượng mà trung tâm của chúng nằm trong ô đó

+ Dự đoán hộp giới hạn: Mỗi ô dự đoán một sé lượng các bounding boxes va

xác suất cho mỗi lớp Dự đoán bao gồm tọa độ hộp giới hạn (x, y, w, h) và độ tin cậy

(confidence score).

+ Hợp nhất các dự đoán: Các dự đoán từ các ô khác nhau được hợp nhất détạo ra các bounding boxes cuối cùng cho các đối tượng, thường sử dụng thuật toánNon-Maximum Suppression (NMS) để loại bỏ các hộp chồng chéo thừa thãi

+ Lớp cuối cùng: Một lớp fully connected cuối cùng dé dự đoán các bounding

boxes và xác suất lớp cho mỗi ô vuông

Hàm mất mát (Loss function):

+ Localization loss: Do độ sai lệch giữa hộp giới hạn dự đoán và hộp giới hạn

thực tế băng Mean Squared Error — MSE (ham tính lỗi bình phương trung bình)

+ Confidence loss: Tính toán sự khác biệt giữa độ tin cậy dự đoán và độ tin

cậy thực tê của các bounding boxes.

16

Trang 26

+ Classification loss: tính độ sai lệch giữa xác suất lớp dự đoán và nhãn thực

tế cho mỗi đối tượng.

2.4 Gstreamer

GStreamer là một framework đa phương tiện mạnh mẽ và linh hoạt, phổ biến

trong việc xây dựng các ứng dụng xử lý dữ liệu âm thanh và video Nó hỗ trợ khá

nhiều các ứng dụng từ truyền phát đa phương tiện, xử lý video thời gian thực đến các

hệ thống phát lại âm thanh Dưới đây là một giải thích chỉ tiết và chuyên sâu vềGStreamer, bao gồm kiến trúc, các thành phần chính, và ứng dụng [31]

Nhiều ưu điểm của framework này là từ tính mô-đun của nó biểu hiện ở chỗngoài các mô-đun cơ sở và nền tảng của GStreamer thì ta có thê thích hợp liền mạch

các mô-đun plugin mới Tuy nhiên, tính mô-đun này cũng đồng thời làm frameworktrở nên to lớn hơn dẫn đến độ phức tạp và khó khăn cao hơn khi phát triển một ứngdụng mới Vì các mô-đun plugin càng ngày càng nhiều dẫn đến việc sử dụng các mô-

đun được cung cấp săn gặp nhiều khó khăn [14] nên GStreamer chia các tập hợp

plugin có sẵn thành bốn mô-đun:

+ Gst-plugins-base: một bộ plugin nhỏ và cố định bao gồm nhiều loại elementkhác nhau Những plugin này liên tục được cập nhật khi có thay đổi nào về mã nguồntrong quá trình phát triển

+ Gst-plugins-good: một bộ plugin mà nhà cung cấp cho rằng nó có chất lượng

tot, chính xác vê mặt chức năng và sử dụng bản quyên của nha cung cap.

+ Gst-plugins-ugly: một bộ các plugin có chất lượng tốt và chức năng chínhxác nhưng việc phân phối chúng có thé gặp van đề Bản quyền của plugin hoặc cácthư viện có thể không phải của nhà cung cấp

+ Gst-plugins-bad: một bộ các plugin chưa đạt chuẩn so với phan còn lại.Chúng có thể gần đạt chất lượng tốt nhưng vẫn thiếu một số yếu tố như là một đợtđánh giá mã nguồn tốt, một số tài liệu, một bộ kiểm tra, một người bảo trì hoặc ítđược sử dụng rộng rãi Nếu các khuyết điểm này được lấp đầy, chúng có thể được

17

Trang 27

nâng cấp trở thành một phan của gst-plugins-good hoặc gst-plunins-ugly tùy thuộc

vào các yêu tô khác.

Pipeline và Elements:

+ Pipeline: Trung tâm cua GStreamer là khái niệm pipeline, dai diện cho một

đường dẫn dữ liệu, từ nguồn vào đến đầu ra Một pipeline chứa nhiều thành phan(elements) dé có thé thực hiện nhiều tác vụ

+ Elements: Các element là các thành phần cơ bản của GStreamer, có thê là

nguồn (source), bộ giải mã (decoder), bộ mã hóa (encoder), bộ lọc (filter), và sink

Chúng có thé kết hợp với nhau dé thực hiện xử lý các tác vụ đa phương tiện phức tạp

Pads và Caps:

+ Pads: Các pads là các điểm kết nỗi của một element, chia thành source pads(đầu ra) và sink pads (đầu vào) Chúng quản lý việc truyền dữ liệu giữa các elements

+ Caps (Capabilities): Caps xác định các định dang dit liệu mà pads có thé xử

lý Điều này giúp các elements giao tiếp hiệu quả và chuyên đổi dit liệu giữa các định

dạng khác nhau một cách liền mạch.

Bins và Plugins:

+ Bins: Bins là các container chứa các elements hoặc các bins khác, tạo thành

các cau trúc lồng nhau dé quan lý các pipeline phức tạp

+ Plugins: GStreamer sử dụng hệ thông plugins đê mở rộng chức năng, với

các plugins cung cap các elements mới cho các tác vụ như mã hóa/giả1 mã, lọc, va

truyền phát dữ liệu

Lợi ích và ứng dụng:

+ Tối ưu hóa: GStreamer có thể được tối ưu hóa cho các thiết bị biên như

Xilinx KV260 Vision AI Starter Kit, nơi tài nguyên phần cứng bị hạn chế và yêu cầu

về hiệu suât cao.

18

Trang 28

+ Tích hợp với AI: Khi kết hợp với các hệ thống AI như các DPU của Xilinx,

GStreamer quản lý các luồng dữ liệu video dé xử lý thời gian thực, tối ưu cho cácứng dụng như nhận diện và theo dõi đối tượng

+ Mở rộng: Các plugin của GStreamer có thê được phát triển và kết hợp vớicác plugin tùy chỉnh dé phục vụ các ứng dụng nhúng

+ Kiểm soát độ trễ: GStreamer cung cấp các công cụ dé quản lý và giảm thiểu

độ trễ, điều này rất quan trọng đối với các ứng dụng yêu cầu xử lý thời gian thực.

19

Trang 29

Chương 3 Phương pháp đề xuất và quá trình hiện thực đề tai

3.1 Phương pháp đề xuất

3.1.1 Mô hình đề xuất

Tính đến thời điểm hiện tại, có nhiều thuật toán được sử dụng dé theo dõi con

người bang cách gắn ID trực tiếp vào khung hình của từng đối tượng khi hién thị trênmàn hình Tuy nhiên, khi phải quản lý một hệ thống lớn với nhiều camera đặt tại các

vị trí khác nhau, việc kiểm soát tất cả các đối tượng bằng mắt thường trở nên khôngkhả thi cho quản trị viên Vì vậy, nhóm đã phát triển một hệ thống có khả năng theodõi và kiểm tra trạng thái thông qua việc so sánh tính tương đồng của các đối tượngqua từng khung hình khác nhau và hién thị kết quả kiểm tra qua ứng dụng

Trước khi đi sâu vào những phương pháp được đề xuất, nhóm em xin đượcgiới thiệu khái quát về đề tài này Hệ thống nhận diện và theo dõi người sử dụng hai

camera IP dé thu thập dữ liệu đầu vào cho mô hình YOLOv3-tiny thực hiện nhận

diện người bằng cách sử dụng DPU của Kria KV260, sau đó đữ liệu sẽ được gửi lênmáy chủ đề quản lý, định danh đối tượng Hệ thống này không chỉ giám sát và nhận

dạng các đối tượng mà còn xử lý dữ liệu từ camera dé xác định trang thái từng cá

nhân trong khung hình Hình 3.1 bên đưới là mô hình khái quát của hệ thống

Trang 30

Trong lĩnh vực phát hiện đối tượng, nhiều mô hình học sâu đã được phát triển

dé có thé đáp ứng các yêu cầu khác nhau về độ chính xác, tài nguyên và tốc độ tính

toán Các mô hình như R-CNN (Region-based Convolutional Neural Networks), Fast

R-CNN, Faster R-CNN, và Mask R-CNN đã đạt được kết quả đáng ké trong việc cảithiện độ chính xác thông qua phương pháp chia vùng và dự đoán từng phần Tuynhiên, chúng thường đi kèm với độ trễ tính toán cao và yêu cầu tài nguyên phần cứng

lớn do quy trình xử lý đa giai đoạn phức tạp.

SSD (Single Shot MultiBox Detector) và YOLO (You Only Look Once) đã xuấthiện như những giải pháp thay thế tối ưu hơn về tốc độ SSD thực hiện việc dự đoán

các bounding box và class trực tiếp từ các feature maps trong một bước, nhưng yêu

cầu về tài nguyên phần cứng vẫn còn khá cao đối với các thiết bị cạnh YOLO, đặcbiệt là các phiên ban từ YOLOv1 đến YOLOv5, nổi bật với phương pháp tiếp cậntrực tiếp và hiệu quả hơn bằng phương pháp chia nhỏ hình ảnh đầu vào thành các lưới

và thực hiện dự đoán bounding box cho mỗi lưới trong một lần duy nhất, giúp được

độ trễ và thời gian xử lý ở mức đáng kinh ngạc.

Ở nghiên cứu này nhóm đã khảo sát các mô hình YOLO khác nhau [15] [16]

[28] và các nghiên cứu liên quan thì nhóm quyết định chọn mô hình YOLOv3-Tiny

[17] đề sử dụng cho hệ thong nhận diện va theo dõi người Về phần tập dữ liệu huấnluyện, nhóm đã thu thập các dữ liệu chỉ có một đối tượng là người từ các tập dataset

lớn như Pedestrian Detection dataset, Pascal VOC dataset [18] và các dtr liệu nhóm

tu thu thap thém sé duoc su dung dé huấn luyện mô hình Sau khi khảo sát mô hình

YOLOv3-Tiny (Hình 3.2) trên tập dữ liệu trên thì thấy hiệu suất của mô hình có mAP

93% vậy nên nhóm đã chọn mô hình YOLOv3-Tiny trong đề tài này

21

Trang 31

Input 416°416°3

al

ee

Maxpool 2*2 104*104"32

Maxpool 2"2

26*26"128

Conv 3*3 26°26°256

w

Hình 3.2 Kiến trúc mô hình YOLOv3-TinyYOLOv3-Tiny là phiên bản tinh giản của YOLOv3 có kích thước đầu vào là416x416 (đây cũng chính là kích thước chuẩn được Xilinx đề xuất dành cho DPU),được tối ưu hóa dé giảm thiểu độ phức tạp tính toán mà vẫn duy trì mức độ chính xác

chấp nhận được trong các tác vụ phát hiện đối tượng Với Deep-learning Processing

Unit (DPU) tích hợp trên Xilinx KV260 và kiến trúc nhỏ gọn đã được tỉnh giản,

22

Trang 32

YOLOv3-Tiny có thé tận dụng khả năng xử lý song song của DPU dé phát hiện đối

tượng với độ trễ thấp

Mặc dù có cấu trúc tinh giản hơn YOLOv3, YOLOv3-Tiny vẫn đạt được độ

chính xác đủ tốt trong thực tế Trong hệ thống phát hiện và theo dõi người, độ chính

xác của YOLOv3-Tiny đã chứng minh là đủ dé phân biệt va xác định các đối tượng

người trong video trực tiếp từ camera IP

3.1.2 Tập dữ liệu huấn luyện và tăng cường dữ liệu

Trong khóa luận này, việc xây dựng và chuẩn bị tập dữ liệu huấn luyện đóng vai

trò then chốt dé xây dựng mô hình YOLOv3-Tiny trên nền tang Xilinx KV260 Dé

đạt được độ chính xác 6n định và hiệu suất ở mức chấp nhận được, nhóm đã lựa chọn,lọc và sử dụng các chiến lược tăng cường dir liệu từ các tập dữ liệu phổ biến nhưCOCO, VOC, Pedestrian Detection dataset và nhiều tập dữ liệu, tăng cường di liệucho tập huấn luyện như Roboflow

Lựa chọn tập dữ liệu huấn luyện:

+ COCO (Common Objects in Context): Được biết đến với độ đa dang cao và

quy mô lớn, COCO cung cấp các hình ảnh chứa nhiều đối tượng trong các bối cảnh

thực tế khác nhau Nó bao gồm các nhãn chỉ tiết cho hơn 80 loại đối tượng khác nhau

+ Pascal VOC (Visual Object Classes): Đây là một tập dữ liệu khác chứa các

hình ảnh kèm theo chú thích cho 20 loại đối tượng, được sử dụng rộng rãi trong cácnhiệm vụ phát hiện và phân loại đối tượng

+ Tập trung vào người: Mặc đù COCO và VOC cung cấp nhiều loại đối trong

khác nhau, mục tiêu là phát hiện va theo dõi người Do đó, nhóm đã tập trung vao việc lọc ra các hình anh có chứa người từ cả hai bộ dir liệu này (Hình 3.1) và chỉ giữ

lại các bounding box và nhãn liên quan đến người Việc này giúp quá trình huấn luyện

trở nên đơn giản hơn và làm cho mô hình chuyên biệt hơn trong việc phát hiện người.

23

Trang 33

Bảng 3.1 Tập dữ liệu

COCO, PASCAL VOC, Images

Train 26108

Valid 2500 Total 28608

Tang cường dữ liệu với Roboflow:

+ Tăng cường dữ liệu tự động và tạo ra các biến thể mới: đề tài này nhóm chútâm vào các tùy chọn tăng cường được cung cấp bởi Roboflow dựa theo các thiếu sótcủa dit liệu từ Camera IP dé có thể tăng cường cho tập dữ liệu gốc Do đó nhóm đãdùng 2 tùy chọn là “Kéo ảnh” với hệ số ngang là 10°, hệ số đọc là 30° và “Xoay anh”với hệ số xoay là 20° Kết hợp với tập dữ liệu lúc đầu có 9536 ảnh, sau khi tăng cường

sẽ là 28,608 ảnh.

+ Kiểm tra và hiệu chỉnh: Mọi hình ảnh tăng cường đều được kiểm duyệt kỹ

càng dé đảm bảo răng các biến thé mới vẫn giữ nguyên các đặc điểm quan trọng củangười và không làm mắt đi thông tin quan trọng

3.1.3 Vitis AI

AMD Vitis AI là một môi trường phát triển được tích hợp dé có thé tận dung détăng tốc mô hình AI hiện thực trên các nền tảng của AMD Bộ công cụ này cung cấpcác IP được tối ưu hóa, các công cụ, thư viện, mô hình cũng như là các tài nguyên

khác như là các thiết kế mẫu và các hướng dẫn giúp người dùng trong quá trình pháttriển (Hình 3.3) Nó được thiết kế với hiệu suất cao và dé sử dụng Nó giúp tối ưu

việc tăng tốc AI trên các hệ thống SoC có thé điều chỉnh của AMD [19]

24

Trang 34

+ Deep Learning Processor Unit (DPU): là một động cơ có thé lập trình được

lên nó và đã được tôi ưu cho việc xử lý các mạng no-ron sâu Như đã dé cập ở phan

cơ sở lý thuyết, DPU hỗ trợ các mạng nơ-ron tích chập phổ biến như VGG, ResNet,

GoogLeNet, YOLO, MobileNet và các mạng khác.

+ Model Development:

- Vitis AI Model Zoo: Bao gồm các mô hình AI đã được tối ưu hóa dé tăngtốc độ xử lý và triển khai trên các nền tảng linh hoạt của AMD Các mô hình nàyphục vụ cho nhiều ứng dụng khác nhau như hệ thống hỗ trợ lái xe tiên tiến và tự động

(ADAS/AD), giám sát video, robot, và trung tâm dit liệu AMD cũng cung cấp các

mô hình đã được huấn luyện trước dé cải thiện hiệu suất thông qua việc tăng tốc học

^

sau.

25

Trang 35

- Vitis AI Model Inspector: được sử dụng dé hiện thực các kiểm tra tính đúngđắn ban đầu nhằm xác nhận rằng các toán tử và trình tự của các toán tử trong mô hìnhtương thích với Vitis AI Các kiến trúc mạng nơ-ron, toán tử và loại hàm kích hoạtmới sẽ được phát triển và tối ưu hóa dé nâng cao độ chính xác và hiệu suất hoạt động.Vitis AI cung cấp các cơ chế dé có thé tận dụng được các toán tử mà DPU không hỗ

trợ.

- Vitis AI Optimizer: khai thác ý tưởng về tính thưa thớt dé giảm độ phứctạp tính toán chung cho mô hình từ 5 đến 50 lần nhưng giảm độ chính xác của môhình ít nhất có thé Nhiều kiến trúc mạng nơ-ron sâu có mức độ dư thừa đáng kể nêntrước khi hiện thực thì mô hình nên được tối ưu để giảm đi độ phức tạp cũng như tăngtốc độ tính toán cho mô hình

- Vitis AI Quantizer: được tích hợp như một thành phần của TensorFlow

hoặc Pytorch Có nhiệm vụ chuyên đổi các trọng số có dạng 32-bit floating-point

thành các số có dang fixed-point như INT8 dé có thé tính toán đơn giản hơn mà khônglàm ảnh hưởng nhiều đến hiệu suất của mô hình Mô hình mạng số nguyên cô địnhyêu cầu băng thông bộ nhớ ít hơn và cung cấp tốc độ nhanh hơn so với mô hình đấucham động

- Vitis AI Compiler: ánh xạ mô hình AI đã được lượng tử hóa thành tập lệnh

và mô hình luồng dữ liệu hiệu quả cao Trình biên dịch thực hiện nhiều tối ưu hóa ví

dụ như các toán tử chuẩn hóa (Batch Normalization) được hợp nhất với phép tíchchập khi toán tử tích chập được đặt trước toán tử chuẩn hóa Vì DPU hỗ trợ nhiềuchiều song song nên việc lập lịch lệnh hiệu quả là chìa khóa dé có thé khai thác đượctính song song vốn có và có thê tái sử dung dit liệu

Trang 36

Center target va Embedded target Cac tính năng chính của Vitis AI Runtime API bao

gồm:

* _ Gửi các tác vụ không đồng bộ đến DPU

» Thu thập các tac vụ không đồng bộ từ DPU

» - Hiện thực các C++ API va Python API.

° - Hỗ trợ thực thi đa luồng và đa tiễn trình

- Vitis AI Library: là một bộ các thư viện và các API cấp cao được xây dựngdựa trên nền tảng Vitis AI Runtime (VART) Các API cấp cao có trong Vitis AILibrary sẽ giúp cho các nhà phát triển có khởi đầu nhanh chóng và tốt hơn trong việc

triển khai mô hình.

- Vitis AI Profiler: phân tích và hiển thị các ứng dụng AI để tìm ra các khảnăng về nghẽn cô chai và phân bồ tài nguyên tính toán giữa các thiết bị khác nhau

Các bước cơ bản để tích hợp một Vitis AI DPU gồm:

+ Một nền tảng phần cứng tùy chỉnh được phát triển bằng cách sử dụng nềntang Vitis dựa trên Vitis Target Platform Phan cứng được tao ra gồm IP DPU và cáckernel khác Trong một phiên ban Vitis AI sẽ cung cap các SD card image cho cácthiết bi đầu cuối của nhà cung cấp AMD đề có thé khởi đầu hơn Có thé sử dung Vitisflow hoặc Vivado để tích hợp DPU

+ Đầu vào của bộ công cụ Vitis AI trên máy chủ sẽ là các mô hình sau huấn

luyện và chạy chúng qua Vitis AI Optimizer (tùy chọn), Vitis AI Quantizer va Vitis

AI Compiler.

+ Xây dựng phan mềm thực thi chạy trên phần cứng đã được xây dựng Có thé

viết ứng dụng bằng C++ hoặc Python, gọi các thư viện Vitis AI Runtime và Vitis AI

Library để tải và chạy các tệp mô hình đã biên dịch hoặc sử dụng cũng như là điềuchỉnh lại các ứng dụng mà AMD đã cung cấp

27

Trang 37

Vitis workflow đặc biệt nhắm đến các nhà phát triển với hướng tiếp cận tậptrung vào phần mềm trong việc tùy chỉnh và xây dựng hệ thống SoC của AMD Vitis

AI khác biệt với cách hiện thực FPGA truyền thống, cho phép tích hợp FPGA vàocác ứng dụng mà không cần phát triển kernel RTL

Vitis workflow cho phép tích hợp IP DPU như một kernel gia tốc được nạp vàotrong runtime dưới dang tệp *.xclbin (Hình 3.4) Vitis AI cung cấp một số thiết kếtham khảo cho các kiến trúc DPU khác nhau

H Xilinx Object Xilinx Object 1 { fet VAI Quantizer

' (.xo) (.xo) (.xo} it ry i

Hinh 3.4 Cai nhin tong thé vé Vitis workflow

3.1.4 Vitis Video Analytics SDK

Vitis Video Analytics SDK (VVAS) là một framework hữu ich dé triển khai các

AI Nó nhận dữ liệu đầu vào va tao ra những góc nhìn sâu sắc từ các pixel cho nhiều

trường hợp khác nhau VVAS SDK có thê là lớp nền tảng cho nhiều ứng dụng phântích video như hiểu biết về giao thông và người đi bộ trong thành phố thông minh,

giám sát sức khỏe và an toàn trong bệnh viện, thanh toán tự động và phân tích trong

bán lẻ, phát hiện lỗi linh kiện tại nhà máy sản xuất và nhiều ứng dụng khác VVAScũng có thể dùng cho việc giải quyết các giải pháp Adaptive Bitrate Transcodeing có

28

Trang 38

thê yêu câu mã hóa lại video đâu vào ở các tôc độ bịt, độ phân giải, định dạng mã hóa

khác nhau [20].

Thanh phan cốt lõi của SDK bao gồm các VVAS Core C-API đã được tối ưu

hóa cao cùng với các plugin GStreamer như Video Decoder, Encoder, Decoder,

kernel xử lý hình ảnh, đơn vi xử ly học sâu (DPU), (Hình 3.5) Bằng việc thực

hiện tất cả các tính toán phức tạp nên bộ gia tốc chuyên dụng, VVAS có thê giúp xâydựng các pipeline có hiệu suất cao trong phân tích video, transcoding và các lĩnh vực

Hình 3.5 Ví du về một ứng dụng phân tích video điển hình của VVAS

VVAS là một kiến trúc đã được tối ưu và được xây dựng dựa trên frameworkGStreamer Tất cả các khối riêng lẻ là các plugin khác nhau được sử dụng (Hình 3.6).Bên dưới là các động cơ phần cứng khác nhau nhận nhiệm vụ xử lý các plugin đótrong suốt ứng dụng Tối ưu việc quản lý bộ nhớ bằng việc sử dụng bộ gia tốc khác

nhau đảm bảo hiệu suât cao nhât.

29

Ngày đăng: 23/12/2024, 23:57

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w