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: Thiết kế tích hợp trên Ultra96-V2 cho smart camera

99 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 đề Thiết kế tích hợp trên Ultra96-V2 cho Smart Camera
Tác giả Bùi Nguyễn Phát, Lê Minh Huy
Người hướng dẫn Tiến sĩ Nguyễn Minh Sơn
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 99
Dung lượng 64,1 MB

Nội dung

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

Trang 1

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

KHOA KY THUAT MAY TINH

BUI NGUYEN PHAT

LE MINH HUY

KHOA LUAN TOT NGHIEP

THIET KE TICH HOP TREN ULTRA96-V2 CHO SMART

CAMERA

DESIGN ON FPGA ULTRA96-V2 FOR SMART CAMERA

KY SU KY THUAT MAY TINH

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

BÙI NGUYÊN PHAT - 17520875

LE MINH HUY - 17520571

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

THIẾT KÉ TÍCH HỢP TRÊN ULTRA96-V2 CHO SMART

CAMERA

DESIGN ON FPGA ULTRA96-V2 FOR SMART CAMERA

KY SU NGANH KỸ THUAT MAY TÍNH

GIANG VIEN HUONG DAN

TIEN SĨ NGUYEN MINH SON

TP HO CHÍ MINH, 2021

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

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

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

Trang 4

LỜI CẢM ƠN

Trong suốt thời gian học tập tại trường Đại học Công Nghệ Thông Tin, đặc biệt được học tập trong khoa Kỹ thuật máy tính, chúng em đã được hướng dẫn bởi

những người thầy giảng dạy rất nhiệt tình, truyền đạt cho nhiều kiến thức bổ ích

quan trọng cho chuyên ngành sau này chúng em theo đuổi Chúng em xin chân thành cám ơn quý thầy cô đã giúp đỡ chúng em rất nhiều trong suốt thời gian qua.

Đặc biệt, chúng em xin chân thành cảm ơn thầy Tiến sĩ Nguyễn Minh Sơn đã hướng dẫn nhóm rất tận tình trong suốt quá trình thực hiện đề tài, hỗ trợ và cung cấp cho chúng em nhiều kiến thức chuyên môn quý báu để chúng em có thể hoàn thành khoá luận Chúng em xin cảm ơn những đóng góp ý kiến của thầy phản biện Thạc sĩ Chung Quang Khánh đã giúp phần báo cáo của nhóm thêm đầy đủ hơn Đồng thời, chúng em cũng xin chân thành gửi lời cảm ơn đến các anh chị, bạn bè

trong khoa, những người đã giúp đỡ nhóm cùng tìm kiếm thông tin, cùng trao đổi

và giải quyết nhiều van đề cho nhóm trong suốt quá trình thực hiện nghiên cứu này.

Chúng con cũng xin cảm ơn gia đình đã luôn tin tưởng, tạo điều kiện và ủng

hộ chúng con về rất nhiều về mặt tinh thần cũng như thé chat trong suốt khoảng thời gian chúng con thực hiện đề tài khoá luận này.

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của sinh viên nên trong báo cáo này chúng em không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự đóng góp ý kiến của quý thầy cô dé chúng em được bổ sung,

nâng cao kiến thức của mình hơn.

Một lần nữa, chúng em xin chân thành cảm ơn!

Thành phố Hồ Chí Minh, ngày 03 tháng 08 năm 2021

Sinh viên thực hiện

Bùi Nguyễn Phát Lê Minh Huy

Trang 5

SMART CAMERA + 1 2S H12 2 1212111012111 0101000 1H01 T 0 gi, 6

2.1 Field Programmable Gate Array (FPGA)) -+-+ + + <+++++sc+c+x+x+ 6

2.1.1 Định nghĩa c2ĂSĂ 5< 22s 6

2.1.2 Kiến trúc tổng quát -cc+cccveserrrerrrrrersrrrrrcee 7 2.1.3 Ưu nhược điểm của FPGA ctcrrkkrierrrrrrrree 9

2.2 Hệ thống nhúng . +¿222+22£+2E+ÊEEE22231221121122711221122212222.xe 9

2.2.1 Định nghĩa 6 SH rên 9

2.2.2 Phần cứng của một hệ thống nhúng -.: :-:5zz=+ 10 2.2.3 Phần mềm của một hệ thống nhúng - : : :-5zz=+ 11 2.2.4 Đặc trưng của một hệ thống nhúng - ¿-©++c5+z++ 11

2.2.5 Ưu nhược điểm của hệ thống nhting - 2 ¿©5522 12 2.3 Hệ thống SoC (System on Chip) ssccsssessssesssseesssecsssecsseesssesesseceseesssesssees 13 2.3.1 Định nghĩa hệ thống SOC cccsssescsseesssesssseessseessessssesssseesssecsseeeeseees 13 2.3.2 Kiến trúc cơ bản của một hệ thống SoC

2.3.3 Ưu nhược điểm của hệ thống SoC -. 2¿+22sz+cvxzsex 15

2.4 Smart camera

Trang 6

2.5 Các nghiên cứu về smart Camera -2-©2+2+++2£+++2Ex+t£Ex+vrxsrrrxeee 19

2.5.1 Nghiên cứu ngoài nước

2.5.2 Nghiên cứu trong nước ‹ -+++++sex+c+xeeesersrexeee 20

2.6 Tổng kết chương và ý tưởng đề xuất

Chương 3 THIẾT KE HE THÓNG :-¿2¿22+++22+++tvx++rvresrx 23

3.1 Zynq UltraScale+ MPSoC.

3.2 Board Ultra96-V2 - ¿+ + + St 91212121 511171 21211111711 111.111 24

3.3 Thiết kế tổng quát của hệ thống ¿ z2+++22v++++tzxxrr+rrsrcee 25

3.4 Thuat co a/909/ 1 d-: 28

