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

pdf
Số trang Phân lớp ảnh trái cây bằng mạng Nơron tích chập sâu 7 Cỡ tệp Phân lớp ảnh trái cây bằng mạng Nơron tích chập sâu 366 KB Lượt tải Phân lớp ảnh trái cây bằng mạng Nơron tích chập sâu 0 Lượt đọc Phân lớp ảnh trái cây bằng mạng Nơron tích chập sâu 105
Đánh giá Phân lớp ảnh trái cây bằng mạng Nơron tích chập sâu
4.7 ( 19 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

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 toá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 toán phân lớp trên từng loại cơ sở dữ liệu (CSDL) ảnh, bài toán phân lớp ảnh nói chung vẫn còn là bài toán thách thức. Có hai lý do giải thích tại sao bài toá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 toá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 Mã Tên trái cây Mã Tên trái cây Mã Tên trái cây Mã 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, , là 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 toá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 toá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 quá trình dùng thuật toá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 quá 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 quá trình huấn luyện Hình 6. Độ chính xác của mô hình trong quá 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, https://www.kaggle.com/moltean/fruits (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 https://www.cs.toronto.edu/~kriz/cifar.html. (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
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.