Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
1,09 MB
Nội dung
HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ BÀI BÁO CÁO Học phần: Trí tuệ nhân tạo kinh doanh ĐỀ TÀI: Ứng dụng nhận diện lồi động vật áp dụng thuật tốn CNN Giảng viên hướng dẫn : Sinh viên thực Lớp Hà nội, ngày 12 tháng năm 2022 DANH SÁCH SINH VIÊN THƯC ST T MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG I PHÁT BIỂU BÀI TOÁN VÀ LÝ DO LẬP BÀI TOÁN 1.1 Lý lập toán 1.2 Phát biểu toán CHƯƠNG II CHUẨN BỊ DỮ LIỆU 2.1 Cách thức thu thập liệu 2.2 Xác định kiểu liệu ảnh cần thu thập 2.3 Số lượng kiểu liệu 2.4 Cách tổ chức liệu máy tính CHƯƠNG III GIỚI THIỆU TỔNG QUAN THUẬT TOÁN SỬ DỤNG 3.1 Lý thuyết mạng CNN 3.2 Ưu điểm 10 3.3 Nhược điểm 11 3.4 Quy trình làm việc .11 CHƯƠNG IV MÃ LỆNH CHƯƠNG TRÌNH 4.1 Đọc liệu, tiền xử lý liệu 12 4.2 Xây dựng mơ hình, mơ tả rõ số lớp ẩn mạng CNN 14 4.3 Huấn luyện mơ hình xác định độ xác mơ hình 17 4.4 Sử dụng mô hình 19 4.5 Đánh giá độ xác mơ hình 21 CHƯƠNG V KẾT LUẬN TÀI LIỆU THAM KHẢO LỜI MỞ ĐẦU Từ kiến thức học từ mơn Trí tuệ nhân tạo kinh doanh kết hợp với kiến thức thực tế, nhóm chúng tơi có kiến để hồn thiện báo cáo môn học Chúng xin gửi lời cảm ơn chân thành đến thầy Vũ Duy Hiến tận tụy hướng dẫn, dạy kiến thức tuyệt vời sửa lại lỗi sai trình học làm tập lớn để chúng tơi có báo cáo hoàn chỉnh trọn vẹn Trong q trình làm khó tránh khỏi sai lầm, mong nhận ý kiến, đánh giá, góp ý đáng q từ thầy để báo cáo cảu nhóm chúng tơi hồn thiện Chúng xin chân thành gửi lời cảm ơn đến thầy cơ! Nhóm 11 CHƯƠNG I PHÁT BIỂU BÀI TOÁN VÀ LÝ DO LẬP BÀI TOÁN 1.1 Lý lập toán Trong thời đại 4.0 bùng nổ, sinh hoạt người gắn liền với cơng nghệ thơng tin Khi nhắc tới trí tuệ nhân tạo AI khơng thể khơng phủ nhận lợi ích chúng góp phần khơng nhỏ thay đổi mặt sống AI giúp đạt nhiều thành tựu lĩnh vực từ kinh tế, văn hóa, giáo dục, nghiên cứu khoa học, Tại nghiên cứu này, nhóm chúng tơi muốn nhắc tới việc ứng dụng trí tuệ nhân tạo lĩnh vực giáo dục trường mẫu giáo toàn quốc Trong lứa tuổi học đặc biệt lứa tuổi từ đến tuổi, thầy cô giáo cần phát triển giới quan cho trẻ việc phân biệt màu sắc, nhận biết loài hoa, nhận diện loài động vật khác nhau, Nhóm chúng tơi xin xét tới khía cạnh nhận diện phân biệt loài động vật khác Trong giảng nay, để nhận diện loài động vật cho trẻ thầy giáo thực giảng giải miệng cho trẻ nhỏ xem video Tuy nhiên hình thức giúp trẻ phân biệt thời điểm đó, tính trẻ dễ tiếp thu lại nhanh quên Đặt vấn đề này, nhóm đưa hướng giải áp dụng cơng nghệ việc nhận diện hình ảnh lồi động vật để giảm gánh nặng cho giáo viên giảng giảng lại cho trẻ đồng thời giúp chúng nhớ lâu ôn tập lại nhà gia đình Với mong muốn trở thành cơng cụ hữu ích cho thầy giáo việc đem lại kiến thức loài động vật cho trẻ nhỏ, nhóm chúng tơi định lựa chọn đề tài “Ứng dụng nhận diện loài động vật áp dụng thuật tốn CNN” 1.2 Phát biểu tốn - Mơ tả tốn: Trong phát triển trí tuệ nhân tạo AI với phương pháp học sâu máy, đặc biệt mạng CNN nơron tích chập giúp máy tính nhận dạng hình ảnh phát đối tượng Nhận dạng hình ảnh việc máy tính hiểu nội dung ảnh Bài tốn mà chúng tơi giải áp dụng mơ hình mạng CNN có khả phân biệt lồi động vật khác Do ngồi tự nhiên có hàng trăm lồi động vật nên chúng tơi xin phép lựa chọn đại diện 10 loài động vật tiêu biểu đưa vào mơ hình Danh sách lồi động vật mà nhóm chúng tơi lựa chọn để phân loại tập liệu ảnh bao gồm: Bọ Ngựa, Cá Mập, Dory fish, Gà, Hổ, Hươu cao cổ, Rùa, Tê giác, Ngựa vằn, Voi Input: Hình ảnh 10 lồi động vật Output: Tên gọi của 10 loài động vật tương ứng Thuật toán nhận diện động vật thể hiện: Code: https://colab.research.google.com/drive/1eNmEwTsxKfu1BdYsNvHiNqi9ZDAnmRi Link Youtube: https://youtu.be/MhkZxcsutU0 - Dựa ý tưởng “Ứng dụng nhận diện loài động vật áp dụng thuật tốn CNN” nhóm 11 đưa thiết kế demo app nhận diện động vật giao diện điện thoại Thiết kế mang tinh chất ý tưởng minh họa để người xem dễ hình dung Hình ảnh App demo động vật điện thoại CHƯƠNG II CHUẨN BỊ DỮ LIỆU 2.1 Cách thức thu thập liệu Dữ liệu hình ảnh 10 lồi động vật (Bọ Ngựa, Cá Mập, Dory fish, Gà, Hổ, Hươu cao cổ, Rùa, Tê giác, Ngựa vằn, Voi ) dùng vào việc huấn luyện mơ hình AI thu thập từ Google hình ảnh https://www.kaggle.com/ 2.2 Xác định kiểu liệu ảnh cần thu thập Dữ liệu hình ảnh 10 loài động vật: Bọ Ngựa, Cá Mập, Dory fish, Gà, Hổ, Hươu cao cổ, Rùa, Tê giác, Ngựa vằn, Voi chia thành phần (Train, Validation, Test), phần có hình ảnh 10 lồi Trong tỉ lệ chia là: tệp Train chiếm 70%, tập Validation chiếm 20%, tập Test chiếm 10% Tệp Train tệp chiếm số lượng nhiều dùng để huấn luyện mơ hình; Tệp Validation tệp liệu dùng để kiểm tra độ xác mơ hình trình huấn luyện từ tệp Train; Tệp Test tệp liệu dùng để kiểm tra độ xác mơ hình sau huấn luyện xong, liệu dùng tệp Test liệu mà mơ hình chưa nhìn thấy qua Chất lượng ảnh phần làm ảnh hưởng tới hiệu huấn luyện mơ hình 2.3 Số lượng kiểu liệu - Tổng số ảnh chỗ loài động vật: 200 ảnh → Tổng số ảnh liệu: 2000 ảnh - Tổng số ảnh tệp Train 1400 ảnh (Mỗi loài động vật 140 ảnh) - Tổng số ảnh tệp Validation 400 ảnh (Mỗi loài động vật 40 ảnh) - Tổng số ảnh tệp Test 200 ảnh (Mỗi loài động vật 20 ảnh) 2.4 Cách tổ chức liệu máy tính Dữ liệu hình ảnh 10 lồi động vật thu thập dạng file “.jpg”, chia vào 10 folder riêng biệt tương ứng với 10 loài động vật: Bọ Ngựa, Cá Mập, Dory fish, Gà, Hổ, Hươu cao cổ, Rùa, Tê giác, Ngựa vằn, Voi Vị trí lưu trữ D:\Computer Vision\Data; “Data” có ba Folder Train, Validation Test Sau upload liệu lên Google Drive Hình ảnh vị trí lưu tập Test, Train Validation Hình ảnh vị trí lưu tệp tương ứng với 10 lồi động vật tệp Train Hình ảnh vị trí lưu tệp tương ứng với 10 lồi động vật tệp Validation Hình ảnh vị trí lưu tệp tương ứng với 10 loài động vật tệp Test CHƯƠNG III GIỚI THIỆU TỔNG QUAN THUẬT TOÁN SỬ DỤNG 3.1 Lý thuyết mạng CNN Mạng nơ-ron tích tụ (CNN) - Convolutional Neural Network loại mạng nơ-ron nhân tạo sử dụng chủ yếu để nhận dạng xử lý hình ảnh, khả nhận dạng mẫu hình ảnh Đây mơ hình Deep Learning vơ tiên tiến CNN cho phép bạn xây dựng hệ thống thơng minh với độ xác vơ cao CNN giúp đưa ước tính chuyên sâu ô tô tự lái CNN công cụ mạnh mẽ yêu cầu hàng triệu điểm liệu gắn nhãn để đào tạo CNN phải đào tạo với xử lý công suất cao, chẳng hạn GPU (Bộ xử lý tác vụ liên quan tới đồ họa) NPU (Bộ xử lý thần kinh chuyên dụng), chúng muốn tạo kết đủ nhanh để hữu ích Ngồi việc thiết kế để giải vấn đề với hình ảnh trực quan, CNN có nhiều ứng dụng ngồi nhận dạng phân tích hình ảnh, bao gồm phân loại hình ảnh, xử lý ngôn ngữ tự nhiên, khám phá thuốc đánh giá rủi ro sức khỏe CNN bao gồm phần lớp là: Convolutional layer: Đây lớp quan trọng CNN, lớp có nhiệm vụ thực tính tốn Những yếu tố quan trọng convolutional layer là: stride, padding, filter map, feature map CNN sử dụng filter để áp dụng vào vùng hình ảnh Những filter map gọi ma trận chiều, mà bên số chúng parameter Stride có nghĩa bạn dịch chuyển filter map theo pixel dựa vào giá trị từ trái sang phải Và chuyển dịch Stride Padding: Là giá trị thêm vào với lớp input Feature map: Nó thể kết lần filter map quét qua input Sau lần quét xảy q trình tính tốn pixel > edges > shapes > facial > high-level features Layer cuối dùng để phân lớp ảnh Trong mơ hình CNN có khía cạnh cần quan tâm tính bất biến (Location Invariance) tính kết hợp (Compositionality) Nếu bạn có đối tượng mà lại chiếu theo nhiều góc độ khác độ xác bị ảnh hưởng Với chuyển dịch, quay co giãn pooling layer sử dụng để giúp làm bất biến tính chất Với đối tượng, đối tượng chiếu theo góc độ khác (translation, rotation, scaling) độ xác thuật tốn bị ảnh hưởng đáng kể Vì vậy, CNN đưa kết có độ xác tương ứng mơ hình Pooling layer cho bạn tính bất biến phép dịch chuyển (translation), phép quay (rotation) phép co giãn (scaling) Tính kết hợp cục cho ta cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao trừu tượng thông qua convolution từ filter Đó lý CNNs cho mơ hình với độ xác cao Cũng giống cách người nhận biết vật thể tự nhiên Mạng CNN sử dụng ý tưởng bản: Các trường tiếp nhận cục (local receptive field): Lớp có nhiệm vụ tách lọc liệu, thơng tin ảnh lựa chọn vùng ảnh có giá trị sử dụng cao Trọng số chia sẻ (shared weights): Lớp giúp làm giảm tối đa lượng tham số có tác dụng yếu tố mạng CNN Trong convolution có feature map khác feature lại có khả giúp detect vài feature ảnh Tổng hợp (pooling): Pooling layer lớp cuối có tác dụng làm đơn giản thơng tin đầu Có nghĩa là, sau hồn tất tính tốn qt qua lớp đến pooling layer để lược bớt thơng tin khơng cần thiết Từ đó, cho kết theo ý mà người dùng mong muốn 3.2 Ưu điểm Thuật toán Convolutional neural network đem đến cho người dùng mơ hình chất lượng Dù chất khơng phải thuật tốn q đơn giản lại 10 mang đến kết hài lòng Ưu điểm mơ hình mạng CNN tự động học đặc trưng liệu để thiết lập đặc trưng mà không cần giám sát người phân lớp liệu ảnh xác 3.3 Nhược điểm CNN khơng mã hóa vị trí hướng đối tượng Địi hỏi liệu đưa vào phải có tính đa dạng độ xác cao Khi liệu ảnh khơng đạt u cầu việc dự đốn kết khơng xác 3.4 Quy trình làm việc Đầu vào lớp tích chập hình ảnh Chọn đối số, áp dụng lọc với bước nhảy, padding cần Thực tích chập cho hình ảnh áp dụng hàm kích hoạt ReLU cho ma trận hình ảnh Thực Pooling để giảm kích thước cho hình ảnh Thêm nhiều lớp tích chập cho phù hợp Xây dựng đầu liệu đầu vào thành lớp kết nối đầy đủ (Full Connected) Sử dụng hàm kích hoạt để tìm đối số phù hợp nhận diện hình ảnh Mơ tả quy trình nhận diện hình ảnh ngựa vằn thuật tốn CNN (Nguồn: miai.com) 11 CHƯƠNG IV MÃ LỆNH CHƯƠNG TRÌNH 4.1 Đọc liệu, tiền xử lý liệu *Các thư viện sử dụng chương trình import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt import numpy as np Tensorflow: thư viện học sâu, có mã nguồn mở, dùng để tính tốn machine learning với quy mô lớn TensorFlow kết hợp loạt mô hình thuật tốn machine learning deep learning, cho phép tạo biểu đồ để thực tính toán Mỗi nút biểu đồ đại diện cho phép toán kết nối đại diện cho liệu Tensorflow cung cấp sẵn hàm để đơn giản hóa việc load liệu Kiến trúc TensorFlow hoạt động chia thành phần: Tiền xử lý liệu, Dựng model, Huấn luyện sử dụng model Keras: mã nguồn mở cho deep learning viết Python Nó chạy deep learning khác như: tensorflow, theano, CNTK Với Application Programming Interface – giao diện lập trình ứng dụng (API) bậc cao, dễ sử dụng, dễ mở rộng, Keras giúp người dùng xây dựng deep learning model cách đơn giản Matplotlib: giải pháp cho người dùng Python, Để thực suy luận thống kê cần thiết, cần phải trực quan hóa liệu Nó thư viện vẽ đồ thị mạnh mẽ hữu ích cho người làm việc với Python NumPy Module sử dụng nhiều Matplotlib Pyplot cung cấp giao diện MATLAB thay vào đó, sử dụng Python nguồn mở Numpy: thư viện lõi phục vụ cho khoa học máy tính Python, hỗ trợ cho việc tính tốn mảng nhiều chiều, có kích thước lớn với hàm tối ưu áp dụng lên mảng nhiều chiều Nó cung cấp đối tượng mảng đa chiều hiệu suất cao công cụ để làm việc với mảng Numpy đặc biệt hữu ích 12 thực hàm liên quan tới Đại Số Tuyến Tính hay cịn coi thư viện xử lý số *Kết nối với Google Drive để đọc liệu from google.colab import drive drive.mount('/content/drive/') Bước cần cho phép Bot truy cập vào liệu tài khoản Drive lưu tệp muốn đọc *Khai báo đường dẫn thư mục chứa ảnh liệu import os train_image_files_path = "/content/drive/MyDrive/AI Btap lớn - Computervision/Data/Train" valid_image_files_path = "/content/drive/MyDrive/AI Btap lớn - Computervision/Data/Validation" Khai báo đường dẫn đến thư mục chứa liệu ảnh dùng để huấn luyện kiểm định mơ hình *Gán nhãn liệu label=['BoNgua','Camap','Doryfish','Ga','Ho','Huucaoco', 'Nguavan','Rua','Tegiac','Voi'] Với toán nhận diện phân loại hình ảnh lồi động vật tốn học có giám sát Do đó, liệu đầu vào cần phân loại gán nhãn Nhóm chúng tơi đặt tên thứ tự nhãn tương ứng với tên thứ tự thư mục chứa ảnh huấn luyện kiểm định mơ hình *Tiền xử lý ảnh với ImageDataGenerator from tensorflow.keras.preprocessing.image import ImageDataGenerator train_data_gen = ImageDataGenerator(rescale=1/255) validation_data_gen = ImageDataGenerator(rescale=1/255) 13 ImageDataGenerator lớp học Keras để tổng hợp liệu hình ảnh cho học sâu Nó cho phép dễ dàng truy cập vào hệ thống tệp cục bạn nhiều phương pháp khác để tải liệu từ cấu trúc khác Nó có số khả xử lý trước tăng cường liệu mạnh mẽ Hàm dùng để chuyển từ file ảnh JPG thành liệu tensor cho keras, cho phép sinh mẫu ngẫu nhiên cách biến dạng, gây nhiễu ngẫu nhiên ảnh gốc Tùy chỉnh tham số rescale cho phép chuyển giá trị pixel từ 0:255 thành thang đo [0:1] để thích hợp cho mạng neuron Tham số rescale = 1/255 có tác dụng chuẩn hóa liệu ảnh, đưa tồn giá trị điểm ảnh giá trị nằm khoảng [0, 1] Việc chuẩn hóa liệu giúp q trình huấn luyện mơ hình nhanh *Đọc liệu Train Validation train_generator = train_data_gen.flow_from_directory( train_image_files_path, target_size=(200, 200), class_mode='categorical') validation_generator = validation_data_gen.flow_from_directory( valid_image_files_path, target_size=(200, 200), class_mode='categorical') Target size kích thước ảnh đưa vào tập huấn luyện Train, biến đổi chúng kích thước (200,200) Class mode tính chất nhãn kết = categorical (bài tốn phân loại) 4.2 Xây dựng mơ hình, mơ tả rõ số lớp ẩn mạng CNN from keras.models import Sequential from keras.layers import Dense, MaxPooling2D, Flatten model=tf.keras.models.Sequential() # lớớớ̛́p CNN1 14 Dropout, Conv2D, model.add(Conv2D(32,(3,3), activation='relu',input_shape=(200,200,3))) model.add(MaxPooling2D(2,2)) # lớớớ̛́p CNN2 model.add(Conv2D(64,(3,3), activation='relu')) model.add(MaxPooling2D(2,2)) # lớớớ̛́p CNN3 model.add(Conv2D(128,(3,3), activation='relu')) model.add(MaxPooling2D(2,2)) # chuyển liệu đầu mạng CNN từ mảng chiều mảng chiều model.add(Flatten()) # lớớớ̛́p ẩn model.add(Dense(512, activation=tf.nn.relu)) # lớớớ̛́p output model.add(Dense(10, activation=tf.nn.softmax)) # 10 đầu - Sequential: mơ hình liên quan tới việc xác định lớp Sequential thêm lớp vào mơ hình theo cách tuyến tính, từ đầu vào đến đầu - Dense: Dense layer hay Fully-connected layer lớp cổ điển mạng nơ ron nhân tạo Mỗi nơron nhận đầu vào từ tất nơron lớp trước - Drop out: Hiểu cách đơn giản Dropout việc bỏ qua đơn vị (tức nút mạng) trình đào tạo cách ngẫu nhiên Bằng việc bỏ qua đơn vị khơng xem xét q trình forward backward Theo đó, p gọi xác suất giữ lại nút mạng giai đoạn huấn luyện, xác suất bị loại bỏ (1 - p) - Conv2D: phương thức tạo lớp phức hợp Tham số (32) số lọc tham số thứ hai (3,3) kích thước lọc - MaxPooling2D: lớp Pooling thường dùng lớp convolutional, để giảm kích thước liệu giữ thuộc tính quan trọng Kích thước liệu giảm giúp giảm việc tính tốn model 15 - Relu: hàm kích hoạt có cơng thức y = max (0, x) Hàm để loại giá trị âm tức chuyển tất giá trị âm giá trị giữ nguyên giá trị dương - Flatten: chuyển ảnh từ dạng ma trận mảng chiều Mơ hình gồm tầng: Input image -> CNN1 -> CNN2 -> CNN3-> Fully connected layer -> Output Mơ hình có lớp CNN: - Lớp CNN1 gồm 32 lọc kích thước 3x3, kết nối với đầu vào nên mô tả rõ thông tin đầu vào (input_shape) - Lớp CNN2 gồm 64 lọc kích thước 3x3 - Lớp CNN3 gồm 128 lọc kích thước 3x3 Với lọc khác học đặc trưng khác ảnh, tầng convolutional ta dùng nhiều lọc (CNN1 sử dụng 32 lọc, CNN2 sử dụng 64 lọc, CNN3 sử dụng 128 lọc) để học nhiều đặc trưng ảnh (ví dụ biên ngang, biên dọc…) Mỗi lớp CNN làm nhiệm vụ lấy đặc trưng ảnh nén ảnh từ kích cỡ ảnh to ảnh nhỏ Từ để giảm bớt số lượng nơron cần phải lưu trữ, giảm bớt độ phức tạp thuật toán - Hidden layer (Lớp ẩn): chứa 512 neuron Một lớp ẩn nằm đầu vào đầu thuật toán Các lớp ẩn thực phép biến đổi phi tuyến đầu vào đưa vào mạng Các lớp ẩn cho phép chức mạng nơ-ron chia nhỏ thành phép biến đổi liệu cụ thể Mỗi chức lớp ẩn chuyên biệt hóa để tạo đầu xác định Ví dụ: chức lớp ẩn sử dụng để xác định mắt tai động vật sử dụng kết hợp với lớp để nhận dạng loài - Output layer (Lớp đầu ra): sử dụng hàm Softmax tính tốn xác suất xảy kiện Hàm softmax tính khả xuất class tổng số tất class xuất Sau đó, xác suất sử dụng để xác định class mục tiêu cho input Cụ thể, hàm softmax biến vector k chiều có giá trị thực thành vector k chiều có giá trị thực có tổng Giá trị nhập dương, âm, lớn 1, hàm softmax biến chúng thành giá trị nằm khoảng (0:1] 16 *Thiết lập tham số để huấn luyện mơ hình from tensorflow.keras.optimizers import Adam model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['acc']) - Compile: chọn tham số để huấn luyện mơ hình - Optimizer: thuật tốn tối ưu sở để xây dựng mơ hình neural network với mục đích “học ” features ( hay pattern) liệu đầu vào, từ tìm cặp weights bias phù hợp để tối ưu hóa model - Adam: Nhóm sử dụng Optimizer Adam cho độ xác cao nhiều lần thử nghiệm so với RMSprop Adam kết hợp Momentum RMSprop Nếu giải thích theo tượng vật lý Momentum giống cầu lao xuống dốc, Adam cầu nặng có ma sát, dễ dàng vượt qua local minimum tới global minimum tới global minimum khơng nhiều thời gian dao động qua lại quanh đích có ma sát nên dễ dừng lại - Loss: hàm tính tốn sai số giá trị học giá trị thực tế, sử dụng categorical_crossentropy trường hợp dự đoán nhiều lớp Nếu y_true = y_predict trả ngược lại - Metrics: thước đo để ta đánh giá accuracy mơ hình 4.3 Huấn luyện mơ hình xác định độ xác mơ hình *Huấn luyện mơ hình: EPOCHS=100 history=model.fit( train_generator, steps_per_epoch=3, epochs=EPOCHS, verbose=1, validation_data = validation_generator, validation_steps=3) 17 Đối với mơ hình này, nhóm thử nghiệm với nhiều tham số batch_size, steps_per_epoch, epochs, validation_steps chọn tham số phù hợp để có kết tốt nhất, dự đốn xác tên lồi động vật - EPOCHS = 100 số vịng lặp mơ hình - History=model.fit: Mỗi dùng model.fit (), trả đối tượng hard.callbacks History giúp ghi lại biến - Verbose: 'auto', 0, Chế độ chi tiết: = im lặng; = tiến trình [==============================]; = dòng kỷ nguyên -> 'auto' mặc định cho hầu hết trường hợp - Validation_steps: Chỉ có liên quan validation_data cung cấp tập liệu Tổng số bước (lô mẫu) cần vẽ trước dừng thực xác nhận vào cuối Epoch *Xác định độ xác mơ hình: Sau chạy, nhóm chúng tơi thu kết sau: Epoch 1/100 3/3 [==============================] - 12s 4s/step - loss: 0.0508 - acc: 0.9792 - val_loss: 2.6149 - val_acc: 0.6875 Epoch 2/100 3/3 [==============================] - 10s 4s/step - loss: 0.0612 - acc: 0.9688 - val_loss: 1.6840 - val_acc: 0.7292 Epoch 3/100 3/3 [==============================] - 10s 3s/step - loss: 0.0304 - acc: 0.9896 - val_loss: 1.4946 - val_acc: 0.7396 Epoch 4/100 3/3 [==============================] - 9s 4s/step - loss: 0.0952 - acc: 0.9479 - val_loss: 2.2627 - val_acc: 0.6875 Epoch 5/100 18 3/3 [==============================] - 9s 3s/step - loss: 0.0387 - acc: 0.9896 - val_loss: 1.6224 - val_acc: 0.6875 Epoch 95/100 3/3 [==============================] - 9s 3s/step - loss: 5.7661e-04 - acc: 1.0000 - val_loss: 3.8172 - val_acc: 0.7292 Epoch 96/100 3/3 [==============================] - 10s 3s/step - loss: 0.0022 - acc: 1.0000 - val_loss: 3.8314 - val_acc: 0.7500 Epoch 97/100 3/3 [==============================] - 9s 3s/step - loss: 3.6547e-04 - acc: 1.0000 - val_loss: 1.4317 - val_acc: 0.7917 Epoch 98/100 3/3 [==============================] - 9s 3s/step - loss: 4.1760e-04 - acc: 1.0000 - val_loss: 2.7634 - val_acc: 0.7500 Epoch 99/100 3/3 [==============================] - 10s 3s/step - loss: 2.9573e-04 acc: 1.0000 - val_loss: 3.3365 - val_acc: 0.7188 Epoch 100/100 3/3 [==============================] - 9s 3s/step - loss: 1.5203e-04 - acc: 1.0000 - val_loss: 1.7888 - val_acc: 0.8646 => Sau chạy xong, Bot lấy ảnh tập Validation độ xác val_acc = 0.8646 Máy nhận diện ảnh với độ xác acc = 4.4 Sử dụng mơ hình from google.colab import files from keras.preprocessing import image %matplotlib inline import matplotlib.pyplot as plt import matplotlib.image as mpimg 19 uploaded=files.upload() for fn in uploaded.keys(): #predicting images path='/content/'+fn #In ảnh đọc plt.imshow(mpimg.imread(path)) img=image.load_img(path,target_size=(200,200)) x=image.img_to_array(img) x=np.expand_dims(x,axis=0) images=np.vstack([x]) y_predict = model.predict(images,batch_size=10) print(y_predict) print('Giá trị dự đoán: ', label[np.argmax(y_predict)]) - Đầu tiên cần import file từ google colab - From keras.preprocessing import image : Sau phân lớp, đầu net số thứ tự lớp (1,2,3,…) nên ta cần decode kết tùy thuộc vào liệu sử dụng thư viện tiền xử lý đầu vào file - Matplotlib: để thực suy luận thống kê cần thiết, cần phải trực quan hóa liệu bạn Matplotlib giải pháp cho người dùng Python - Uploaded=files.upload() : Tải file từ tệp test - Path='/content/'+fn : Load ảnh lên xử lý trước đưa vào để phân lớp - Plt.imshow(mpimg.imread(path)) : In ảnh để đọc - Img=image.load_img(path,target_size=(200,200)) : đặt kích thước ảnh - x=image.img_to_array(img) x=np.expand_dims(x,axis=0) : Tiền xử lý ảnh - Print(y_predict): In giá trị dự đoán theo giá trị [0, 1] - Print('Giá trị dự đoán: ', label[np.argmax(y_predict)]): In giá trị dự đoán VD giá trị dự đốn rùa Chạy mơ hình chọn ảnh động vật tập liệu Test, kết nhận diện động vật dựa mơ hình huấn luyện, sau: 20 Kết việc chạy mơ hình 4.5 Đánh giá độ xác mơ hình Độ xác kết thực nghiệm Dự đoán 17 Dự đốn sai Tỷ lệ dự 85% đốn xác => Thơng qua độ xác kết thực nghiệm đánh giá thuật tốn chạy dựa bộ liệu đầu vào ảnh 10 loài động vật tương đối tốt Đa số vật có tỷ lệ dự đốn xác cao từ 80% - 90%, có lồi Gà Ngựa vằn có tỷ lệ xác 75% Voi 70% 21 CHƯƠNG V KẾT LUẬN Kết độ xác chung việc nhận diện 10 lồi động vật tập Test Tập ảnh test 200 Tổng hợp lại kết sau chạy mơ hình với 200 ảnh động vật gồm 10 loài động vật, kết thu tốt với 161/200 Sai 39/200, Tỷ lệ xác đạt tới 80.5% Hạn chế: Thơng qua việc huấn luyện mơ hình đánh giá độ xác thực tế thấy độ xác mơ hình tương đối cao, nhiên cịn có hạn chế định chưa giải được: Vẫn 39/200 ảnh bị nhận diện nhầm lẫn với loài động vật khác Val_acc = ~86% chưa tối ưu Nguyên nhân: Theo nhóm nguyên nhân sau: Một số lồi có màu sắc, hình dáng tương tự Số lượng 2000 ảnh/ 10 loài ~ 200 ảnh/lồi động vật có khả tương đối để nhận diện xác Ngồi số lượng ảnh chất lượng ảnh yếu tố quan trọng để nâng cao nhận diện, có nhiều ảnh lồi động động vật nhóm thu thập có kích thước nhỏ, thực tế có ảnh lồi động vật ngụy trang hay có màu sắc gần giống màu môi trường chụp ảnh Và có khả thơng số vịng lặp, lớp CNN nhóm sử dụng cho kết tốt lần thử nghiệm, chưa tìm số tối ưu chuẩn cho mơ hình 22 Phương pháp khắc phục: Ngay từ khâu chọn ảnh chọn liệu phải lựa chọn ảnh động vật rõ ràng, kích thước lớn Tăng số lượng liệu ảnh loài nhiều để có nguồn liệu đầu vào tốt Thử nghiệm thay đổi thơng số chạy lại nhiều lần để cải thiện kết cách tốt Mục đích chúng tơi tạo mơ hình để tạo cơng cụ hữu ích cho giáo viên việc giảng dạy cho trẻ nhỏ phân biệt tốt loài động vật Bên cạnh thử nghiệm từ chạy mô hình, thực tế đa dạng giống lồi lồi động vật lớn Chính vậy, để hướng tới việc hồn thiện mơ hình chất lượng nhận diện nhiều lồi động vật tương lai chúng tơi cần cải thiện số lượng chất lượng ảnh loài động vật cải tiến thuật tốn để có kết tốt nhiều tính Từ nâng cao tính ứng dụng AI mang lại nhiều lợi ích thực tế TÀI LIỆU THAM KHẢO Tài liệu học tập mơn Trí tuệ nhân tạo kinh doanh – Học viện Ngân Hàng 23 Xử lý ảnh sử dụng Neural Network - AI - Machine Learning bản, https://vncoder.vn/bai-hoc/xu-ly-anh-su-dung-neural-network-175 2020 RAdam (Rectified Adam): Thế hệ sau trùm tối ưu Adam [Online] Available at: https://blog.studyit.dev/2020/12/tam-ly-ai-02-vu-tru-optimizersradam.html [Accessed 26 2022] 2021 Tensorflow gì? Tổng quan Tensorflow cho người bắt đầu [Online] Available at: https://teky.edu.vn/blog/tensorflow-la-gi/ [Accessed 26 2022] Hang, D T & Tung, P D., 2019 Tìm Hiểu Về Dropout Trong Deep Learning, Machine Learning [Online] Available at: https://www.phamduytung.com/blog/2019-0505-deep-learning-dropout/ [Accessed 26 2022] Hoang, N V., 2019 Giới thiệu Matplotlib (một thư viện hữu ích Python dùng để vẽ đồ thị) [Online] Available at: https://viblo.asia/p/gioi-thieu-vematplotlib-mot-thu-vien-rat-huu-ich-cua-python-dung-de-ve-do-thiyMnKMN6gZ7P [Accessed 25 2022] Hoang, N V., 2019 Giới thiệu Numpy (một thư viện chủ yếu phục vụ cho khoa học máy tính Python) [Online] Available at: https://viblo.asia/p/gioi-thieuve-numpy-mot-thu-vien-chu-yeu-phuc-vu-cho-khoa-hoc-may-tinh-cua-pythonmaGK7kz9Kj2 [Accessed 26 2022] Thang, T D., 2020 Làm quen với Keras [Online] Available at: https://viblo.asia/p/lam-quen-voi-keras-gGJ59mxJ5X2 [Accessed 25 2022] Trung, H C., 2020 Giới thiệu Deep Learning, thư viện Keras [Online] Available at: https://viblo.asia/p/gioi-thieu-ve-deep-learning-thu-vien-keras63vKjDGAl2R [Accessed 25 2022] 24 ... lồi động vật cho trẻ nhỏ, nhóm định lựa chọn đề tài ? ?Ứng dụng nhận diện lồi động vật áp dụng thuật tốn CNN? ?? 1.2 Phát biểu tốn - Mơ tả tốn: Trong phát triển trí tuệ nhân tạo AI với phương pháp học. .. https://youtu.be/MhkZxcsutU0 - Dựa ý tưởng ? ?Ứng dụng nhận diện loài động vật áp dụng thuật tốn CNN? ?? nhóm 11 đưa thiết kế demo app nhận diện động vật giao diện điện thoại Thiết kế mang tinh chất ý... nhận biết loài hoa, nhận diện lồi động vật khác nhau, Nhóm chúng tơi xin xét tới khía cạnh nhận diện phân biệt loài động vật khác Trong giảng nay, để nhận diện loài động vật cho trẻ thầy giáo