Ứng dụng Deep Learning xây dựng hệ thống phân loại trái cam đạt và không đạt chất lượng dựa vào các đặc điểm quả : báo cáo nghiên cứu khoa học sinh viên - Pdf 66

TRƯỜNG ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN

-----
----












BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:

ỨNG DỤNG DEEP LEARNING XÂY DỰNG
HỆ THỐNG PHÂN LOẠI TRÁI CAM ĐẠT VÀ
KHÔNG ĐẠT CHẤT LƯỢNG DỰA VÀO CÁC
ĐẶC ĐIỂM QUẢ

NGUYỄN NGỌC HOÀI

BIÊN HÒA, THÁNG 11/2018




I

LỜI CẢM ƠN
Em xin chân thành cám ơn tất cả các giảng viên trường Đại Học Lạc Hồng,
các thầy cô khoa Công Nghệ Thông Tin đã giảng dạy và hướng dẫn chúng em
trong suốt thời gian chúng em theo học tại trường.
Em xin gởi lời cảm ơn đến Th.S Nguyễn Minh Sơn, là giáo viên đã tận tình
hướng dẫn chúng em hoàn thành đề tài nghiên cứu khoa học này.
Em xin gửi lời cảm ơn đến giáo viên phản biện, người đã tận tình giúp em có
thể hoàn thành cuốn báo cáo này một cách tốt nhất.
Em xin cám ơn các thầy, các cô trong khoa Công Nghệ Thông Tin đã có
những ý kiến đóng góp trong các buổi báo cáo tiến độ.
Ngoài ra em xin cám ơn thầy Tạ Nguyễn, giáo viên chủ nhiệm lớp 14SE111
và các bạn trong lớp cùng toàn thể gia đình và người thân đã giúp đỡ, động viên
chúng em trong quá trình thực hiện đề tài này.
Với vốn kiến thức còn hạn chế cùng những điều kiện khách quan không cho
phép, đề tài của em khó tránh khỏi những thiếu sót cũng như chưa đáp ứng đầy đủ
các yêu cầu. Do đó em hy vọng tiếp tục nhận được những ý kiến đóng góp và
hướng dẫn của quý thầy cô để đề tài của em được hoàn thiện hơn.
Em xin chân thành cảm ơn.
Biên Hòa, tháng 11 năm 2018
Sinh viên thực hiện

Nguyễn Ngọc Hoài


II

MỤC LỤC

b) Layer trong model ................................................................................ 6
c) Sequential model .................................................................................. 7
d) CNN-Convolutional Neural Network .................................................. 7
1.3. Giới thiệu về một số phần mềm và thư viện sử dụng trong đề tài .............. 8
1.3.1. Python 3.6.0 trên Raspberry Pi ............................................................ 8
1.3.2. Phần mềm FileZilla và Putty................................................................ 8
1.3.3. Thư viện OpenCV ................................................................................ 8


III
1.3.4. Thư viện Tensorflow ............................................................................ 8
1.3.5. Thư viện Matplotlib ............................................................................. 8
1.3.6. Thư viện Imutils ................................................................................... 9
1.3.7. Thư viện RPI.GPIO.............................................................................. 9
1.4. Tiểu kết ........................................................................................................ 9
Chương 2 : Thiết kế và xây dựng hệ thống ........................................................... 10
2.1. Thiết kế phần cứng hệ thống ..................................................................... 10
2.1.1. Bảng danh sách các thiết bị của hệ thống .......................................... 10
2.1.2. Thông tin chức năng các thiết bị của hệ thống .................................. 11
2.2. Thiết kế phần mềm .................................................................................... 14
2.2.1. Cài đặt các thư viện hỗ trợ trên Raspberry Pi và máy tính ................ 14
a) Cài đặt Python3 ................................................................................... 14
b) Cài đặt thư viện OpenCV ................................................................... 14
c) Cài đặt thư viện Tensorflow ............................................................... 15
d) Cài đặt các thư viện hỗ trợ khác ......................................................... 15
2.2.2. Xây dựng hệ thống thu thập dữ liệu trên Raspberry Pi...................... 15
2.2.3. Xây dựng chương trình đào tạo trên máy tính. .................................. 19
a) Tổ chức dữ liệu trước khi cho học máy .............................................. 19
b) Xây dựng mô hình đào tạo ................................................................. 20
c) Tiến hành cho học máy ....................................................................... 22

