CƠ SỞ LÝ THUYET

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Hệ thống nhận diện biển báo giao thông ứng dụng công nghệ SoC (Trang 23 - 44)

TOM TAT KHÓA LUẬN

Chương 2. CƠ SỞ LÝ THUYET

2.1. Mạng thần kinh tích chập (CNN)

Mạng neural tích chập hay còn được biết đến với tên CNN, là một mạng phân tầng được cấu thành từ các thành phần sau:

Tấm ảnh đầu vào Tích chập Pooling Kết nối đầy đủ

Hình 2.1: Minh họa các tầng của mạng Neuron tích chập 2.1.1. Các kiểu tang

2.1.1.1. Tang tích chập (CONV)

Tang tích chập (CONV) sử dụng các bộ lọc để thực hiện phép tích chập khi đưa chúng đi qua đầu vào II theo các chiều của nó. Các siêu tham số của các bộ lọc này bao gồm kích thước bộ lọc (Filter) F và độ trượt (Stride) S. Kết quả đầu ra O được

gọi là feature map hay activation map.

“a. Bộ lọc F

Feature map

Ma trận điểm ảnh

Hình 2.2: Minh họa lớp tích chập

2.1.1.2. Pooling (POOL)

Tang pooling (POOL) là một phép downsampling, thường được sử dung sau tầng tích chập, giúp giảm kích thước hình ảnh. Cụ thể, max pooling và average pooling

là những dạng pooling đặc biệt, mà tương ứng là trong đó giá trị lớn nhất và giá trị trung bình được lấy ra.

kKiêu Max Pooling Average Pooling

Chức nang

Từng phép pooling chon

giá trị lớn nhất trong khu

vực mà nó đang được áp dụng

Tùng phép pooling tính trung bình các giá tn trong khu vực mà nó đang được áp dụng

Minh họa

Bảng 2.1: Bảng so sánh đặc trưng kiêu Max và Average Pooling

2.1.1.3. Fully connected

Trong mô hình mạng CNNs, tang kết nối day du (Fully connected) nhận dau vào là

các dữ liệu đã được làm phăng, mà môi đâu vào đó được kết nôi đên tât cả neuron.

Tang kết nối đầy đủ thường được tìm thấy ở cuối mang và được dùng dé tối ưu hóa

mục tiêu của mạng ví dụ như độ chính xác của lớp.

10

RY..

Cm SE

Va Weve 2Â

SNe gy

Re NaS

ma tran dau vao

ma trận được làm phẳng

Hình 2.3: Minh họa kết nối của tầng Fully Connected

2.2. Phát hiện vật thé (Object Detection)

2.2.1. Phương pháp phát hiện vật thé

Trong bối cảnh phát hiện (detection) vật thể, những phương pháp khác nhau được

áp dụng tùy thuộc vào mục đích sử dụng. Hai phương pháp chính được tổng hợp ở

