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

Xây dựng chương trình nhận diện ảnh Động vật áp dụng thuật toán cnn

19 1 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

Định dạng
Số trang 19
Dung lượng 2,35 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC BÁO CÁO CUỐI KÌ KHOA HỌC DỮ LIỆU ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN ẢNH ĐỘNG VẬT ÁP DỤNG THUẬT TOÁN CNN Giảng viên hướng dẫn : N

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC

BÁO CÁO CUỐI KÌ KHOA HỌC DỮ LIỆU

ĐỀ TÀI:

XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN ẢNH ĐỘNG

VẬT ÁP DỤNG THUẬT TOÁN CNN

Giảng viên hướng dẫn : Nguyễn Năng Hùng Vân

Sinh viên thực hiện : Nguyễn Trần Gia Bảo 19CNTT1

19CNTT1 Nguyễn Hoàng Khánh Nhi 19CNTT1

19CNTT1

Trang 2

MỤC LỤC

MỞ ĐẦU 1

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

2 Mục tiêu nghiên cứu 1

3 Bố cục đề tài 1

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ CNN 2

1.1 Mô hình mạng CNN là gì ? 2

1.2 Ưu điểm 2

1.3 Nhược điểm 2

CHƯƠNG 2: SỬ DỤNG THUẬT TOÁN CNN ĐỂ XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN ẢNH ĐỘNG VẬT 3

2.1 Phát biểu bài toán 3

2.2 Chuẩn bị dữ liệu ảnh 3

2.3 Cách thức thu nhập dữ liệu 3

2.4 Công cụ Google Colaboratory 3

2.5 Xây dựng chương trình nhận diện động vật áp dụng thuật toán CNN 4

2.4.1 Khai báo các thư viện cần sử dụng 4

2.4.2 Kết nối với Google Drive để đọc và lưu dữ liệu 5

2.4.3 Khai báo đường dẫn thư mục chứa ảnh dữ liệu 5

2.4.4 Gán nhãn dữ liệu 6

2.4.5 Tiền xử lý dữ liệu ảnh với ImageDataGenerator 6

2.4.6 Đọc dữ liệu train và validation 6

2.4.7 Xây dựng mô hình 7

Trang 3

2.4.8 Thiết lập các tham số để huấn luyện mô hình 8

2.4.9 Huấn luyện mô hình 9

2.4.10 Sử dụng mô hình 9

CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM 11

3.1 Bảng đánh giá độ chính xác của riêng của từng loài 11

3.2 Bảng đánh giá độ chính xác chung 11

CHƯƠNG 4 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 12

4.1 Kết quả đạt được 12

4.2 Hạn chế 12

4.3 Nguyên nhân 12

4.4 Phương pháp khắc phục 12

4.5 Hướng phát triển trong tương lai 12

TÀI LIỆU KHAM KHẢO 13

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1.1 Cách hoạt động của thuật toán CNN 2

Hình 2.1 Google Colaboratory 4

Hình 2.2 Thư viện được sử dụng trong bài 5

Hình 2.3 Đoạn code kết nối với google driver 5

Hình 2.4 Kết nối thành công với google driver 5

Hình 2.5 Đoạn code khai báo đường dẫn thư mục chứa ảnh dữ liệu 5

Hình 2.6 Đoạn code gán nhãn dữ liệu 6

Hình 2.7 Đoạn code tiền xử lý dữ liệu ảnh với ImageDataGenerator 6

Hình 2.8 Đoạn code đọc dữ liệu train và validation 7

Hình 2.9 Đoạn code xây dựng mô hình 8

Hình 2.10 Đoạn code thiết lập các tham số để huấn luyện mô hình 8

Hình 2.11 Đoạn code huấn luyện mô hình 9

Hình 2.12 Training cho chương trình 9

Hình 2.13 Đoạn code sử dụng mô hình 10

Hình 2.14 Kết quả khi cho kiểm thử ảnh một động vật bất kì……… 10

Trang 5

MỞ ĐẦU

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

Nhằm tìm hiểu sâu hơn về môn học khai phá dữ liệu nói chung và về thuật toán CNN nói riêng, nên chúng em quyết định lựa chọn đề tài xây dựng chương trình nhận diện ảnh động vật để tìm hiểu, nghiên cứu và phát triển Hy vọng thông qua

