Các kỹ thuật trong Phát hiện đối tượng

Một phần của tài liệu Phát hiện đối tượng trong không ảnh chứa sương mờ dựa trên học sâu (khóa luận tốt nghiệp) (Trang 27)

1“https://robocademy.com/2020/05/01/a-gentle-introduction-to-yolo-v4-for-object-detection-in-ubuntu-20-

10

Phân loại hình ảnh (Object Classification): Dự đoán nhãn của một đối

tượng (ơ tơ, chó, mèo, …) trong một hình ảnh. Về cơ bản, kỹ thuật này trả lời cho câu hỏi “Cái gì ở trong hình?”

o Input: Một hình ảnh với một đối tượng.

o Output: Nhãn lớp (ví dụ: một hoặc nhiều số nguyên được ánh xạ tới nhãn lớp).

Định vị đối tượng (Object Localization): Xác định vị trí xuất hiện của các

đối tượng trong ảnh và cho biết vị trí của chúng bằng Bounding box. Kỹ thuật này trả lời cho câu hỏi “Vật thể nằm ở vị trí nào trong ảnh?”

o Input: Một hình ảnh có một hoặc nhiều đối tượng.

o Output: Một hoặc nhiều Bounding box được xác định bởi tọa độ tâm, chiều rộng và chiều cao.

Phát hiện đối tượng (Object Detection): Xác định vị trí hiện diện của các

đối tượng trong ảnh bằng Bounding box và nhãn của các đối tượng nằm trong một hình ảnh.

o Input: Một hình ảnh có một hoặc nhiều đối tượng.

o Output: Một hoặc nhiều Bounding box và nhãn đối tượng tương ứng với Bounding box đó.

Phân đoạn thực thể (Instance Segmentation): Thay vì sử dụng Bounding

box để xác định các đối tượng bên trong ảnh, kỹ thuật này cho phép các thuật toán phân đoạn có thể trích xuất chính xác hình dạng của đối tượng từ chính bức ảnh và thể hiện bằng cách làm nổi bật các pixel cụ thể của từng đối tượng.

2.1.2.Phân loại thuật toán phát hiện đối tượng

11

Hình 2.2: So sánh sự mơ hình two-stage (a) và one-stage (b) [4].

Two-stage: bao gồm các phương pháp thuộc họ R-CNN (Region-Based Convolutional Neural Networks) như Fast R-CNN, Faster R-CNN, Mask R-CNN… Các mơ hình two-stage bao gồm có 2 giai đoạn bắt đầu bằng việc trích chọn (extract) các vùng trên ảnh có khả năng chứa đối tượng dựa vào các anchor box. Sau đó, ở giai đoạn 2, mơ hình thực hiện phân loại đối tượng và xác định vị trí bằng cách chia làm 2 nhánh gồm hồi quy Bounding box (Bounding box Regression) và hồi quy phân loại (Classifier Regression) tại phần cuối trong kiến trúc của mơ hình. Với khả năng dự đốn có độ chính xác cao, các mơ hình two-stage thường được sử dụng trong các bài tốn định vị và nhận diện vật thể tĩnh (hình ảnh) có u cầu khơng q cao về tốc độ xử lý.

One-stage (hay cịn gọi là single-stage): Bao gồm các mơ hình thuộc họ YOLO, SSD (Single Shot Detection), Retina... Các mơ hình one-stage khơng có phần trích chọn các vùng đặc trưng như two-stage. Thay vào đó, các mơ hình này sẽ coi việc Phát hiện đối tượng như một bài toán regression và dựa trên pre-defined box hay còn gọi là anchor box để phát hiện đối tượng. Mặc dù sở hữu tốc độ nhanh hơn các mơ hình two-stage, độ chính xác của mơ hình single-stage thường kém hơn và chúng được sử

12

dụng trong các trường hợp nhận dạng đối tượng, đặc biệt là các đối tượng real-time – tác vụ vốn yêu cầu cao về tốc độ xử lý hơn là độ chính xác.