Bảng 3-3: Bảng kết quả thử nghiệm lần 2. ..................................................28
Bảng 3-4: Danh sách đánh giá hệ thống. ..... Error! Bookmark not defined.

DANH MỤC HÌNH
Hình 1.1: Phân loại học máy. .........................................................................5
Hình 1.2: Phân loại thuật toán Supervised Learning. ....................................6
Hình 1.3: Ví dụ về cách sử dụng Sequential model. ......................................7
Hình 1.4: Ví dụ về cách sử dụng Sequential model. ......................................7
Hình 1.5: Ví dụ về cách sử dụng function API. .............................................7
Hình 1.6: Các lớp của mô hình CNN. ............................................................7
Hình 2.1: Raspberry Pi 3 model B. ..............................................................11
Hình 2.2: Camera Logitech C310. ...............................................................12
Hình 2.3: Camera Pi V2. ..............................................................................13
Hình 2.4: Cấu tạo bên ngoài hệ thống..........................................................15
Hình 2.5: Cấu tạo bên trong hệ thống. .........................................................16
Hình 2.6: Quả cam đạt chất lượng. ..............................................................16
Hình 2.7: Quả cam không đạt chất lượng. ...................................................17
Hình 2.8: Quy trình thu thập dữ liệu. ...........................................................17
Hình 2.9: Code thu thập dữ liệu hình ảnh của hệ thống. ............................19
Hình 2.10: Các lớp của mô hình đào tạo......................................................20
Hình 2.11: Code xây dựng mô hình trong Keras. ........................................21
Hình 2.12: Quy trình đào tạo dữ liệu học máy. ...........................................22
Hình 2.13: Tiến trình đào tạo trên cửa sổ console. ......................................22
Hình 2.14: Đồ thị của quá trình đào tạo dữ liệu...........................................23


V
Hình 3.1: Các đối số của chương trình nhận diện cam trên Raspberry. ......24
Hình 3.2: Các hàm xử lý ảnh khi nhận diện cam. ........................................24
Hình 3.3: Xử lý nhận diện cam. ..................................................................25

-

Keras có thể sử dụng cùng với các thư viện khác như TensorFlow,
Theano.

-

Dễ sử dụng, xây dựng model nhanh.

-

Có thể chạy trên cả CPU và GPU.
Deep Learning cũng đang là một mảng mà các công ty lớn trên thế giới
theo đuổi. Với những ứng dụng của nó mang lại là rất lớn. Vì vậy phương
pháp này có thể được áp dụng cho nhiều loại trái cây khác nhau hoặc
nhiều sản phẩm khác nhau.

2. Tình hình nghiên cứu
2.1. Ngoài nước
Trên thế giới hiện nay, tại các nước tiên tiến trên thế giới như: Mỹ, Nhật Bản,
Hàn Quốc… Các hộ nông dân, cũng như các công ty xuất nhập khẩu đều sử dụng
máy phân loại trái cây vào công đoạn sau thu hoạch, nhằm lựa và phân loại chất
lượng trái cây được đồng đều về trọng lượng, màu sắc, kích cỡ, độ ngọt, độ chua,
hình dáng…Deep Learning cũng đang được ứng dụng rất nhiều trong nông nghiệp
trên thế giới cụ thể:
Trong bài báo [9] nói về Machine Learning trong nông nghiệp với các ứng
dụng như: Quản lý quá trình phát triển của cây trồng, phát hiện sâu bệnh trên cây
trồng và phát hiện cỏ dại.



 Thư viện xử lý ảnh OpenCV.
 Thư viện GPIO điều khiển đèn và nút nhấn.
 Trái cam thường có vỏ màu xanh.
 Hệ thống gồm:
