Tiểu luận Ứng dụng mạng neural tích chập trong nhận dạng hoa quả

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  
KHOA CÔNG NGHỆ THÔNG TIN I  
----------  
TÊN ĐỀ TÀI: ỨNG DỤNG MẠNG NEURAL TÍCH CHẬP  
TRONG NHẬN DẠNG HOA QUẢ  
CHUYÊN NGÀNH :HỆ THỐNG THÔNG TIN  
GIẢNG VIÊN HƯỚNG DẪN :PGS.TS. NGUYỄN QUANG HOAN  
HÀ NỘI-NĂM 2021  
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  
KHOA CÔNG NGHỆ THÔNG TIN I  
----------  
TÊN ĐỀ TÀI: ỨNG DỤNG MẠNG NEURAL TÍCH CHẬP  
TRONG NHẬN DẠNG HOA QUẢ  
CHUYÊN NGÀNH :HỆ THỐNG THÔNG TIN  
GIẢNG VIÊN HƯỚNG DẪN :PGS.TS. NGUYỄN QUANG HOAN  
HÀ NỘI-NĂM 2021  
MỤC LỤC  
2
MỞ ĐẦU  
Mạng neural nhân tạo hay gọi ngắn gọn là mạng neural (tiếng anh là  
Artifical Neural Network) đang là vấn đề khá nổi trong cuộc cách mạng công nghệ  
4.0. Các nhà nghiên cứu, các nhà khoa học, tổ chức đã và đang ứng dụng khá nhiều  
công nghệ liên quan đến mạng neural vào đời sống hằng ngày. Đơn giản là việc  
phân loại, nhận dạng các đối tượng trên camera. Chúng góp phần không nhỏ cho  
việc quản lý, nhận dạng các đối tượng nhằm giảm thiểu sự khó khăn trong công  
việc của con người.  
Ở nước ta, nền nông nghiệp được chú trọng phát triển. Mỗi đợt thu hoạch  
nông sản, người nông dân phải làm thao tác phân loại nông sản bằng các biện pháp  
thủ công nên rất mất thời gian, công sức. Đây là công việc đơn giản nhưng lại ảnh  
hưởng rất lớn đối với quy mô phát triển nông nghiệp.  
Hiện nay nhờ sự phát triển mạnh mẽ của công nghệ trong lĩnh vực học máy.  
Việc sử dụng các mạng neural nhân tạo trong các máy móc phục vụ nông nghiệp  
khá là hay, luôn hấp dẫn các nghiên cứu sinh nghiên cứu về nó. Do đó, nhờ sự tìm  
hiểu và sự giúp đỡ từ thầy hướng dẫn, em chọn đề tài: “Mạng Couvolutional Neural  
Network và ứng dụng trong việc nhân dạng hoa quả”.  
Bài báo cáo gồm 3 nội dung chính như sau:  
Chương I: Giới thiệu tổng quan  
Chương II: Tìm hiểu mạng Couvolutional Neural Netwok và mô hình mạng  
Chương III: Ứng dụng Couvolutional Neural Network cho bài toán nhận dạng hoa  
quả.  
4
 
Danh mục chữ viết tắt  
Nghĩa tiếng anh  
Tên viết tắt  
ANN  
Nghĩa tiếng viêt  
Mạng neural nhân tạo  
Mạng neural tích chập  
Artifical Neural Network  
CNN  
Couvolutional Neural  
Netwok  
ReLU  
Rectified Linear Unit  
Đơn vị tính toán chỉnh  
lưu  
5
 
Danh mục đồ thị  
6
 
