Phương pháp rút trích đặc trưng dựa trên học sâu

Một phần của tài liệu Nghiên cứu và đánh giá phương pháp phát hiện phương tiện giao thông trong không ảnh (khóa luận tốt nghiệp) (Trang 28)

2.3.1. Deep Neural Network

Mạng nơ-ron nhân tạo (Artificial neural network/Deep neural network – ANN/DNN hay Neural network – NN) là một mô hình lấy cảm hứng từ mạng nơ- ron thần kinh, hoạt động theo hướng mô tả hoạt động của hệ thần kinh với các nơ- ron được kết nối với nhau.

Hình 2.2 Nơ-ron sinh học. 2

Một mạng NN gồm 3 tầng:

• Tầng vào (input layer): Là tầng bên trái cùng của mạng, thể hiện cho các đầu vào của mạng.

• Tầng ra (output layer): Là tầng bên phải cùng của mạng, thể hiện cho các đầu ra của mạng.

12

• Tầng ẩn (hidden layer): Là tầng nằm giữa tầng vào và tầng ra, thể hiện cho việc suy luận logic của mạng.

a) Mạng NN với 1 tầng ẩn b) Mạng NN với 2 tầng ẩn

Hình 2.3 Kiến trúc Neural Network. 2

Trong mạng NN, mỗi nút là một sigmoid nơ-ron nhưng hàm kích hoạt của chúng có thể khác nhau. Tuy nhiên trong thực tế người ta thường để chúng cùng dạng với nhau để tính toán cho thuận lợi. Ở mỗi tầng, số lượng các nút mạng (nơ- ron) có thể khác nhau tuỳ thuộc vào bài toán và cách giải quyết. Nhưng khi làm việc, người ta thường để các tầng ẩn có số lượng nơ-ron bằng nhau. Ngoài ra, các nơ-ron ở các tầng thường được liên kết đôi một với nhau tạo thành mạng kết nối đầy đủ (fully-connected network).

13

2.3.2. Convolutional Neural Network 2.3.2.1. Giới thiệu 2.3.2.1. Giới thiệu

Mạng nơ-ron tích chập (Convolutional neural network – CNN) là một trong những mô hình học sâu (Deep learning) tiên tiến. Mỗi ảnh đầu vào của mạng CNN sẽ được truyền qua các lớp Convolution với các bộ lọc (Kernels), lớp Pooling, các lớp được kết nối đầy đủ (fully connected – FC) và áp dụng hàm Softmax để phân loại đối tượng với xác suất trong khoảng từ 0 đến 1.

Hình 2.5 Convolutional Neural Network. 3

2.3.2.2. Convolution layer

Lớp tích chập là lớp đầu tiên trích xuất các đặc trưng từ ảnh đầu vào. Lớp tích chập duy trì mối quan hệ giữa các pixel thông qua việc học các đặc trưng của ảnh bằng cách sử dụng các ô vuông nhỏ của dữ liệu đầu vào. Nó là 1 phép toán có 2 đầu vào là ma trận ảnh với 1 bộ lọc và đầu ra là ma trận được gọi là Feature map.

Hình 2.6 Ví dụ đầu vào của Convolution layer. 4

3 Nguồn: https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5- way-3bd2b1164a53?gi=73bc5b09bc63

14

Hình 2.7 Ví dụ minh họa quá trình hoạt động của Convolution layer. 4

2.3.2.3. Pooling layer

Lớp pooling thường được sử dụng ngay sau lớp convolution để làm giảm kích thước của mỗi feature map nhưng vẫn giữ lại thông tin quan trọng. Lớp pooling có thể có nhiều loại khác nhau như:

• Max Pooling: Lấy giá trị lớn nhất từ mỗi mẫu con của feature map. • Average Pooling: Lấy giá trị trung bình từ mỗi mẫu con của feature

map.

• Sum Pooling: Lấy tổng của các giá trị trong mỗi mẫu con của feature map.

15

2.3.2.4. Fully connected layer