+ Hộp chữ nhật kích thước 54x26cm.
+ Raspberry Pi 3.
+ Camera Logitech full HD 720
+ Camera Pi
 Raspbery Pi 3, Camera Logitech full HD 720, Camera Pi.


3
4.2. Phạm vi nghiên cứu
 Môi trường nghiên cứu: Phòng B304 với đầy đủ các thiết bị.
 Điều kiện ánh sáng: Hệ thống phải được gắn đèn led trắng để đảm bảo độ
sáng.
 Số lượng ảnh thu thập được của mỗi quả cam là 12 ảnh.
 Tổng số lượng ảnh thu thập được 3000 ảnh gồm 1500 ảnh cam đạt chất lượng
và 1500 ảnh cam không đạt chất lượng.
 Trái cam thuộc giống cam miền Tây thường có màu xanh đậm, có hình dáng
tròn, có vỏ mỏng, ruột màu vàng đỏ đặc trưng, cùi dày và có hạt.
 Quả cam được đặt đúng vị trí nằm trong khoảng tiêu cự của camera.

5. Phương pháp nghiên cứu
 Nghiên cứu về cách thu thập dữ liệu hình ảnh về trái cam bằng Raspberry Pi.
 Nghiên cứu phương pháp sử dụng dữ liệu thu thập kết hợp với các thư viện
OpenCV, Keras để đào tạo thử nghiệm trên máy tính.
 Nghiên cứu phương pháp tăng độ chính xác cho mô hình đào tạo.
 Thực nghiệm hệ thống trên thực tế.


Trong chương này tác giả trình bày chi tiết về các thiết bị phần cứng, cách
kết nối các thiết bị phần cứng. Phương pháp xây dựng các phần mềm điều khiển
hệ thống, quy trình thu thập dữ liệu hình ảnh trái cam của hệ thống, xây dựng
chương trình đào tạo trên máy tính.
 Chương 3: Thực nghiệm hệ thống trong thực tế
Trong chương này tác giả nêu quy trình hoạt động của hệ thống trong thực
tế, các bảng số liệu thu thập trong quá trình thử nghiệm. Nhận xét các kết quả thu
được.
Phần kết luận
Đưa ra những kết luận và kiến nghị về chương trình đã xây dựng.


5

Chương 1 : Tổng quan lý thuyết
1.1. Tổng quan về học máy
1.1.1. Machine learning là gì?
 Machine learning là một phần của trí tuệ nhân tạo (AI) cho phép các ứng dụng
phần mềm tự học hỏi dựa trên dữ liệu đầu vào mà không cần được lập trình cụ
thể.
 Tiền đề cơ bản của việc học máy là xây dựng các thuật toán có thể nhận dữ liệu
đầu vào và sử dụng phân tích thống kê để dự đoán một giá trị đầu ra trong phạm
vi chấp nhận được.
 Các tài liệu tham khảo về Machine learning [5][7].
1.1.2. Các phương pháp học
máy
Trong bốn phương pháp
học máy trong hình 1.1.
Tác giả sử dụng phương pháp học
máy Supervised Learning hay

một trong tất cả các nhãn hệ thống đã
được học. Ví dụ: Trong hệ thống nhận
diện phân loại cam gồm có hai thư
mục ảnh là cam không đạt và cam đạt
khi cho một tấm ảnh vào hệ thống sẽ xuất
ra kết quả là cam không đạt hoặc cam đạt
cùng với tỉ lệ phần trăm.

Supervised Learning

b) Phân loại Supervised Learning

Regression
Classification

Hình 1.2: Phân loại thuật toán
Supervised Learning.

 Bài toán phân loại cam cũng là bài toán mà tác giả sẽ thực
hiện trong đề tài nghiên cứu.
1.2. Keras
1.2.1. Keras là gì?
 Keras là một thư viện mã nguồn mở được phát triển vào năm 2015 bởi Francois
