Tải bản đầy đủ (.pdf) (7 trang)

Phân lớp ảnh trái cây bằng mạng Nơron tích chập sâu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (365.63 KB, 7 trang )

PHÂN LỚP ẢNH TRÁI CÂY BẰNG MẠNG NƠRON
TÍCH CHẬP SÂU
Nguyễn Văn Phúc1, Vũ Thanh Hiền2
1

Học viên cao học ngành CNTT, trường Đại học Ngoại ngữ - Tin học TP. HCM
2

Khoa CNTT, trường Đại học Cơng nghệ TP. HCM (HUTECH)

TĨM TẮT
Bài báo nghiên cứu và thiết kế hệ thống mạng nơron tích chập sâu (Deep Convolutional Neural Network DCNN) trong việc phân loại trái cây. Cụ thể hệ thống gồm 5 tầng tích chập, mỗi tầng đều có ReLU kèm
theo, một số tầng sử dụng thêm max pooling. Ngoài ra hệ thống còn sử dụng 3 tầng fully connected với
tầng cuối cùng có 60 nơron kết hợp với hàm softmax để phân lớp dữ liệu. Để giảm vấn đề overfitting, bài
báo sử dụng kỹ thuật sinh thêm dữ liệu và phương pháp “dropout”. Chính vì vậy hệ thống cho kết quả với
độ chính xác cao hơn so với bài báo gốc trên cùng tập dữ liệu mẫu.
Từ khóa: Convolutional Neural Network , Deep Learning, Deep Convolutional Neural Network, Fruit
Classification, Image Classification.

1. GIỚI THIỆU
Phân lớp các đối tượng trong ảnh là bài tốn quan trọng trong thị giác máy tính, đây là giai đoạn quan
trọng trong việc hiểu các đối tượng trong ảnh. Tuy nhiên, cho tới thời điểm này, mặc dù đã có nhiều giải
pháp hiệu quả giải quyết bài tốn phân lớp trên từng loại cơ sở dữ liệu (CSDL) ảnh, bài tốn phân lớp ảnh
nói chung vẫn cịn là bài tốn thách thức. Có hai lý do giải thích tại sao bài tốn này vẫn cịn thách thức:
– Khả năng biểu diễn đặc trưng của đối tượng: mặc dù các đặc trưng của đối tượng có thể được học tự
động từ CSDL và có thể học phân cấp từ đơn giản đến phức tạp [1, 2] nhưng chưa thể thiết kế hệ
thống học tự động về độ lớn của đặc trưng và xác định mức độ phân cấp cần học là bao nhiêu. Cho
nên trong từng CSDL, ta phải phân tích và quyết định các tham số này.
– Khả năng phân lớp: trong nhiều bài toán phân lớp ảnh cụ thể, sự khác biệt giữa các đối tượng trong
cùng một lớp có giá trị khá lớn, trong khi sự khác biệt giữa các đối tượng trong các lớp khác nhau
lại có giá trị nhỏ. Hay nói cách khác, sự biến động của các đặc trưng trong cùng một lớp lớn hơn sự


biến động của các đặc trưng giữa hai lớp khác nhau làm cho việc phân lớp rất khó khăn.
Bài toán phân lớp các loại trái cây trong thực tế có những đặc điểm vừa kể trên. Trong cùng loại trái cây,
đơi khi có hình dạng rất khác nhau, hay màu sắc rất khác nhau hay góc nhìn khác nhau sẽ có hình dáng,
màu sắc rất khác nhau. Chẳng hạn như trong hình 1, cả ba ảnh đều là hình của cùng một loại táo được lấy
từ CSDL Fruits [3] và thấy rằng, cùng loại táo nhưng ba hình khá khác nhau về màu sắc, hình dáng do các
góc nhìn khác nhau tạo ra. Giữa hai lớp trái cây khác nhau đơi khi có hình dáng, màu sắt khá giống nhau.
Như trong hai hình sau: hình 2 là nho trắng loại 1, và hình 3 là nho trắng loại 2, tuy là hình của hai loại
nho khác nhau, nhưng sự khác biệt giữa hai loại này không khác nhau nhiều.
Để giải quyết bài toán phân lớp ảnh trái cây, Horea Muresan, Mihai Oltean [4] đã xây dựng hệ thống học
sâu gồm có tất cả 6 tầng, trong đó có 4 tầng convolutions, 2 tầng fully connected. Các tầng convolution
đều có kích thước 5x5. Tầng fully connected kích thước 2704×60. Độ chính xác đạt được là 94.59%.
210


