1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án chuyên ngành 1 Đề tài sử dụng cnn Để xây dựng mô hình phân loại rau củ quả

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sử dụng CNN để xây dựng mô hình phân loại rau củ quả
Tác giả Nguyễn Thị Như Ý, Nguyễn Thủy Tiên, Phạm Bùi Thế Vy
Người hướng dẫn TS. Phạm Nguyễn Minh Nhựt
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt – Hàn
Chuyên ngành Khoa Học Máy Tính
Thể loại Đồ Án Chuyên Ngành 1
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 29
Dung lượng 4,49 MB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀTRUYỀN THÔNG VIỆT – HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CHUYÊN NGÀNH 1 ĐỀ TÀI: SỬ DỤNG CNN ĐỂ XÂY DỰNG MÔ HÌNH PHÂN LOẠI RAU CỦ QUẢ Sinh viên thực hiện

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ

TRUYỀN THÔNG VIỆT – HÀN

Khoa Khoa Học Máy Tính

ĐỒ ÁN CHUYÊN NGÀNH 1

ĐỀ TÀI: SỬ DỤNG CNN ĐỂ XÂY DỰNG

MÔ HÌNH PHÂN LOẠI RAU CỦ QUẢ

Sinh viên thực hiện : Nguyễn Thị Như Ý – 21AD071

Lớp

Giảng viên hướng dẫn : : 21AD TS Phạm Nguyễn Minh Nhựt

Đà Nẵng, tháng 05 năm 2024

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ

TRUYỀN THÔNG VIỆT – HÀN

Khoa Khoa Học Máy Tính

ĐỒ ÁN CHUYÊN NGÀNH 1

ĐỀ TÀI: SỬ DỤNG CNN ĐỂ XÂY DỰNG

MÔ HÌNH PHÂN LOẠI RAU CỦ QUẢ

Sinh viên thực hiện : Nguyễn Thị Như Ý – 21AD071

: Nguyễn Thủy Tiên – 21AD058 : Phạm Bùi Thế Vy – 21AD070

Lớp

Giảng viên hướng dẫn

: :

21AD

TS Phạm Nguyễn Minh Nhựt

Đà Nẵng, tháng 05 năm 2024

i

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

LỜI CẢM ƠN

Trong suốt thời gian làm đồ án chuyên ngành 1, chúng em đã nhận được sự hỗ trợ, giúp đỡ của thầy cô trong khoa Khoa học máy tính Với tình cảm sâu sắc, chân thành, cho phép chúng em được bày tỏ lòng biết ơn sâu sắc đến tất các thầy cô đã tạo điều kiện giúp đỡ cho chúng em trong quá trình học tập và nghiên cứu đề tài Đặc biệt chúng em xin được bày tỏ lòng biết ơn chân thành sâu sắc tới thầy giáo TS Phạm Nguyễn Minh Nhựt đã trực tiếp giúp đỡ, hướng dẫn chúng em

Giảng viên hướng dẫn

TS Phạm Nguyễn Minh Nhựt

Trang 4

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của bản thân, chúng em không thể tránh được những thiếu sót Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để chúng em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này.

Chúng em xin trân trọng cảm ơn.!

Sinh viên

Nguyễn Thị Như Ý Nguyễn Thủy Tiên Phạm Bùi Thê Vy

MỤC LỤC

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ii

LỜI CẢM ƠN iii

DANH MỤC HÌNH ẢNH v

DANH MỤC CỤM TỪ VIẾT TẮT vi

MỞ ĐẦU 1

iii

Trang 5

Chương 1 CƠ SỞ LÝ THUYẾT 3

I Giới thiệu về Deep Learning 3

1 Khái niệm 3

2 Cách thức hoạt động của Deep Learning 3

3 Ưu, nhược điểm của Deep Learning 3

4 Các kỹ thuật Deep Learning 4

5 Ứng dụng của CNN trong nhận dạng và phân loại hình ảnh 5

6 Kiến trúc mạng nơ-ron tích chập 5

II.Các công cụ và thư viện 10

1 Công cụ 10

2 Ngôn ngữ Python 11

3 Thư viện và framework 12

Chương 2 XÂY DỰNG, HUẤN LUYỆN, ĐÁNH GIÁ MÔ HÌNH 13

I Phát biểu bài toán 13

II.Các bước thực hiện train 14

1 Nguồn dữ liệu và thu thập dữ liệu 14

