Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial Intelligence) là thị giác máy (Computer Vision). Thị giác máy tính là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy. Phát hiện vật thể có lẽ là khía cạnh đặc biệt thu hút của thị giác máy tính do số lần sử dụng trong thực tế.
Bài toán phát hiện vật thể đề cập đến khả năng của hệ thống máy tính và phần mềm để định vị các đối tượng trong một ảnh và xác định từng đối tượng. Phát hiện vật thể đã được sử 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. Có nhiều cách để phát hiện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực.
Việc áp dụng đột phá và nhanh chóng của học sâu vào năm 2012 làm bàn đạp để thúc đẩy sự ra đời các thuật toán và phương pháp phát hiện đối tượng hiện đại có độ xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet và tốc độ xử lý nhanh như SSD. Có hàng triệu chuyên gia lập trình và các nhà phát triển phần mềm muốn tích hợp và tạo ra các sản phẩm mới sử dụng phát hiện vật thể.
2.4.3.1. Giới thiệu SSD [22]
SSD viết tắc của Single Shot Multi-Box Detector [8], là một phương pháp trong lĩnh vực học sâu nhằm giải quyết bài toán phát hiện vật thể.
Cũng giống như hầu hết các kiến trúc phát hiện vật thể khác, đầu vào của SSD là tọa độ “bounding box” của vật thể (hay còn gọi là “offsets” của “bounding box”) và nhãn của vật thể chứa trong bounding box. Điểm đặc biệt làm nên tốc độ của SSD là mô hình sử dụng một mạng thần kinh duy nhất. Cách tiếp cận của nó dựa trên việc nhận diện vật thể trong các “features map” (là một ngõ ra được định dạng ba chiều của một mạng CNN sau khi bỏ các lớp fully connected cuối) có độ phân giải khác nhau. Mô hình sẽ tạo ra một lưới các ô vuông gọi là “grid cells” trên các features map, mỗi ô được gọi là một cell và từ tâm của mỗi cell xác định một tợp hợp các boxes mặc định (default boxes) để dự đoán khung hình có khả năng bao quanh vật thể. Tại thời điểm dự báo, mạng thần kinh sẽ trả về hai giá trị đó là: phân phối xác suất nhãn của vật thể chứa trong bounding box và offsets của nó. Quá trình huấn luyện cũng là quá trình tinh chỉnh xác suất nhãn và bounding box về đúng với các giá trị thực của ngõ vào của mô hình (gồm nhãn và offsets của bounding box).
Thêm nữa, mạng được kết hợp bởi rất nhiều các features map với những độ phân giải khác nhau giúp phát hiện được những vật thể đa dạng các kích thước và hình dạng. Trái với mô hình fast R-CNN [23], SSD bỏ qua bước tạo mặt nạ ‘region proposal network” để đề xuất vùng vật thể. Thay vào đó tất cả quá trình phát hiện vật thể và phân loại vật thể được thực hiện trong cùng một mạng. Bản thân tên của mô hình - Single Shot MultiBox Detector cũng nói lên được rằng mô hình sử dụng nhiều khung hình box với tỉ lệ “scales” khác nhau nhằm nhận diện vùng vật thể và phân loại vật thể, giảm thiểu được bước tạo “region proposal network” so với fast R-CNN nên tăng tốc độ xử lý lên nhiều lần mà độ chính xác vẫn đảm bảo.
Dưới đây là kiến trúc của mô hình:
2.4.3.2. Một số kiến trúc mạng sườn (backbone network)
Mạng “backbone” là một mạng dùng để trích xuất đặt trưng, sử dụng kiến trúc mạng học sâu (deeplab architecture). Ví dụng như mobilenet, RFB, resnet, VGG-16, … a) Kiến trúc mobilenet [24]
Hình 2. 7 Ứng dụng của Mobilenet trên thiết bị thông minh [24]
Mạng mobilenet là một mạng đặc biệt hiệu quả dành cho điện thoại, các hệ thống nhúng so với các mạng thông thường như VGG-16, ResNet, …
Mobilenet dựa trên kiến trúc “streamlined”, nó sử dụng các tính chập “depth- wise separable” để xây dựng một mạng thần kinh với rất ít trọng số. Có hai siêu tham số (hyper-parameters) cần chú ý trong Mobilenet là “latency” và “accuracy”, chúng là hai mặt đối lập của nhau. Những “hyper-parameters” này cho phép chúng ta lựa chọn kính thước của mô hình cho từng ứng dụng dựa trên sự phức tạp của vấn đề.
Mobilenet version 1 là tiền đề để sinh ra một mobilenet version 2 hiệu quả và mạnh mẽ hơn. Nó cũng dựa trên ý tưởng dùng những lớp chập “depth-wise separable” nhưng ở bản nâng cấp này có hai điểm mới trong kiến trúc đó là (1) “linear bottlenecks”
ở giữa các lớp, (2) “shortcut connections” giữa các bottlenecks. Dưới đây là kiến trúc của mobilenet version 1 và 2.
Hình 2. 8 Kiến trúc mạng mobilenet version 1 [24]
b) RFB [25].
RFB là viết tắt của Receptive Fields Block. Đây là một mạng lấy ý tưởng từ kiến trúc của Receptive Fields (RFs) trong hệ thống “human visual”. Mạng dựa trên mối quan hệ giữa kích thước và độ lệch tâm của RFs để tăng khả năng phân biệt các đặc trưng.
Hay nói sâu hơn, RFB là khối tích chập đa nhánh, cấu tạo của nó có thể được chia thành hai phần: (1) lớp tích chập đa nhánh (multi-branch convolution layer) với các kernel khác nhau và (2) “trailing dilated pooling” hoặc các lớp chập. Dưới đây là kiến trúc của RFB:
Hình 2. 10 Kiến trúc của RFB [25].