3.4.1 Batch normaliZa(ÏOI óc c3 1211 1 51 1 E1 kg it 28 3.4.2 High resolution classifier -+<5+5+<<<+x+xcx+ 28

3.4.3 Kiến trúc Anchor Box -cc.cccccrrrrtrerrsrrrrrirrree 28

3.4.4 K-means clus(ering - <5 5c secseseekeerseeree 29

3.4.5 Direction location preditiOn - es +5+5<c+c+<zsessrseseree 29

3.4.6 Fine-grained featue - «5< + S+Sttseererereiree 30

3.4.7 Multi-scale training cc« chen 31

3.4.8 Light-weight backbone «kh HH Hi 31

lốc nsa sẽ s.435:14 32

3.5.1 _ Quá trình xử lý cnnnnHHHHnHH Hư 32

3.5.2 _ Kiến trúc tổng quát cho YOLOV2 FPGA ¿ ¿csz++ 33

3.6 Tổng hợp YOLOv2 trên Vivado HLS 2019.2 +55 +55 c++<<<+ 35 3.7 Thiết kế SoC tích hợp IP YOLO2_FPGA ccccccccccvvecrrerrres 39

Chương 4 HIỆN THUC SMART CAMERA 5:5: cccscvsevsrvsrrsev 42

AL .G 60) 5 42

Trang 7

4.2 OpenCV, GStreamer và lập trình Socket -¿- +5« «+ ++x++ccvxsesee 47

4.2.1 OpenCV

4.2.2 GST€AITT - (E2 9111 11 1 E1 51 1 T1 1n HT HH HH 48 4.2.3 Lap trình Socket

4.3 Xây dựng luồng streaming bằng GStreamer - 5+ 51

4.3.1 P2P streaming

4.3.2 Stream nhiều máy nhận -++2++++cv+rr+tzxrrrrrrsrcee 52 4.4, Xây dựng lung streaming bằng công cụ Vitis 2019.2 - 5 4.5 Kết quả thực nghiệm -2-2222+2222++tEEEEErEEEEErrtrrkrrerrkrrrrrrkrcrrrs 54

4.5.1 Tốc độ nhận diện -222222¿-+2222222212222211212222112 EE 54

4.5.2 P2Pstreaming -.cĂc2c2.SSteeieieeereey 57

4.5.3 Kết quả nhận dạng của YOLOv2 -2-©22c+c+cccvcserrrrcee 60 4.5.4 Stream nhiều máy nhận -::++22+++cv+++zx+rzrsrsrree 67 4.6 Đánh giá hệ thống .¿-222222222222222t222E2211222112211 221 1e 68

4.7.3 Giao diện người dùng - ¿+ ry 75

Chương 5 KÉT LUẬN VÀ HƯỚNG PHÁT TRIẺN . -: - 78

Trang 8

1N ch ca 78

5.2 Hướng phát trién

Trang 9

DANH MỤC HÌNH

Hình 2.1: Kiến trúc cơ bản của FPA - +: 2 522S‡SE+E£EE£EEEEEEEEEEErkerkrkerrree 7Hình 2.2: Mô hình cơ bản của một hệ thống nhúng - 22 =2 2+s+£+£z+5+2 10Hình 2.3: Phần cứng của một hệ thống nhúng - 2-2 ¿+52 +x+>++z++z+zz+zse2 11Hình 2.4: Kiến trúc co bản của ¡100196011 Ö4<+£< 13Hình 2.5: Sơ đồ khối của một smart Camera - - ¿5 x2 SEEEEeEvEeEeErEetztzerers 16

Hình 2.6: Smart camera NI 1772 - s00 11999 vn ng tư n 18

Hình 2.7: Một số cong kết nối trên smat camera - 2-2 2 2>x>x+z++z+zs+2s+2 18Hình 2.8: Mô hình trực quan của dé tài -¿- ¿2 2 +x+sz+E+£+EeEzEerxrxersrrrrxrree 22Hình 3.1: Các khối trong Zynq UltraScale+ MPSoC - ¿2-5 cz+s+£z£zcsz2 23Hình 3.2: Các thành phan chính trên board Ultra96-V22 -2- + 2 s+s+£+£z+s+¿ 24

Hình 3.3: Sơ đồ khối của board Ultra96~V2 -¿- ¿5+ x+2++£++E+Ee£xerxezxerezrecxee 25

Hình 3.4: Thiết kế ban đầu của hệ thống - ¿+2 EE+E2+E+E£EE+E£EeEzE+Eersrxez 26Hình 3.5: Thiết kế tổng quát của hệ thong ¿2 + + 2+2 E+E££E+E£Ee£zEeEerereeg 26

Hình 3.6: Kiến trúc tông quát của hệ thống - ¿+ 2 +S2+E+EE2E+£+zEe£xzEerxcez 27

Hình 3.7: Dự đoán bounding box của YOOV2 -.- 5 S2 33+ E+severeeeerers 29

Hình 3.8: Kiến trúc YOLOV2 ¿+52 S2+E9SE‡EEEEEEEEEEEEEEEEEEEEEEEEEEEEEErkrrrrkrree 30

Hình 3.9: Kĩ thuật Reorg trong YOOV2 - - <1 30 Hinh 1018817 4560 e.- 31 Hình 3.11: WordTree trong YOOV2 - - <5 111v ngư 32 Hình 3.12: Quy trình xử lý đữ lIiỆU <2 1113211113511 113 111 9v key 33

Hình 3.13: Kiến trúc tổng quát của YOLOv2 FPGA - 2 2 +cecz+x+eezscsez 34Hình 3.14: Khối YOLO2_FPGA của nhóm tác GIA [Ï]] «c5 2S<<cccssssseeeers 36

Hình 3.15: IP YOLO2_FPGA của nhóm tác giả [ Ï] << «++++ssees++ 37

Hình 3.16: IP YOLO2_FPGA mới sau tổng hợp - 2-5 s+s+csz£+£szzczxssez 38

Trang 10

Hình 3.21: Năng lương tiêu thụ của nhóm tác giả [ Ï] - «55+ <<<+++sx<+sex 41 Hình 3.22: Năng lương tiêu thụ của nhóm - - ¿+ 3+3 **+EEseeeerereesreses 41 Hình 4.1: Hardware description ccccescccccssssnceceeeesneeeeeeesneeeceeeeneeeceseeeneeeeeeeeaaes 43 Hình 4.2: Image packaging COnÍIEUTAfIOII - - << + E11 E9 ky 43 Hình 4.3: Boot image S€tfITỠS - - -.- n9 SH TH HH nu 43 Hình 4.4: USB gadget SUDDOT - - - - S211 1319911 ng ng ng re 44 Hình 4.5: Wilc module bitbaK€ .- - 5 + 1191199 11v vn ng ngư 45 Hình 4.6: Khai báo reserved MEMOTY - - - <5 E1 vn tk 45 Hình 4.7: Quy trình xử ly pipeline của một file MĨP3 « << <++<ccesx 48 Hình 4.8: Streaming sử dụng TCTP - - c 1133332111111 1 11181111 gvxrh 50 Hình 4.9: Mô hình xử lí pipeline cho P2P dùng GStreamer - «« 52 Hình 4.10: Mô hình xử lí pipeline cho multiple stream dùng GStreamer 33

Hình 4.11: Kiến trúc vitis YO]O2_CAMETA 0 ‹‹-1 53

Hình 4.12: File @Ïf c1 ST nọ kg 54

Hình 4.13: Ảnh thử tốc độ chạy nguyên Mau - 2 2+ + +++E+E££zzE+£+£zzx+z 55Hình 4.14: Kết quả nhận diện trên darknet framewOrK -««<=+++++s<++ 55Hình 4.15: Kết quả trên darknet framewOrK - ¿+ 2+s+5£+E+£++E+£++Eezxzxcrxesez 56Hình 4.16: Kết quả nhận diện trên PL của Ultra96-V2 FPGA - -«<<5+ 56Hình 4.17: Kết quả trên PL của Ultra96-V2 EPGA 2 5s +cs+Ee£sz£ezszcez 56Hình 4.18: Ảnh chụp lần một khi không có YOLOv2 :-¿ 5 +55+25+55+2 57Hình 4.19: Ảnh chụp lần hai khi không có YOLOv2 ¿2¿ 5 +25++5+55+2 57Hình 4.20: Ảnh chụp lần ba khi không có YOLOv2 2-5 2+5 s+s>s+5+2 58Hình 4.21: Ảnh chụp lần một khi kết hợp YOLOv2 -2- - 2 2 s+£+£sz£zszc+2 58Hình 4.22: Ảnh chụp lần hai khi kết hợp YOL/OvV2 -2- 2-5255 s+5++z++z+>se2 59Hình 4.23: Ảnh chụp lần ba khi kết hợp YOLLOv2 ¿- 2 ¿+5 ++c++c++s+>se2 59Hình 4.24: Kết quả nhận diện ban chải đánh răng của YOLOv2 - ‹<- 60