Chương I: GIỚI THIỆU TỔNG QUAN  
I.1. Phát biểu bài toán nhận dạng hoa quả  
Bài toán nhận dạng là một bài toán khá cơ bản trong trí tuệ nhân tạo, học  
sâu… Nó là nền tảng cho hầu hết các lý thuyết liên quan đến nhiều bài toán mở  
rộng khác như phân lớp, định vị, tách biệt vật thể,... Tuy nhiên, nhìn chung, bài  
toán này đã xuất hiện và tồn tại hàng thế kỉ mà con người vẫn chưa tìm ra cách  
giải quyết hợp lý. Do đó, cũng có rất nhiều khó khăn trong việc để máy móc hiểu  
được các thông tin trong bức ảnh. Các khó khăn có thể kê đến như: sự đa dạng  
điểm ảnh, sự đa dạng về kích thước, điều kiện ánh sáng, sự ẩn giấu của các vật  
thể, sự đa dạng chủng loại, màu sắc,…  
Một trong những trường hợp cụ thể của bài toán nhận dạng đó là nhận  
dạng hoa quả. Bài toán này kế thừa những khó khăn của bài toán nhận dạng nói  
chung và kèm theo những khó khăn riêng của chính nó như: số lượng chủng loại  
hoa quả theo mùa, miền, địa hình,… với vô số loại có kích thước, màu sắc, kết  
cấu giống nhau trong suốt chu kỳ phát triển từ lúc xanh đến khi chín; sự đa dạng  
về kích cỡ, hình dạng của cùng một loài quả do điều kiện khí hậu, đất đai, vùng  
miền,… Do đó, để xử lý bài toán này đòi hỏi phải có những phương pháp tiếp  
cận phù hợp với yêu cầu đề ra.  
I.2.Phương pháp tiếp cận bài toán:  
Bài toán nhận dạng hoa quả từ lâu đã xuất hiện trên nhiều bài báo, diễn  
đàn, công trình khoa học đã đưa ra nhiều hướng giải quyết khác nhau. Trong đó,  
sớm nhất phải kể đến phương pháp xử lý ảnh (image processing). Phương pháp  
này tập trung phần lớn vào việc trích xuất đặc trưng của ảnh như: mức xám, điểm  
ảnh, tham số màu sắc, kích thước hình dạng vật thể,… từ bức ảnh đầu vào của  
hoa quả. Vì vậy nên phương pháp này chỉ tập trung vào một vài bức ảnh đầu vào  
trong khi đó sự biến thiên về màu sắc, kích thước hoàn toàn khác nhau đối với  
các loại hoa quả. Ảnh hưởng của nó đến hiệu suất của phương pháp không được  
cao nên áp dụng rất hạn chế đối với các loại hoa quả.  
Từ những năm 2000, một số bài báo viết về áp dụng phương pháp học  
máy (machine learning) vào bài toán nhận dạng với độ chính xác cao. Từ đó,  
hướng giải quyết tập trung vào ứng dụng và cải tiến thuật toán học máy, cụ thể là  
nghiên cứu, thử nghiệm trích chọn đặc trưng cụ thể để đưa vào bộ nhận dạng tự  
7
     
động. Trong phạm vi hạn chế số lượng hoa quả, phương pháp này đã đạt được  
những kết quả đáng kinh ngạc.  
Phương pháp học sâu cũng là một trong những cách tiếp cận được áp dụng  
vào trong bài toán này. Cụ thể kết hợp xử lý dữ liệu và sử dụng mạng neural như:  
ANN, CNN,… Điều này làm giảm đáng kể thời gian xử lý dữ liệu.  
Hình 1.Mô tả 2 phương pháp trong bái toán nhận dạng  
I.2.1.Phương pháp Machine Learning truyền thống  
Phương pháp này gồm 2 giai đoạn chính là huấn luyện (training) và thử  
nghiệm (testing). Trong mỗi giai đoạn thì yêu cầu chính và quan trọng đó là trích  
trọn đặc trưng của ảnh (Feature extraction) và thuật toán phân loại, nhận dang,…  
Hai thành phần này ảnh hưởng rất lớn đến kết quả bài toán do đó cần thiết kế cẩn  
thận, tốn nhiều công sức, thời gian, yêu cầu đối với người thiết kế phải nắm vững  
chuyên môn và hiểu rõ đặc trưng cần xử lý.  
Trong thực tế, dữ liệu ta nhận được chỉ là dữ liệu thô, do đó những dữ liệu  
này phải qua quá trình chọn lọc, xử lý. Để có thể có dữ liệu chuẩn đưa đi huấn  
luyện phải có quá trình biến đổi thành dạng dữ liệu cho máy hiểu. Mỗi dữ loại dữ  
liệu sẽ có những đặc trưng riêng đối với từng trường hợp cụ thể. Do đó cần tuỳ  
biến một cách thích hợp để đảm bảo tính chính xác của bài toán.  
8
   