dự án nhỏ lần này thầy có thể đánh giá được năng lực và những kiến thức chúng em đạt được trong suốt quá trình học tập Và vì vẫn còn đang trong quá trình tìm hiểu

và học hỏi, nếu có phát sinh sai sót mong thầy bỏ qua Nhóm chúng em chân thành cảm ơn thầy vì đã tận tình giảng dạy và hướng dẫn trong suốt quá trình học tập cũng như lúc thực hiện đề tài

2 Mục tiêu nghiên cứu

- Thuật toán Convolutional Neural Network (CNN)

- Ngôn ngữ lập trình Python

3 Bố cục đề tài

Chương 1: Giới thiệu tổng quan về CNN

Giới thiệu tổng quan về các lý thuyết liên quan đến CNN

Chương 2: Sử dụng thuật toán CNN để xây dựng chương trình nhận diện ảnh động vật

Ứng dụng CNN để giải quyết bài toán đã đặt ra

Chương 3: Kết quả thực nghiệm và đánh giá

Từ kết quả thực nghiệm thu được nêu ra những đánh giá cụ thể

Chương 4: Kết luận và hướng phát triển

Trình bày các kết quả đạt được thông qua đề tài và hướng phát triển trong tương lai

Trang 6

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ CNN

1.1 Mô hình mạng CNN là gì ?

Mạng nơ ron tích tụ CNN là một mạng nơ ron nhân tạo được sử dụng chủ yếu

để nhận dạng và xử lý ảnh, do khả năng nhận dạng các mẫu trong ảnh Đây là một trong những mô hình Deep Learning vô cùng tiên tiến, CNN sẽ cho phép bạn xây dựng các hệ thống thông minh với độ chính xác vô cùng cao

Hình 1.1 Cách hoạt động của thuật toán CNN

1.2 Ưu điểm

 Đem đến cho người dùng 1 mô hình chất lượng, dù bản chất của nó ko phải

là thực toán quá đơn giản nhưng lại mang đến 1 kết quả hữu ích

 Tự động học các đặc trung của dữ liệu đẻ thiết lập các đặc trưng mới mà ko cần bất kì sự giám sát nào của người và có thể phân lớp dữ liệu chính xác

1.3 Nhược điểm

 Không mã hóa vị trí và hướng của đối tượng, đòi hỏi bộ dữ liệu đưa vào phải

có tính đa dạng và độ chính xác cao

2

Trang 7

 Khi bộ dữ liệu ảnh ko đạt yêu cầu, thì việc dự đoán kết quả sẽ không chính xác

Trang 8

CHƯƠNG 2: SỬ DỤNG THUẬT TOÁN CNN ĐỂ XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN ẢNH ĐỘNG VẬT

2.1 Phát biểu bài toán

Bài toán mà chúng em thực hiện có mục tiêu là xây dựng một mô hình học máy bằng phương pháp CNN, chương trình sẽ có khả năng nhận diện các loài động vật khác nhau từ các tấm ảnh chụp Nhưng vì ở ngoài tự nhiên có hàng trăm loại động vật khác nhau, nên trong khuôn khổ bài toán chúng em chỉ lựa chọn đại diện

6 loài vật chính là Bọ ngựa, cú, gà, mèo, rùa, voi để thực nghiệm

2.2 Chuẩn bị dữ liệu ảnh

Tổng số ảnh được sử dụng trong bài toán là 6312 ảnh Chúng em tiếp tục chia số dữ liệu ảnh trên làm 3 tệp dữ liệu chính là Train, Validation và Test, với:

 Train: Tổng số ảnh trong tệp Train là 5356 ảnh, chiếm khoảng 85% tỷ lệ tổng dữ

liệu ảnh

 Validation: Tổng số ảnh trong tệp Validation là 896 ảnh, chiếm khoảng 14% tỷ lệ

tổng dữ liệu ảnh

 Test: Tổng số ảnh trong tệp Test là 60 ảnh, chiếm khoảng 1% tỷ lệ tổng dữ liệu ảnh 2.3 Cách thức thu nhập dữ liệu

Dữ liệu được thu nhập chủ yếu thông qua các nguồn sau:

 https://images.google.com/

 https://www.kaggle.com/

2.4 Công cụ Google Colaboratory

Google Colab có tên gọi đầy đủ là “Google Colaboratory” và chúng là thành quả của dự án Google Research Mục đích của Google Colab đó chính là việc cho