Hình 4.25: Kết quả nhận diện sách của YOLOV2 5c S3 sseseeeere 60

Hình 4.26: Kết quả nhận diện quả táo của YOL/Ov2 -¿- ¿5+ s+c++c++s+2s+2 61Hình 4.27: Kết quả nhận diện muỗng của YOLOV2 2 ¿5z ++c++z++x+2xe2 61

Trang 11

Kết quả nhận diện xe đạp của YOLLOV2 c + Sc sSsssvreesea 64

Kết quả nhận diện điện thoại của YOLOV2 2-5: 2+5 z+s+cszez 65Kết quả nhận diện laptop của YOLOV2 ¿ ¿-5¿ 55c ++z++z++xzzsze: 65Kết quả nhận diện dao của YOLOV2 -2- ¿25+ ©++2x+z++z++xezsees 66Kết quả nhận diện chuột máy tính của YOLOv2 - - 25+: 66Ảnh chụp lần một lỗi khi stream nhiều máy nhận « - 67Ảnh chụp lần hai lỗi khi stream nhiều máy nhận - 67Ảnh chụp lần ba lỗi khi stream nhiều máy nhận -2- - + 68Thiết kế mặt trước và mặt ngang của hộp - 2 2 +s=+szs+s+ 73Thiết kế mặt sau của ¿ñ)9 ®^ TT " 74Ảnh thực tế mặt trước và mặt ngang của hộp - 5=: 74Ảnh thực tế mặt sau của 1008) 0) nn 75

Vi dụ khi chạy chương trình nhận streaming camera thường 76

Ví dụ khi chạy chương trình nhận streaming hình ảnh xử lý YOLOv2 77

Trang 12

DANH MUC BANG

So sánh các nghiên cứu liên quan trong nƯỚC <5 5+5 s+++<<<+ 20

Tan số ước lượng của nhóm tác giả [ Ï ] - 2 - =2 +s+s+£e£zx+£+zzzs+2 36Tài nguyên sau tổng hợp YOLO2_FPGA của nhóm tác giả [1] 36Tài nguyên sau khi tổng hợp IP mới 2- 2 ¿+52 x+z+zz++x++s++: 37Tan số ước lượng của IP YOLO2_FPGA mới 2- 5 255: 38Luồng thiết kế Petalinu - - ¿2+ S*+E‡E£EEE2EvEEEEEEEEEEkrkrrerrrkee 42

File petalinux-user-image - - G5 + 1n ng nh 46

Kết quả độ chính xác của hệ thống -2- 2 ¿55+ ©x+zx+z+zzzz+sxe2 69Kết quả kết nối trên web bfOWS€T - + 2-5 S2+E‡E‡EEEzEeEeErxereree 70Kết quả streaming P2P + ¿k2 S22E9EEEE2E2EEE12111212171 112111 te 71Kết qua streaming nhiều máy nhận khi không có YOLOv2 71Kết quả streaming nhiều máy nhận khi có YOLOv2 -: 72

Độ trễ streaming dựa trên khoảng cách kết nối khi không có YOLOv2 72

Độ trễ streaming dựa trên khoảng cách kết nối khi có YOLOv2 73Quá trình thực hiện đề tài của nhóm nghiên cứu - 2 s52 80

Tông kết và so sánh với một sô nghiên cứu trước đó trong nước 81

Trang 13

DANH MỤC TỪ VIET TAT

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

ADC Analog to Digital Converter

AHB Advanced High performance Bus

AHDL Altera Hardware Description Language

Al Artificial Intelligence

ALU Arithmetic Logic Unit

AMBA Advanced Microcontroller Bus Architecture APB Advanced Peripheral Bus

APU Application Processing Unit

ARM Advance RISC Machines

ASIC Application Specific Intergrated Circuit

AXI Advanced eXtensible Interface

CCI Cache Coherent Interconnect

CNN Convolutional Neural Network

Core SW Core SofWare

CPU Central Processing Unit

CUDA Compute Unified Device Architecture

CVPR Computer Vision and Pattern Recognition

DDR4 Double Data Rate fourth generation

DMA Direct Memory Access

DRAM Dynamic Random Access Memory

DSP Digital Signal Processor

Trang 14

FPGA Field-Programmable Gate Array

FPS Frame Per Second

GPU Graphics Processing Unit

HDL Hardware Description Language

HLS High Level Synthesis

HOG Histogram of Oriented Gradients

mAP mean Average Precision

OpenCV Open source Computer Vision library

OSI Open System Interconnection

PC Personal Computer

PL Progammable Logic

PS Processing System

RAM Random Access Memory

RGB Red Green Blue

RISC-V Reduce Instruction Set Computer version 5

ROM Read Only Memory

Trang 15

RTL Register Transfer Level

SDIO Secure Digital Input Out

SoC System on Chip

TCP Transmission Control Protocol

UART Universal Asynchronous Receiver Transmitter

VHDL (VHSIC-HDL) Very High Speed Intergrated Circuit Hardware

Description Language

Trang 16

TOM TAT KHÓA LUẬN

Ngày nay, những tiến bộ trong công nghệ vi điện tử đã giúp con người có thêtích hợp được nhiều hệ thống phức tạp trong một thiết bị duy nhất Smart cameracũng là một phần của quá trình phát triển này và có thê được định nghĩa là một hệthống được tích hợp thêm nhiều chức năng: truyền tải hình ảnh qua kết nỗi khôngdây, tích hợp thuật toán xử lý ảnh Việc xây dựng smart camera có thể dựa trênnhiều nền tảng như: FPGA, Embedded system, System on Chip Mỗi công nghệ đều

có ưu nhược điểm đặc trưng của chúng, đã và đang được nhiều nhóm tác giả, trường

học, các công ty lớn cả trong và ngoài nước nghiên cứu, phát triển Các yếu tố cầnlưu ý khi thiết kế smart camera có thé là tốc độ thu nhận và hiển thị, độ chính xác,

năng lượng tiêu tốn và giá thành sản phâm

Trong đề tài này, nhóm muốn sử dụng nền tang System on Chip dé xây dựngmột hệ thống smart camera streaming hình ảnh qua kết nối không dây với độ trễ

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

YOLOv2 xử lý ảnh trên phần cứng FPGA, kết hợp bộ xử ly core ARM và một sốmodule khác dé điều khiến và truyền dữ liệu Người dùng có thé xem kết quả trênmàn hình hiển thị thông qua một Wifi Access Point modem

