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

TOP Báo cáo BTL Trí Tuệ Nhân Tạo-Khoa Học Dữ Liệu-PyThon( 9 điểm)

26 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 đề Nhận diện hoa
Tác giả Nhóm 16
Người hướng dẫn GV. Vũ Hoài Nam
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Khoa học dữ liệu
Thể loại bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 26
Dung lượng 5,03 MB

Nội dung

-Sử dụng CNN và thuật toán Adam, thư viện keras để phát triển AI nhận diện hoa -Dữ liệu training lấy từ Kaggle - Training trên colab kết nối drive

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN -

BÀI TẬP LỚN Nhập môn khoa học dữ liệu

Đề tài: Nhận diện hoa

Giảng viên hướng dẫn : Vũ Hoài Nam Nhóm lớp tín chỉ : 01

Nhóm bài tập lớn : 16 Thành viên:

Hà Nội 11/2024

Trang 2

LỜI CẢM ƠN

Lời đầu tiền, nhóm em xin gửi lời cảm ơn sâu sắc đến Học viện Công nghệBưu chính Viễn thông đã đưa môn học Nhập môn Khoa học dữ liệu vào trongchương trình giảng dạy Đặc biệt, em xin cảm ơn GV Vũ Hoài Nam đã hướng dẫn

và truyền đạt lại kiến thức quý báu cho chúng em trong suốt thời gian học vừa qua.Thầy đã giúp chúng em hiểu về tầm quan trọng của môn học Nhập môn Khoa học

dữ liệu trong thực tiễn đời sống Không chỉ thế, thầy còn giảng dạy với nhiều bàitập thực tế và phương pháp dạy dễ hiểu khiến việc tiếp thu trở nên dễ dàng hơn.Môn học đem lại cho chúng em những kiến thức mới và bổ ích về khoa học dữ liệu

cơ bản Đó thực sự là những hành trang cần thiết cho sinh viên ngành công nghệthông tin chúng em

Chúng em mong muốn Học viện tiếp tục đưa thêm các nội dung mới trongmôn học vào giảng dạy để giúp sinh viên chúng em có thể nâng cao kiến thức chochính bản thân cũng như trang bị cho công việc sau này Bài báo cáo của nhómkhông tránh khỏi thiếu sót, kính mong thầy xem xét và góp ý

Nhóm em xin chân thành cảm ơn

Trang 3

Mục Lục

Nội dung

DANH MỤC HÌNH ẢNH 2

I Giới thiệu bài toán 3

1 Đặt vấn đề bài toán 3

2 Mục tiêu bài toán 4

3 Phạm vi bài toán 5

II Cơ sở lý thuyết 7

1 Platform 7

2 Mô hình sử dụng 7

III Thực nghiệm, xây dựng và đánh giá 11

1 Nguồn dữ liệu 11

2 Mô tả dữ liệu 12

IV Xây dựng AI nhận diện hoa 12

1 Xây dựng mô hình 12

2 Biên dịch mô hình 13

3 Tinh chỉnh và đánh giá tiếp 14

4 Huấn luyện mô hình 14

5 Kết quả huấn luyện: 15

6 Lưu mô hình huấn luyện 16

7 Đánh giá hiệu suất 16

V Kết luận 19

1 Đánh giá ứng dụng 19

2 Thảo luận và định hướng 20

TÀI LIỆU THAM KHẢO 21

DANH MỤC HÌNH ẢNH Hình 1: Django 7

Trang 4

Hình 2: Thuật toán tối ưu trên mạng nơ-ron 8

Hình 3: Mô hình Sequential của Keras 8

Hình 4: Mô hình CNN 9

Hình 5: Cơ chế CNN 10

Hình 6: Nguồn dữ liệu 11

Hình 7: Tương quan độ chính xác training và testing 15

Hình 8: Độ biến thiên loss và accuracy khi training và testing 17

I Giới thiệu bài toán.

1 Đặt vấn đề bài toán.

Trong bối cảnh hiện nay, sự đa dạng và phong phú của các loài hoa đặt ra những thách thức lớn cho việc nhận diện và phân loại chúng một cách chính xác Với sự phát triển của khoa học dữ liệu và trí tuệ nhân tạo, việc nhận diện hoa từ hình ảnh đang trở thành một giải pháp tiềm năng

Trang 5