2 Tiền xử lý dữ liệu 14

3 Chia dữ liệu thành tập huấn luyện, tập kiểm tra và tập xác thực 14

III Xây dựng, huấn luyện, đánh giá mô hình 15

1 Mô tả kiến trúc mạng CNN được chọn hoặc xây dựng 15

2 Thiết lập môi trường huấn luyện 16

3 Quá trình huấn luyện mô hình 16

4 Đánh giá mô hình trên tập xác thực 18

5 Số lượng tham số đã train 19

IV Kết quả giao diện khi ứng dụng khi áp dụng mô hình đã train 20

Chương 3 KẾT LUẬN 21

TÀI LIỆU THAM KHẢO 22

DANH MỤC HÌNH ẢNH Hình 1 Kiến trúc mạng CNN 5

Hình 2 Lớp tích chập 6

Hình 3 Lớp kích hoạt 6

Hình 4 Lớp gộp 7

Hình 5 Lớp kết nối đầy đủ 7

Hình 6 Kiến trúc mạng Neural cho phân loại 8

Trang 6

Hình 8 Biểu đồ Underfitting 1 (loss không thay đổi) 9

Hình 9 Biểu đồ Underfitting 2 (loss giảm) 9

Hình 10 Biểu đồ Fitting 10

Hình 11 Ví dụ mạng phân loại chữ viết tay 10

Hình 12 Ví dụ mạng VGG16 10

Hình 13 Kiến trúc mạng CNN theo bài toán 16

Hình 14 Các thư viện chính 16

Hình 15 Huấn luyện mô hình 17

Hình 16 Kết quả đánh giá mô hình 18

Hình 17 Biểu đồ quá trình train 19

Hình 18 Số lượng tham số đã train 19

Hình 19 Kết quả giao diện 20

DANH MỤC CỤM TỪ VIẾT TẮT

1 DNN Deep Neural Networks

2 CNN Convolutional Neural Network

3 ReLU Rectified Linear Unit

4 ML Machine Learning

5 DL Deep Learning

v

Trang 8

MỞ ĐẦU

1 Lý do chọn đề tài

Hiện nay, ở nước ta nói riêng và ở các nước đang phát triển nói chung, nôngnghiệp là một trong các ngành sản xuất chủ yếu Trong quá trình thu hoạch, phânloại và đánh giá chất lượng các sản phẩm nông nghiệp, đặc biệt là các loại rau củ

và hoa quả, các phương pháp thủ công vẫn được sử dụng phổ biến Mặc dù đây làcông việc không quá phức tạp, nhưng lại tiêu tốn nhiều thời gian và công sức củangười lao động, đồng thời trở thành rào cản đối với việc mở rộng quy mô sản xuấtnông nghiệp

Trong thời gian gần đây, nhờ sự phát triển mạnh mẽ của các thế hệ máy tínhhiện đại và sự bùng nổ dữ liệu qua mạng lưới Internet, chúng ta đã chứng kiếnnhiều đột phá trong lĩnh vực Học máy, đặc biệt là Thị giác máy tính Sự quay lại

và phát triển vượt bậc của các phương pháp Học sâu đã giúp Thị giác máy tính đạtđược những thành tựu đáng kể trong lĩnh vực Nhận dạng ảnh, bao gồm cả bài toánnhận dạng rau củ quả

Do đó nhóm chúng em đã thực hiện đề tài “Sử dụng CNN để xây dựng mô

hình phân loại rau củ quả” đã được đề xuất với hy vọng ứng dụng thành công các

mô hình học sâu hiện đại để xây dựng một hệ thống nhận dạng rau củ quả

2 Mục tiêu của đề tài

- Xây dựng và huấn luyện mô hình phân loại rau củ quả bằng CNN

- Tối ưu hóa mô hình để đạt độ chính xác cao

- Ứng dụng thực tế của mô hình

- Nâng cao hiểu biết và ứng dụng học sâu trong thị giác máy tính

3 Nội dung và kế hoạch thực hiện

a) Nội dung thực hiện

- Lên ý tưởng

- Phân tích đề tài

- Thu thập dữ liệu, trực quan hóa dữ liệu

- Xây dựng và huấn luyện mô hình nhận diện và phân loại rau củ quả

- Phát triển giao diện người dùng thích hợp với hệ thống

- Kiểm thử hệ thống

- Viết báo cáo và làm slide

b) Kế hoạch thực hiện