Chollet, là một API bậc cao có thể sử dụng chung với các thư viện như
tensorflow, Theano, CNTK.
 Hiện tại Keras hỗ trợ trên 3 nền tảng:
 Trên máy tính: Hộ trợ Windows, Linux, Mac OS. Chạy trên CPU hoặc
GPU.
 Trên hệ thống nhúng: Hỗ trợ trên Raspberry Pi.
 Phần hướng dẫn cài đặt sẽ được tác giả trình bày ở mục 0.


Hình 1.4: Ví dụ về cách sử dụng Sequential model.

-

Ngoài ra có thể dùng function API để khởi tạo model.

Hình 1.5: Ví dụ về cách sử dụng function API.

d) CNN-Convolutional Neural Network

Hình 1.6: Các lớp của mô hình CNN.


8
Giải thích các thuật ngữ trong mô hình CNN
 Convolution+ Relu nhân tích chập ma trận ảnh cho các ma trận ngẫu
nhiên có kích thước là các tham số truyền vào, Relu chuyển các giá trị
nhỏ hơn 0 về 0.
 Max pooling tìm và lấy ra giá trị lớn nhất trong mỗi ma trận nhỏ.
 Fully connected layer có tác dụng sắp xếp các giá trị của một khối các
ma trận trên một đường thẳng
 Softmax có thể tạo ra các khả năng xảy ra của một hình ảnh.
1.3. Giới thiệu về một số phần mềm và thư viện sử dụng trong đề tài
1.3.1. Python 3.6.0 trên Raspberry Pi
Python là một ngôn ngữ lập trình bậc cao được sử dụng rộng rãi trong lĩnh
vực Machine Learning :
1.3.2. Phần mềm FileZilla và Putty
FileZilla là một phần mềm kết nối FTP cho phép máy tính kết nối với
Raspberry Pi để download và upload file qua lại giữa hai thiết bị. Có thể chạy trên

1.3.7. Thư viện RPI.GPIO
Thư viện dùng để điều khiển GPIO của Raspberry Pi bằng Python.
1.4. Tiểu kết
Qua chương này, tác giả đã nêu lên một số cơ sở lý thuyết và một số thư viện,
phần mềm được sử dụng trong đề tài. Trong chương tiếp theo, tác giả sẽ tiến hành
xây dựng mô hình hệ thống, xây dựng chương trình thu thập dữ liệu, tiến hành cho
học máy thử nghiệm.


10

Chương 2 : Thiết kế và xây dựng hệ thống
Để xây dựng hệ thống học máy sử dụng Keras, tác giả chia ra bốn bước sau:
 Thiết kế phần cứng của hệ thống
 Thiết kế phần mềm.
 Thu thập dữ liệu hình ảnh 3 chiều của quả cam từ 3 camera.
 Xử lý hình ảnh trước khi cho học máy.
 Học máy thử nghiệm trên máy tính.
Trước khi tiến hành thực hiện các bước này, tác giả cần cài đặt môi trường
lập trình và một số thư viện cần thiết. Sau đây là quy trình xây dựng hệ thống.
2.1. Thiết kế phần cứng hệ thống
2.1.1. Bảng danh sách các thiết bị của hệ thống
Bảng 2-1: Bảng danh sách các thiết bị của hệ thống.

STT Tên thiết bị

Số lượng

1


Đèn LED RGB

1

7

Đèn LED thường

12


11
2.1.2. Thông tin chức năng các thiết bị của hệ thống
a) Raspberry Pi 3 model B

Hình 2.1: Raspberry Pi 3 model B.
Bảng 2-2: Thông tin Raspberry Pi.

Số lượng
1







Thông số kỹ thuật
Broadcom BCM2837
chipset running at 1.2

Công nghệ thấu kính:
tiêu chuẩn
Micrô tích hợp: đơn âm
Trường ngắm: 60°
Kẹp phổ dụng phù hợp
với máy tính xách tay,
LCD hoặc màn hình