I.2.2. Phương pháp học sâu – deep learning:  
Là một trong các lĩnh vực chuyên sâu của học máy xuất hiện từ những  
năm 1980 và hiện nay đang khá phổ biến. Ta có thể tận dụng kho dữ liệu số  
khổng lồ trên internet và khả năng tính toán nhanh cho mô hình mạng.  
Mạng Neural được ứng dụng phổ biến trong phương pháp này. Cụ thể ta  
đưa dữ liệu qua nhiều lớp của mạng Neural và lấy kết quả đầu ra để sao sánh với  
dữ liệu huấn luyện. Mỗi lớp của mạng sẽ phân tích đầu vào theo khía cạnh khác  
nhau và mức trừu tượng tăng dần.  
I.3. Phương hướng nghiên cứu bài toán:  
Nhận dạng luôn là một bài toán nền tảng để phát triển bài toán tổng quát,  
chi tiết với độ chính xác cao. Do đó, bài toán phụ thuộc chủ yếu vào bộ dữ liệu.  
Bộ dữ liệu càng lớn thì tính chính xác càng được cải thiện.  
Kết quả của bài toán sẽ được áp dụng cho các mức độ phức tạp chuyên  
sâu hơn như: phân loại hoa quả, nhận dạng bệnh trên quả,…  
Việc áp dụng mạng neural vào nghiên cứu đảm bảo yêu cầu: phương pháp  
đơn giản, lượng dữ liệu đưa vào đầy đủ, chính xác với sản phẩm hoa quả phù hợp  
ở nước ta, độ chính xác khi kết quả đầu ra dự đoán chính xác.  
9
   
Chương II: TÌM HIỂU MẠNG COUVOLUTIONAL NEURAL NETWOK  
VÀ MÔ HÌNH MẠNG  
II.1. Couvolutional neural netwok là gì?  
Mạng neural tích chập (Couvolutional neural netwok) là một thuật toán  
deep learning có thể lấy hình ảnh đầu vào, gán độ quan trọng (trọng số và độ lệch)  
cho các đặc trưng và đối tượng khác nhau trong hình ảnh; có thể phân biệt được  
đặc trưng và đối tượng này với nhau. Công việc tiền xử lý được yêu cầu cho mạng  
neural tích chập ít hơn nhiều so với các mô hình khác. Trong phương thức sơ khai,  
các bộ lọc được thiết kế bằng tay, với một quá trình huấn luyện để chọn lọc ra các  
bộ lọc đặc trưng phù hợp thì mạng neural tích chập lại có khả năng tự học để chọn  
ra các bộ lọc, đặc trưng tối ưu nhất.  
Kiến trúc neural tích chập tương tự mô hình kết nối của các neural trong bộ  
não con người và được lấy cảm hứng từ võ thị giác trong bộ não. Các neural chỉ  
phản ứng với các kích thích trong một khu vực hạn chế của trường thị giác gọi là  
trường tiếp nhận. Một tập hợp trường tiếp nhận như vậy chồng lên nhau để bao  
phủ toàn trường thị giác.  
Hình 2.Mô tả thị giác con người, cảm hứng cho mạng CNN  
10  
     