Thời gian Nội dung thực hiện

Tuần thứ 2 đến tuần thứ 4 Thu thập, trực quan hóa dữ liệu

Tuần thứ 4 đến tuần thứ 6 Xây dựng và huấn luyện mô hình

Tuần thứ 6 đến tuần thứ 8 Phát triển giao diện người dùng thích hợp với hệ

thốngTuần thứ 8 đến tuần thứ 9 Kiểm thử hệ thống

1

Trang 9

Tuần thứ 9 đến tuần thứ 10 Viết báo cáo và làm slide

4 Bố cục báo cáo

Sau phần mở đầu, báo cáo được trình bày trong bốn chương cụ thể như sau:

- Chương 1: Cơ sở lý thuyết

- Chương 2: Xây dựng đề tài

- Chương 3: Ứng dụng mô hình đã huấn luyện để giải quyết bài toán

Trang 10

Chương 1 CƠ SỞ LÝ THUYẾT

I Giới thiệu về Deep Learning

1 Khái niệm

Deep Learning (học sâu) cũng có thể được coi là một lĩnh vực thuộc MachineLearning – nơi máy tính tự học và cải thiện thông qua các thuật toán Thế nhưng,Deep Learning được xây dựng dựa trên những khái niệm phức tạp hơn Chủ yếuhoạt động với mạng thần kinh nhân tạo để bắt chước khả năng tư duy và suy nghĩcủa bộ não con người Thực ra các khái niệm liên quan đến mạng nơ-ron nhân tạo

và Deep Learning đã được phát triển những năm 1960 Nhưng nó bị giới hạn bởilượng dữ liệu và khả năng tính toán tại thời điểm đó

Trong những năm gần đây, những tiến bộ trong phân tích big data đã chophép chúng ta tận dụng tối đa khả năng của mạng lưới thần kinh nhân tạo Mạngnơ-ron nhân tạo (Neural Networks) là động lực chính đằng sau sự phát triển củaDeep Learning

Mạng lưới thần kinh sâu (DNN - Deep Neural Networks) bao gồm nhiều lớp

tế bào thần kinh khác nhau, có khả năng thực hiện các tính toán rất phức tạp DeepLearning hiện đang phát triển rất nhanh và được coi là một trong những bước độtphá lớn nhất trong Machine Learning

2 Cách thức hoạt động của Deep Learning

Deep Learning là một phương pháp của Machine Learning Mạng nơ-ronnhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của

bộ não con người

Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, số lượng layer càngnhiều thì mạng sẽ càng “sâu” Trong mỗi layer là các nút mạng (node) và đượcliên kết với những lớp liền kề khác Mỗi kết nối giữa các nút sẽ có một trọng sốtương ứng, trọng số càng cao thì ảnh hưởng của kết nối này đến mạng nơ-ron cànglớn

Mỗi nơron sẽ có một hàm kích hoạt, về cơ bản thì có nhiệm vụ “chuẩn hoá”đầu ra từ nơ-ron này Dữ liệu được người dùng đưa vào mạng nơ-ron sẽ đi qua tất

cả layer và trả về kết quả ở layer cuối cùng, gọi là output layer

Trong quá trình huấn luyện mô hình mạng nơ-ron, các trọng số sẽ được thayđổi và nhiệm vụ của mô hình là tìm ra bộ giá trị của trọng số sao cho phán đoán làtốt nhất

Các hệ thống Deep Learning yêu cầu phần cứng phải rất mạnh để có thể xử

lý được lượng dữ liệu lớn và thực hiện các phép tính phức tạp Nhiều mô hìnhDeep Learning có thể mất nhiều tuần, thậm chí nhiều tháng để triển khai trênnhững phần cứng tiên tiến nhất hiện nay

3 Ưu, nhược điểm của Deep Learning

a) Ưu điểm

Deep Learning là một bước ngoặt to lớn trong lĩnh vực trí tuệ nhân tạo, cho

phép khác nhà khoa học dữ liệu xây dựng nhiều mô hình có độ chính xác rất cao

3

Trang 11

trong lĩnh vực nhận dạng ảnh, xử lý ngôn ngữ tự nhiên, xử lý giọng nói… Một số

ưu điểm vượt trội của Deep Learning gồm có:

- Kiến trúc mạng nơ-ron linh hoạt, có thể dễ dàng thay đổi để phù hợp vớinhiều vấn đề khác nhau