Nhóm đề xuất thiết kế hệ thong smart camera trên bộ công cụ phần mềmVivado phiên bản 2019.2 của Xilinx (bao gồm: Vivado HLS, Vivado Design Suite,

Petalinux, Vitis), sử dung board Ultra96-V2 trên nền tảng Zynq UltraScale+MPSoC của nhà phát hành Avnet Tần số hoạt động mong muốn của hệ thống đạt

150MHz và có thê hiển thị kết quả trong thời gian thực

Trang 17

Chương 1 GIỚI THIEU DE TÀI

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

Ké từ những năm 1990, smart camera đã thu hút được nhiều sự quan tâm từ

các nhóm nghiên cứu, trường đại học và nhiều ngành công nghiệp, đặc biệt là trongcác ngành sản xuất và giám sát sử dụng video Điều này có được là do smart cameramang lại những lợi thé khác biệt so với máy ảnh thông thường Nó không chỉ thựchiện việc chụp ảnh thông thường mà còn phân tích hình ảnh để nhận dạng và đưa rathông tin về đối tượng nao đó trong ảnh hoặc có thé chỉnh sửa ảnh trực tiếp màkhông cần sự can thiệp của con người tất cả đều được tích hợp trong một hệthống nhỏ gọn Sự phé biến ngày càng tăng của smart camera được xây dựng dựa

trên những tiến bộ đạt được trong công nghệ bán dan, kỹ thuật thị giác máy tính và

được thúc đây bởi các yếu tố kinh tế - xã hội như độ an toàn, bảo mật giúp tăngnăng suất và tiết kiệm chi phí Ngày nay, smart camera được sử dung trong nhiều

lĩnh vực ứng dụng, đặc biệt là trong giám sát an ninh, thị giác máy trong công

nghiệp, robot, nhà thông minh

Cùng với sự phát triển mạnh mẽ của các ngành công nghệ vật liệu, một cảmbiến camera có thé thu được hình ảnh với chất lượng tốt cùng với độ phân giải cao.Việc quan sát hình ảnh thu được thông qua một đường truyền ở khoảng cách xa với

độ trễ nhận được không qua cao cũng là yếu tô thu hút nhiều mối quan tâm Hơnnữa, sự phát triển mạnh mẽ các thuật toán thông minh, trí tuệ nhân tạo trong xử lý

ảnh ngày nay càng khiến cho nhiều công ty, tổ chức nghiên cứu muốn áp dụng

chúng vào trong các hệ thống camera quan sát của họ Nhờ đó tạo thành các smart

camera hỗ trợ tốt hơn cho các công việc sản xuất trong nhà máy, bảo mật an ninh

Do đó, trong đề tài này, nhóm nghiên cứu muốn thiết kế hệ thống smart camera có

thể truyền hình ảnh streaming (bao gồm hai chế độ: camera hình ảnh thường vàcamera xử lý thuật toán nhận dạng vật thể) thông qua mang Wifi, với một độ trễ

thâp ở mức khả quan và ôn định.

Trang 18

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

Ở luận văn này, nhóm tập trung tìm hiểu cách thiết kế, tích hop smart camera

trên một hệ thống SoC (Sytem on Chip) và streaming hình ảnh thông thường với độtrễ thấp nhất có thé Ngoài ra, smart camera tích hợp thêm thuật toán AI dé nhận

diện có người trong khung hình dựa trên mạng no ron tích chập (CNN YOLOv2).

Smart Camera sẽ truyền hình ảnh dữ liệu thông qua đường truyền Wifi lên một mànhình để quan sát Nhóm đề ra những mục tiêu sau:

‹,

“Ws

>

Nhóm sé kế thừa lai bộ CNN YOLOv2 từ luận văn [1] “Nghiên cứu và hiện thực

thuật toán CNN (YOLO) trên Zedboard ZYNQ 7000” của nhóm sinh viên Phan

Tuan Thanh và Vũ Hoàng Hy dé nghiên cứu, phục vụ cho việc tích hợp hệ thông

SoC trên smart camera.

Tiếp theo nhóm tìm hiểu board Ultra96-V2 của Avnet phân phối dựa trên hệthống Zynq UltraScale+ MPSoC do Xilinx phát hành Nhóm tìm hiểu thêm bộcông cụ Xilinx Vivado (bao gồm Vivado HLS, Vitis, Vivado Design Suite) để

dùng cho việc khởi tao ra bộ CNN YOLOv2 dưới dạng ngôn ngữ Verilog bang

Vivado HLS Sau đó nhóm tìm cách cài đặt bộ CNN YOLOv2 vào hệ thốngSoC trên board Ultra96-V2 kết nói với USB Camera và module Wi-Fi

Kế tiếp nhóm tìm hiểu và xây dựng hệ điều hành Linux, sau đó nạp lên boardUltra96-V2 bằng công cụ Petalinux của Xilinx phát hành để điều khiển hoạtđộng của hệ thông

Nhóm tìm hiểu tiếp các thư viện hỗ trợ như GStreamer, OpenCV và một sỐphương thức lập trình Socket để thực hiện truyền hình ảnh streaming camerathường hay camera xử lý YOLOv2 thông qua mạng kết nối Wifi

Cuối cùng nhóm viết các chương trình phần mềm bằng Vitis và nạp lên hệ điềuhành Linux trên board Ultra96-V2 dé điều khiển hoạt động hệ thống Nhóm sẽ

tiếp tục kiểm tra lại hệ thống, đánh giá các kết quả thử nghiệm và đóng gói sản

phẩm

Trang 19

thể thấp hơn các hệ thống smart camera sử dụng các thuật toán AI khác.

1.4 Kết quả mong muốn

Smart camera sẽ kết hợp streaming hiển thị cả hai camera hình ảnh thường vàcamera xử lý thuật toán YOLOv2 thông qua mạng Wifi Đối với camera hình ảnhthường, các thông số hiển thị ở mức khả quan và có thé chap nhận được (vi du: độphân giải HD 1280 x 960 sẽ có độ trễ nhỏ hơn khoảng 5 giây, tốc độ hiển thị khung

hình mỗi giây trung bình lớn hon 2 fps) Đối với camera hình ảnh xử lý YOLOv2,

hệ thống có thể nhận diện có người xuất hiện với độ chính xác trên 90% với tần số

150 MHz Dữ liệu kết quả có thê truyền qua điểm truy cập Wifi dé hiển thị Ngoài

ra nhóm cũng mong muốn thực hiện thêm việc nhận diện các đồ vật khác cùng với

người trong khung hình.

1.5 Bo cục luận văn

Báo cáo này được chia làm năm chương, mỗi chương có nội dung được trình

bày như sau:

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

Chương đầu tiên sẽ trình bày ngắn gọn lý do chọn đề tài của nhóm, mục tiêu

đê ra của nhóm, những giới hạn đê tài và kêt quả mà nhóm mong muôn đạt được.

Chương 2: Các công nghệ và các nghiên cứu liên quan tới smart camera Dựa vào các tài liệu nhóm tìm kiêm được trên Internet và kho dữ liệu trên

