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 3THONG 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 4LỜ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 5SMART 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 62.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 74.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 81N ch ca 78
5.2 Hướng phát trién
Trang 9DANH 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 10Hì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 11Kế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 12DANH 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 13DANH 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 14FPGA 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 15RTL 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 16TOM 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 17Chươ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 181.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 19thể 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 20tả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 21Chươ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 222.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 23dụ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 242.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 25Input 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 262.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 27tí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 29s* 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 312.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 32Khô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 33Hì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 352.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 37mộ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 38Chươ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 39Progammable 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 40Board 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