Phát hiện đối tượng đã được ứng dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái. Sự phát triển của các phương pháp phát hiện đối tượng khơng chỉ đem lại lợi ích cho ngành Cơng nghệ thơng tin mà cịn cho rất nhiều ngành nghề lĩnh vực khác như quân sự, y tế, hàng không, …

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

Rút trích đặc trưng (Feature Extraction) là một trong những bước cốt lõi trong quá trình Phát hiện đối tượng, trực tiếp ảnh hưởng đến hiệu quả của các mô hình. Một số phương pháp rút trích đặc trưng học sâu sẽ được trình bày trong các phần sau đây.

2.2.1.Mạng học sâu – DNN

Hình 2.3: Ý tưởng mô phỏng hoạt động của não bộ con người của mạng ANN2.

Mạng nơ-ron nhân tạo (Artificial Neural Networks) hay gọi tắt Neural Networks (NNs) là mạng lưới thần kinh được liên kết đầy đủ giữa các lớp với nhau. ANN xuất phát từ ý tưởng mô phỏng hoạt động của não bộ con người, cụ thể là nơ- ron thần kinh.

13

Mạng nơ-ron sâu – mạng học sâu (Deep Neural Network – DNN) là một mạng nơ-ron nhân tạo (Artificial Neural Networks – ANNs) với một kiến trúc phức tạp và “sâu” hơn so với mạng nơ-ron nông.

Kiến trúc của mạng nơ-ron sâu tương tự như mạng nơ-ron nhân tạo với 3 thành phần: lớp đầu vào, các lớp ẩn (số lượng các lớp và số lượng nơ-ron trên mỗi lớp không giới hạn) và lớp đầu ra. Kiến trúc của một mạng học sâu 3 lớp được minh họa ở Hình 2.4.

Hình 2.4: Minh họa kiến trúc mạng nơ-ron sâu [5].

Đối với từng node trong các lớp của mạng, độ lớn trọng số của node hiện tại đang xem xét sẽ là tổng các độ lớn trong số của các node thuộc lớp đầu vào trước đó và chuyển sang hàm kích hoạt phi tuyến tính để tính tốn trọng số. Các node này là đầu ra của lớp trước đó và là đầu vào của lớp tiếp theo. Mạng sẽ tính tốn và tối ưu hóa các trọng số đối với từng nốt trong mạng xuyên suốt quá trình huấn luyện.

Trong các bài toán liên quan đến xử lý ảnh, DNN sử dụng nhiều lớp để lần lượt rút trích các đặc trưng từ thấp tới cao. Những lớp thấp sẽ phát hiện góc cạnh của ảnh, sau đó những đặc trưng này sẽ được truyền tới những lớp cao hơn (sâu hơn) để phân biệt đối tượng rõ ràng hơn. Mặc dù DNN có khả năng xử lý bài tốn

14

phát hiện đối tượng trong ảnh, nhưng kiến trúc này cũng gặp nhiều trở ngại trong thời đại Big Data.

2.2.2.Convolutional Neural Network - CNN

Mạng nơ-ron tích chập (cịn gọi là ConvNet/CNN) là một thuật toán Deep Learning có thể lấy hình ảnh đầu vào, gán độ quan trọng cho các đặc trưng/đối tượng khác nhau trong hình ảnh và có thể phân biệt được từng đặc trưng/đối tượng này với nhau. Công việc tiền xử lý được yêu cầu cho mạng nơ-ron tích chập thì ít hơn nhiều so với các thuật toán phân loại khác. Trong các phương thức sơ khai, các bộ lọc được thiết kế bằng tay, với một quá trình huấn luyện để chọn ra các bộ lọc phù hợp thì mạng nơ-ron tích chập lại có khả năng tự học để chọn ra các bộ lọc tối ưu nhất.