II.2.Lịch sử phát triển:  
Nghiên cứu trong thập niên 1950 và 1960 của D.H Hubel và T.N Wiesel  
trên não động vật đã đề xuất một mô hình mới cho việc cách mà động vật nhìn  
nhận thế giới. Trong báo cáo hai ông đã mô tả 2 loại tế bào neural trong não và  
cách hoạt động khác nhau: tế bào đơn giản (simple cell – S cell) và tế bào phức tạp  
(complex cell – C cell).  
Các tế bào đơn giản được kích hoạt khi nhận dạng các hình dáng đơn giản  
như đường nằm trong một khu vực cố định và một góc cạnh của nó. Các tế bào  
phức tạp có vùng tiếp cận lớn hơn và đầu ra của nó không nhạy cảm với những vị  
trí cố định trong vùng.  
Trong thị giác, vùng tiếp nhận của neural tương ứng với một vùng trên võng  
mạc nơi sẽ kích hoạt neural tương ứng.  
Năm 1980, Fukushima đề xuất mô hình mạng neural có cấp bậc gọi là  
neocoginitron, Mô hình này dựa trên khái niệm về S cell và C cell. Mạng  
neocoginitron có thể nhận dạng mẫu dựa việc học hình dáng đối tượng.  
Sau đó năm 1988, Mạng neural tích chập được giới thiệu bởi Bengio,  
LeCun, Bottou và Haffner. Mô hình đầu tiên được gọi tên là LeNet-5. Mô hình này  
có thể nhận dạng chữ viết tay.  
11  
 