website của khoa, chương này trình bày một số lý thuyết về một số công nghệ nền

Trang 20

tảng cho việc tích hợp smart camera, cũng như nêu lên một sô bài báo, nghiên cứu

về smart camera mà nhóm đã tìm hiéu được Từ đó nhóm nghiên cứu tông kết, so sánh và đưa ra một mô hình sơ bộ cho hệ thông smart camera của đê tài.

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

Ở chương này nhóm đề xuất một hệ thống smart camera tích hợp YOLOv2

trên phần mềm Vivado 2019.2, sau đó giới thiệu cách hoạt động của hệ thống và

một số kết quả tài nguyên tiêu tốn

Chương 4: Hiện thực smart camera trên Ultra96-V2

Nhóm đề xuất xây dựng một hệ điều hành Linux được nạp lên Ultra96-V2 baogồm việc kết hợp một số module Wifi, thư viện hỗ trợ hién thị ảnh OpenCV, thư

viện Gstreamer, thiết kế pipeline streaming truyền hình ảnh và xây dựng phần

mềm điều khiển bộ YOLOv2 trên FPGA thông qua core ARM trên Ultra96-V2.Nhóm cũng trình bày một số kết quả đạt được cũng như đóng gói sản phẩm vàdemo ứng dụng phần mềm cho người dùng

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

Chương cuối tông kết lại những công việc đã hoàn thành, khó khăn gặp phải

của nhóm Đồng thời nhóm trình bày hướng đi cải tiến trong tương lai

Trang 21

Chương2 CÁC CÔNG NGHỆ VÀ CÁC NGHIÊN CỨU LIÊN QUAN

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

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

s* Khối vao/ra (I/O Pads)

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

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

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

Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ

mô tả phần cứng HDL như VHDL, Verilog, AHDL Các hãng sản xuất FPGA lớnnhư Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quátrình thiết kế Ngoài ra cũng có một số hãng thứ ba cung cấp các gói phần mềm kiêu

này như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cảcác bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên

HDL (con gọi là mã RTL).

Trang 22

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

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

là các pin FPGA), khối kết nối (Interconnection), các khối logic cấu hình (LogicBlocks hoặc Configurable Logic Blocks - CLB) Các khối CLB được tổ chức sắpxếp theo mảng với 2 hướng doc và ngang như Hình 2.1

Hình 2.1: Kiến trúc cơ ban của FPGA

Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phần tửnhớ cơ bản được sử dụng trong hệ thống số CLBs là phần tử cơ bản cấu thành

FPGA, là nguồn tài nguyên logic chính tạo nên các mạch logic đồng bộ lẫn không

đồng bộ Một CLB cơ bản gồm một mạch tổ hợp có thé lập trình (còn gọi là LUT),một Flip-Flop hoặc một chốt (latch) LUT (Look Up Table) là khối logic có thé thựchiện bất kì hàm logic nào từ 4 đầu vào (số đầu vào này sẽ tùy thuộc vào từng dòngchip của mỗi hãng) Kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khốilogic trực tiếp hay thông qua phần tử nhớ flip-flop Ngoài khối logic cơ bản đó,nhiều chip FPGA hiện nay còn có một hỗn hợp các khối khác nhau, một số trong đó

chỉ được dùng cho các chức năng cụ thê, chăng hạn như các khôi bộ nhớ chuyên

Trang 23

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

cấu hình bộ nhớ được sử dụng trên tất cả các khối logic được dùng dé điều khiển

các chức năng cụ thê của mỗi phân tử bên trong khôi đó.

Khối kết nối (Interconnections): dùng dé liên kết các khối logic và I/O lại vớinhau dé tạo thành một thiết kế hoàn chỉnh Mạng liên kết trong FPGA được cầuthành từ các đường kết nối theo hai phương ngang và đứng Tùy theo từng loại

FPGA mà các đường kết nối được chia thành các nhóm khác nhau Các đường kếtnối được nối với nhau thông qua các khối chuyển mạch lập trình được

(programmable switch) Trong mỗi khối chuyên mạch chứa một số lượng nútchuyên lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau

Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đếncác thành phần bên ngoài Một trong những van dé quan trọng nhất trong thiết kếkiến trúc I/O là việc lựa chọn các tiêu chuẩn điện áp cung cấp và điện áp tham chiếu

sẽ được hỗ trợ Số lượng Pin (/O) của FPGA tương đối lớn, thường được chia ra

làm 2 loại: User Pin (chân người dùng), Dedicated Pin (chân chuyên dung) User

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

(/O power pin) Dedicated Pin: được mã hóa cứng với một chức năng cụ thé như:

s* Power Pin.

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

s* Dedicated Input hay Clock Pin: điều khiển mạng lưới clock trong FPGA

s Voltage IO: cấp nguồn cho các công logic và flip-flops bên trong FPGA

Theo thời gian, các kiến trúc FPGA cơ bản đã được phát triển nhiều hơn thôngqua việc bố sung các khối chức năng đặc biệt có thé lập trình như bộ nhớ Block

RAMs, logic số hoc (ALU), bộ nhân, DSP-48 và thậm chi là bộ vi xử lý nhúngđược thêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng Kết quả lànhiều FPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó

Trang 24

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

¢ Uu điểm:

> FPGA có thé được lập trình ở mức logic Do đó, nó có thé thực hiện xử lý tin

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

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

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

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

s* Nhược điểm:

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

cũng như các nguyên tắc cơ bản về hệ thống kỹ thuật số Việc lập trìnhkhông đơn giản như lập trình ngôn ngữ bậc cao C hay Python được điều

khiển dựa trên bộ xử lý Hơn nữa, các kỹ sư cần học cách sử dụng các công

cụ mô phỏng đa dạng.

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

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

2.2 Hệ thống nhúng

2.2.1 Dinh nghĩa

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

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

ở đây phần mềm được nhúng vào phần cứng Một trong những đặc điểm quan trọng

nhất của các hệ thống này là nó chỉ cung cấp input/output trong một khoảng thời

gian giới hạn Sự hỗ trợ của các hệ thống nhúng giúp cho công việc trở nên hoànthiện và thuận tiện hơn Vì thế, các hệ thống nhúng thường được tích hợp trong rấtnhiều thiết bị từ đơn giản đến phức tạp Hình 2.2 mô tả mô hình cơ bản của một hệthống nhúng

Trang 25

Input Variables

Output Variables

Link to Other Systems

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

2.2.2 Phần cứng của một hệ thống nhúng

Hệ thống nhúng sử dụng nền tảng phần cứng dé thực thi các hoạt động Phancứng của hệ thống nhúng được lắp ráp cùng với bộ vi xử lý/vi điều khiển Hệ thống

phần cứng này bao gồm các yêu tố như giao diện cho các dữ liệu đầu vào/đầu ra, bộ

nhớ, giao diện người dùng và bộ hiển thị dữ liệu Hình 2.3 mô tả các phan cứng cơbản của một hệ thống nhúng

10

Trang 26

2.2.4 Đặc trưng của một hệ thống nhúng