Kiến trúc của nơ-ron tích chập tương tự như mơ hình kết nối của các nơ-ron trong bộ não con người và được lấy cảm hứng từ hệ thống vỏ thị giác trong bộ não (Visual cortex). Các nơ-ron riêng lẻ chỉ phản ứng với các kích thích trong một khu vực hạn chế của trường thị giác được gọi là Trường tiếp nhận (Receptive Field). Một tập hợp các trường như vậy chồng lên nhau bao phủ toàn bộ khu vực thị giác.

Hình 2.5: Kiến trúc tổng quan của mơ hình CNN3.

3 https://medium0.com/@RaghavPrabhu/understanding-of-convolutional-neural-network-cnn-deep-learning-

15

Mạng nơ-ron tích là một trong những phương pháp được áp dụng nhiều nhất trong lĩnh vực xử lý ảnh (Computer vision) để giải quyết các bài toán như nhận dạng hình ảnh, phân loại hình ảnh, phát hiện đối tượng, nhận diện khn mặt...

Mơ hình CNN sẽ có kiến trúc gồm các tầng như sau: tầng tích chập (Convolution), tầng tổng hợp (pooling) dùng để trích xuất đặc trưng và tầng liên kết đầy đủ (fully connected) dùng để phân lớp đối tượng.

2.2.2.1.Tầng tích chập (Convolution layer)

Hình 2.6: Minh họa Convolution Layer4.

Mục đích của tầng này là trích xuất đặc trưng tương ứng với đầu vào. Mơ hình sẽ tiến hành chọn 1 bộ lọc để tìm và trích xuất những thơng tin quan trọng từ dữ liệu đầu vào, đồng thời giảm số chiều cho các lớp ẩn tiếp theo. Các giá trị đầu ra cho vùng lọc sẽ được tính tốn bằng các hàm kích hoạt (Activated Function). Một số hàm kích hoạt nổi tiếng thường dùng có thể kể đến như ReLU, Sigmoid… Hiện nay, hàm ReLU được sử dụng nhiều hơn các hàm còn lại.

Đây là lớp quan trọng nhất của CNN, lớp này có nhiệm vụ thực hiện mọi tính tốn. Những yếu tố quan trọng của một tầng tích chập là: stride, padding, filter map, feature map. CNN sử dụng các bộ lọc để áp dụng vào vùng của hình ảnh. Những

16

filter map này được gọi là ma trận 3 chiều, mà bên trong nó là các con số và chúng là trọng số.

2.2.2.2.Tầng tổng hợp (Pooling layer)

Sau tầng tích chập, tầng tổng hợp trích chọn đặc trưng và giảm số chiều cho dữ liệu đầu vào. Khi giảm số chiều, mơ hình giảm số lượng tham số, rút ngắn được thời gian huấn luyện và hạn chế overfitting. Cũng như tầng tích chập, tầng tổng hợp sử dụng bộ lọc trượt qua dữ liệu đầu vào để trích xuất đặc trưng cần thiết, nhưng các bộ lọc ở đây sẽ khơng chứa tham số.

Hình 2.7: Minh họa Pooling Layer5.

Các phương pháp phổ biến được sử dụng ở tầng tổng hợp là MaxPooling và AveragePooling. Trong đó MaxPooling chỉ lấy giá trị cao nhất trong vùng của bộ lọc đi qua cịn AveragePooling sẽ tính tốn giá trị trung bình trong vùng bộ lọc đi qua.

2.2.2.3.Tầng liên kết đầy đủ (Fully connected layer)

Kiến trúc của tầng liên kết đầy đủ tương tự kiến trúc của mạng nơ-ron nhân tạo. Kết quả đầu ra của tầng tích chập và tầng tổng hợp là các ma trận ở dạng hai chiều hoặc ba chiều. Các ma trận trên sẽ được làm phẳng (Flatten) thành một vector rồi mới được đưa vào tầng liên kết đầy đủ. Lớp cuối cùng trong tầng liên kết đầy đủ chính là đầu ra cho bài tốn.

17

Ngoài ra, nếu như tầng liên kết đầy đủ có được dữ liệu hình ảnh thì chúng sẽ chuyển nó thành mục chưa được phân chia chất lượng. Cái này khá giống với phiếu bầu rồi chúng sẽ đánh giá để bầu chọn ra hình ảnh có chất lượng cao nhất.