(ha, hy) (aes lay) (lz LÍ (Ire; ru)

(lee. +. the ly) (lee, lay)

e Phát hiện và khoanh vùng đối

tượng trong ảnh.

e Phát hiện hình dạng và đặc

trưng của đối tượng (vd: mắt,

tay,...).

e Gồm nhiều dot, mỗi dot tương

ứng với vùng phát hiện đặc

trưng.

Các dot tương quan (lix, liy), ... (lox, loy).

Hộp khoanh vùng có tọa độ trung tâm (bx, by), chiêu cao và chiêu

rộng hộp lần lượt là bn va bw.

Bảng 2.2: Bảng so sánh các phương pháp phát hiện vật thê

2.2.2. Intersection over Union

Ti lé ving giao trén ving hop, con duoc biết đến là Intersection over Union (IloU),

là một hàm định lượng vi trí Bp của hộp giới hạn dự đoán được định vi đúng như thế nào so với hộp giới hạn thực tế Ba. Nó được định nghĩa:

Hình 2.4: Mô ta vi tri tương đối của hộp dự đoán so với thực tế

2.2.3. Anchor boxes

La một kỹ thuật được dùng dé dự đoán những hộp giới hạn nam chồng lên nhau. Trong thực nghiệm, mạng được phép dự đoán nhiều hơn một hộp cùng một lúc, trong đó mỗi dự đoán được giới hạn theo một tập những tính chất hình học cho

trước.

Hình 2.5 bên dưới minh họa quá trình chọn Anchor box. Gia sử từ Cell 1 xác định

được 3 anchor boxes viền xanh như trong hình. Cả 3 anchor boxes này đều giao nhau với bounding box của vật thể. Tuy nhiên chỉ anchor box có đường viền dày nhất màu xanh được lựa chọn làm anchor box cho vật thể bởi nó có IoU so với bounding box là cao nhất.

12

B bounding box candidates in total

The “responsible” predictor

in cell i has the highest loU with the ground truth.

Truth bounding box

Hình 2.5: Xác định anchor box cho một vật thể

2.2.4. Non-max suppression

Kỹ thuật non-max suppression hướng tới việc loại bỏ những hộp giới hạn bi chồng lặp lên nhau của cùng một đối tượng băng cách chọn chiếc hộp có tính đặc trưng nhất. Hình 2.6 minh họa kỹ thuật non-max suppression tiến hành loại bỏ tất cả các hộp có xác suất dự đoán lớn hơn một ngưỡng (trong nhiều tài liệu đề cập thường là 0.5), lặp lại quá trình cho đến khi thu được một bounding box cuối cùng.

Với một lớp cho trước

* Bước 1: Chọn chiếc hộp có xác suất chứa vật thé là lớn nhất.

* Bước 2: Loại bỏ những hộp có IoU > 0.5 so với hộp đã chon.

0.9978 q Gấu bông

. Lk Chon hộp với xác Loại bỏ trùng lặp eon sa, es

Các dự đoán hộp => suất cao nhất => trong cùng một lớp >> Cac hộp giới hạn cuối cùng

Hình 2.6: Minh họa quá trình Nonmax Suppression

13

2.3. Các thuật toán nhận diện vật thể tiêu biểu

2.3.1. R-CNN

Region with Convolutional Neural Networks (R-CNN) là một thuật toán phát hiện

vật thê mà đầu tiên phân chia ảnh thành các vùng đề tìm các hộp giới hạn có khả năng liên quan cao rồi chạy một thuật toán phát hiện để tìm những thứ có khả năng cao là vật thể trong những hộp giới hạn đó.

Mặc dù thuật toán R-CNN có chỉ phí tính toán cao và chậm, nhưng những kiến trúc mới đã có thé cho phép thuật toán này chạy nhanh hơn, như là Fast R-CNN và

Faster R-CNN.

„Gấu bông

Ảnh gốc — Phân vùng ==> Dự đoán hộp giới han == Non-max suppression

Hình 2.7: Minh họa tiến trình xử lý của thuật toán R-CNN

2.3.2. YOLO

You Only Look Once (YOLO) là một thuật toán phát hiện vat thể thực hiện những

bước sau:

- Bước 1: Phân chia tam anh đầu vào thành một lưới GxG.

* Bước 2: Với mỗi lưới, chạy một mang CNN dự đoán y có dang sau:

IBŒx6xkx(5+n)

"ơ———

lặp lại & lần

(2.2)

14

với pe là xác suất dự đoán được một vật thể, bx,by,bh,bw là những thuộc tính của hộp giới hạn được dự đoán, cl,...,cp biểu diễn one-hot của việc lớp nào trong p lớp

được dự đoán, và k là sô lượng các Anchor boxes.

¢ Bước 3: Chạy thuật toán non-max suppression dé loại bỏ bất kỳ hộp giới hạn có

khả năng bị trùng lặp.

Gấu bông

: Phân chia thành lưới mm... 7

Anh gốc => GxG ===> Du đoán hộp giới hạn ===> Non-max suppression

Hình 2.8: Minh họa các bước xử lý của thuật toán YOLO

2.4. YOLOv4

2.4.1. Tổng quan

YOLOv4 được phát triển từ năm 2015 bởi nhóm tác giả Alexey Bochkovskiy, C.Y. Wang. Cấu trúc mạng YOLOv4 được minh họa ở hình 2.9.

Dense Prediction Sparse Prediction

Giải thích:

Input: Ma trận ảnh đầu vào.

15

Backbone: Lớp Convolution thực hiện trích xuất đặc trưng đối tượng từ

ảnh.

Neck: Lớp Pooling thực hiện xử lý và kết hợp các đặc trưng đối

tượng được trích xuất từ Backbone.

Dense Prediction: Dự đoán nhãn cho đối tượng trong ảnh.

Sparse Prediction: Dự đoán thưa thớt trên tap bounding box, làm tang tốc độ nhận

diện mô hình.

Về cơ bản, cau trúc YOLOv4 Tiny kế thừa từ các phiên bản YOLO tiền nhiệm. Tuy

nhiên, có một vài thay đổi đáng chú ý được liệt kê sau đây.

2.4.1.1. Cross Stage Partial block

Partial Dense Block

ense Layer 1 {| Dense Layer 2 ras Dense Layer k

: „si

'L 4 ` ON p1

' / .-: My “ A 4 / = IS. teehee oc ein!

' conv conv ⁄ ‘© conv / ` conv / ` ụ SARE :

' / | lệ kế „ \ / oe) N / XX 4 Partial Transition Layer

'Xgằ sconcatt + ¿ COnCAE X / concat ` / concat “si

th Oo” „ ¿ !¡ 7 4 ` ` —- sung h. VNI

: ' ị of : , Hồn ea:

Ị : i / bé Ẻ : :

I h ` ool h it

t ~-— 9 -——> „”m.——- > _=—==—==XỊ:

' copy Ì { copy: 4 ‘Cony conv:

A

(b) Cross Stage Partial DenseNet

Hình 2.10: Minh hoa khối CSP

Cross Stage Partial Block (CSP) thực hiện tách feature map ra thành 2 phan, mot

phan sẽ cho đi qua những khối Fully connected block với nhiều Fully connected layer (Dense layer) va một transition layer; phần còn lại sé được kết hợp với với transmitted feature map để mang sang stage tiếp theo. Vì vậy, với cấu trúc này thì trong mạng sẽ có 2 luồng gradient và feature map được hoạt động độc lập với nhau

dé thực hiện những mục đích riêng. Khối CSP không chỉ bảo toàn được lợi ích của

việc sử dụng lại những đặc trưng của mạng DenseNet mà còn thêm khả năng ngăn

chặn lượng thông tin đạo hàm trùng lặp quá mức bằng cách cắt bớt dòng đạo hàm.

16

Nhờ vậy, mô hình có thê tăng tôc quá trình training và giảm sô lượng tham sô cân

tính toán dé tăng thêm tốc độ suy luận.

2.4.1.2. Drop block

DropBlock thực hiện bo di nhóm neuron tai một số vi trí ngẫu nhiên dé tránh hiện tượng chồng chéo trong feature map thay vì chỉ bỏ đi một vị trí. Điều này là do các

VỊ trí trong feature map của mạng tích chập có độ tương quan cao với nhau.

Hinh 2.11: Minh hoa su dung dropblock

2.4.1.3. Ham Mist

Khi training, ham Mish loại bỏ hiện tượng ham kích hoạt ReLU không hoạt động (

hoặc đạo hàm từ vị trí hàm ReLU luôn trả về giá trị 0 cho bất kỳ đầu vào nào). Vì

những tính chất này, hàm Mish có khả năng tăng tốc quá trình training và hoạt động tốt hơn các hàm kích hoạt khác. Hình 2.12 cho thấy tỉ lệ “Validation accuracy” tức

độ chính xác của mô hình trên tập dữ liệu CIFAR-10 của ham Mish cao hon hắn hàm tiền nhiệm Swish . Tỉ lệ trên cho chúng ta biết mô hình của chúng ta đang hoạt động như thé nào trên dữ liệu mà nó chưa từng thấy trong quá trình huấn luyện. Nếu

“validation accuracy” cao, điều đó có nghĩa là mô hình đang hoạt động tốt trên dữ liệu mới. Tuy nhiên, nếu “validation accuracy” thấp hơn nhiều so với “training

accuracy”, điêu đó có thê là dâu hiệu của hiện tượng overfitting, nghĩa là mô hình

17

đã “học” quá tốt trên tập huấn luyện mà không thé tổng quát hóa tốt trên dữ liệu

re

mol.

—— Swish 0.8

mY oversees Mish

®Í — arctan(x)softpiustx) /

—— tanh(xìsaftptus(xì i a

— x/og(1 + arctan(e*))

ad xIog(1 + tanhie*)) + 071

/

/ oo

: 50 648

ô

=

506

f 4 8

2 2 3

⁄/ Fos

af 0.54

— Swish

Í —— xiog(1 +tanhle*))

0.41 — xiogL1 +arctan(e*))

— Mish

|__| 6 10 20 30 40 50

—4 ~3 - = 0 1 2 3 4 Epochs

(a) (b)

(a) Graph of Mish, Swish, and similar validated experimental functions (b) Training curve of a six-layered CNN on

CIFAR-10

Hình 2.12: So sánh ham Mish va ham Swish trên tập dữ liệu CIFAR-10 2.4.2. YOLOv4 Tiny

2.4.2.1. Tong quan

YOLOv4 Tiny là phiên bản thu gọn của YOLOv4 được giới thiệu lần đầu vào tháng

11/2020, YOLOv4 Tiny mang tat cả đặc trưng được kế thừa từ phiên bản YOLOv4

nhưng được thiết kế để hoạt động trên các hệ thống có CPU xung nhịp thấp, được

thể hiện bằng việc độ phức tạp và cấu trúc mô hình được tinh gon so với phiên bản YOLOv4 thường. Các khác biệt được đề cập đến trong phần 2.4.2.2. Tất cả những

sự cải tiến này giúp hệ thống làm việc hiệu quả hơn cũng như tiết kiệm điện năng

tiêu thụ hơn so với phiên bản tiên nhiệm.

18

3x3 conv

32 104 x 104

3x3 conv 1x1conv “—á

32 x 104 * 104 64 x 104 x 104.

2*2 max pooling output

Input 3x3 conv 128%52%52 128x52x52

64x 104 x104 64 x 104 x 104

Hình 2.13: Cau trúc Resblock body

CSPDarknet53

Hình 2.14: Cau trúc model YOLOv4 Tiny

Lớp Convolution bao gồm nhiều mạng tích chập 3x3, Hình 2.13 biểu diễn cấu trúc của khối Resblock, ví dụ ta có kích thước đầu vào của feature map là 104x104 và số kênh là 64. Đầu tiên mạng 3x3 tiêu chuẩn được dùng dé trích xuất thông tin. Sau đó, feature map sẽ chia đôi để thực hiện hai phần khác nhau của quá trình trích xuất: phần đầu sẽ load half channel, phần thứ hai sẽ load toàn bộ channel. Lớp tích chập 3x3 được thực hiện trong phần đầu sẽ chia channel thành hai luồng, một luồng được tái xử lý bằng phép tích chập 3x3, trong khi luồng còn lại không được thực hiện. Sau đó, phép tích chập 1x1 được thực hiện dé trích xuất các đặc trưng. Sau quá trình trên, tat cả kết quả của các kênh được gộp lại dé trích xuất đặc trưng rồi thực hiện

19

xếp chồng. Sau khi quá trình xếp chồng hoàn tất, thực hiện khối max pooling 2x2

với bước nhảy bang 2 dé giảm thiêu kích thước của feature map. Cuối cùng feature

map sẽ được xuất sang giai đoạn kế tiếp với kích thước 52x52 va số lượng kênh

128.

2.4.2.2. Điểm khác nhau khi so sánh với YOLOv4

- _ Số lượng lớp tích chập được nén giảm còn 29 lớp.

- _ Số lượng layers giảm còn 2 thay vì 3.

- Ít Anchor Boxes hơn.

> Cấu trúc ít phức tap hơn, ít tiêu tốn tài nguyên hệ thống cho tiến trình tính

toán xử lý mô hình.

2.4.2.3. Đánh giá khả năng hoạt động

YOLOv4 - 64.9% APSO

on ~CSP -LRF [ICCV 2019]

a ~:YOLOv3 =-RFBNet [ECCV 2018|

` = RefineDet [CVPR 2018|-+-Pelee [NeurIPS 2018|

s X ie ==CenterNet —==—ThunderNet [ICCV 2019]

"le ì ‹_ =YOLOV3-tiny -=YOLOv3-tiny-PRN [ICCVW 2019|

9 xử c®M2Det [AAAL 2019] | +-PFPNet [ECCV 2018]

50

+ an

+12.1

“| Tà

YOLOv4-tiny - 40.2% AP50

+200 sỉ

MS COCO Object Detection APsằ /

30)

25 50 75 100 125 #150 75 200 225 250 275 300 325 350 375 400 425

FPS (1080Ti)

Hình 2.15: Biéu đồ FPS khi nhận diện bằng COCO dataset trên NVIDIA 1080Ti

Từ biểu đồ trên, dé dàng nhận thay YOLOv4 Tiny đạt được khoảng 375 FPS, trong

khi YOLOv4 chi đạt được dưới 50 FPS khi nhận diện đối tượng bằng tập dữ liệu

COCO [6]. Tuy nhiên, đánh đổi lại mức FPS cao là tỉ lệ Average Precision (AP)

thấp. AP đại diện cho mối quan hệ giữa độ chính xác và độ phủ khi nhận diện đối

20

tượng. AP càng cao mô hình càng hoạt động hiệu qua. Bu lai, YOLOv4 Tiny có

FPS cao và kích thước nhỏ gon, rất phù hợp dé chạy trên các hệ thống có tài nguyên hạn chế. Ngoài ra, nhờ ưu điểm kích thước nhỏ gọn, YOLOv4 Tiny phù hợp với các

hệ thống yêu cầu độ trễ thấp và vì theo dõi theo thời gian thực, vấn đề năng lượng tiêu thụ cũng cần cân nhắc khi lựa chọn giữa YOLOv4 và YOLOv4 Tiny. Từ những luận điểm trên, nhóm quyết định sử dụng YOLOv4 Tiny trong khuôn khổ khóa luận

này.

2.4.2.4. Ứng dụng YOLOv4 Tiny

thống nhận diện đeo khẩu trang, hệ thống nhận diện khuôn mặt người,...). Ngoài ra, YOLOv4 Tiny cũng được sử dụng trong các hệ thống robot thông minh hoặc các hệ thống xe tự hành đang được thử nghiệm,... Vì ưu điểm linh hoạt và gọn nhẹ của nó.

[11]

21

2.5. Field Programmable Gate Array FPGA

2.5.1. Dinh nghĩa

Field-programmable gate array (FPGA) là một loại mạch tích hợp cỡ lớn dùng cau trúc mảng phan tử logic mà người dùng có thể lập trình được. Chữ field ở đây muốn chỉ đến khả năng tái lập trình "bên ngoài" của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn. Vi mạch FPGA được cấu thành

từ các bộ phận:

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

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

- _ Khối vào/ra (IO Pads)

- Phần tử thiết kế san khác như DSP slice, RAM, ROM, nhân vi xử lý...

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

nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thi FPGA không dat đựợc mức độ tối ưu như những loại này, và 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ậy FPGA ưu việt hơn

ở chỗ có thé tái cấu trúc lại khi dang sử dụng, công đoạn thiết kế đơn giản do vậy chỉ phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng.

Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phan tử logic như PLA, PAL, CPLD thi FPGA ưu việt hơn các điểm: tác vụ tái lập

trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác

biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn công logic (logic gate), so với các vi mạch bán dẫn lập trình được có

trước nó.

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ớn như 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ế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Symplify... 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

22

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 (còn

gọi là mã RTL).

2.5.1.1. Kiến trúc FPGA Khối LOGIC

Phần tử chính của FPGA là các khối logic (logic block). Khối logic được cấu thành

từ LUT và một phan tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic có thé thực hiện bat kì ham logic nào từ 4 đầu vào, kết qua của ham này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thong qua phan tử nhớ flip-flop.

4-input

——— Ì} Look Up

Table(LUT)

Hình 2.17: Configurable Logic Blocks (CLBs)

Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dung khái niệm

Slice, 1 Slice tạo thành từ gồm 2 khối logic, số lượng các Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA. 4 slices tạo thành một Configurable Logic Blocks (CLBs). 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ộ.

Các khối tích hợp sẵn

Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợp thêm khác nhau, vi dụ dé thiết kế những ứng dung SoC, trong dòng Virtex 4,5 của

Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân

AVR..., hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp

23

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Hệ thống nhận diện biển báo giao thông ứng dụng công nghệ SoC (Trang 23 - 44)

Tải bản đầy đủ (PDF)

(92 trang)