Fully connected là cách kết nối phổ biến trong NN mà lớp phía sau kết nối đầy đủ với lớp phía trước của nó. Trong CNN, fully connected layer thực hiện duỗi ma trận đầu ra của lớp pooling trước đó thành vector đặc trưng. Cuối cùng, ta có một hàm kích hoạt như softmax hoặc sigmoid để phân loại đầu ra.

2.3.3. Residual Network 2.3.3.1. Giới thiệu 2.3.3.1. Giới thiệu

Khi xây dựng mạng CNN với nhiều lớp convolution sẽ xảy ra hiện tượng Vanishing Gradient dẫn tới kết quả học không tốt và ResNet (Residual Network) [10] đã được phát triển để giải quyết vấn đề đó.

ResNet đã giành vị trí thứ nhất trong cuộc thi ILSVRC 2015 với tỉ lệ lỗi chỉ 3.57%. Không những thế, nó còn đứng đầu trong cuộc thi ILSVRC and COCO 2015 với ImageNet Detection, ImageNet localization, Coco detection và Coco segmentation. Hiện tại, có rất nhiều biến thể của kiến trúc ResNet với số lớp khác nhau như ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152... các biến thể được đặt tên là ResNet theo sau là một số chỉ số lớp nhất định.

2.3.3.2. Vanishing Gradient

Backpropagation Algorithm (lan truyền ngược) là một kỹ thuật thường được sử dụng trong quá trình huấn luyện. Ý tưởng chung của thuật toán này là sẽ đi từ output layer đến input layer và tính toán gradient của cost function tương ứng cho từng parameter (weight) của mạng. Gradient Descent sau đó được sử dụng để cập nhật các parameter đó. Toàn bộ quá trình trên sẽ được lặp đi lặp lại cho tới khi các parameter của mạng được hội tụ. Thông thường chúng ta sẽ có một hyperparameter (số Epoch – số lần mà training set được duyệt qua một lần và weight được cập nhật) định nghĩa cho số lượng vòng lặp để thực hiện quá trình này. Nếu số lượng vòng lặp quá nhỏ thì ta gặp phải trường hợp mạng có thể sẽ không cho ra kết quả tốt, ngược lại, thời gian huấn luyện sẽ lâu nếu số lượng vòng lặp quá lớn.

16

Tuy nhiên, trong thực tế, Gradient thường sẽ có giá trị nhỏ dần khi đi xuống các layer thấp hơn. Dẫn đến kết quả là các cập nhật thực hiện bởi Gradients Descent không làm thay đổi nhiều về weight của các layer đó, làm chúng không thể hội tụ và mạng sẽ không thu được kết quả tốt. Hiện tượng như vậy gọi là Vanishing Gradients.

2.3.3.3. Kiến trúc mạng ResNet

Tương tự với các mạng CNN truyền thống, ResNet [10] gồm có convolution, pooling, fully connected layer. Song, để khắc phục Vanishing Gradient, giải pháp mà ResNet đưa ra là sử dụng kết nối "tắt" đồng nhất để xuyên qua một hay nhiều lớp. Một khối như vậy được gọi là một Residual Block.

Hình 2.8 Residual block. [10]

Trong hình 2.9 xuất hiện một mũi tên cong xuất phát từ đầu và kết thúc tại cuối Residual block nghĩa là sẽ bổ sung đầu vào X vào đầu ra của layer (dấu cộng mà ta thấy trong hình), việc này sẽ chống lại việc đạo hàm bằng 0, do vẫn còn cộng thêm X.

17

Hình 2.9 Mạng CNN truyền thống và mạng ResNet. [10]

2.4. Phương pháp phát hiện đối tượng dựa trên học sâu 2.4.1. Phương pháp phát hiện đối tượng họ R-CNN 2.4.1. Phương pháp phát hiện đối tượng họ R-CNN

Như đã đề cập trước đó, bài toán phát hiện đối tượng là sự kết hợp giữa 2 bài toán Phân loại ảnh và Định vị đối tượng thực hiện cho một hoặc nhiều đối tượng trong ảnh. Vấn đề chính của mô hình CNN truyền thống là không biết trước có bao nhiêu đối tượng trong ảnh để thiết kế được output layer hiệu quả. Vì vậy, nhóm phương pháp thuộc họ R-CNN (Region with CNN feature) ra đời. Nhóm phương pháp này được phát triển bởi Ross Girshick cùng các cộng sự, gồm 3 mô hình chính: R-CNN [11], Fast R-CNN [12] và Faster R-CNN [1].