Bài báo sẽ tiến hành phân tích các đặc điểm của CSDL Fruits, từ đó đề xuất kiến trúc CNN phù hợp
để giải quyết bài tốn hiệu quả.

Hình 1. Hình dạng khác nhau của cùng một loại táo

Hình 2. Nho trắng loại 1

Hình 3. Nho trắng loại 2

2. PHÂN TÍCH CƠ SỞ DỮ LIỆU
CSDL ảnh Fruits [3] gồm 60 loại trái cây, có tổng cộng 38,409 ảnh, mỗi ảnh đều có kích thước 100×100
pixel. Mỗi ảnh được gán một trong 60 nhãn, tên các nhãn và mã số của mỗi nhãn được mơ tả như bảng 1.
Bảng 1. Mã hóa các loại trái cây




Tên trái cây



Tên trái cây



Tên trái cây



Tên trái cây

0

Apple Braeburn

15

Cactus fruit

30

Kiwi

45

Pear


1

Apple Golden 1

16

Carambula

31

Kumquats

46

Pear Abate

2

Apple Golden 2

17

Cherry

32

Lemon

47


Pear Monster

3

Apple Golden 3

18

Clementine

33

Lemon Meyer

48

Pear Williams

4

Apple Granny Smith

19

Cocos

34

Limes


49

Pepino

5

Apple Red 1

20

Dates

35

Litchi

50

Pineapple

6

Apple Red 2

21

Granadilla

36


Mandarine

51

Pitahaya Red

7

Apple Red 3

22

Grape Pink

37

Mango

52

Plum

8

Apple Red Delicious

23

Grape White


38

Maracuja

53

Pomegranate

9

Apple Red Yellow

24

Grape White 2

39

Nectarine

54

Quince

10

Apricot

25


Grapefruit Pink

40

Orange

55

Raspberry

11

Avocado

26

Grapefruit White

41

Papaya

56

Salak

12

Avocado ripe


27

Guava

42

Passion Fruit

57

Strawberry

13

Banana

28

Huckleberry

43

Peach

58

Tamarillo

14


Banana Red

29

Kaki

44

Peach Flat

59

Tangelo

Mô tả CSDL Fruits là

{

()

()

} . Với

là ảnh trái cây với 3 kênh màu RGB,

,




nhãn ảnh ,
,
-, là số lượng dữ liệu huấn luyện. Tất cả các ảnh trong CSDL đều có chất lượng
cao và khơng có nền. Điều này tạo nhiều thuận lợi cho việc xây dựng mơ hình:
– Các đặt trưng của ảnh rất rõ ràng: giúp cho mơ hình có thể biểu diễn đặc trưng chính xác.
– Tạo điều kiện rất thuận lợi cho việc sinh thêm dữ liệu mới khi cần như có thể thêm nhiễu vào ảnh,
có thể thêm các nền khác nhau cho các ảnh. Không giống như phần lớn các CSDL khác như CIFAR
[5] đều chứa các đối tượng và nhiễu nên cần phải tiến hành tiền xử lý trước khi đưa vào mơ hình.
– Mức độ chi tiết các đặc trưng trong ảnh khá nhỏ nên cần ưu tiên kích thước bộ học đặc trưng nhỏ.
211


Mỗi loại trái cây được chụp các góc nhìn khác nhau (3600), điều này phản ảnh đầy đủ các đặc trưng của
mỗi loại trái cây. Tuy nhiên, CSDL còn một số hạn chế:
– Mỗi loại trái cây chỉ chụp có một vài hình: CSDL chưa phản ánh được đầy đủ các đặc trưng của loại
trái cây. Các ảnh trái cây cũng không chụp theo độ phát triển của trái cây theo thời gian.
– Số lượng mẫu chưa được nhiều. Trong khi các mơ hình học sâu thường cần một lượng dữ liệu lớn
để đảm bảo có thể tạo ra mơ hình mạnh. Chính vì vậy khi xây dựng mơ hình để giải quyết bài toán
này phải cân nhắc việc thiết kế số tầng, số nơron cho các tầng, số lượng bộ lọc, kích thước bộ lọc
cho phù hợp với CSDL.

