Đối với các bài toán Phát hiện vật thể (Object Detection), các mô hình có thể được chia làm hai loại chính là two-stage model và single-stage model:

– Two-stage model: các mô hình thuộc loại này thường được thực hiện theo 2 bước. Bước đầu tiên nhằm xác định các vùng cần quan tâm trong một hình ảnh (ROI-Region of Interest). Tại bước 2 sẽ sử dụng các kỹ thuật deep learning để phân loại và xác định vật thể tại các vùng ROI đã được xác định tại bước 1 (thực hiện đối với từng vùng ROI). Ưu điểm của các mô hình loại này là chúng cho kết quả với độ chính xác cao tuy nhiên thời gian huấn luyện và tốc độ xử lý lâu, dó đó khó có thể đáp ứng trong các bài toán xử lý hình ảnh thời gian thực. Các mô hình thuộc loại này bao gồm R-CNN (Region-based CNN), Fast R-CNN, Faster R-CNN, Mask-RCNN…

– Single-stage model: khác với Two-stage model, các mô hình single-stage thực hiện đồng thời việc xác định thực thể, bounding box của toàn bộ bức ảnh cùng một lúc. Ưu điểm của các mô hình loại này là chúng có tốc độ xử lý nhanh (mặc dù độ chính xác có thể không cao bằng các mô hình Two-stage model) do đó chúng thường được sử dụng trong các bài toán xử lý hình ảnh thời gian thực. Các mô hình thuộc loại này bao gồm Shot Multibox Detector (SSD), YOLO (You only look once)…

Trong bài này chúng ta sẽ cùng tìm hiểu về bốn mô hình thuộc 2 loại trên, bao gồm R-CNN, Fast R-CNN, Faster R-CNN và YOLO.

1. R-CNN (Regions with CNN features)

R-CNN là mô hình được đề xuất bởi Ross Girshick và các cộng sự vào năm 2014 [1]. R-CNN bao gồm 3 modules:

– Module 1: sử dụng Selective search để trích xuất khoảng 2000 vùng gọi là region proposals.

– Module 2: mạng CNN để trích xuất đặc trưng của từng region proposal (mỗi region proposal được trích suất với 4096-dimensional feature vector. Do đó, feature matrix thông thường là 2000 x 4096)

– Module 3: các feature vector thu được tại module 2 sẽ được sử dụng để xác định vật thể trong từng region proposal sử dụng SVM (Support vector machine có weight matrix là 4096 x N với N là số lượng label class)

Mặc dù R-CNN có độ chính xác tương đối cao trong việc nhận diện vật thể nhưng nó tồn tại một số hạn chế sau:

– R-CNN có thời gian huấn luyện và tốc độ xử lý chậm do phải thực hiện phân loại 2000 region proposals cho mỗi bức ảnh

– Kiến trúc của R-CNN phức tạp, bao gồm nhiều bước: trích xuất đặc trưng, fine-tuning network, huấn luyện mô hình SVM, hiệu chỉnh bounding-box

– R-CNN khó có thể áp dụng trong các bài toán real-time vì nó phải mất khoảng 47 giây để xử lý một bức ảnh

2. Fast R-CNN

Fast R-CNN là mô hình cũng được đề xuất bởi Ross Girshick vào năm 2015 nhằm nâng cao tốc độ của R-CNN[2]. Fast R-CNN có kiến trúc tương tự như R-CNN nhưng thay vì xử lý từng region proposal của bức ảnh (2000 region proposals), Fast R-CNN nhận đầu vào là toàn bộ bức ảnh và tập hợp các object proposals (các object proposals được xác định thông qua một thuật toán xác định region proposal). Hoạt động của Fast R-CNN có thể được mô tả theo các bước sau:

– Bước 1: trích xuất đặc trưng của toàn bộ bức ảnh sử dụng mạng CNN để tạo ra một Conv Feature Map.

– Bước 2: đối với mỗi object proposal, RoI pooling layer (Region of Interest) sẽ thực hiện trích xuất một fixed-lengh feature vector (một vector có độ dài cố định) từ Conv Feature Map ở bước 1

– Bước 3: Mỗi feature vector ở bước 2 được đưa qua Fully connected layers và trả về 2 output layers:

+ output 1 (softmax probability): sử dụng để phân loại đối tượng

+ output 2 (bbox regressor): giá trị tọa độ của bounding-box (mỗi bounding-box được xác định bằng 4 giá trị: tọa độ tâm x, y; chiều dài, rộng w, h)