18

2.4.1.1. R-CNN

Hình 2.10 Kiến trúc của R-CNN. [11] Ý tưởng của R-CNN [11] gồm 2 giai đoạn:

• Giai đoạn 1: Sử dụng thuật toán Selective Search để thu được các vùng đề xuất có khả năng chứa đối tượng (proposal). Trong đó:

o Đầu vào: ảnh màu.

o Đầu ra: khoảng 2000 vùng đề xuất có khả năng chứa đối tượng. • Giai đoạn 2: Với mỗi vùng đề xuất thu được từ giai đoạn 1, xác định

nó là đối tượng nào và vị trí của nó. Cụ thể:

o Các vùng đề xuất thu được từ giai đoạn 1 sẽ được điều chỉnh về cùng kích thước để làm đầu vào cho mạng CNN.

o Mạng CNN này sẽ duỗi các RoI thành các vector đặc trưng.

o Các vector đặc trưng sẽ được đưa vào thuật toán SVM để phân lớp cho đối tượng và regression bounding box để xác định 4 thông số điều chỉnh cho vùng đề xuất khớp với đối tượng.

19

2.4.1.2. Fast R-CNN

Hình 2.11 Kiến trúc của Fast R-CNN. [12]

Tương tự như R-CNN, Fast R-CNN [12] vẫn dùng thuật toán Selective Search để lấy ra các vùng đề xuất. Tuy nhiên, nó không tách 2000 vùng đề xuất ra khỏi ảnh. Fast R-CNN cho cả bức ảnh vào backbone ConvNet để tạo ra feature map. Sau đó các feature map sẽ được đưa qua RoI pooling layer. Tiếp theo, đầu ra của RoI pooling layer được đưa qua các lớp FC để duỗi thành các vector đặc trưng. Cuối cùng, các vector đặc trưng này được đưa vào các lớp fully connected để phân lớp cho đối tượng và regression bounding box để xác định 4 thông số điều chỉnh cho vùng đề xuất khớp với đối tượng.

Fast R-CNN khác với R-CNN là nó tạo ra feature map với cả ảnh sau đó lấy các vùng đề xuất từ feature map, còn R-CNN thực hiện tách các vùng đề xuất ra rồi mới thực hiện CNN trên từng vùng. Vì vậy, Fast R-CNN nhanh hơn nhờ tối ưu việc tính toán bằng Vectorization.

2.4.1.3. Faster R-CNN

Mặc dù Fast R-CNN đã nhanh hơn đáng kể so với R-CNN, song, việc sử dụng thuật toán Selective Search để lấy ra khoảng 2000 vùng đề xuất khiến cho mô hình không thể đạt được tốc độ thời gian thực. Vì vậy, tác giả đã cải tiến bằng cách loại bỏ thuật toán Selective Search để tạo nên mô hình Faster R-CNN [1] đạt được tốc độ gần thời gian thực.

20

Hình 2.12 Kiến trúc của Faster R-CNN. [1]

Faster R-CNN [1] cũng gồm 2 giai đoạn tương tự với R-CNN và Fast- RCNN. Tuy nhiên, thay vì sử dụng Selective Search, Faster R-CNN đề xuất Region Proposal Network (RPN) để thu được các vùng đề xuất có khả năng chứa đối tượng.

21

Region Proposal Network (RPN) là một mạng khá đơn giản, dùng để trích xuất các vùng có khả năng chứa đối tượng. RPN nhận đầu vào là feature map đã được trích xuất từ backbone CNN trước đó. Các cửa sổ trượt trên feature map sẽ được ánh xạ thành vector đặc trưng. Các đặc trưng này được truyền qua classification layer và regression layer để thu được các vùng đề xuất.