3. MƠ HÌNH ĐỀ XUẤT
CNN [6, 7] có nhiều đột phá trong 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 tốn khác nhau nên khi áp dụng mơ hình CNN 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. Kiến trúc tổng quan của mơ hình giải quyết bài tốn được
thiết kế như trong hình 4.

3.1. Kiến trúc
Mơ hình có 5 tầng convolutions để học đặc trưng, theo sau đó là một mạng fully connected để phân lớp dữ

liệu. Cấu trúc và ý nghĩa của các tầng như sau:
– Tầng input: Chấp nhận ảnh có kích thước
input nhận ảnh

pixel với 3 kênh màu RGB. Đầu vào của tầng

– 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) ( )
( ) [[8]] để 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 bài báo 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 dùng để phân lớp dữ liệu. Tất cả các tầng fully connected dùng kỹ
thuật dropout [9] giúp tránh vấn đề overfitting.
– Tầng output: Tầng output có 60 nơron, mỗi nơron tương ứng với một lớp. Xác suất của mỗi lớp
được xác định thông qua hàm softmax

Chi tiết các tham số trong các tầng được mô tả trong bảng 2.

212


Hình 4. Kiến trúc mơ hình CNN
Bảng 2. Kiến trúc mạng

STT


Tầng

Chiều rộng

Chiều cao

Chiều sâu

Kernel

Stride

Padding

100

100

3

-

-

-

0

Input


1

Convolution

9

9

32

-

1

0

2

ReLU

9

9

32

-

-


-

3

Pooling

9

9

32

2

2

0

4

Convolution

7

7

64

-


1

0

5

ReLU

7

7

64

-

-

-

6

Pooling

7

7

64


2

2

0

7

Convolution

5

5

128

-

1

0

8

ReLU

5

5


128

-

-

-

9

Pooling

5

5

128

2

2

0

10

Convolution

5


5

256

-

1

0

11

ReLU

5

5

256

-

-

-

12

Pooling


5

5

256

2

2

0

13

Convolution

3

3

512

-

1

0

14


ReLU

3

3

512

-

-

-

15

Pooling

3

3

512

2

2

0


16

Fully connected

1

1

1000

-

-

-

17

ReLU

1

1

1000

-

-


-

18

Dropout

1

1

1000

-

-

-

19

Fully connected

1

1

10000

-


-

-

20

ReLU

1

1

10000

-

-

-

21

Dropout

1

1

10000


-

-

-

22

Fully connected

1

1

60

-

-

-

23

Softmax

1

1


60

-

-

-

213


3.2. Hàm loss
Để đánh giá lỗi giữa output của mạng và giá trị ground truth của tập dữ liệu chọn hàm loss là hàm
category cross entropy
( ̂)
Trong đó,

()

∑(

()

( ̂ ( ))

là ground truth label của điểm dữ liệu

(
()


()

)

(

̂ ( ) ))

, ̂ ( ) là giá trị dự đoán

3.3 Phƣơng pháp huấn luyện
Để huấn luyện các tham số, bài báo dùng thuật toán Adaptive Moment Estimation (Adam) [12] để tối ưu
hóa hàm loss.

4. THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1. Mơi trƣờng thực nghiệm
Hệ thống được phát triển trên môi trường Python 3.5, sử dụng Framework Tensorflow [[10]] để phát triển
mơ hình CNN.
Cấu hình máy dùng để huấn luyện và đánh giá mơ hình: Dell Precision m3800, 16 GB RAM, NVIDIA
Quadro K1100M.

4.2. Thực nghiệm
4.2.1. Huấn luyện
– Dữ liệu dùng để huấn luyện: 28736 ảnh (75% kích thức CSDL).
– Input: ảnh chuẩn hóa về đoạn [-0.5, 0.5]
– Kích thước một batch: 200 ảnh
– Khởi tạo các trọng số: các trọng được khởi tạo ngẫu nhiên theo phương pháp Xavier [[11]] nhằm đảm
bảo rằng các trọng số
đó


có giá trị dao động xung quanh 0 và phương sai có giá trị

( )

trong

là số nơron tầng phía trước.

