8
39
Limes | |
35 | Litchi |
36 | Mandarine |
37 | Mango |
38 | Maracuja |
39 | Nectarine |
40 | Orange |
41 | Papaya |
42 | Passion Fruit |
43 | Peach |
44 | Peach Flat |
45 | Pear |
46 | Pear Abate |
47 | Pear Monster |
48 | Pear Williams |
49 | Pepino |
50 | Pineapple |
51 | Pitahaya Red |
52 | Plum |
53 | Pomegranate |
54 | Quince |
55 | Raspberry |
56 | Salak |
57 | Strawberry |
58 | Tamarillo |
Có thể bạn quan tâm!
- Kiến Trúc Tổng Quát Của Một Ann
- Mô Hình Mạng Perceptron Đa Tầng
- Một Số Kiến Trúc Convolutional Neural Network Thông Dụng
- Ứng dụng học sâu trong phân loại trái cây - 8
- Ứng dụng học sâu trong phân loại trái cây - 9
Xem toàn bộ 76 trang tài liệu này.
34
Tangelo |
59
Bảng 3.1 Các loại trái cây
Chúng ta mô tả cơ sở dữ liệu Fruits dưới dạng 𝐷 = {𝑥(𝑖), 𝑦(𝑖)}𝑚. Trong đó: 𝑥 là
1
ảnh trái cây với 3 kênh màu RGB, 𝑥 ∈ ℝ100×100×3, 𝑦 là nhãn của ảnh 𝑥, 𝑦 ∈ [0 … 59],
𝑚 là số lượng dữ liệu huấn luyện.
3.3 Cấu trúc thư mục cơ sở dữ liệu ảnh trái cây
Dữ liệu trong cơ sở dữ liệu Fruits-360 được tổ chức thành 2 thư mục
Thư mục Training: chứa các file ảnh dùng để training mô hình
Thư mục Validation: chưa các file ảnh dùng để kiểm tra mô hình
Trong mỗi thư mục Training, Validation, chứa 60 thư mục con tương ứng với 60 loại trái cây (các ảnh cùng loại trái cây sẽ nằm trong cùng một thư mục).
Tên file ảnh: Tên file ảnh được đặt tên ImageIndex_100.jpg hay
r_ImageIndex_100.jpg
ImageIndex là mã số cho biết ảnh thứ mấy
100 là kích thước file ảnh là 100x100
r cho biết ảnh đã bị xoay
3.4 Dữ liệu mẫu
Một số ảnh táo (apple) thuộc loại Apple Braeburn được cho như trong hình sau
Hình 3.3 Trái cây Apple Braeburn
Các ảnh của một loại có thể được chụp ở các gốc nhìn khác nhau. Ví dụ trong hình sau loại táo Apple Braeburn được chụp ở các gốc nhìn khác nhau.
Hình 3.4 Trái cây Apple Braeburn đã bị xoay
Hình 3.5 Trái cây Apple Golden 1
Hình 3.6 Trái cây Apple Golden 1 đã bị xoay
3.5 Phương pháp đề xuất
Convolutional Neural Network (CNN) có nhiều đột phá trong các bài toán phân lớp dữ liệu ảnh. CNN là mô hình học theo chiến lược end-to-end, nghĩa là tích hợp phần học đặc trưng và phần học phân lớp trong cùng một mô hình. Tuy nhiên, do đặc điểm của mỗi bài toán khác nhau nên khi áp dụng mô hình CNN, chúng ta cần phải thiết kế kiến trúc mô hình phù hợp với bài toán đang giải quyết.
A. Kiến trúc
Kiến trúc tổng quan của mô hình giải quyết bài toán được thiết kế gồm 2 phần: phần thứ nhất, gồm có các tầng Convolution để biểu diễn đặc trưng. Phần thứ hai
theo sau đó là một mạng Fully Connected để phân lớp dữ liệu. Thông tin các tầng được mô tả như sau:
Tầng Input: Tầng input chấp nhận ảnh có kích thước 100 × 100 pixels với 3 kênh màu RGB. Đầu vào của tầng input nhận ảnh 𝑥 ∈ ℝ100×100×3
Tầng Convolution: Có 5 tầng Convolutions dùng để khám phá đặc trưng trong ảnh dữ liệu.
Hàm activation: Tất cả các tầng (tầng convolution và tầng Fully Connected) đều dùng hàm activation ReLU (Rectified Linear Units) 𝑓(𝑥) = max (0, 𝑥) để giúp mạng không bị dày đặc và giúp việc huấn luyện mạng nhanh hơn.
Tầng Pooling: Các thông tin ở tầng trước (thông tin cấp thấp) được dùng để tổng hợp thành thông tin ở tầng sau (thông tin cấp cao hơn), và để tổng hợp hiệu quả, thông tin lớp trước cũng cần phải được giản lược bớt độ phức tạp. Cho nên chúng tôi dùng max pooling giải quyết vấn đề này. Max pooling dùng ở đây có giá trị stride bằng với giá trị padding.
Tầng Fully Connected: Có 3 tầng Fully Connected dùng để phân lớp dữ liệu. Tất cả các tầng Fully Connected chúng tôi dung kỹ thuật Dropout giúp tránh vấn đề overfitting.
Tầng output: Tầng output có 60 neuron, mỗi neuron tương ứng với một lớp. Xác xuất của mỗi lớp được xác định thông qua hàm softmax.
𝑒𝑜𝒊
𝑝𝒊 =
𝑛𝑦
∑
𝒌=1 𝑒
𝑜𝒌
, ∀𝑖
Trong đó, 𝑝𝑖 là xác suất của từng lớp, 𝑜𝒊 là giá trị output ở lớp 𝑖, 𝑛𝑦 là số lớp của bài toán.
Các thông số của từng tầng được cho trong bảng sau:
Tầng | Kích thước | |||
Chiều rộng | Chiều cao | Chiều sâu |
Input | 32 | 32 | 3 | |
1 | Convolution | 9 | 9 | 32 |
2 | ReLU | 9 | 9 | 32 |
3 | Pooling | 9 | 9 | 32 |
4 | Convolution | 7 | 7 | 64 |
5 | ReLU | 7 | 7 | 64 |
6 | Pooling | 7 | 7 | 64 |
7 | Convolution | 5 | 5 | 128 |
8 | ReLU | 5 | 5 | 128 |
9 | Pooling | 5 | 5 | 128 |
10 | Convolution | 5 | 5 | 256 |
11 | ReLU | 5 | 5 | 256 |
12 | Pooling | 5 | 5 | 256 |
13 | Convolution | 3 | 3 | 512 |
14 | ReLU | 3 | 3 | 512 |
15 | Pooling | 3 | 3 | 512 |
16 | Fully Connected | 1 | 1 | 2048 |
17 | ReLU | 1 | 1 | 2048 |
18 | Fully Connected | 1 | 1 | 1024 |
19 | ReLU | 1 | 1 | 1024 |
20 | Fully Connected | 1 | 1 | 60 |
21 | Softmax | 1 | 1 | 60 |