Hệ thống nhúng được thiết kế để thực hiện một chức năng chuyên biệt nào

đó Day là điểm khác biệt so với các hệ thông máy tính khác như máy tính cá nhânhoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau với những phép

11

Trang 27

tính phức tạp Tính chuyên dụng của hệ thống nhúng giúp nâng cao khả năng sử

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

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

lớn, công suất, chi phí và cả hiệu năng hoạt động của hệ thống Hệ thống phải hoạtđộng nhanh ở một mức độ chấp nhận được nào đó, đồng thời vẫn phải đảm bảo tiêu

thụ ít năng lượng hơn để tăng tuôi thọ của pin Một số hệ thống nhúng phải tương

tác liên tục với những thay đổi trong hệ thống và tính toán các kết quả cụ thê trongthời gian thực với độ trễ cực thấp hoặc hầu như không có

Hệ thống nhúng phải được nhúng vào một vi điều khiển hoặc bộ vi xử lý Hệ

thống nhúng luôn yêu cầu một bộ nhớ nên phần mềm nhúng thường được đưa trựctiếp vào ROM Hệ thông nhúng không bắt buộc sử dụng bộ nhớ thứ cấp trên máytính Hệ thống nhúng phải được kết nối với các thiết bị ngoại vi để kết hợp các thiết

bị đầu vào và đầu ra Hệ thống nhúng thường được tích hợp sẵn với phần cứng déđảm bảo tính bảo mật và hiệu suất để phần mềm nhúng trên hệ thống đó đáp ứng

được nhu cầu sử dụng với độ linh hoạt cao hơn

2.2.5 Ưu nhược điểm của hệ thống nhúng

s* Ưu điểm:

> Đơn giản để mang lại sự sáng tạo cao

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

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

Dê sử dụng cho một việc cô định.

VV VY WV Da năng, dé di chuyên với kích thước nhỏ

> Độ chính xác tốt hơn trong kết quả

s* Nhược điểm:

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

nâng câp và cải tiên vê mặt phân cứng hoặc hiệu năng.

12

Trang 28

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

tìm lỗi.

> Bộ nhớ có thé bị giới hạn, nếu hệ thống nhúng càng mạnh về CPU hoặc

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

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

2.3.1 Định nghĩa hệ thống SoC

Sysem on Chip là hệ thống mạch tích hợp bao gồm tat cả các thành phan cầnthiết được tích hợp trên một chip duy nhất Các thành phần này có thể bao gồmmạch số (digital), mạch tương tự (analog) hoặc là sự pha trộn giữa hai mạch này(mixed-signal) Một SoC ngày nay thường có khả năng xử lý rất nhiều tác vụ cùnglúc như âm thanh, hình ảnh, giải mã tín hiệu SoC là một mức phát triển cao hơncủa thiết kế ASIC (Application Specific Intergrated Circuit) Tuy nhiên, với sự phát

triển nhanh chóng của ngành công nghiệp bán dẫn và các ứng dụng đi kèm, hệ

thống chip ASIC hay là SoC có thé được hiéu là gần tương đương nhau

2.3.2 Kiến trúc cơ bản của một hệ thống SoC

Mỗi chip SoC có mật độ tích hợp các chức năng khác nhau nhưng hầu hết cácSoC đều có các thành phần cơ bản được giới thiệu ở Hình 2.4:

Trang 29

s* CPU (Central Processing Unit): Lõi vi xử lí là thành phần không thé thiếu trong

một SoC, làm nhiệm vụ quản lý toàn bộ hoạt động chính của một SoC CPU

đảm nhiệm luồng xử lý chính trong SoC, điều phối các hoạt động giữa các thànhphan khác trong SoC, thực thi các tính toán chính Một SoC có thé có một hoặc

nhiều lõi CPU Một số lõi CPU thông dụng như: lõi CPU ARM dùng tập lệnh

ARM và được phát triên bởi hãng ARM; RISC-V là lõi CPU phát triển trên tập

lệnh mở và miễn phí

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

thành phần chức năng khác nhau trong vi xử lí Nó giống như những con đường

dé vận chuyên dữ liệu giữa các thành phan trong SoC Một số cấu trúc bus hệ

thống như: AMBA (AXI, AHB, APB) được phát triển bởi ARM; Avalon đượcphát triển bởi Altera (hiện nay thuộc Intel); Wishbone được phát triển bởi

Silicore Coporation

s* Bộ nhớ (Memory): Bộ nhớ trong một SoC được gọi là bộ nhớ nội dé phan biét

với bộ nhớ nằm ngoài SoC và giao tiếp với SoC thông qua các chân (pin) điềukhiển của SoC Bộ nhớ nội này có thé là:

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

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

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

* Thanh phần điều khiến nội (Internal Block): là thành phan chỉ điều khiển hoạt

động bên trong SoC mà không điều khién trực tiếp port nào của SoC như:

> Khối tạo clock (clock generator): cung cấp clock cho toàn bộ các khối chức

năng trong SoC kề cả CPU

> Khối tạo reset (reset generator): cung cấp reset cho toàn bộ các khối chức

năng trong SoC, kề cả CPU

> Khối quan lý năng lượng (power management): điều khién cấp nguồn cho

các khối chức năng trong SoC

14

Trang 30

> Các khối giám sát (monitor): là các khối có chức năng giám sát hoạt động

của SoC, kịp thời phát hiện ra các lỗi trong quá trình hoạt động dé khởi động

lại một phần hoặc toàn bộ hệ thống.

s* Ngoại vi (Peripheral): là các khối có thé điều khiến trực tiếp các chân (pin hoặc

port) của SoC dé thực thi một chức năng điều khiển bên ngoài SoC như: UART

— truyền nhận dữ liệu nối tiếp; Video — điều khiển camera; Audio — thu phát âmthanh; ADC — chuyên đôi tín hiệu tương tự thành tín hiệu sé

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

s* Ưu điểm:

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

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

sản phẩm sẽ đơn giản hơn, dé sản xuất hon, chi phí thấp hơn, thời gianthiết kế sản phâm nhanh hơn Khi sản xuất với số lượng đủ lớn, giá thành

sẽ giảm xuống một cách đáng kể.

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

cùng chức năng nhưng không dùng SoC vì số lượng linh kiện lớn hơn,board mạch làm phức tạp hơn Khi sản phẩm các có nhiều chức năng thì

đặc điểm này sẽ ngày càng thấy rõ hơn

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

pham khác nhau Chính vì vậy, mỗi hãng thiết kế và sản xuất chip đều cónhiều dòng SoC khác nhau, mỗi dòng sẽ đáp ứng một phân khúc sản phẩmnhất định và tối ưu nhất cho phân khúc sản phẩm này Tối ưu ở đây được hiểu

là số lượng chức năng mà chip được tích hợp là vừa đủ Quá nhiều chức năng

sẽ khiến giá thành của chip tăng cao dẫn đến giá sản phẩm cũng tăng trong khimột vài chức năng lại không được dùng đến Quá ít chức năng thì không đáp

ứng được nhu câu ứng dụng của sản phâm.

15

Trang 31

2.4 Smart camera