Chức năng trong hệ thống
Hai camera được kết nối với
Raspberry Pi qua cổng USB
Chụp ảnh quả cam ở hai mặt bên
của quả cam khi nhận tín hiệu từ
hệ thống


13
c) Camera Pi V2

Hình 2.3: Camera Pi V2.
Bảng 2-4: Thông tin Camera Pi V2.

Số lượng
1

Thông số kỹ thuật
Ống kính tiêu cự cố định.
Cảm biến độ phân giải 8
megapixel
Kích thước 25mm x

4

Đèn Led trắng

Thông số kỹ thuật
Chiều ngang:54cm
Chiều rộng:26cm
Chiều cao:25cm
Vật liệu: Nhựa

Chức năng trong hệ thống
Gắn kết các thiết bị của hệ
thống.
Hộp kín có gắn đèn Led
tạo điều kiện để thu thập
dữ liệu ảnh của trái cam
tốt nhất.

Gởi yêu cầu đến hệ thống
để thu thập ảnh của trái
cam từ 3 camera.
Thông báo tín hiệu khi hệ
thống khởi động
Đèn màu xanh lam: Hệ
thống đang hoạt động
Đèn màu xanh lục hệ
thống tự động chụp ảnh.
Gồm 12 đèn led được Đảm bảo đủ độ sáng trong
nối với một nguồn quá trình thu thập ảnh từ 3
điện 5v

Pip install tensorflow
d) Cài đặt các thư viện hỗ trợ khác
Để cài đặt trên máy tính sử dụng pip install + tên thư viện.
Để cài đặt trên Raspberry Pi sử dụng sudo pip install + tên thư viện.
-

Cài đặt thư viện Imutils trên máy tính bằng lệnh:

pip install imutils
-

Cài đặt thư viện RPI.GPIO trên Raspberry PI:

Sudo pip3 install RPi.GPIO
-

Cài đặt thư viện matplotlib trên máy tính bằng lệnh:

pip install matplotlib
2.2.2. Xây dựng hệ thống thu thập dữ liệu trên Raspberry Pi
a) Hệ thống sau khi được lắp ráp hoàn chỉnh
- Bên ngoài hệ thống

Hình 2.4: Cấu tạo bên ngoài hệ thống.


16
Bên ngoài hệ thống bao gồm: 1 Raspberry Pi và một Camera Pi được đặt phía
trên, 2 Camera Logitech được đặt hai bên của hệ thống.
-Bên trong hệ thống


Hình 2.8: Quy trình thu thập dữ liệu.


18
Giải thích quy trình:
Cam được phân loại thành 2 loại dựa vào các tiêu chí mà tác giả đưa ra. Tiếp
theo tác giả sử dụng chương trình điều khiển 3 camera chụp từ 3 hướng của quả
cam. Mỗi quả cam thu thập 12 tấm ảnh từ 12 hướng khác nhau.
Sau khi Cam được phân loại thành 2 loại dựa vào các tiêu chí mà tác giả đưa
ra. Tiếp theo tác giả chạy chương trình thu thập dữ liệu, 3 camera sẽ tự động chụp
ảnh của quả cam từ 3 hướng khác nhau và lưu vào thư mục ảnh. Mỗi lần chạy
chương trình sẽ thu được 3 tấm ảnh của quả cam. Một quả cam tác giả xoay 4 vị
trí nên tổng số hình ảnh của một quả cam thu được là 12 tấm ảnh. Sau khi thu được
12 tấm ảnh tác giả sẽ bổ trái cam để kiểm tra chất lượng bên trong và tiến hành
gán nhãn cho 12 tấm ảnh vừa thu được.
Dưới đây là đoạn code xử lý của chương trình.
#Import các thư viện
import cv2
import math
import os
import config
import picamera
import time
import os
import pygame, sys
from pygame.locals import *
from time import sleep
import pygame.camera
import os, os.path


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status