II.3 Phép tích chập (Convulution Operation)  
Ta có thể hiểu phép tích chập giống như một hoạt động trộn thông tin lại  
với nhau. Phép toán này được sử dụng tương đối rộng rãi trong nhiều ngành khoa  
học và kỹ thuật khác nhau.  
Trong toán học, phép tích chập giữa hai hàm f và g sẽ tạo ra một hàm thứ  
ba biểu thị sự biến đổi của một hàm đối với hàm còn lại. Xét hai hàm f và g, phép  
tích chập giữa hai hàm này được định nghĩa như sau:  
h(x) = f ⊗ g  
∞
―1  
2휋  
푓(푥 ― 푢)푔(푢)푑푢 = 퐹 ( 퐹[푓]퐹[푔]  
=
―∞  
푓푒푢푡푢푟푒푚푎푝 = 푖푛푝푢푡 ⨂ 푘푒푟푛푒푙  
푐표푙푢푚푛푠 푟표푤푠  
=
푖푛푝푢푡(푥 ― 푎, 푦 ― 푏 푘푒푟푛푒푙(푥,푦)  
푦=0  
푥=0  
―1  
2휋  
퐹[푖푛푝푢푡]퐹[푘푒푟푛푎푙])  
= 퐹 (  
Hình 3.Hình ảnh đầu vào 2D mặt trời tích chập với một kernal.Một bản đồ đặc trưng (feuturemap) có kích thước (N-  
2)x(N-2) là kết quả từ phép tính.  
Chúng ta xem xét trong không gian một chiều, phép tích chập giữa hai hàm  
f và g được mô tả bởi phương trình sau:  
(푓 ∗ 푔)(푥) =  
푓(푡)푔(푥 + 푡)  
푡
12  
   
Đối với đầu vào 2 chiều như hình ảnh, chúng ta có đầu vào cho phép tích chập.  
Đầu vào thứ nhất là một hình ảnh 2D, đầu vào còn lại được gọi là kernel hoặc mask  
hoạt động giống như bộ lọc (filter) cho hình ảnh 2D đầu vào và tạo ra một hình  
ảnh khác cho đầu ra. Chúng ta hãy xem xét cụ thể một 2D – convolution:  
(퐾 ∗ 퐼)(푖,푗) =  
퐾(푚,푛)퐼(푖 + 푛,퐽 + 푚)  
푚,푛  
Hình4.Minhhoạ2D–Convolution
.
13  
 
II.3. Kiến trúc mạng Couvolutional Neural Netwok:  
Nguyên tắc chung trong hầu hết các mạng CNN hiện này đều được thiết kế  
như sau:  
• Sử dụng nhiều Convolution Layer chồng lên nhau.  
• Giảm dần kích thước ouput mỗi tầng.  
• Tăng dần số lượng Feature map.  
Mô hình mạng CNN dùng để huấn luyện và kiểm tra, mỗi hình ảnh đầu vào  
sẽ được qua một loạt các lớp tích chập với các bộ lọc (Kernals), tổng hợp lại các  
lớp được kết nối đầy đủ (Full Connected) và áp dụng hàm Softmax để phân loại  
đối tượng có xác suất 0 và 1.  
Hình 5.. Mô hình CNN xửlýđầuvào và phân loại đối tượng  
II.3.1. Lớp tích chập – Convolution Layer  
Lớp tích chập (Convolution Layer) là lớp quan trọng nhất và cũng là lớp  
đầu tiên của mô hình CNN. Lớp này có chức năng chính là phát hiện các đặc trưng  
có tính không gian hiệu quả. Trong tầng này có bốn đối tượng chính là: ma trận  
đầu vào, bộ lọc (filters), trường tiếp nhận (receptive field) và Feature map.  
Lớp tích chập đầu vào này sẽ là một ma trận ba chiều và một bộ lọc cần  
phải học. Bộ lọc này sẽ trượt qua từng bức ảnh để tích chập (Convolution) giữa bộ  
lọc và phần tương ứng trên bức ảnh. Phần tương ứng này gọi là trường tiếp nhận  
(receptive field), tức là vùng mà neural có thể nhìn thầy để đưa ra quyết định, và  
ma trận cho ra bởi quá trình này gọi là Feature map.  
Ví dụ, dữ liệu đầu vào là ma trận có kích thước 8x8x1, một bộ lọc có kích  
thước 2x2x1, feature map có kích thước 7x7x1. Mỗi giá trị feature map được tính  
14  
     
bằng tổng các phần tử tương ứng của bộ lọc 2x2x1 với trường tiếp nhận trên ảnh.  
Và để tính tất cả các giá trị cho feature map, ta trượt bộ lọc từ trái qua phải, trên  
xuống dưới. Do đó, phép convolution bảo toàn thứ tự không gian các điểm ảnh.  
Hình 6.Mô tả hoạtđộnglớpConvolution Layer  
Chức năng chính của lớp Convolution Layer là phát hiện đặc trưng của ảnh  
(feature detector). Những đặc trưng này bao gồm các đặc trưng cơ bản như: góc,  
cạnh, màu sắc, hoặc đặc trưng phức tạp hơn như texture ảnh. Vì bộ lọc quét qua  
toàn bộ bức ảnh nên đặc trưng có thể nằm ở bất kỳ đâu trong bức ảnh, cho dù xoay  
trái hay phải thì vẫn nhận ra đặc trưng đó.  
Hình 7.Ma trận filter của ảnh  
Hình 8.Vị trí của ma trận tại các điểm ảnh xác định cạnh  
15  
     
Trong ví dụ trên, khi dùng bộ lọc trượt qua ảnh của nhân vật Olaf trong bộ  
phim Frozen. Ta thấy, chỉ những vị trí trên bức ảnh có dạng góc như đặc trưng ở  
filter thì mới có giá trị lớn trên feature map, những vị trí còn lại có giá trị thấp hơn.  
Ngoài ra, các tham số như: kích thước bộ lọc, bước nhảy và padding cũng  
khá quan trọng. Kích thước bộ lọc nhỏ thường được ưu tiên hơn trong các mô hình  
huấn luyện, mặt khác, kích cỡ bộ lọc thường là số lẻ. Bước nhảy thể hiện số pixel  
dịch chuyển khi di chuyển bộ lọc. Tham số padding khắc phục tình trạng ma trận  
bị nhỏ đi khi qua các layer do đó đảm bảo kích thước ban đầu của đầu vào để thực  
hiện huấn luyện.  
II.3.2. Lớp phi tuyến (Nonlinear Layer)  
Lớp này chứa các hàm phi tuyến để biến đổi ảnh.  
ReLU (Rectified Linear Unit) là hàm kích hoạt trong mạng CNN. Hàm này  
được ưu chuộng bởi vì tính toán đơn giản, giúp hạn chế tình trạng vanishing  
gradient và cũng cho kết quả tốt hơn. ReLU cũng như các hàm kích hoạt khác được  
đặt ngay sau tầng convolution, ReLU sẽ gán những giá trị âm bằng 0, giữ nguyên  
các giá trị đầu vào khi lớn hơn 0.  
ReLU cũng có một vấn đề tiềm ẩn đó là không tồn tại đạo hàm tại 0, giá trị  
của hàm ReLU có thể lớn đến vô cùng và nếu không khởi tạo trọng số cẩn thận,  
hoặc khởi tạo tốc độ học (learning rate) quá lớn thì những neural ở tầng này có thể  
rơi vào trạng thái chết.  
II.3.3. Lớp gộp – Pooling Layer  
Sau hàm kích hoạt, thông thường chúng ta sẽ sử dụng tầng pooling. Một số loại  
pooling phổ biến như max-pooling, average pooling, với chức năng chính là giảm  
chiều tầng trước đó. Với một pooling kích thước 2x2, ta cần trượt bộ lọc 2x2 này  
trên vùng ảnh kích thước rồi tính max, average của vùng đó.  
Hình 9.Mô tả hoạt động khi gộp đầu vào.  
16  
     
Ý tưởng đằng sau tầng pooling là vị trí tuyệt đối của những đặc trưng  
trong không gian ảnh không còn cần thiết, thay vào đó vị trí tương đối giữ các  
đặc trưng đã đủ phân loại đối tượng.  
II.3.4. Lớp kết nối đầy đủ - Fully Connected Layer  
Tầng cuối cùng trong mô hình là tầng fully connected layer. Tầng này có  
chức năng chuyển ma trận đặc trưng tầng trước thành vector chứa xác suất đối  
tượng cần được dự đoán.  
Ngoài ra, cuối quá trình huấn luyện cần hàm tính độ lỗi sai số dự đoán và  
nhãn chính xác, cũng như sử dụng thuật toán backpropagation cho quá trình cập  
nhập trọng số.  
17  
 
Chương III: ỨNG DỤNG COUVOLUTIONAL NEURAL NETWORK  
CHO BÀI TOÁN NHẬN DẠNG HOA QUẢ.  
III.1. Cơ sở dữ liệu huấn luyện:  
Độ phân giải của các bức ảnh là 32x32 pixel, hệ màu RGB.  
Dữ liệu huấn luyện gồm 360 ảnh hoa quả trong đó gồm có:  
• 90 ảnh quả táo  
• 89 ảnh quả chuối  
• 91 ảnh quả cam  
• 90 ảnh quả nho.  
Các dữ liệu đã được gán nhãn và thực hiện xử lý độ sáng và chuẩn hoá sang  
dạng xml.  
Dữ liệu test gồm 60 ảnh trong đó gồm có:  
• 20 ảnh quả táo  
• 15 ảnh quả chuối  
• 10 ảnh quả cam  
• 10 ảnh quả nho  
• 5 ảnh có cả táo và chuối  
• 5 ảnh có cả cam và táo  
• 5 ảnh cả 4 loại quả  
Dữ liệu test cũng đã được gán nhãn, thực hiện xử lý độ sáng và chuẩn hoá  
sang dạng xml.  
18  
   
Hình 10.Dữ liệu tiến hành huấn luyện  
Hình 11. Dữ liệu tiến hành thử nghiệm (testing)  
III.2. Xây dựng mô hình huấn luyện CNN  
III.2.1. Tạo project trên colab google:  
Đầu tiên, chúng ta phải cài đặt môi trường trên google driver để thiết lập vị  
vị trí trên project và đường dẫn cho nó.  
Hình 12. Setting môi trường và đường dẫn cho tập tin dataset  
Sau khi đã upload dataset theo đường dẫn  
dir_path = "gdrive/My Drive/Dataset/Fruit Images/". Giờ đây, chúng ta đã sẵn  
sàng để xây dựng và tranning mô hình phục vụ nhu cầu bài toán.  
19  
         
Tải về để xem bản đầy đủ
docx 27 trang yennguyen 33380 Free
Bạn đang xem 20 trang mẫu của tài liệu "Tiểu luận Ứng dụng mạng neural tích chập trong nhận dạng hoa quả", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docxtieu_luan_ung_dung_mang_neural_tich_chap_trong_nhan_dang_hoa.docx