Mạng nơ-ron nhân tạo cơ bản gồm có nhiều lớp, mỗi lớp lại gồm nhiều nơ-ron, các nơ-ron được liên kết với nhau bởi các liên kết. Ban đầu, mạng nơ-ron được thiết kế để mỗi nơ-ron đều liên kết với mọi nơ-ron ở lớp liền trước và lớp liền sau, mỗi một liên kết lại mang một trong số khác nhau. Mạng nơ-ron nhân tạo như vậy gọi là mạng nơ-ron kết nối đầy đủ (fully-connected neural network).
Với mạng nơ-ron nhân tạo, các trọng số cần điều chỉnh trong quá trình huấn luyện chính là các trọng số của các liên kết. Có thể thấy, mạng nơ-ron kết nối đầy đủ, số trọng số cần tối ưu là rất lớn. Ví dụ với một mạng nơ-ron gồm 3 lớp có kích thước lần lượt là 784 – 1024 – 10 (mạng perceptron giải quyết bài toán nhận diện chữ viết tay trên tập MNIST), ta cần tối ưu đến tận 813056 tham số.
Ta có thể nhận thấy, với một đầu vào cụ thể, sẽ chỉ có 1 số thuộc tính là có ảnh hưởng lên nhau. Ví dụ với dữ liệu đầu vào là một bức ảnh, hầu như chỉ có các điểm ảnh gần nhau mới cùng nhau tạo nên một đối tượng (object). Ngoài ra, đối với ảnh, mỗi quan hệ giữa 1 cụm điểm ảnh liên tiếp cũng không thay đổi nếu chúng được đặt ở các vị trí khác nhau trong bức ảnh này. Vì vậy, một kiến trúc mạng nơ-ron nhân tạo mới đã được đề xuất, cắt bỏ đi các liên kết không gây nhiều ảnh hưởng và bắt các liên kết có cùng bản chất chia sẻ trọng số với nhau. CNN chính là một kiến trúc mạng nơ-ron như vậy.
Một mạng CNN cơ bản được hình thành từ các lớp Convolution (Conv) và các lớp Pooling. Kết thúc của mạng CNN thường là một số lớp Fully-connected giúp kết hợp mọi đặc trưng (features) đã trích rút bởi các lớp trước lại với nhau và đưa ra kết quả.
Đầu vào của lớp conv thường là một ma trận có kích thước CxMxM (với C là số kênh – ví dụ số kênh màu của ảnh là 3), đầu ra của lớp conv là một ma trận có kích thước C’xM’xM’. Mỗi lớp Conv gồm C’ ma trận vuông, kích thước CxNxN với N rất nhỏ(thường cỡ 3x3, 5x5, 7x7,...) có cùng kích thước với nhau, gọi là filter. Mỗi filter sẽtrượt trên toàn bộ output của lớp trước và sinh ra một ô của output bằng cách tính tổng chập. Có thểđiều chỉnh các tham số của lớp conv
43 như kích thước filter, độ dài bước nhảy, bổ sung viền,... Nhiệm vụ của lớp conv là tìm ra các mối liên hệ (đặc trưng) giữa các điểm ảnh gần nhau, mỗi filter phụ trách tìm ra một mối liên hệtrong đó.
Lớp Pooling có nhiệm vụ lựa chọn ra điểm ảnh có đặc trưng tiêu biểu nhất trong các điểm ảnh nằm gần nhau. Các loại pooling thường gặp là max pooling và average pooling. Ta cũng có thể thay đổi các tham số kích thước, bước nhảy,... của lớp pooling.
4.3 Bài toán nhận diện vật thể
Trong lớp các bài toán nhận diện ảnh, bài toán nhận diện quả dứa và phân loại dứa chín được xếp vào nhóm bài toán nhận diện vật thể. Đặc điểm chung của những bài toán nhận diện vật thể là một bức ảnh chứa nhiều vật thể thuộc nhiều lớp (class) khác nhau. Nhiệm vụ của bài toán là phải đưa ra danh sách tất cả các vật thể thuộc những lớp được chỉ định trong bức ảnh đó, bao gồm thông tin về toạđộ, lớp của vật thể. Toạđộ của vật thể thường là thông tin hình chữ nhật bao quanh vật thểđó, hình chữ nhật này có các cạnh song song với các viền của ảnh.
Có nhiều phương pháp giải quyết bài toán nhận diện vật thể khác nhau. Có thể xếp các phương pháp này vào 2 nhóm:
- Giải quyết theo cơ chế đường ống (pipeline): phát hiện -> phân loại. Nhóm bài toán này sẽ tìm cách phân tách các vật thể trong một bức ảnh thành các bức ảnh độc lập, sau đó phân loại những bức ảnh đó một cách độc lập. Những giải thuật tiêu biểu là: R-CNN, Fast R-CNN,...
- Giải quyết theo cơ chế end-to-end: sử dụng một mô hình duy nhất để giải quyết đồng thời cả bài toán phân loại và bài toán xác định vị trí. Thuật toán tiêu biểu có thể kểđến là YOLO, SSD,...
4.3.1 Thuật toán YOLO
YOLO (You Only Look Once) là thuật toán Object Dection nhằm mục tiêu xử lý thời gian thực có tốc độ tốt nhất hiện tại.
a) Ý tưởng thuật toán
YOLO chia input image thành SxS grid cell, mỗi grid cell sẽ dựđoán một đối tượng. Ví dụ: grid cell màu vàng ở hình 2.4 dự đoán đối tượng “person” với boundary box có tâm nằm vào trong grid cell đó.