hỗ trợ chạy code Python trực tiếp thông qua trình duyệt và chúng phù hợp với Data analysis (phân tích dữ liệu), machine learning (máy học) và giáo dục

Toàn bộ phần code trong đề tài này sẽ được thực thi trên Google Colab

4

Trang 9

Hình 2.2 Google Colaboratory

2.5 Xây dựng chương trình nhận diện động vật áp dụng thuật toán CNN

Chúng em sẽ thực hiện 10 bước theo thứ tự dưới đây để xây dựng một chương trình nhận động vật hoàn chỉnh

2.4.1 Khai báo các thư viện cần sử dụng

Các thư viện được sử dụng bao gồm:

 Tensorflow: Là một thư viện có mã nguồn mở, được dùng để tính toán

machine learning với quy mô lớn, có khả năng tương thích và mở rộng tốt

 Numpy: Là một thư viện toán học phổ biến của python, hổ trợ cho việc tính

toán các mảng và ma trận đa chiều có kích thước lớn với các hàm đã đc tối

ưu, áp dụng lên các mảng ma trận đa chiều đó với mục đích là xử lý dữ liệu 1 cách nhanh chóng

Trang 10

 Matplotlib: Là một trong những thư viện pyhton phổ biến nhất, được sử

dụng để trực quan hóa dữ liệu

Hình 2.3 Thư viện được sử dụng trong bài

2.4.2 Kết nối với Google Drive để đọc và lưu dữ liệu

Ở bước này chúng ta sẽ thực hiện kết nối với tài khoản google drive có chứa sẵn dữ liệu đã chuẩn bị từ trước

Hình 2.4 Đoạn code kết nối với google driver

Đoạn code kết nối với google driver

Hình 2.5 Kết nối thành công với google driver

2.4.3 Khai báo đường dẫn thư mục chứa ảnh dữ liệu

Khai báo đường dẫn thư mục chứa ảnh dữ liệu trong google drive Một đường dẫn trỏ tới file dữ liệu Validation dùng để kiểm định mô hình và 1 đường dẫn trỏ tới file dữ liệu Train dùng để huấn luyện mô hình

Hình 2.6 Đoạn code khai báo đường dẫn thư mục chứa ảnh dữ liệu

6

Trang 11

2.4.4 Gán nhãn dữ liệu

Vì nhận diện phân loại ảnh là bài toán học có giám sát do đó bộ dữ liệu kiểm định và huấn luyện phải được gán nhãn tên (label) Tên và thứ tự dán nhãn chúng

em đã để tương ứng vs tên và thứ tự thư mục chứa ảnh dữ liệu trong google driver

Hình 2.7 Đoạn code gán nhãn dữ liệu

2.4.5 Tiền xử lý dữ liệu ảnh với ImageDataGenerator

Sử dụng hàm ImageDataGenerator để chuyển từ file ảnh jpg thành dữ liệu tensor cho keras hàm này còn cho phép xin mẫu ngẫu nhiên bằng cách làm biến dạng, gây nhiễu mẫu ảnh gốc trong đó tham số rescale=1/255 có tác dụng chuẩn hóa dữ liệu ảnh, giúp quá trình huấn luyện mô hình đc nhanh hơn

Hình 2.8 Đoạn code tiền xử lý dữ liệu ảnh với ImageDataGenerator

2.4.6 Đọc dữ liệu train và validation

Cho đọc dữ liệu ảnh ở file Train và Validation Trong bước này chúng em sẽ khai báo kích thước của các ảnh huấn luyện, ở đây chúng em đã biến đổi các ảnh về cùng 1 kích thước là 200x200

Trang 12

Hình 2.9 Đoạn code đọc dữ liệu train và validation

2.4.7 Xây dựng mô hình

Mô hình này sẽ gồm có 3 lớp CNN:

 Tầng thứ 1, sẽ bao gồm có 32 bộ lọc với kích thước là 3x3, tầng CNN kết nối với đầu vào nên sẽ mô tả thông tin của đầu vào

 Tầng thứ 2, sẽ bao gồm có 64 bộ lọc, cũng với kích thước là 3x3

 Tầng thứ 3, sẽ bao gồm có 128 bộ lọc cũng có kích thước là 3x3

