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 2LỜ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 3MỤ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 43.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 5DANH 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 6Hì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 7Bang 5.1 So sánh với các nghiên cứu liên quan - s5 5s + +sveeeeeessees 63
Trang 8DANH 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 9CLE 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 10TOM 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 11MỞ ĐẦ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 12e 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 13Chươ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 14detection 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 15lệ 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 16Chươ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 18Kiế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 19Bả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 20Sau 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 212.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 22vớ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 23bả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 242.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 25Kiế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 27nâ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 29Chươ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 30Trong 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 31Input 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 32YOLOv3-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 33Bả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 36Center 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 37Vitis 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 38thê 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