nhằm hỗ trợ các lĩnh vực như nghiên cứu sinh học, bảo tồn đa dạng sinhhọc, nông nghiệp thông minh và giáo dục.

Nhận diện loài hoa không chỉ đòi hỏi khả năng phân tích dữ liệu hìnhảnh lớn mà còn cần mô hình hóa các đặc điểm phức tạp, như màu sắc,hình dáng và các biến đổi tự nhiên của hoa theo mùa và môi trường Conngười gặp nhiều khó khăn khi phải xử lý lượng dữ liệu lớn và không nhấtquán, dễ dẫn đến sai sót Do đó, việc xây dựng một hệ thống nhận diệnhoa tự động dựa trên khoa học dữ liệu sẽ giúp khắc phục những hạn chếnày, đảm bảo tính chính xác, đồng thời giảm thiểu sự phụ thuộc vào nhânlực chuyên gia

Khoa học dữ liệu mang đến các phương pháp hiệu quả để thu thập, xử

lý và phân tích dữ liệu hình ảnh, cho phép mô hình AI nhận diện chínhxác từng loài hoa qua các thuật toán học máy và học sâu Quá trình nàybao gồm việc tiền xử lý dữ liệu, phân tích khám phá, huấn luyện mô hình

và đánh giá hiệu suất để đảm bảo kết quả phân loại chính xác và nhanhchóng

Ứng dụng của hệ thống nhận diện hoa bằng khoa học dữ liệu mở ranhiều tiềm năng: từ hỗ trợ nhà nghiên cứu theo dõi và giám sát sự biếnđộng của hệ sinh thái, đến cung cấp công cụ hỗ trợ giảng dạy trong giáodục, hoặc nâng cao hiệu quả sản xuất trong nông nghiệp Nhờ đó, bài toánnhận diện hoa không chỉ góp phần vào việc bảo tồn thiên nhiên mà còn có

ý nghĩa quan trọng trong phát triển bền vững và bảo vệ môi trường.Việc triển khai hệ thống nhận diện hoa bằng khoa học dữ liệu là mộtbước tiến quan trọng, đáp ứng nhu cầu ngày càng cao trong việc ứngdụng công nghệ vào thực tiễn, giúp con người hiểu rõ hơn về thế giới tựnhiên và thúc đẩy quá trình bảo tồn hệ sinh thái trên Trái Đất

2 Mục tiêu bài toán.

Bài toán nhận diện loài hoa bằng khoa học dữ liệu đặt mục tiêu xâydựng một hệ thống tự động có khả năng phân loại chính xác các loài hoa từ

dữ liệu hình ảnh Trước tiên, dự án hướng tới việc phát triển một mô hìnhnhận diện hoa có độ chính xác cao và thời gian xử lý nhanh chóng, ứngdụng các thuật toán tiên tiến trong lĩnh vực học máy và học sâu Hệ thốngnày sẽ đảm bảo nhận diện và phân loại chính xác nhiều loài hoa khác nhaudựa trên đặc điểm hình ảnh, hỗ trợ người dùng trong các hoạt động nhậndiện và phân loại hoa Nhờ đó, hệ thống có thể giúp tăng tính hiệu quả,giảm thiểu thời gian và chi phí so với cách nhận diện truyền thống

Dự án còn tập trung vào việc xây dựng một cơ sở dữ liệu phong phú

và đa dạng, bao gồm hình ảnh về nhiều loại hoa khác nhau với sự khác biệt

Trang 6

về màu sắc, hình dáng, và các điều kiện môi trường Mục tiêu này giúp môhình học tập tốt hơn qua dữ liệu phong phú, từ đó nâng cao độ chính xác vàtính khả dụng khi áp dụng vào thực tiễn Hệ thống có thể phân biệt các loàihoa ngay cả trong các điều kiện môi trường phức tạp, tạo ra một nền tảng

dữ liệu vững chắc cho các ứng dụng trong bảo tồn, giáo dục, và nôngnghiệp

Một trong những mục tiêu quan trọng của hệ thống là giảm thiểu sựphụ thuộc vào nhân lực chuyên gia Công cụ tự động này giúp giảm tảicông việc, đồng thời hỗ trợ các nhà nghiên cứu, nhà bảo tồn, và người nôngdân nhận diện và phân loại hoa một cách dễ dàng và chính xác hơn màkhông cần kiến thức chuyên sâu Điều này đặc biệt hữu ích trong nhữngtình huống cần xử lý dữ liệu lớn hoặc ở các khu vực thiếu chuyên gia, từ đógóp phần tăng cường khả năng nghiên cứu, bảo tồn và sản xuất nôngnghiệp