Vì không sử dụng Selective Search nên RPN ban đầu cần xác định các anchor box có thể là các proposal, sau đó qua RPN thì chỉ còn những anchor box chắc chắn chứa đối tượng. Như vậy, ta xác định được đầu ra của regression layer và classification layer được đề cập ở trên:

• Classification layer dự đoán xác suất chứa đối tượng của proposal. • Regression layer dự đoán 4 thông số để điều chỉnh anchor box khớp

với đối tượng.

Sau khi dự đoán, có rất nhiều anchor bị chồng lên nhau nên non-maxima suppression được dùng để loại bỏ các anchor chồng lên nhau. Cuối cùng, dựa vào xác suất dự đoán, RPN sẽ lấy N anchor (N có thể là 2000, 1000… hay thậm chí là 100) để làm proposal.

Các vùng đề xuất thu từ RPN cũng sẽ được Faster R-CNN qua RoI pooling layer, duỗi thành vector và cho qua 2 nhánh Classification và Regression tương tự như Fast R-CNN. Lưu ý, 2 nhánh Classification và Regression của Fast R-CNN khác với RPN:

• Nhánh classification có C unit cho C class của bài toán phát hiện đối tượng (bao gồm cả class background). Các vector đặc trưng được truyền qua một softmax layer để lấy classification score cho biết xác suất proposal thuộc về mỗi class.

• Đầu ra của nhánh bounding box regression dùng để cải thiện độ chính xác cho các proposal thu được từ RPN.

22

2.4.2. D2Det

Hình 2.14 Kiến trúc của D2Det. [2]

D2Det [2] được công bố tại hội nghị CVPR 2020 bởi Jiale Cao cùng cộng sự trong bài báo “D2Det: Towards High Quality Object Detection and Instance

Segmentation”. D2Det [2] là phương pháp phát hiện đối tượng 2 giai đoạn dựa trên

Faster R-CNN:

• Giai đoạn 1: tương tự Faster R-CNN, D2Det sử dụng RPN để thu được các vùng đề xuất có khả năng chứa đối tượng.

• Giai đoạn 2: D2Det đề xuất dense local regression và discriminative RoI pooling thay cho 2 nhánh regression và classification của Faster R-CNN, trong đó:

o Dense local regression: giải quyết bài toán định vị đối tượng.

23

2.4.2.1. Dense local regression

Hình 2.15 Dense local regression. [2]

Mục tiêu của nhánh bounding-box regression của các phương pháp phát hiện đối tượng 2 giai đoạn đều là định vị đối tượng bằng bounding box bao xung quanh đối tượng và mục tiêu của dense local regression cũng như vậy.

Dense local regression xem ma trận 𝑘 × 𝑘 chiều ma thu được từ quá trình RoI Pooling hoặc RoIAlign như 𝑘2 đặc trưng cục bộ (local feature) liền kề trong không gian. Mỗi đặc trưng cục bộ này được biểu diễn là 𝑝𝑖 (với các thông số 𝑙𝑖, 𝑟𝑖,

𝑡𝑖, 𝑏𝑖 đã được tính toán).

Số lượng đặc trưng cục bộ của proposal P thuộc về ground-truth box G dựa vào phần giao nhau giữa proposal và ground-truth tương ứng của nó. Tuy nhiên, dù là trong trường hợp đa số các đặc trưng cục bộ của P thuộc về G thì vẫn sẽ tồn tại các đặc trưng không cần thiết (nền) khiến cho kết quả không chính xác. Để giải quyết vấn đề đó, dense local regression dùng binary overlap prediction 𝑚̂𝑖 để phân loại mỗi đặc trưng cục bộ thuộc về ground-truth bounding box hay thuộc về nền.

24

Như vậy, trong quá trình tính toán, dense local regression dự đoán 4 thông số 𝑙̂𝑖, 𝑡̂𝑖,

𝑟̂𝑖, 𝑏̂𝑖 cùng 𝑚̂𝑖 tại mỗi đặc trưng cục bộ 𝑝𝑖 ∈ 𝑃.