– Hệ số học có giá trị khởi tạo ban đầu: 0.001
– Phương pháp tối ưu hàm loss: trong q trình dùng thuật tốn Adaptive Moment Estimation (Adam)
[12] để tối ưu hàm loss, phần thực nghiệm còn sử dụng cách tính hệ số học thích nghi cho mỗi tham số
của hàm loss.
Trong quá trình huấn luyện, giá trị hàm lỗi giảm khá nhanh. Chỉ 300 epoch giá trị hàm lỗi đã tiệm cận về 0
(hình 5).
Trong 300 epoch của q trình huấn luyện, độ chính xác của mơ hình tăng đều và đạt gần ngưỡng 100%
(hình 6).

4.2.2. Đánh giá
– Dữ liệu dùng để kiểm tra: 9673 ảnh (25% kích thước CSDL)
– Kết quả độ chính xác: 94.84%

214


Hệ thống của Horea Muresan, Mihai Oltean [4] có độ chính xác là 94.59%. Như vậy, hệ thống đề xuất đạt
được độ chính xác tốt hơn hệ thống Horea Muresan, Mihai Oltean là 0.25%.

Hình 5. Giá trị của hàm loss trong q trình huấn luyện

Hình 6. Độ chính xác của mơ hình trong q trình huấn luyện


5. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Bài báo đã phân tích, thiết kế một mơ hình CNN để nhận dạng ảnh màu trái cây, mơ hình sử dụng cả ba
kênh RGB để phân lớp ảnh. Kết quả thực nghiệm cho thấy độ chính xác của mơ hình là 94.84%. Hướng
phát triển tiếp theo là xem xét việc sinh thêm dữ liệu bằng cách gây nhiễu trên các ảnh gốc, tạo nền cho
các ảnh để có thể sử dụng được mơ hình trên dữ liệu ảnh có nền. Biến đổi ảnh sang ảnh có một kênh màu
và kết hợp một số mơ hình lại với nhau để cho độ chính xác cao hơn.

TÀI LIỆU THAM KHẢO
[1]

Yoshua Bengio, Aaron Courville, and Pascal Vincent, “Representation Learning: A Review and
New Perspectives”, IEEE Trans. Pattern Anal. Mach. Intell., vol. 35, pp. 1798-1828, 2013.

[2]

Yann LeCun, Yoshua Bengio, Geoffrey Hinton, “Review Deep learning”, Nature, vol 512, 2015.

[3]

Fruits dataset, (truy cập ngày 18/5/2018).

[4]

Horea Muresan, Mihai Oltean, “Fruit recognition from images using deep learning”, Technical
Report, Babes-Bolyai University, 2017.

[5]

CIFAR-10 and CIFAR-100 Datasets (truy cập ngày

18/5/2018).

[6]

Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, “ImageNet Classification with Deep
Convolutional Neural Networks”, Advances in Neural Information Processing Systems 25, 2012.

215


[7]

Catherine F. Higham, Desmond J. Highamy, "Deep Learning: An Introduction for Applied
Mathematicians", arXiv:1801.05894, 2018.

[8]

Vinod Nair, Geoffrey E. Hinton, “Rectified Linear Units Improve Restricted Boltzmann Machines”,
Proceedings of the 27th International Conference on Machine Learning, p. 807–814, 2010.

[9]

Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. “Dropout: A simple
way to prevent neural networks from overfitting”, The Journal of Machine Learning Research,
15(1), p.1929-1958, 2014.

[10] Martín Abadi , Paul Barham , Jianmin Chen , Zhifeng Chen , Andy Davis, Jeffrey Dean , Matthieu
Devin , Sanjay Ghemawat , Geoffrey Irving , Michael Isard , Manjunath Kudlur , Josh Levenberg ,
Rajat Monga , Sherry Moore , Derek G. Murray , Benoit Steiner , Paul Tucker , Vijay Vasudevan ,
Pete Warden , Martin Wicke , Yuan Yu , Xiaoqiang Zheng, “TensorFlow: a system for large-scale

machine learning”, Proceedings of the 12th USENIX conference on Operating Systems Design and
Implementation, 2016.
[11] Saiprasad Koturwar, Shabbir N Merchant, “Weight Initialization of Deep Neural Networks(DNNs)
using Data Statistics”, arXiv:1710.10570, 2017.
[12] Diederik P. Kingma, Jimmy Ba, "Adam: A Method for Stochastic Optimization", arXiv:1412.6980,
2017.

216



×