Như vậy Fast R-CNN cải tiến tốc độ của R-CNN bằng cách feed toàn bộ bức ảnh thông qua mạng CNN một lần (để tạo Conv Feature Map) thay vì feed từng region proposal qua mạng CNN (feed 2000 lần cho 2000 region proposals).

3. Faster R-CNN

Mặc dù Fast R-CNN đã cải tiến tốc độ của R-CNN. Tuy nhiên điểm hạn chế của Fast R-CNN là việc xác định region proposal vẫn sử dụng một thuật toán nhất định (ví dụ selective search) với thời gian xử lý chậm. Do đó, Shaoquing Ren cùng Ross Girshick và nhóm nghiên cứu đã đề xuất mô hình Faster R-CNN vào năm 2016 với việc sử dụng RPN (Region Proposal Network) để xác định các region proposals[3]. Faster R-CNN bao gồm 2 modules: RPN và Fast-CNN. RPN là một fully convolutional network với input là một bức ảnh bất kỳ và output là một tập hợp các object proposals (được sử dụng làm inputs cho Fast R-CNN)

4. YOLO

YOLO là một mô hình phát hiện vật thể được để xuất bởi Joseph Redmon, Ross Girshick và các cộng sự vào năm 2016[4]. Khác với các mô hình thuộc họ R-CNN (R-CNN, Fast R-CNN, Faster R-CNN, Mask-RCNN), YOLO không sử dụng region proposal mà thực hiện đồng thời việc xác định vật thể và các bounding box của toàn bộ bức ảnh cùng một lúc. Hoạt động của YOLO có thể được mô tả như sau:

– Bức ảnh cần xử lý được chia nhỏ thành SxS grid (thông thường S=5, 7, 9 …). Nếu trung tâm của vật thể nằm tại một grid cell thì grid cell đó có vai trò phát hiện vật thể.

– Mỗi một grid cell sẽ xác định B bounding boxes cùng với confidence score của các bounding boxes này. Confidence score đánh giá độ chính xác của vật thể có trong bounding box cũng như mức độ chính xác của bounding box này.

– Mỗi một grid cell cũng thực hiện việc phân loại class của vật thể có trong grid cell đó (mỗi grid cell chỉ phân loại một class).

Như vậy, với đầu vào là một bức ảnh (kích thước bức ảnh được điều chỉnh thành 448 x 448) thì đầu ra là một tensor với kích thước S x S x (B*5 +C). Trong đó B là số lượng bounding box và C là số lượng Class label. 5 là số lượng giá trị prediction (x, y, w, h, confidence scroe) của mỗi bounding box (x, y là tọa độ tâm; w, h là chiều dài và chiều rộng của bounding box)

Về kiến trúc mạng, YOLO bao gồm 24 Conv layers và 2 fully connected layers. Với S=7, B=2, C=30 ta có mô hình như sau:

So với các mô hình thuộc họ R-CNN, YOLO có một số ưu điểm sau:

– Tốc độ xử lý nhanh: YOLO có mô hình kiến trúc đơn gian, thực hiện đồng thời việc xác định vật thể, bounding box và phân loại vật thể. Do đó, YOLO có tốc độ xử lý nhanh (45 fts), đáp ứng yêu cầu xử lý trong thời gian thực.

– YOLO xử lý toàn bộ bức ảnh thay vì xử lý từng region proposal. Do đó mô hình YOLO chứa thông tin của toàn bộ bức ảnh thay thông tin của từng vùng riêng lẻ

Tuy nhiên, YOLO cũng có một số điểm hạn chế sau:

– YOLO có tốc độ xử lý nhanh nhưng độ chính xác chưa cao bằng các mô hình Fast R-CNN, Faster R-CNN…

– YOLO khó phát hiện các vật thể nhỏ theo nhóm (ví dụ: nhóm các bông hoa, đàn chim,..)

– Hàm loss function của YOLO coi error của các box như nhau. Tuy nhiên, thực tế thì cùng giá trị error thì với box nhỏ sẽ có ảnh hưởng nhiều hơn so với box lớn.

Bảng so sánh performance giữa YOLO và các mô hình họ R-CNN (PASCAL VOC 2007)

[1] Rich feature hierarchies for accurate object detection and semantic segmentation

[2] Fast R-CNN

[3] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 

[4] You Only Look Once: Unified, Real-Time Object Detection 

Tháng Một 14, 2022
ITechSeeker