Trong quá trình huấn luyện, 𝑚̂𝑖 được truyền qua hàm chuẩn hóa sigmoid (𝜎) để tính toán binary cross-entropy loss với nhãn ground-truth 𝑚𝑖 = 1 nếu đặc trưng cục bộ 𝑝𝑖 thuộc phần giao nhau giữa proposal P và ground-truth G, 𝑚𝑖 = 0 nếu đặc trưng cục bộ thuộc về nền. Các thông số của dense box tại các vị trí 𝜎(𝑚̂𝑖) > 0.5

được sử dụng để tính vị trí góc trái trên và góc phải dưới của predicted box. Cuối cùng, các predicted box được tính bởi nhiều đặc trưng cục bộ sẽ được tính trung bình để thu được bounding box cuối cùng.

2.4.2.2. Discriminative RoI pooling

Hình 2.16 Discriminative RoI Pooling. [2]

Discriminative RoI pooling lấy cảm hứng từ Deformable RoI pooling [14] và cải thiện nó để dùng cho bài toán phân lớp như sau:

• Ở nhánh trên, tác giả thực hiện RoIAlign với kích thước 𝑘

2×𝑘

2 thay vì RoIAlign với kích thước 𝑘 × 𝑘 như của Deformable RoI pooling, đầu ra được truyền qua 3 lớp fully connected để thu được các thông số được tăng cường (augmented offsets).

25

• Ở nhánh dưới, thay vì sử dụng RoI pooling (hoặc RoIAlign) để pool dựa trên các vùng với các thông số được tăng cường, Discriminative RoI pooling đề xuất Adaptive Weighted Pooling (AWP) để gán các trọng số cao hơn cho các điểm mẫu phân biệt (discriminative sampling points).

Hình 2.17 Adaptive Weighted Pooling. [2]

Tại Adaptive Weighted Pooling (AWP), các điểm mẫu ban đầu 𝐹 ∈ 𝑅2𝑘×2𝑘

(tương ứng với mỗi giá trị của ma trận đặc trưng 𝑘

2×𝑘

2 thu được từ RoIAlign ta có 4 điểm mẫu gốc) được dùng để dự đoán các trọng số tương ứng (𝑊 ∈ 𝑅2𝑘×2𝑘). Các trọng số này cho biết khả năng phân biệt của chúng trong toàn bộ không gian vùng con đó. Sau đó, ma trận đặc trưng Weighted RoI 𝐹̃ sẽ được tính toán và average pooling với stride bằng 2 được dùng trên 𝐹̃ để thu được ma trận đặc trưng discriminative RoI với kích thước 𝑘 × 𝑘. Cuối cùng, ma trận đặc trưng discriminative RoI được xem như một vector toàn cục, như trong Faster R-CNN, vector này được truyền qua các lớp fully connected để thu được classification score.

2.4.3. DetectoRS

DetectoRS [3] được công bố tại hội nghị CVPR 2021 bởi Siyuan Qiao cùng cộng sự trong bài báo “DetectoRS: Detecting Objects with Recursive Feature

Pyramid and Switchable Atrous Convolution”. Trong bài báo, tác giả giới thiệu 2 kỹ

26

• Recursive Feature Pyramid (RFP): thêm vào các kết nối phản hồi từ FPN vào các tầng bottom-up của backbone, RFP được dùng ở cấp độ Neck của mạng.

• Switchable Atrous Convolution (SAC): tích chập các đặc trưng với atrous rate khác nhau và thu thập kết quả bằng các switch function, SAC được dùng ở cấp độ các lớp Convolution của backbone.

2.4.3.1. Recursive Feature Pyramid

Feature Pyramid Network (FPN) [13] là một công cụ trích xuất đặc trưng được thiết kế theo kết cấu của kim tự tháp với tính chính xác và tốc độ cao. Nó là sự kết hợp giữa hai pathway là bottom-up với độ phân giải thấp, mạnh về ngữ nghĩa và top-down với độ phân giải cao nhưng yếu về ngữ nghĩa. Với ngữ nghĩa phong phú ở

Một phần của tài liệu Nghiên cứu và đánh giá phương pháp phát hiện phương tiện giao thông trong không ảnh (khóa luận tốt nghiệp) (Trang 28)