Smart camera đã được ứng dụng trong công nghiệp được hơn hai thập ky,

nhưng những tiến bộ trong công nghệ vi xử lý đã làm cho thiết bị này trở nên dễtiếp cận và phổ biến hon, đặc biệt là trong các lĩnh vực như giám sát và thị giác máy

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

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

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

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

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

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

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

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

smart camera.

16

Trang 32

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

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

xử lý ảnh hoặc máy học được thực hiện trực tiếp trên smart camera nên hình ảnhkhông cần phải truyền sang máy tính hoặc các thiết bị khác Thay vào đó, kết quả

của quá trình xử lý ảnh có thê được chuyên trực tiêp đên người điêu khiên hoặc các

thiết bị khác trong hệ thống

Một smart camera giống như một người đưa ra quyết định Nó thường có các

đặc điêm cơ bản sau:

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

khả năng xử lý của một hệ thống dựa trên máy tính cá nhân Smart camera bao

gồm các bộ xử lý có sẵn như DSP, PowerPC, Atom Ngoài ra còn có các tùychọn kết hợp như CPU và bộ đồng xử lý DSP cho một số thuật toán nhất định

Kích thước: Nhiều thành phần trong smart camera được tích hợp vào một bộphận duy nhất, giúp giảm kích thước giá thành sản phâm

Cảm biến hình ảnh: Bản chất của smart camera vẫn là một máy ảnh, nhưng nókhông chỉ dừng lại ở việc thu nhận ảnh mà còn quét ảnh với tần số lên đến 10

kHz.

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

giúp người dùng dễ dàng thao tác hơn trong việc xử lý ảnh.

Độ bền: Độ bền của smart camera phụ thuộc rất nhiều vào môi trường mà nóđược triển khai Nhưng các nhà sản xuất luôn trang bị một số tính năng cơ bảngiúp hạn chế hư hỏng của smart camera như chống nước, chống va đập, chống

bụi Hình 2.6 giới thiệu smart camera NI 1772 của National Instruments có

tính năng chống bụi và chống nước, thích hợp với các môi trường khắc nghiệt

như giám sát ngoài trời hay trong các nhà máy sản xuât.

17

Trang 33

Hình 2.6: Smart camera NI 1772

s* Kha năng kết nối: Mỗi smart camera đều được trang bi các công giao tiếp giúp

kết nối hoặc điều khiến các thiết bị khác trong hệ thống, truyền nhận dữ liệu một

cách dé dang hơn Hình 2.7 giới thiệu một vài công kết nối I/O, công Ethernet,công USB, đèn tín hiệu

18

Trang 34

“+ Khả năng đưa ra quyết định: Ngày nay, các smart camera có thé có đủ mọi hình

dạng, kích thước và hiệu suất nhưng tất cả chúng đều có một thuộc tính chung làkhả năng xử lý ảnh và đưa ra quyết định Chính việc đưa ra quyết định làm chomột chiếc máy ảnh bình thường trở nên thông minh hơn Ngoài ra, smart cameracòn giúp tiết kiệm chi phí, dễ tích hợp va mang lại hiệu suất cao nên nó luôn làmột lựa chọn hàng đầu cho các ứng dụng về thị giác máy tính

2.5 Cac nghiên cứu về smart camera

2.5.1 Nghiên cứu ngoài nước

Hiện nay, Smart Camera luôn được các trường đại học, công ty, tập đoàn lớn

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

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

“* Bai báo [2] “Object Tracking on FPGA-based Smart Camera using Local

Oriented Energy and Phase Feature” của nhóm tác gia Ehsan Norouznezhad, Abbas Bigdeli, Adam Postula, Brian C.Lovell vào năm 2010 sử dung module camera Micron MT9POOI trên FPGA Xilinx Virtex-5 ML506 với thuật toán với

thuật toán Histogram va bộ loc Gabor đã thu được anh với tốc độ 30 FPS và độ

phân giải 640 x 480 Ưu điểm của hệ thống này là nó có thé phân loại đượcnhiều đối tượng khi thực hiện hoạt động theo dõi, giám sát bao gom mau sắc,

hình dang, kết cấu và chuyển động Nhược điểm là thời gian tinh toán dé xác

định được đối tượng cần theo dõi còn chậm

* + ® Bai báo [3] “DreamCam: A modular FPGA-based smart camera architecture”

của nhóm tác giả Merwan Birem, Francois Berry vào năm 2014 sử dụng module camera MT9M031, EV76C560 trên FPGA Altera Cyclone III với bộ loc Harris

va Stephen đã thu được ảnh với tốc độ 42 FPS và độ phân giải 800 x 1024 Ưu

điểm của hệ thống này là khả năng tùy biến kích thước của hình ảnh đầu vào,điều chỉnh được số điểm ảnh cần thiết và nó sẽ tự biên dịch và tổng hợp thành

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

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

19

Trang 35

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

Bảng 2.1 nêu lên một sô đặc điêm của các đê tài mà nhóm nghiên cứu đã

tham khảo:

Bảng 2.1: So sánh các nghiên cứu liên quan trong nước

Nhận diện khuôn

mặt trên DE10- YOLOv2 trên IP camera trên

NANO I4] Zedboard [1] Zynq-7000 [14]

Tốc độ nhận dang 105 - 887 ms 2.79 -5.9s *

Tốc độ khung

hình khi * * 5.5 - 6 fps streaming

Kết nối Internet * * Ethernet Wire

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

DE10-Nano” của nhóm sinh viên Phan Truong Khang, La Ngoc Le năm 2020 sử

dung module camera OV7670 trên FPGA DE10-Nano với thuật toán Viola-Jones.

Ưu diém của thuật toán này là khả năng tính toán dé dàng, tốc độ xử lý khá nhanh(vì di liệu xử lý là 1 kênh mau grayscale) Nhược điểm là độ chính xác chưa cao

20

Trang 36

(40-80%) Độ phân giải giảm xuống chỉ còn 320 x 420 pixel Dữ liệu mau có thégây mat mát (vì nhóm tác gia sử dụng ảnh màu chuyên sang ảnh xám grayscale, sau

đó chạy thuật toán nhận dạng trên dữ liệu ảnh xám, rồi mới lay két qua nhan dang

từ anh xám chuyên lại anh mau gây ra sai sót dữ liệu).

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

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

Ưu điểm của thuật toán này là độ chính xác cao, có thể nhận diện được nhiều vậtthé khác nhau và tốc độ xử lý khá nhanh so với một số thuật toán xử lý ảnh khác.Nhóm muốn ké thừa bộ xử lý ảnh sử dụng thuật toán YOLOv2 cho nghiên cứu này

Luận văn tốt nghiệp [14] “Thiết kế và hiện thực IP camera trên Zynq-7000”của sinh viên Chung Vĩnh Kiện năm 2019 lay dữ liệu từ camera Raspberry Pi và sửdụng kết nối dây Ethernet đề truyền hình ảnh đến cho người xem Ưu điểm là

camera có độ phân giải cao 1280 x 720 và tốc độ khung hình khi streaming ôn định