Hình 2.8: Minh họa Fully-connected layer67.

2.3.Các phương pháp phát hiện đối tượng liên quan 2.3.1.Faster R-CNN 2.3.1.Faster R-CNN

Năm 2016, Shaoqing Ren và cộng sự [6], dựa trên nền tảng Fast R-CNN [7], đã đưa ra một thuật tốn phát hiện đối tượng khơng sử dụng Selective Search, mà sử dụng chính mạng đào tạo để học và trích xuất các vùng đặc trưng. Phương pháp này được đặt tên là Faster R-CNN. Phương pháp này được đề xuất với mục tiêu hướng tới phát hiện đối tượng theo thời gian thực với mạng đề xuất khu vực RPN.

Hình 2.9: Kiến trúc mơ hình Faster R-CNN lấy từ bài báo gốc [6].

6 https://nttuan8.com/bai-6-convolutional-neural-network/

18

Tương tự như Fast R-CNN, hình ảnh đầu vào đầu tiên sẽ được đưa qua một backbone CNN sâu để trích xuất các feature map. Thay vì sử dụng Selective Search để xác định vùng đề xuất, Faster R-CNN sử dụng Region Proposal Network (RPN) để dự đoán các vùng đề xuất.

Region Proposal Network (RPN): Mạng con RPN khá đơn giản, chỉ gồm các lớp conv dùng để trích xuất các vùng quan tâm hay các vùng có khả năng chứa đối tượng từ feature map. Đầu vào của mạng là feature map được trích xuất từ backbone CNN sâu trước đó. Đầu tiên, RPN xác định các anchor box có thể là các vùng đề xuất hay khơng. Sau đó, RPN lọc ra và chỉ giữ lại những anchor box chứa đối tượng. Anchor box được xác định bằng 4 tham số (x_center, y_center, width, height). Đầu ra của mạng RPN sẽ gồm hai phần là Classifier để phân loại đối tượng và Bounding box regression để xác định vùng có khả năng chứa đối tượng hay khơng. Vì vậy, RPN cũng bao gồm hai hàm Loss dùng để dùng phân loại và xác định Bounding box.

Các khu vực đề xuất sau khi được dự đoán từ mạng con RPN sẽ tiếp tục được điều chỉnh lại hình dạng bằng lớp ROI Pooling. Lớp ROI Pooling này giúp giải quyết các vấn đề kích thước của các vùng đề xuất khi sử dụng một cửa sổ trượt trên các feature map để tính tốn và sau đó trả về vector đặc trưng (ROI Region Vector) có kích thước cố định được định nghĩa trước đó. Các vector đặc trưng này được đưa vào hai nhánh Classifier và Regression:

• Nhánh Classifier có 𝐶 unit cho 𝐶 class của bài toán (bao gồm background). Các vector đặc trưng được truyền qua lớp softmax để thu được Classifier score (điểm số xác suất dự đoán phân loại lớp đối tượng). • Đầu ra của nhánh Bounding box regression dùng để cải thiện độ chính

xác cho các Bounding box thu được từ mạng con RPN.

2.3.2.Cascade R-CNN

Cascade R-CNN là một phương pháp phát hiện đối tượng nhiều giai đoạn (multi-stage) được đề xuất bởi Zhaowei Cai và Nuno Vasconcelos [2]. Kiến trúc

19

này được sử dụng để giải quyết hai vấn đề suy giảm hiệu suất khi tăng giá trị ngưỡng IoU: vấn đề overfitting trong quá trình huấn luyện gây ra bởi giá trị IoU cao và sự không khớp về thời gian suy luận giữa IoU mà bộ phát hiện được tối ưu và những giả thuyết đầu vào.

(a) Faster R-CNN

(b) Cascade R-CNN