Hơn nữa, hệ thống được xây dựng với mục đích ứng dụng rộng rãitrong nhiều lĩnh vực, từ bảo tồn đa dạng sinh học, giáo dục, nghiên cứukhoa học đến nông nghiệp thông minh Hệ thống nhận diện hoa này khôngchỉ dừng lại ở việc phân loại mà còn cung cấp thông tin phân tích có giá trị,giúp người dùng hiểu rõ hơn về loài hoa, vai trò của chúng trong hệ sinhthái và tầm quan trọng của việc bảo vệ đa dạng sinh học

Đặc biệt, mô hình được thiết kế linh hoạt, có khả năng mở rộng vàcập nhật với các loại dữ liệu mới Điều này giúp hệ thống có thể không chỉnhận diện các loài hoa hiện có mà còn dễ dàng mở rộng để nhận diện thêmnhiều loài thực vật khác Nhờ khả năng mở rộng này, hệ thống đáp ứngđược nhu cầu phát triển của các lĩnh vực nghiên cứu, giáo dục, và côngnghệ trong tương lai

Kết luận, bài toán nhận diện loài hoa bằng khoa học dữ liệu không chỉhướng tới xây dựng một công cụ tự động hóa hiệu quả mà còn mang đếnnhững giá trị thiết thực cho nhiều lĩnh vực khác nhau trong đời sống Sựkết hợp giữa khoa học dữ liệu và nhận diện hoa bằng trí tuệ nhân tạo mở ranhiều tiềm năng trong bảo tồn hệ sinh thái, nâng cao hiệu quả sản xuấtnông nghiệp, và tạo ra những công cụ giảng dạy mới trong giáo dục Hệthống này sẽ góp phần quan trọng trong việc giúp con người tiếp cận vàhiểu rõ hơn về thế giới tự nhiên, thúc đẩy những sáng kiến bảo vệ môitrường và phát triển bền vững, đồng thời đáp ứng những thách thức về sự

đa dạng sinh học trong thế giới hiện đại

3 Phạm vi bài toán.

a Tổng quan đề tài.

Trang 7

Ứng dụng nhận diện loài hoa dựa trên các lý thuyết và phương pháptrong lĩnh vực khoa học dữ liệu, đặc biệt là sự kết hợp của trí tuệ nhân tạo(AI) và xử lý ảnh để phân loại và nhận diện loài hoa từ dữ liệu hình ảnh.Trong khoa học dữ liệu, các kỹ thuật chính bao gồm deep learning và mạngnơ-ron nhân tạo, với deep learning là một phương pháp học sâu sử dụngmạng nơ-ron nhiều lớp để học và trích xuất các đặc trưng từ hình ảnh Các

mô hình deep learning, điển hình là Convolutional Neural Networks(CNNs), được áp dụng rộng rãi trong nhận diện loài hoa nhờ khả năng họccác đặc trưng phức tạp như hình dạng, cấu trúc, và màu sắc từ dữ liệu hìnhảnh

Trong quá trình xử lý dữ liệu ảnh, các thuật toán trích xuất đặc trưngnhư Histogram of Oriented Gradients (HOG), Local Binary Patterns(LBP), và các mô hình trích xuất đặc trưng sâu hơn như VGG, ResNet,MobileNet được sử dụng để chuyển đổi hình ảnh thành các biểu diễn dữliệu phục vụ cho việc huấn luyện và dự đoán của mô hình nhận diện loàihoa Đây là một bước quan trọng trong quy trình khoa học dữ liệu nhằmchuẩn bị và trích xuất thông tin hữu ích từ dữ liệu hình ảnh

Bên cạnh đó, các thuật toán máy học phổ biến như Support VectorMachines (SVM), Decision Trees, Random Forests, và k-NearestNeighbors (k-NN) cũng được sử dụng để phân loại loài hoa dựa trên đặctrưng đã trích xuất từ ảnh Các thuật toán này có khả năng học từ dữ liệu vàxây dựng các mô hình phân loại hiệu quả, hỗ trợ quá trình nhận diện cácloài hoa khác nhau