ở mức 5.5-6 FPS Nhược điểm là đề tài này ban đầu muốn tích hợp một thuật toán

xử lý AI dé nhận dạng người ra vào cửa, nhưng do độ khó của đề tài và sự phức tạptrong quá trình hiện thực phần cứng khi ến cho tác giả chưa thực hiện được việc tích

hợp đó.

2.6 Tổng kết chương và ý tưởng đề xuất

Dựa trên các nghiên cứu nhóm đã tìm hiểu, nhóm đưa ra một mô hình chungcho đề tài mà nhóm sẽ thực hiện trong luận văn này (Hình 2.8) Người dùng sẽ chọninput đầu vào của smart camera để chọn việc streaming hình ảnh camera thường

hay camera có xử lý ảnh áp dụng thuật toán YOLOv2 trên FPGA Nhóm cũng muôn cải thiện một sô đánh giá cho smart camera như sau:

s* Tốc độ nhận dạng vật thể trong ảnh sẽ tuỳ thuộc vào các giải thuật AI khác

nhau Tuy nhiên bộ xử lý YOLOv2 khá tân tiến và được đánh giá cao bởi các tạp

chí quốc tế Do đó, nhóm sẽ áp dụng tiếp bộ xử lý này vào hệ thống, nhưng sẽ có

21

Trang 37

một số thay đổi đề bộ xử lý tăng thêm tần số hoạt động và nhờ đó cải thiện thêm

tốc độ nhận dạng.

Tốc độ FPS khi streaming: nhóm muốn tăng số lượng fps khi streaming không

có thuật toán YOLOv2 thông qua mang wifi lên một mức cao hơn (lớn hơn 5 fps

với độ phân giải HD 1280 x 960).

Độ phân giải lớn nhất và độ phân giải nhỏ nhất: nhóm sử dụng camera sensor

cho độ phân giải lớn nhất “1280 x 960” và độ phân giải nhỏ nhất “320 x 240”

cho thu nhận hình ảnh xử lý.

Khoảng cách nhận diện: nhóm thiết lập các khoảng cách từ vật thể tới camera

khoảng 0.5 — 2 mét.

Kết nối mạng: nhóm sẽ sử dụng các phương thức giao tiếp mạng khác nhau để

truyền tải dữ liệu thông qua mạng không dây Wifi.

Hình 2.8: Mô hình trực quan của dé tài

Chương tiếp theo sẽ đi vào chỉ tiết hơn và đưa ra thiết kế hệ thống tổng quát sau khi đã nêu ra mô hình trực quan của đề tài Hệ thống smart camera được xây

dựng dựa trên một số phan lý thuyết của thuật toán YOLOv2, block diagram của hệ thống Zynq UltraScale+ MPSoC, block diagram của board Ultra96-V2.

22

Trang 38

Chương3 THIẾT KE HỆ THONG

3.1 Zyng UltraScale+ MPSoC

Ở đây nhóm chỉ đề cập đến các thành phần được sử dụng trong đề tài này Hình 3.1 mô tả các khối trong Zyng UltraScale+ MPSoC (tham khảo cấu hình tùy

csu Wan NY 4 AMS

Hình 3.1: Các khối trong Zynq UltraScale+ MPSoC

“ Application Processing Unit (APU): chứa chip ARM Cortex-A53, bao gồm cả

CPU va GPU, là một bộ xử lý đa năng, có thé thực hiện cùng lúc nhiều chức

năng khác nhau.

s* Cache Coherent Interconnect (CCI): đây là giao tiếp nhận biết bộ nhớ cache giữa

các lõi CPU dé chúng có thé thấy được các giá trị nhất quán khi truy cập cùng

một bộ nhớ logic Đôi khi, chúng cũng được sử dụng giữa bộ đệm CPU và thiết

bị ngoại vi để có quyền truy cập vào cùng một bộ nhớ.

“ Core Sofware (Core SW): các chương trình để điều khiển tín hiệu các bus,

truyền nhận dir liệu.

23

Trang 39

Progammable Logic (PL): là một bộ FPGA có thể lập trình được, người dùng

phải sử dụng ngôn ngữ mô tả phần cứng đặc trưng (Verilog/VHDL/SystemC ) thông qua các phần mềm chuyên biệt đề có thể tổng hợp và sử dụng.

AXI Bus: Advanced eXtensible Interface Bus là một giao thức dùng dé trung

chuyển dữ liệu giữa các thành phan trong hệ thống SoC, được phát triển bởi hãng ARM Giao thức này có chức năng liên kết giữa các master, slave hoặc

giữa các bus trong hệ thống; phân xử truy cập; giải mã địa chỉ.

DDR4 RAM: Double Data Rate fourth generation Ramdom Access Memory là

một bộ nhớ truy cập ngẫu nhiên nhưng có khả năng truyền tải dữ liệu gấp đôi

trong một chu kì bộ nhớ mà không cần tăng tần số clock.

Input/Output Unit (IOU): là các cổng giao tiếp với thiết bị ngoại vi Trong luận

văn này, nhóm sử dụng cổng SD dé nạp hệ điều hành Petalinux và công USB dé

kêt nôi với Camera.

3.2 Board Ultra96-V2

Ultra96-V2 là một máy tinh Single Board được sản xuất với chi phí thấp nhằm

mục đích sử dụng rộng rãi trong nhiều ứng dụng như: trí tuệ nhân tạo, máy học, loT, điện toán đám mây, máy tính nhúng, robotics, hỗ trợ các kết nối không dây

(Wi-Fi, Bluetooth) Hình 3.2 giới thiệu các thành phần chính trên board Ultra96-V2.

40-pin Low-speed INT.B 60-pin High speed 12V Power Wi-Fi/

expansion header (J5) LED (05) || expansion header (J4) Input (J10) Bluetooth

Hình 3.2: Các thành phan chính trên board Ultra96-V2

24

Trang 40

Board Ultra96-V2 gồm các thành phan chính sau:

s Linaro 96Boards Consumer Edition compatible.

“* Xilinx Zynq UltraScale+ MPSoC ZU3EG SBVA484.

s* Bộ nhớ:

> Micron 2 GB (512Mx32) LPDDR4.

> microSD Socket với microSD card.

“ Microchip Wi-Fi/Bluetooth.

Bộ tạo xung clock Renesas VersaClock 6E.

# Infineon va ON Semiconductor dé quản lí điện năng với hiệu quả cao.

s Mini DisplayPort.

s* 1 cổng USB 3.0 Type Micro-B upstream.

s* 2 cổng USB 3.0 Type A downstream.

“1 cổng USB 2.0 Type A downstream (trên High-speed expansion header).

** 40-pin Low-speed expansion header.

+ 60-pin High-speed expansion header.

Hình 3.3 mô tả so đồ khối của board Ultra96-V2.

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

3.3 Thiết kế tổng quát của hệ thống

Ý tưởng ban đầu nhóm đề xuất sẽ có luồng thực thi hệ thống như Hình 3.4.

25

Ngày đăng: 23/10/2024, 01:42

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

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

TÀI LIỆU LIÊN QUAN