Các hàm được sử dụng:

 Hàm Conv2D là phương thức tạo ra 1 phức hợp trong đó tham số đầu tiên là

số bộ lọc tham số thứ 2 là kích thước bộ lọc

 Hàm MaxPooling2D dùng để giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng

 Hàm Relu dùng để chuyển các giá trị âm về giá trị 0 và giữ nguyên các giá trị dương

 Hàm Flatten dùng để chuyển ảnh từ dạng ma trận về mnarg 1 chiều

 Hàm Dense chính là 1 lớp ẩn chứa các nơ-ron kết nối toàn bộ các nơ-ron ở tầng phía trước

8

Trang 13

Hình 2.10 Đoạn code xây dựng mô hình

2.4.8 Thiết lập các tham số để huấn luyện mô hình

Mô hình sẽ dụng hàm compile để chọn ra các tham số, chúng em sử dụng tham số optmizers là Adam Ngoài ra đoạn code còn sử dụng các hàm như hàm loss dùng để tính toán sai số giữa giá trị học được và giá trị thực tế Và hàm metric, nhằm đánh giá độ chính xác(accuracy) của chương trình

Hình 2.11 Đoạn code thiết lập các tham số để huấn luyện mô hình

Trang 14

2.4.9 Huấn luyện mô hình

Sau khi thiết lập các tham số, thì ở bước này chúng em sẽ tiến hành huấn luyện mô hình Tham số epoch chính là số vòng lặp chạy mô hình, ở đây nhóm chúng em sử dụng 50 vòng lặp

Hình 2.12 Đoạn code huấn luyện mô hình

Hình 2.13 Training cho chương trình

2.4.10 Sử dụng mô hình

Ở bước này chúng em sẽ sử dụng mô hình trên để đưa một ảnh loài vật bất kì trong tệp Test đã chuẩn bị từ trước vào để thực hiện dự đoán Ví dụ nếu là mèo thì

sẽ in ra giá trị là Meo, cùng với bức ảnh đã import tương ứng

10

Trang 15

Hình 2.14 Đoạn code sử dụng mô hình

Trang 16

CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM

3.1 Bảng đánh giá độ chính xác của riêng của từng loài

3.2 Bảng đánh giá độ chính xác chung

12

Trang 17

CHƯƠNG 4 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4.1 Kết quả đạt được

- Áp dụng được các kiến thức đã học về môn khai phá dữ liệu vào bài toán

- Áp dụng được mô hình CNN vào bài toán

- Nhóm làm việc hiệu quả, chất lượng

- Kết quả bài toán cho ra độ chuẩn xác tương đối cao

4.2 Hạn chế

- Vẫn còn hiện tượng nhận diện nhầm lẫn giữa các loài với nhau

- Tỷ lệ chuẩn xác chưa đạt được con số 90% như mong đợi

4.3 Nguyên nhân

- Một số loài vật có màu sắc, hình dánh tương tự nhau

- File Dataset còn hạn chế

- Chất lượng ảnh kém, màu sắc gần giống nhau

- Các thông số như vòng lặp, lớp CNN có thể chưa tối ưu cho chương trình

4.4 Phương pháp khắc phục

- Chọn ảnh rõ ràng, kích thước lớn

- Tăng số lượng dữ liệu ảnh của mỗi loài nhiều hơn

- Thử nghiệm thay đổi các thông số và chạy lại chương trình nhiều lần hơn

4.5 Hướng phát triển trong tương lai

- Phát triển thêm dữ liệu để chương trình có thể nhận diện thêm nhiều loài động vật hơn

- Tìm ra tham số để tối ưu chương trình, nhằm cho ra kết quả chuẩn xác nhất

Trang 18

- Đưa chương trình lên các nền tảng như di động, pc, máy tính bảng để có thể nhận diện loại động vật chỉ định qua Camera

14

Trang 19

TÀI LIỆU KHAM KHẢO

[1] https://keras.io/

[2] http://nghelaptrinh.net/convolutional-neural-network-la-gi/ [3] https://vi.wikipedia.org/wiki/TensorFlow

[4] Phân tích dữ liệu với R, tác giả: Nguyễn Văn Tuấn

[5] https://www.youtube.com/watch?v=56ri8v5fM_w&t=338s

[6] https://www.youtube.com/watch?v=uqomO_BZ44g&t=577s

Ngày đăng: 10/12/2024, 10:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w