Một kỹ thuật quan trọng khác trong khoa học dữ liệu là transferlearning, giúp tận dụng các mô hình đã được đào tạo sẵn từ các tác vụ khác.Các mô hình pre-trained như ResNet, VGG, và Inception, vốn đã đượchuấn luyện trên các tập dữ liệu lớn như ImageNet, có thể được tái sử dụng

và điều chỉnh cho phù hợp với bài toán nhận diện loài hoa, giúp tiết kiệmtài nguyên và thời gian huấn luyện

Ngoài ra, các kỹ thuật xử lý dữ liệu ảnh khác như xử lý dữ liệu khôngđồng nhất và tăng cường hình ảnh (image augmentation) được áp dụng đểtăng tính đa dạng của dữ liệu huấn luyện, nâng cao hiệu suất và độ chínhxác của mô hình nhận diện Những phương pháp này giúp mô hình họcđược tốt hơn từ dữ liệu và đạt được hiệu suất ổn định hơn khi áp dụng trêncác tập dữ liệu thực tế

Tóm lại, việc nhận diện loài hoa thông qua khoa học dữ liệu là mộtứng dụng kết hợp nhiều công cụ và kỹ thuật hiện đại, từ trích xuất đặctrưng, xử lý ảnh, học máy, đến deep learning, giúp phát triển một hệ thốngphân loại chính xác và có thể ứng dụng trong nhiều lĩnh vực thực tiễn nhưbảo tồn sinh học, giáo dục và nông nghiệp thông minh

b Cách giải quyết bài toán.

Trang 8

- Thu thập dữ liệu và chuẩn bị tập dữ liệu là bước đầu tiên Ứng dụngthu thập một tập dữ liệu ảnh của các loài hoa mục tiêu, bao gồm nhiều loài khác nhau và từ các góc độ và điều kiện khác nhau Sau

đó, dữ liệu được chuẩn bị bằng cách gán nhãn cho từng hình ảnh, xác định loài hoa mà mỗi hình ảnh đại diện

- Tiếp theo là bước trích xuất đặc trưng từ các hình ảnh hoa Ứng dụng sử dụng các kỹ thuật xử lý ảnh như Histogram of Oriented Gradients (HOG), Local Binary Patterns (LBP), hoặc sử dụng mạngnơ-ron sâu (deep neural networks) như Convolutional Neural

Networks (CNNs) để tự động học và trích xuất các đặc trưng quan trọng từ hình ảnh

hiện Ứng dụng chọn một mô hình máy học phù hợp như CNNs để xây dựng một mô hình nhận diện loài hoa từ các đặc trưng đã được trích xuất Tập dữ liệu được chia thành tập huấn luyện và tập kiểm tra để huấn luyện mô hình sao cho mô hình có khả năng phân loại chính xác các loài hoa dựa trên các đặc trưng đã trích xuất

muốn, ứng dụng triển khai mô hình vào các ứng dụng thực tế như các ứng dụng di động, các công cụ trực tuyến, hoặc các thiết bị đeo thông minh Mô hình được tích hợp vào các giao diện người dùng

để người dùng có thể chụp ảnh hoa và nhận được thông tin về loài hoa đó ngay lập tức

- Cuối cùng, quá trình cập nhật và duy trì mô hình là quan trọng Ứngdụng thường xuyên cập nhật và duy trì mô hình bằng cách thêm dữ liệu mới và điều chỉnh mô hình theo thời gian để nâng cao hiệu suất

và độ chính xác của việc nhận diện loài hoa

Trang 9

II Cơ sở lý thuyết.

1 Platform.

- Django là một framework phát triển web mạnh mẽ, linh hoạt và có thể

mở rộng, là lựa chọn lý tưởng cho việc xây dựng dự án nhận diện hoa của nhóm 16

- Ứng dụng web được xây dựng bằng Python, sử dụng Django để xử lý

các yêu cầu web và Keras để triển khai mô hình AI cho nhận diện hoa.Đây là một ứng dụng web AI tích hợp sẵn trên nền tảng Django

Hình 1: Django

2 Mô hình sử dụng.

a Thuật toán huấn luyện: Adam Optimizer.

- Về cơ bản, thuật toán tối ưu là cơ sở để xây dựng mô hình neural

network với mục đích "học" được các features (hay pattern) của dữ liệu đầu vào, từ đó có thể tìm 1 cặp weights và bias phù hợp để tối