- Có khả năng giải quyết nhiều bài toán phức tạp với độ chính xác rất cao

- Tính tự động hoá cao, có khả năng tự điều chỉnh và tự tối ưu

- Có khả năng thực hiện tính toán song song, hiệu năng tốt, xử lý đượclượng dữ liệu lớn

- Chi phí tính toán cao vì phải xử lý nhiều mô hình phức tạp

- Chưa có nền tảng lý thuyết mạnh mẽ để lựa chọn các công cụ tối ưu choDeep Learning

4 Các kỹ thuật Deep Learning

Có rất nhiều kỹ thuật và thuật toán Deep Learning khác nhau, từ đơn giảnđến vô cùng phức tạp, có thể ứng dụng vào hầu hết các bài toán trong lĩnh vực trítuệ nhân tạo hiện nay Có một số kỹ thuật Deep Learning phổ biến nhất hiện naynhư:

Mạng nơ-ron cổ điển

- Kiến trúc cổ điển của mạng nơ-ron là mạng kết nối đầy đủ, thườngđược xác định bằng các perceptron đa lớp (Perceptron là một thuật toán đơn giản,cho phép tìm một ranh giới siêu phẳng cho các bài toán phân lớp nhị phân) Mạngnơ-ron cổ điển được thiết kế bởi Frank Rosenblatt vào năm 1958, chủ yếu được sửdụng cho các bài toán phân lớp nhị phân Có ba loại hàm thường được sử dụngtrong mô hình này là:

Mạng nơ-ron tích chập (CNN)

- Mạng nơ-ron tích chập (Convolutional Neural Network – CNN) là mộtkiến trúc Neural Network nhân tạo nâng cao, được xây dựng để giải quyết các bàitoán phức tạp, đặc biệt là liên quan đến xử lý hình ảnh

- Tích chập là một khái niệm trong xử lý tín hiệu số nhằm biến đổi thôngtin đầu vào qua một phép tích chập với bộ lọc, nhằm trả về đầu ra là một tín hiệu

Trang 12

mới Tín hiệu này sẽ giảm bớt những đặc trưng mà bộ lọc không quan tâm, giữ lạinhững đặc trưng chính và quan trọng nhất.

- Bên cạnh input layer và output layer, mô hình CNN còn có thêm mộtsampling layer để giới hạn số lượng nơron tham gia vào các layer tương ứng Việcxây dựng mô hình trải qua ba giai đoạn chính:

+ Quá trình tích chập (convolution): Thông qua các tích chập giữa

ma trận đầu vào với bộ lọc để tạo thành các đơn vị trong một tầng mới Quá trìnhnày có thể diễn ra liên tục ở phần đầu của mạng và thường sử dụng kèm với hàmkích hoạt ReLU Mục tiêu của tầng này là trích xuất đặc trưng hai chiều

+ Quá trình tổng hợp (max pooling): Giảm kích thước khối ma trậnđầu vào thông qua việc tìm ra 1 giá trị đại diện cho mỗi một vùng không gian mà

bộ lọc đi qua sẽ không làm thay đổi các đường nét chính của bức ảnh nhưng lạigiảm được kích thước của ảnh

+ Quá trình kết nối hoàn toàn (fully connected): Sau khi đã giảmkích thước đến một mức độ hợp lý, ma trận cần được trải phẳng (flatten) thànhmột vector và sử dụng các kết nối hoàn toàn giữa các tầng Tầng kết nối hoàn toàncuối cùng (fully connected layer) sẽ có số lượng đơn vị bằng với số lớp

- Dựa vào những đặc điểm của mình, các ứng dụng phổ biến nhất củamạng CNN gồm có: Nhận diện, phân tích và phân khúc hình ảnh, phân tích video,

xử lý ngôn ngữ tự nhiên…

5 Ứng dụng của CNN trong nhận dạng và phân loại hình ảnh

Convolutional Neural Networks (CNN) là một loại mạng thần kinh sâu (DeepNeural Network) đặc biệt hiệu quả trong việc xử lý dữ liệu hình ảnh CNN đã trởthành công cụ chủ yếu trong các ứng dụng nhận dạng và phân loại ảnh nhờ vàokhả năng tự động học và trích xuất các đặc trưng phức tạp từ dữ liệu ảnh

CNN được ứng dụng trong Thị giác máy tính (Computer Vision) như:

- Phân lớp ảnh (Image Classification): Gán nhãn cho một ảnh từ một bộdanh mục ảnh Tức là, có một danh mục ảnh, có một ảnh đầu -> phân tích và trả vềkết quả là ảnh đó thuộc mục nào trong danh mục -> gọi là gán nhãn cho ảnh (nhãn

từ một tập các danh mục được xác định trước)

- Phát hiện đối tượng (Object Detection): Nhận dạng và định vị vị trí của cácđối tượng trong ảnh, ví dụ: phát hiện và theo dõi phương tiện giao thông trongvideo giám sát

Trang 13

Chức năng của mạng Nơ-ron tích chập (CNN) là trích đoạn các đặc trưng củaảnh Các thành phần của CNN bao gồm:

- Lớp tích chập (Convolutional Layer - CONV): Tạo ra bản đồ kích hoạt/đặc

trưng (feature map/activation map) để làm đầu vào cho các lớp sau Mỗi bộ lọc dichuyển qua toàn bộ ảnh và áp dụng các phép biến đổi để tạo ra các đặc trưng đặcbiệt Đầu ra của CONV là các đặc trung của ảnh đầu vào và gọi là feature map hayactivation map

Hình 2 Lớp tích chập

- Lớp kích hoạt (Activation Layer): Sau mỗi lớp CONV -> áp dụng hàm

kích hoạt: ReLU, ELU, Leaky ReLU, Tanh, sigmoid…Hàm kích hoạt thực hiệnngay sau khi tích chập Kích thước dữ liệu đầu ra có cùng kích thước với dữ liệuđầu vào Mục đích làm tăng tính phi tuyến của mạng

Hình 3 Lớp kích hoạt

- Lớp gộp (Pooling Layer): Lớp này thường được sử dụng giữa các lớp tích

chập để giảm kích thước dữ liệu (downsampling) nhưng vẫn giữ được các thuộctính quan trọng Gọi Pooling Layer kích thước K x K Đầu vào có kích thước H x

W x D -> tách ra làm D ma trận kích thước H x W -> với mỗi ma trận sử dụng mặt

nạ kích thước K x K để tìm maximum hoặc average của dữ liệu trong vùng nóđang được áp dụng Đầu ra có D ma trận kích thước K x K

Trang 14

- Lớp kết nối đầy đủ (Fully Connected Layer - FC): Đầu ra có D ma trận

kích thước K x K -> dữ liệu này được làm phẳng thành vector có kích thước D x K

x K và trở thành đầu vào Fully Connected Layer Mỗi phần tử của vector sẽ là đầuvào được kết nối với tất cả neuron của Fully Connected Layer Trong mô hìnhCNN, các Fully Connected Layer thường ở cuối mạng và được dùng để tối ưu hóamục tiêu của mạng

Hình 5 Lớp kết nối đầy đủ

- Lớp chuẩn hóa (Normalization Layer): Được sử dụng để chuẩn hóa các

kích hoạt đầu vào trước khi chuyển vào lớp tiếp theo trong mạng

- Lớp dropout (Dropout Layer): Lớp này được sử dụng để ngăn chặn

overfitting bằng cách ngẫu nhiên loại bỏ một số nút trong quá trình huấn luyện,giúp mô hình tổng quát hóa tốt hơn

b) CNN cho bài toán phân loại ảnh

Đầu ra của Fully Connected Layer được áp dụng các hàm Sigmod hoặcSoftmax để dự đoán nhãn của ảnh đầu vào

7

Trang 15

Các trạng thái fitting của mô hình:

Trang 16

- Giá trị loss đủ thấp trên tập huấn luyện -> giá trị loss không thay đổiđáng kể trong quá trình train.

Hình 8 Biểu đồ Underfitting 1 (loss không thay đổi)

- Giá trị loss giảm và tiếp tục giảm dần ở cuối đường cong -> kết thúctrain nó vẫn giảm Điều này chỉ ra rằng mô hình có khả năng học hỏi thêm để cónhững cải tiến những quá trình train sẽ bị dừng sớm

Hình 9 Biểu đồ Underfitting 2 (loss giảm)

 Fitting

- Đường cong training loss giảm dần đến điểm ổn định Đường congvalidation loss giảm đến điểm ổn định và có một khoảng cách nhỏ với trainingloss

- Loss của mô hình sẽ luôn luôn cao hơn training loss và thấp hơnvalidation loss

9

Ngày đăng: 17/10/2024, 15:58

w