Hình 2.10: So sánh cấu trúc của Faster R-CNN và Cascade R-CNN lấy từ bài báo gốc [2]. “I” là ảnh đầu vào, “conv” là backbone convolutions, “pool” là region-wise feature extraction, “H” là network head, “B” là Bounding box, “C” là classification.

20

Như được thể hiện trong Hình 2.10, Cascade R-CNN bao gồm một chuỗi các máy dò (detector) được huấn luyện với các ngưỡng IoU tăng dần qua từng máy dị để có thể tuần tự phát hiện các kết quả false positive. Các máy dò được huấn luyện qua từng giai đoạn một, đầu ra của máy dò này sẽ trở thành đầu vào của máy dò tiếp theo dẫn tới những máy dò ở các giai đoạn sau sẽ có được đầu vào với phân phối tốt hơn từ đó các máy dị này có thể đạt hiệu quả cao hơn.

Ngồi ra, trong q trình thực nghiệm, tác giả cũng đã tìm ra rằng kiến trúc 3 giai đoạn là phù hợp nhất với ngưỡng giá trị IoU tăng dần (0.5, 0.6, 0.7). Đó là bởi vì khi sử dụng kiến trúc có 4 giai đoạn, hiệu suất phát hiện đối tượng của mơ hình khơng thay đổi hoặc giảm so với kiến trúc ba giai đoạn, mặc dù họ có thể nhận được điểm cao nhất ở giá trị 𝐴𝑃90. Vì vậy, kiến trúc ba giai đoạn như Hình 2.10 là đánh đổi hợp lý nhất.

Phương pháp này cũng tối ưu hóa việc hồi quy cho phân phối Bounding box, được tạo bởi phân phối trước đó nhưng khơng phải là phân phối ban đầu. Cascade R-CNN đã đạt được thành cơng trong việc cải thiện từng bước các dự đốn và quá trình huấn luyện các phân phối.

2.3.3.Guided Anchoring.

Guided Anchoring [1] đề xuất một cách sử dụng các mỏ neo (anchor) mà không sử dụng một tập hợp các kích thước và tỉ lệ co được xác định trước giống như cách thức hoạt động của Faster R-CNN. Tác giả đưa ra cơng thức xác định vị trí và hình dạng của một vật thể trên ảnh như sau:

𝑝(𝑥, 𝑦, 𝑤, ℎ|𝐼) = 𝑝(𝑥, 𝑦|𝐼)𝑝(𝑤, ℎ|𝑥, 𝑦, 𝐼)

Trong đó (𝑥, 𝑦) là tọa độ khơng gian trung tâm, 𝑤 là chiều ngang, ℎ là chiều cao. Dựa trên công thức này, tác giả đề xuất mô-đun sản sinh mỏ neo được thể hiện như trong phần gạch đỏ ở Hình 2.11. Mơ-đun này là một mạng bao gồm hai nhánh để dự đốn vị trí và hình dạng. Với ảnh đầu vào 𝐼, đầu tiên mạng lấy được feature map 𝐹1. Từ feature map 𝐹1, nhánh dự đốn vị trí (location prediction) tạo ra một

21

bản đồ xác suất cho biết các vị trí có thể có của các đối tượng, trong khi nhánh dự

đốn hình dạng (shape prediction) dự đốn các hình dạng phụ thuộc vào vị trí. Từ

đầu ra của cả hai nhánh, mạng tạo ra một tập hợp các điểm neo bằng cách chọn các vị trí có xác suất dự đốn trên một ngưỡng nhất định và hình dạng có thể xảy ra nhất tại mỗi vị trí đã chọn. Vì hình dạng mỏ neo có thể khác nhau, các đặc trưng ở các vị trí khác nhau sẽ nắm bắt được nội dung trực quan trong các phạm vi khác nhau. Vì vậy, một mơ-đun điều chỉnh tính năng (feature adaption module) được sử

Một phần của tài liệu Phát hiện đối tượng trong không ảnh chứa sương mờ dựa trên học sâu (khóa luận tốt nghiệp) (Trang 27)

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

(105 trang)