ưu hóa model

- Không phải chỉ cần random (weights, bias) một số lần hữu hạn rồi

hy vọng ở một bước nào đó sẽ tìm được lời giải Cách làm này vừa không khả thi vừa lãng phí tài nguyên Thay vào đó, ta cần tìm một thuật toán giúp cải thiện weight và bias qua từng bước Đó cũng chính là lý do các thuật toán optimizer ra đời

Trang 10

Hình 2: Thuật toán tối ưu trên mạng nơ-ron

- Adam optimizer là một thuật toán tối ưu hóa phổ biến được sử dụng

trong quá trình huấn luyện mạng nơ-ron, đặc biệt là trong mạng họcsâu (deep learning) , giúp cải thiện hiệu suất và tăng tốc quá trình học

- Khi huấn luyện một mạng CNN hoặc FCN, chúng ta cần một thuật

toán tối ưu hóa để điều chỉnh các trọng số của mạng dựa trên đạo hàm của hàm mất mát Adam optimizer là một lựa chọn phổ biến trong việc thực hiện quá trình này

b Thư viện học sâu: Sequential model của Keras.

- Trong Keras có hỗ trợ hai cách dựng model là Sequential model và

Function API Nhóm 16 sử dụng Seqential

Hình 3: Mô hình Sequential của Keras.

- Sequential model là một trong những cách phổ biến nhất để xây

dựng và huấn luyện mạng nơ-ron trong Keras, một thư viện học sâu

Trang 11

được viết bằng Python Đây là một kiểu mô hình mạng nơ-ron tuyến tính, trong đó các lớp được xếp chồng lên nhau theo một thứ

tự tuần tự

c Kiến trúc mạng nơ-ron CNN.

- CNN được viết tắt của Convolutional Neural Network hay còn

được gọi là CNNS mạng nơ-ron tích chập, là một trong những mô hình Deep Learning cực kỳ tiên tiến, cho phép xây dựng những hệ thống có độ chính xác cao và thông minh

- Các lớp được xây dựng trong dự án: convolutional, pooling,

dropout, flatten và dense

Hình 4: Mô hình CNN.

d Thuật toán CNN.

- Lớp Conv2D: là lớp convolutional, một phần quan trọng của CNN,

được sử dụng để áp dụng các bộ lọc convolutional lên đầu vào để trích xuất các đặc trưng

- Đây chính là lớp đóng vai trò mấu chốt của CNN, khi layer này

đảm nhiệm việc thực hiện mọi tính toán Stride, padding, filter map,feature map là những yếu tố quan trọng nhất của convolutional layer

Trang 12

Hình 5: Cơ chế CNN

- Cơ chế của CNN là tạo ra các filter áp dụng vào từng vùng hình

ảnh Các filter map này được gọi là ma trận 3 chiều, bên trong chứa các parameter dưới dạng những con số

 Stride: là sự dịch chuyển filter map theo pixel dựa trên giá trị từ trái sang phải

 Padding: Là các giá trị 0 được thêm cùng lớp input

 Feature map: Sau mỗi lần quét, một quá trình tính toán sẽ được thực hiện Feature map sẽ thể hiện kết quả sau mỗi lần filter map quét qua input

- Lớp MaxPooling2D: Đây là lớp pooling, một phần của CNN, được

sử dụng để giảm kích thước của đầu ra từ các lớp convolutional và giữ lại các đặc trưng quan trọng

- Lớp Dropout: Lớp này giúp giảm overfitting trong quá trình huấn

luyện bằng cách loại bỏ một phần các nút ngẫu nhiên trong mạng

- Lớp Flatten: Lớp này được sử dụng để chuyển đổi các đầu ra từ

các lớp convolutional thành một vector 1D trước khi đưa vào các lớp fully connected

Trang 13

III Thực nghiệm, xây dựng và đánh giá.

1 Nguồn dữ liệu.

tảng lưu trữ và chia sẻ dữ liệu khoa học Tập dữ liệu sẽ lấy khoảng21,536 bức ảnh của 5 loại hoa chính: hướng dương, hoa hồng, tulip, hoa cúc và bồ công anh Mỗi loại hoa có khoảng 4300 ảnh

Hình 6: Nguồn dữ liệu.

Ngày đăng: 29/11/2024, 09:19

w