KẾT CẤU CỦA ĐỀ TÀI
Chương 1: Khảo sát hiện trạng
Trong chương 1, chúng tôi đã khảo sát một số ứng dụng tương tự để rút ra những bài học quý giá Qua đó, chúng tôi đã kết luận về những tiêu chí quan trọng mà ứng dụng cần đạt được nhằm đảm bảo hiệu quả và sự hài lòng của người dùng Chương 2 sẽ tập trung vào mô hình hóa và thiết kế cơ sở dữ liệu, là bước quan trọng để xây dựng nền tảng vững chắc cho ứng dụng.
2.2 Chi tiết các actor 2.3 Sơ đồ luồng dữ liệu và nghiệp vụ 2.4 Cơ sở dữ liệu
Chương 3: Thiết kế màn hình giao diện và xử lý
3.1 Các màn hình giao diện của guest 3.2 Các màn hình giao diện của user Chương 4: Lập trình
4.1 Sơ đồ lớp 4.2 Cấu trúc chương trình Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
5.1 Tổng quan về thư viện sử dụng 5.2 Giới thiệu thuật toán CNN 5.3 Giới thiệu về các CNN pre-trained models 5.4 Triển khai mô hình nhận diện hoa
Chương 6: Cài đặt và kiểm thử
6.1 Kế hoạch kiểm thử và quy trình kiểm thử 6.2 Thực hiện chạy các testcase
STT Thời gian Nhiệm vụ Ghi chú
- Mô hình hóa yêu cầu
- Tìm hiểu thư viện TensorFlow
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về React Native
- Tìm hiểu về Redux (thư viện quản lý trạng thái của ứng dụng)
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về Nodejs, ExpressJs
- Tìm hiểu và huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Tìm hiểu về cách xây dựng Restful API
- Xây dựng document Restful API của ứng dụng
(Tuần 9+10) - Xây dựng backend dựa trên document API
- Kiểm thử các chức năng
- Sửa các lỗi của ứng dụng
- Sửa các lỗi của ứng dụng
(Tuần 16) - Hoàn tất ứng dụng, báo cáo
10 Ý kiến của Giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 22
2 MỤC TIÊU CỦA ĐỀ TÀI 22
3 KẾT CẤU CỦA ĐỀ TÀI 23
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 24
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ 24
1.1.1 PlantNet: Nhận dạng thực vật [1] 24
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2] 26
1.1.3 PlantSnap - Nhận diện thực vật, hoa, cây [3] 27
1.2 KẾT LUẬN VỀ NHỮNG TIÊU CHÍ ỨNG DỤNG CẦN ĐẠT ĐƯỢC 32
2 CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 34 2.1 USECASE DIAGRAM 34
2.2.1.3 Danh sách các biểu mẫu 35
2.2.2.2 Danh sách các biểu mẫu 44
2.3 SƠ ĐỒ LUỒNG DỮ LIỆU VÀ CƠ SỞ DỮ LIỆU CÁC NGHIỆP VỤ 53
2.3.1 Các nghiệp vụ của Guest 53
2.3.1.1 Xét nghiệp vụ đăng nhập 53
2.3.2 Các nghiệp vụ của User 54
2.3.2.1 Xét nghiệp vụ Xem màn hình chính 55
2.3.2.2 Xét nghiệp vụ Xem chi tiết bài viết 55
2.3.2.3 Xét nghiệp vụ Viết bài 57
2.3.2.4 Xét nghiệp vụ Nhận diện loài hoa bằng hình ảnh 58
2.3.2.5 Xét nghiệp vụ Tìm kiếm loài hoa theo tên 60
2.3.2.6 Xét nghiệp vụ Xem thông tin chi tiết về loài hoa 61
2.3.2.7 Xét nghiệp vụ Xem thông tin tài khoản 63
2.3.2.8 Xét nghiệp vụ Chỉnh sửa thông tin tài khoản 64
2.4.1 Lược đồ cơ sở dữ liệu 65
2.4.2 Mô tả cơ sở dữ liệu 66
3 CHƯƠNG 3: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 70
3.1 CÁC MÀN HÌNH GIAO DIỆN CỦA GUEST (APP) 70
3.2 CÁC MÀN HÌNH GIAO DIỆN CỦA USER (APP) 71
3.2.2 Màn hình xem thông tin chi tiết bài viết 73
3.2.3 Màn hình tạo bài viết 75
3.2.4 Màn hình quản lý trang cá nhân 78
3.2.5 Màn hình chức năng tìm kiếm bằng hình ảnh 80
3.2.6 Màn hình giao diện chức năng tìm kiếm 82
4.1.1 MÔ TẢ CHI TIẾT TỪNG LỚP 88
4.2.1 Tổng quan về các công nghệ sử dụng (MERN STACK) [6] 91
4.2.1.2 Cơ sở dữ liệu Mongodb 93
4.2.2 Mô tả cấu trúc chương trình 95
5 CHƯƠNG 5: XÂY DỰNG MÔ HÌNH HỌC SÂU NHẬN DẠNG HOA 97
5.1 Tổng quan về thư viện sử dụng 97
5.1.1.3 Một vài khái niệm quan trọng trong TensorFlow 98
5.1.1.4 Các tính năng chính của TensorFlow 100
5.1.2.3 Keras models, losses, and optimizers 104
5.2 Giới thiệu về thuật toán CNN [9] 104
5.2.2 Mô hình CNN cho bài toán phân loại ảnh 105
5.3 Giới thiệu về các CNN pre-trained models [10] 113
5.4 Triển khai mô hình nhận diện hoa 118
5.4.2 Triển khai mô hình trên điện thoại với TensorFlow Lite 123
6 CHƯƠNG 6: KIỂM THỬ PHẦN MỀM 127
6.1 KẾ HOẠCH KIỂM THỬ VÀ QUY TRÌNH KIỂM THỬ 127
6.2 THỰC HIỆN CHẠY CÁC TESTCASE 128
6.2.2.3 Màn hình xem chi tiết thông tin hoa 130
6.2.2.4 Màn hình quản lý thông tin cá nhân 131
6.2.2.5 Màn hình chỉnh sửa thông tin cá nhân 132
6.2.2.6 Màn hình xem bài viết cá nhân 132
6.2.2.8 Màn hình tạo bài viết 134
6.2.2.9 Màn hình xem chi tiết bài viết 135
1 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 138
Hình 1-1 Giao diện ứng dụng PlantNet 25
Hình 1-2 Giao diện ứng dụng PictureThis 26
Hình 1-3 Giao diện ứng dụng PlantSnap 28
Hình 1-4 Giao diện ứng dụng iNaturalist 30
Hình 1-5 Giao diện ứng dụng Seek 32
Hình 2-2 Biểu mẫu đăng nhập 36
Hình 2-3 Biểu mẫu màn hình trang chủ 45
Hình 2-4 Biểu mẫu màn hình xem chi tiết bài viết 46
Hình 2-5 Biểu mẫu màn hình xem đóng góp 47
Hình 2-6 Biểu mẫu màn hình đóng góp 47
Hình 2-7 Biểu mẫu màn hình nhận diện hoa bằng hình ảnh 48
Hình 2-8 Biểu mẫu màn hình tìm kiếm hoa 48
Hình 2-9 Biểu mẫu màn hình xem thông tin chi tiết loài hoa 49
Hình 2-10 Biểu mẫu màn hình quản lý bài viết 49
Hình 2-11 Biểu mẫu màn hình viết bài 50
Hình 2-12 Biểu mẫu màn hình quản lý thông tin cá nhân 51
Hình 2-13 Biểu mẫu màn hình xem thông tin cá nhân 51
Hình 2-14 Biểu mẫu màn hình sửa thông tin cá nhân 52
Hình 2-15 Biểu mẫu màn hình đăng xuất 52
Hình 2-16 Sơ đồ luồn dữ liệu đăng nhập 53
Hình 2-17 Lược đồ sequence đăng nhập 54
Hình 2-18 Sơ đồ luồng dữ liệu màn hình trang chủ 55
Hình 2-19 Sơ đồ luồng dữ liệu xem chi tiết bài viết 56
Hình 2-20 Lược đồ sequence xem chi tiết bài viết 57
Hình 2-21 Sơ đồ luồng dữ liệu viết bài 57
Hình 2-22 Lược đồ sequence viết bài 58
Hình 2-23 Sơ đồ luồng dữ liệu nhận diện hoa bằng hình ảnh 59
Hình 2-24 Lược đồ sequence nhận diện hoa bằng hình ảnh 60
Hình 2-25 Sơ đồ luồng dữ liệu tìm kiếm hoa theo tên 60
Hình 2-26 Lược đồ sequence tìm kiếm hoa theo tên 61
Hình 2-27 Sơ đồ luồng dữ liệu xem chi tiết hoa 62
Hình 2-28 Lược đồ sequence xem chi tiết hoa 63
Hình 2-29 Sơ đồ luồng dữ liệu xem thông tin cá nhân 63
Hình 2-30 Sơ đồ luồng dữ liệu chỉnh sửa thông tin cá nhân 64
Hình 2-31 Lược đồ sequence chỉnh sửa thông tin cá nhân 65
Hình 3-1 Màn hình đăng nhập 70
Hình 3-2 Đánh số màn hình đăng nhập 71
Hình 3-3 Màn hình trang chủ 72
Hình 3-4 Đánh số màn hình trang chủ 72
Hình 3-5 Màn hình xem thông tin chi tiết bài viết 74
Hình 3-6 Đánh số màn hình xem chi tiết bài viết 74
Hình 3-7 Màn hình chức năng tạo bài viết 76
Hình 3-8 Đánh số màn hình chức năng tạo bài viết 77
Hình 3-9 Màn hình chức năng quản lý trang cá nhân 78
Hình 3-10 Đánh số màn hình quản lý trang cá nhân 79
Hình 3-11 Màn hình chức năng tìm kiếm bằng hình ảnh 80
Hình 3-12 Đánh số màn hình chức năng tìm kiếm bằng hình ảnh 81
Hình 3-13 Màn hình chức năng tìm kiếm 83
Hình 3-14 Đánh số màn hình chức năng tìm kiếm 84
Hình 3-15 Màn hình chức năng đóng góp 86
Hình 3-16 Đánh số màn hình chức năng đóng góp 86
Hình 4-2 Cấu trúc chương trình (MERN Stack) 92
Hình 4-3 Sơ đồ tổng quát cấu trúc chương trình 95
Hình 4-4 Xây dựng document API thống nhất cho từng chức năng cụ thể 95
Hình 5-4 Bài toán mô hình CNN 106
Hình 5-16 Kiến trúc của mobilenet model 117
Hình 5-17 Chuẩn bị dữ liệu 118
Hình 5-18 Chuẩn bị dữ liệu - 1 118
Hình 5-19 Kết nối google drive -2 119
Hình 5-20 Kết quả tăng cường dữ liệu 119
Hình 5-22 Khai thác tính năng 120
Hình 5-23 Khai thác tính năng - 1 121
Hình 5-24 Kết quả compile model 121
Hình 5-25 Kết quả compile model - 1 122
Hình 5-26 Huấn luyện mô hình 122
Hình 5-27 Chuyển đổi model từ TensorFlow sang TensorFlow Lite 123
Hình 6-2 Mẫu Testcase chi tiết 128
Hình 6-3 Mẫu thống kê chung 128
Hình 6-4 Testcase màn hình login 129
Hình 6-5 Testcase màn hình camera 129
Hình 6-6 Testcase màn hình nhận diện 130
Bài viết này trình bày các testcase quan trọng liên quan đến việc quản lý thông tin cá nhân và bài viết trên nền tảng Bao gồm các màn hình như xem chi tiết thông tin hoa, quản lý thông tin cá nhân, chỉnh sửa thông tin cá nhân, và xem bài viết cá nhân Ngoài ra, còn có các testcase cho trang chủ, tạo bài viết, xem chi tiết bài viết, đóng góp và tìm kiếm Cuối cùng, bài viết cũng cung cấp thống kê kết quả chạy testcase để đánh giá hiệu quả hoạt động của hệ thống.
Bài viết trình bày các bảng nghiệp vụ và quy định liên quan đến người dùng và khách, bao gồm bảng nghiệp vụ và quy định của guest và user Các bảng sơ đồ luồng dữ liệu (SDLDL) cho các nghiệp vụ như đăng nhập, xem màn hình chính, xem chi tiết bài viết, viết bài, nhận diện loài hoa bằng hình ảnh, tìm kiếm loài hoa theo tên, xem thông tin chi tiết về loài hoa, xem thông tin tài khoản, và chỉnh sửa thông tin tài khoản cũng được đề cập Bên cạnh đó, bài viết còn cung cấp các bảng cơ sở dữ liệu (CSDL) cho User, Post, Plant, ImagePlant và Contribute Cuối cùng, bài viết mô tả danh sách xử lý cho các màn hình như login, trang chủ, xem chi tiết bài viết, tạo bài viết, quản lý trang cá nhân, tìm kiếm hoa bằng hình ảnh, và chức năng đóng góp.
Bảng 4-6 trình bày phương pháp của lớp Plant, trong khi Bảng 4-7 và Bảng 4-8 lần lượt mô tả thuộc tính và phương pháp của lớp Contribute Bảng 5-1 nêu rõ lý do lựa chọn file nhỏ, và Bảng 5-2 cung cấp thống kê về tỷ lệ dự đoán của mô hình trên điện thoại.
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trí tuệ nhân tạo (AI) đang trở thành một phần thiết yếu trong nhiều lĩnh vực của cuộc sống con người, với sự phát triển mạnh mẽ và những đột phá ấn tượng trong thời gian gần đây Sự bùng nổ của AI không chỉ mang lại tiềm năng to lớn mà còn mở ra nhiều cơ hội mới cho sự tiến bộ và đổi mới trong xã hội.
AI là một trong những vấn đề trọng yếu của tương lai, với ứng dụng đa dạng và khả năng mở rộng nhờ vào cải tiến phần cứng máy tính Mặc dù công nghệ AI đang phát triển mạnh mẽ, việc ứng dụng AI tại Việt Nam vẫn còn hạn chế, đặc biệt trong giáo dục và nông nghiệp Học sinh thường tiếp thu kiến thức về thực vật một cách thụ động qua sách vở, trong khi AI có thể cung cấp thông tin phong phú hơn Nông dân và công nhân lâm nghiệp gặp khó khăn trong việc nhận diện giống cây lạ, ảnh hưởng đến môi trường Để giải quyết những vấn đề này, nhóm nghiên cứu quyết định xây dựng một ứng dụng nhận diện hoa bằng hình ảnh trên smartphone, nhằm cung cấp thông tin tức thì và hỗ trợ việc bảo tồn thiên nhiên.
2 MỤC TIÊU CỦA ĐỀ TÀI
Xây dựng một ứng dụng nhận diện hoa giúp người dùng dễ dàng tìm hiểu về các loài hoa mà không cần mang theo sách vở Ứng dụng này không chỉ thỏa mãn sự tò mò mà còn cung cấp thông tin tổng quan về loài hoa chỉ trong vài giây Người dùng sẽ nhận được tên khả dĩ của loài hoa cùng với hình ảnh độ phân giải cao và thông tin chi tiết.
Dự án nghiên cứu áp dụng công nghệ học sâu, trí tuệ nhân tạo và kỹ thuật học chuyển thông qua thư viện TensorFlow để xây dựng mô hình nhận diện 30 loài hoa Mục tiêu đặt ra là đạt tỷ lệ chính xác trên 85% cho mô hình Sau khi đào tạo, mô hình sẽ được triển khai trên ứng dụng di động cho hệ điều hành Android, với kỳ vọng tỷ lệ dự đoán chính xác trên ứng dụng đạt 80%.
Xây dựng một hệ thống đóng góp thông tin để làm phong phú cơ sở dữ liệu bằng cách cho phép người dùng đăng tải bài viết, hình ảnh và thông tin về các loài hoa Việc thu thập dữ liệu từ người dùng sẽ tăng cường sự đa dạng và độ chính xác cho tính năng nhận diện hoa.
Thực hiện thử nghiệm và phân tích các chỉ số ảnh hưởng đến độ chính xác của mô hình, đồng thời so sánh tỷ lệ nhận diện chính xác giữa mô hình trước và sau khi được triển khai trên điện thoại thông minh.
2.3 Phương pháp nghiên cứu của luận án
Nghiên cứu lý thuyết kết hợp với đào tạo, thử nghiêm trên máy tính và điện thoại thông minh
2.4 Phạm vi nghiên cứu của luận án Đối tượng nhận diện chủ đạo là hoa
3 KẾT CẤU CỦA ĐỀ TÀI Đề tài bao gồm 5 chương:
- Chương 1: Khảo sát hiện trạng
- Chương 2: Mô hình hóa yêu cầu và thiết kế CSDL
- Chương 3: Thiết kế giao diện và xử lý
- Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
- Chương 6: Kiểm thử phần mềm
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG
KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ
2.2 Chi tiết các actor 2.3 Sơ đồ luồng dữ liệu và nghiệp vụ 2.4 Cơ sở dữ liệu
Chương 3: Thiết kế màn hình giao diện và xử lý
3.1 Các màn hình giao diện của guest 3.2 Các màn hình giao diện của user Chương 4: Lập trình
4.1 Sơ đồ lớp 4.2 Cấu trúc chương trình Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
5.1 Tổng quan về thư viện sử dụng 5.2 Giới thiệu thuật toán CNN 5.3 Giới thiệu về các CNN pre-trained models 5.4 Triển khai mô hình nhận diện hoa
Chương 6: Cài đặt và kiểm thử
6.1 Kế hoạch kiểm thử và quy trình kiểm thử 6.2 Thực hiện chạy các testcase
STT Thời gian Nhiệm vụ Ghi chú
- Mô hình hóa yêu cầu
- Tìm hiểu thư viện TensorFlow
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về React Native
- Tìm hiểu về Redux (thư viện quản lý trạng thái của ứng dụng)
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về Nodejs, ExpressJs
- Tìm hiểu và huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Tìm hiểu về cách xây dựng Restful API
- Xây dựng document Restful API của ứng dụng
(Tuần 9+10) - Xây dựng backend dựa trên document API
- Kiểm thử các chức năng
- Sửa các lỗi của ứng dụng
- Sửa các lỗi của ứng dụng
(Tuần 16) - Hoàn tất ứng dụng, báo cáo
10 Ý kiến của Giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 22
2 MỤC TIÊU CỦA ĐỀ TÀI 22
3 KẾT CẤU CỦA ĐỀ TÀI 23
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 24
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ 24
1.1.1 PlantNet: Nhận dạng thực vật [1] 24
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2] 26
1.1.3 PlantSnap - Nhận diện thực vật, hoa, cây [3] 27
1.2 KẾT LUẬN VỀ NHỮNG TIÊU CHÍ ỨNG DỤNG CẦN ĐẠT ĐƯỢC 32
2 CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 34 2.1 USECASE DIAGRAM 34
2.2.1.3 Danh sách các biểu mẫu 35
2.2.2.2 Danh sách các biểu mẫu 44
2.3 SƠ ĐỒ LUỒNG DỮ LIỆU VÀ CƠ SỞ DỮ LIỆU CÁC NGHIỆP VỤ 53
2.3.1 Các nghiệp vụ của Guest 53
2.3.1.1 Xét nghiệp vụ đăng nhập 53
2.3.2 Các nghiệp vụ của User 54
2.3.2.1 Xét nghiệp vụ Xem màn hình chính 55
2.3.2.2 Xét nghiệp vụ Xem chi tiết bài viết 55
2.3.2.3 Xét nghiệp vụ Viết bài 57
2.3.2.4 Xét nghiệp vụ Nhận diện loài hoa bằng hình ảnh 58
2.3.2.5 Xét nghiệp vụ Tìm kiếm loài hoa theo tên 60
2.3.2.6 Xét nghiệp vụ Xem thông tin chi tiết về loài hoa 61
2.3.2.7 Xét nghiệp vụ Xem thông tin tài khoản 63
2.3.2.8 Xét nghiệp vụ Chỉnh sửa thông tin tài khoản 64
2.4.1 Lược đồ cơ sở dữ liệu 65
2.4.2 Mô tả cơ sở dữ liệu 66
3 CHƯƠNG 3: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 70
3.1 CÁC MÀN HÌNH GIAO DIỆN CỦA GUEST (APP) 70
3.2 CÁC MÀN HÌNH GIAO DIỆN CỦA USER (APP) 71
3.2.2 Màn hình xem thông tin chi tiết bài viết 73
3.2.3 Màn hình tạo bài viết 75
3.2.4 Màn hình quản lý trang cá nhân 78
3.2.5 Màn hình chức năng tìm kiếm bằng hình ảnh 80
3.2.6 Màn hình giao diện chức năng tìm kiếm 82
4.1.1 MÔ TẢ CHI TIẾT TỪNG LỚP 88
4.2.1 Tổng quan về các công nghệ sử dụng (MERN STACK) [6] 91
4.2.1.2 Cơ sở dữ liệu Mongodb 93
4.2.2 Mô tả cấu trúc chương trình 95
5 CHƯƠNG 5: XÂY DỰNG MÔ HÌNH HỌC SÂU NHẬN DẠNG HOA 97
5.1 Tổng quan về thư viện sử dụng 97
5.1.1.3 Một vài khái niệm quan trọng trong TensorFlow 98
5.1.1.4 Các tính năng chính của TensorFlow 100
5.1.2.3 Keras models, losses, and optimizers 104
5.2 Giới thiệu về thuật toán CNN [9] 104
5.2.2 Mô hình CNN cho bài toán phân loại ảnh 105
5.3 Giới thiệu về các CNN pre-trained models [10] 113
5.4 Triển khai mô hình nhận diện hoa 118
5.4.2 Triển khai mô hình trên điện thoại với TensorFlow Lite 123
6 CHƯƠNG 6: KIỂM THỬ PHẦN MỀM 127
6.1 KẾ HOẠCH KIỂM THỬ VÀ QUY TRÌNH KIỂM THỬ 127
6.2 THỰC HIỆN CHẠY CÁC TESTCASE 128
6.2.2.3 Màn hình xem chi tiết thông tin hoa 130
6.2.2.4 Màn hình quản lý thông tin cá nhân 131
6.2.2.5 Màn hình chỉnh sửa thông tin cá nhân 132
6.2.2.6 Màn hình xem bài viết cá nhân 132
6.2.2.8 Màn hình tạo bài viết 134
6.2.2.9 Màn hình xem chi tiết bài viết 135
1 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 138
Hình 1-1 Giao diện ứng dụng PlantNet 25
Hình 1-2 Giao diện ứng dụng PictureThis 26
Hình 1-3 Giao diện ứng dụng PlantSnap 28
Hình 1-4 Giao diện ứng dụng iNaturalist 30
Hình 1-5 Giao diện ứng dụng Seek 32
Hình 2-2 Biểu mẫu đăng nhập 36
Hình 2-3 Biểu mẫu màn hình trang chủ 45
Hình 2-4 Biểu mẫu màn hình xem chi tiết bài viết 46
Hình 2-5 Biểu mẫu màn hình xem đóng góp 47
Hình 2-6 Biểu mẫu màn hình đóng góp 47
Hình 2-7 Biểu mẫu màn hình nhận diện hoa bằng hình ảnh 48
Hình 2-8 Biểu mẫu màn hình tìm kiếm hoa 48
Hình 2-9 Biểu mẫu màn hình xem thông tin chi tiết loài hoa 49
Hình 2-10 Biểu mẫu màn hình quản lý bài viết 49
Hình 2-11 Biểu mẫu màn hình viết bài 50
Hình 2-12 Biểu mẫu màn hình quản lý thông tin cá nhân 51
Hình 2-13 Biểu mẫu màn hình xem thông tin cá nhân 51
Hình 2-14 Biểu mẫu màn hình sửa thông tin cá nhân 52
Hình 2-15 Biểu mẫu màn hình đăng xuất 52
Hình 2-16 Sơ đồ luồn dữ liệu đăng nhập 53
Hình 2-17 Lược đồ sequence đăng nhập 54
Hình 2-18 Sơ đồ luồng dữ liệu màn hình trang chủ 55
Hình 2-19 Sơ đồ luồng dữ liệu xem chi tiết bài viết 56
Hình 2-20 Lược đồ sequence xem chi tiết bài viết 57
Hình 2-21 Sơ đồ luồng dữ liệu viết bài 57
Hình 2-22 Lược đồ sequence viết bài 58
Hình 2-23 Sơ đồ luồng dữ liệu nhận diện hoa bằng hình ảnh 59
Hình 2-24 Lược đồ sequence nhận diện hoa bằng hình ảnh 60
Hình 2-25 Sơ đồ luồng dữ liệu tìm kiếm hoa theo tên 60
Hình 2-26 Lược đồ sequence tìm kiếm hoa theo tên 61
Hình 2-27 Sơ đồ luồng dữ liệu xem chi tiết hoa 62
Hình 2-28 Lược đồ sequence xem chi tiết hoa 63
Hình 2-29 Sơ đồ luồng dữ liệu xem thông tin cá nhân 63
Hình 2-30 Sơ đồ luồng dữ liệu chỉnh sửa thông tin cá nhân 64
Hình 2-31 Lược đồ sequence chỉnh sửa thông tin cá nhân 65
Hình 3-1 Màn hình đăng nhập 70
Hình 3-2 Đánh số màn hình đăng nhập 71
Hình 3-3 Màn hình trang chủ 72
Hình 3-4 Đánh số màn hình trang chủ 72
Hình 3-5 Màn hình xem thông tin chi tiết bài viết 74
Hình 3-6 Đánh số màn hình xem chi tiết bài viết 74
Hình 3-7 Màn hình chức năng tạo bài viết 76
Hình 3-8 Đánh số màn hình chức năng tạo bài viết 77
Hình 3-9 Màn hình chức năng quản lý trang cá nhân 78
Hình 3-10 Đánh số màn hình quản lý trang cá nhân 79
Hình 3-11 Màn hình chức năng tìm kiếm bằng hình ảnh 80
Hình 3-12 Đánh số màn hình chức năng tìm kiếm bằng hình ảnh 81
Hình 3-13 Màn hình chức năng tìm kiếm 83
Hình 3-14 Đánh số màn hình chức năng tìm kiếm 84
Hình 3-15 Màn hình chức năng đóng góp 86
Hình 3-16 Đánh số màn hình chức năng đóng góp 86
Hình 4-2 Cấu trúc chương trình (MERN Stack) 92
Hình 4-3 Sơ đồ tổng quát cấu trúc chương trình 95
Hình 4-4 Xây dựng document API thống nhất cho từng chức năng cụ thể 95
Hình 5-4 Bài toán mô hình CNN 106
Hình 5-16 Kiến trúc của mobilenet model 117
Hình 5-17 Chuẩn bị dữ liệu 118
Hình 5-18 Chuẩn bị dữ liệu - 1 118
Hình 5-19 Kết nối google drive -2 119
Hình 5-20 Kết quả tăng cường dữ liệu 119
Hình 5-22 Khai thác tính năng 120
Hình 5-23 Khai thác tính năng - 1 121
Hình 5-24 Kết quả compile model 121
Hình 5-25 Kết quả compile model - 1 122
Hình 5-26 Huấn luyện mô hình 122
Hình 5-27 Chuyển đổi model từ TensorFlow sang TensorFlow Lite 123
Hình 6-2 Mẫu Testcase chi tiết 128
Hình 6-3 Mẫu thống kê chung 128
Hình 6-4 Testcase màn hình login 129
Hình 6-5 Testcase màn hình camera 129
Hình 6-6 Testcase màn hình nhận diện 130
Trong bài viết này, chúng tôi trình bày các testcase quan trọng liên quan đến việc quản lý thông tin cá nhân và nội dung bài viết Các testcase bao gồm màn hình xem chi tiết thông tin hoa, quản lý thông tin cá nhân, chỉnh sửa thông tin cá nhân, xem bài viết cá nhân, trang chủ, tạo bài viết, xem chi tiết bài viết, đóng góp, tìm kiếm và thống kê kết quả chạy testcase Những testcase này giúp đảm bảo tính chính xác và hiệu quả trong quá trình phát triển hệ thống.
Bảng 2-1 đến Bảng 2-18 trình bày các nghiệp vụ và quy định liên quan đến guest và user, bao gồm sơ đồ luồng dữ liệu cho các nghiệp vụ như đăng nhập, xem màn hình chính, viết bài và nhận diện loài hoa Các bảng CSDL User, Post, Plant, ImagePlant và Contribute được liệt kê từ Bảng 2-14 đến Bảng 2-18 Bảng 3-1 đến Bảng 3-8 mô tả danh sách xử lý cho các màn hình như login, trang chủ, xem chi tiết bài viết, tạo bài viết, quản lý trang cá nhân và tìm kiếm hoa bằng hình ảnh Cuối cùng, Bảng 4-1 đến Bảng 4-5 cung cấp thông tin về thuộc tính và phương thức của các lớp như post, user và plant.
Bảng 4-6 trình bày phương pháp của lớp Plant, trong khi Bảng 4-7 mô tả thuộc tính của lớp Contribute Bảng 4-8 tiếp tục với các phương pháp của lớp Contribute Bảng 5-1 nêu rõ lý do vì sao các file nhỏ được ưu tiên lựa chọn, và Bảng 5-2 cung cấp thống kê về tỷ lệ dự đoán của mô hình trên điện thoại.
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trí tuệ nhân tạo (AI) đang trở thành một phần không thể thiếu trong mọi lĩnh vực của cuộc sống con người Sự bùng nổ và những đột phá ấn tượng của AI hiện nay không thể bị phủ nhận.
AI là một vấn đề quan trọng cho tương lai, với nhiều ứng dụng đa dạng và khả năng mở rộng nhờ vào những cải tiến trong phần cứng máy tính Tuy nhiên, việc áp dụng công nghệ AI tại Việt Nam còn hạn chế, đặc biệt trong lĩnh vực giáo dục và nông nghiệp Học sinh thường tiếp thu kiến thức về thực vật một cách thụ động từ sách vở, trong khi AI có thể cung cấp thông tin phong phú hơn Nông dân và công nhân lâm nghiệp gặp khó khăn trong việc nhận diện cây lạ, ảnh hưởng đến môi trường tự nhiên Để giải quyết những vấn đề này, nhóm nghiên cứu đã quyết định xây dựng một ứng dụng nhận diện hoa thông qua hình ảnh trên smartphone, nhằm hỗ trợ người dùng trong việc nhận diện thực vật ngay lập tức.
2 MỤC TIÊU CỦA ĐỀ TÀI
Chương trình nhận diện hoa giúp người dùng dễ dàng tìm hiểu về một loài hoa mà không cần mang theo sách vở Ứng dụng này thỏa mãn sự tò mò và chỉ trong vài giây, điện thoại sẽ cung cấp tên, hình ảnh độ phân giải cao và thông tin chi tiết về loài hoa đó.
2.2 Nội dung nghiên cứu của dự án Áp dụng công nghệ học sâu, trí tuệ nhân tạo và kỹ thuật học chuyển với thư viện TensorFlow bước đầu xây dựng model nhận diện một số loài hoa (bắt đầu với 30 loài) Với kỳ vọng tỷ lệ chính xác của model trên 85% Áp dụng model đã đào tạo vào chương trình trên điện thoại (hệ điều hành android) với kỳ vọng tỷ lệ dự đoán chính xác trên ứng dụng là 80%
Xây dựng hệ thống đóng góp thông tin nhằm làm phong phú cơ sở dữ liệu bằng cách cho phép người dùng đăng tải bài viết, hình ảnh và thông tin về các loài hoa Việc thu thập dữ liệu từ người dùng sẽ tăng cường sự đa dạng và độ chính xác của tính năng nhận diện.
Thực hiện thử nghiệm và phân tích các chỉ số ảnh hưởng đến độ chính xác của mô hình, đồng thời so sánh tỷ lệ nhận diện chính xác giữa mô hình trước và sau khi áp dụng trên điện thoại thông minh.
2.3 Phương pháp nghiên cứu của luận án
Nghiên cứu lý thuyết kết hợp với đào tạo, thử nghiêm trên máy tính và điện thoại thông minh
2.4 Phạm vi nghiên cứu của luận án Đối tượng nhận diện chủ đạo là hoa
3 KẾT CẤU CỦA ĐỀ TÀI Đề tài bao gồm 5 chương:
- Chương 1: Khảo sát hiện trạng
- Chương 2: Mô hình hóa yêu cầu và thiết kế CSDL
- Chương 3: Thiết kế giao diện và xử lý
- Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
- Chương 6: Kiểm thử phần mềm
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ
1.1.1 PlantNet: Nhận dạng thực vật [1]
PlantNet là một sáng kiến nghiên cứu và giáo dục về đa dạng sinh học thực vật, được hỗ trợ bởi Quỹ Agropolis từ năm 2009 Để đảm bảo tính bền vững, sáng kiến này cần sự hỗ trợ từ cả con người và công nghệ, cùng với sự tham gia của người dùng Để duy trì các ứng dụng PlantNet miễn phí, không có quảng cáo và dễ dàng tiếp cận cho mọi người, các nhà sáng lập đang triển khai một chiến dịch quyên góp nhằm thu hút sự hỗ trợ cho sáng kiến Chiến dịch này sẽ giúp đánh giá mô hình kinh tế và cân bằng giữa sự phát triển tương lai với các khoản đóng góp.
PlantNet là một hành trình khám phá độc đáo kết hợp khoa học, con người và giáo dục thông qua những công nghệ tiên tiến Ứng dụng này giúp người dùng tìm hiểu và khám phá thế giới thực vật theo cách riêng của họ.
Các khoản quyên góp cho PlantNet được thu thập bởi Quỹ Agropolis, một nền tảng hợp tác khoa học của Pháp được công nhận là tiện ích công cộng Mục đích của quỹ là hỗ trợ các tổ chức công cộng thực hiện các dự án khoa học Ứng dụng PlantNet đã đạt hơn 10 triệu lượt tải về trên Google Play.
Link Android: https://play.google.com/store/apps/details?id=org.plantnet&fbclid=IwAR2X50o5BG6fTPE9diVQdfm5g5DL-Td_G_msGX-k99klcadRh6CR1pCZ3jE
Hình 1-1 Giao diện ứng dụng PlantNet
PlantNet là một ứng dụng hữu ích giúp người dùng nhanh chóng nhận diện và hiểu biết về các loại thực vật trong tự nhiên, bao gồm thực vật có hoa, cây, cỏ, cây lá kim, dương xỉ, dây leo và xương rồng Ứng dụng này cung cấp khả năng lọc các loài thực vật theo chi hoặc họ, hỗ trợ các nhà nghiên cứu trong việc kiểm soát và bảo vệ các loài quý hiếm Việc xác nhận và duyệt các quan sát từ người dùng cũng giúp nâng cao độ chính xác trong nhận diện và làm phong phú dữ liệu Chức năng nhận dạng đa hệ thực vật cho phép người dùng tìm kiếm các loại cây trong toàn bộ hệ thực vật của ứng dụng, rất hữu ích cho việc nghiên cứu Ngoài ra, ứng dụng còn liên kết đến nhiều nguồn thông tin khác nhau, cung cấp thêm kiến thức cho người dùng về loài thực vật mà họ đang tìm kiếm.
- Giao diện: Ứng dụng được thiết kế cho hầu hết mọi người đều có thể sử dụng được với bố cục trực quan dễ nhìn
- Chức năng: Hiện tại PlantNet cho phép nhận ra khoảng 20.000 loài, vẫn còn rất xa so với 360.000 loài sống trên trái đất
- Giao diện: Ứng dụng vẫn chưa tương thích với đa ngôn ngữ, các tiêu đề chưa được làm rõ để tạo hiệu ứng tương tác tốt với người dùng
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2]
PictureThis là một ứng dụng cho phép người dùng chụp ảnh cây và hoa để nhận diện, hoạt động như một bách khoa toàn thư thực vật với khả năng nhận ra hơn 10.000 loại thực vật khác nhau Người dùng có thể tìm hiểu thông tin về các loài cũng như cách chăm sóc cho cây, hoa và cây bụi Phiên bản miễn phí của ứng dụng yêu cầu người dùng xem quảng cáo, đăng nhập vào tài khoản và chia sẻ ảnh trên Facebook Ứng dụng có dung lượng 25MB và đã đạt hơn 5 triệu lượt tải về trên Google Play.
Link Android: https://play.google.com/store/apps/details?id=cn.danatech.xingseus
Hình 1-2 Giao diện ứng dụng PictureThis
Ứng dụng PictureThis cho phép người dùng xác định thực vật thông qua hình ảnh, đồng thời tích hợp bản đồ phân bố thực vật dựa trên định vị Nhờ vào tính năng này, người dùng có thể dễ dàng xác định và tìm hiểu về các loài thực vật trong từng khu vực cụ thể.
27 tích hợp các đề xuất chăm sóc thực vật; các đề xuất dữ liệu chia sẻ trực tiếp từ người dùng
KẾT LUẬN VỀ NHỮNG TIÊU CHÍ ỨNG DỤNG CẦN ĐẠT ĐƯỢC
Dựa trên các khảo sát, nhóm nghiên cứu nhận định rằng để phát triển một ứng dụng nhận diện hoa qua hình ảnh hiệu quả, cần đảm bảo các yếu tố quan trọng sau: chất lượng hình ảnh cao, thuật toán nhận diện chính xác, cơ sở dữ liệu phong phú và giao diện thân thiện với người dùng.
Ứng dụng cần có khả năng nhận diện loài thực vật qua hình ảnh từ camera smartphone hoặc từ nguồn sưu tầm của người dùng với độ chính xác cao Các thư viện hình ảnh phải được xác minh và xây dựng thành một cộng đồng đánh giá nhằm đảm bảo tính khách quan Thông tin về loài hoa cung cấp cho người dùng cần phải được thu thập từ các nguồn đáng tin cậy Để nâng cao độ phong phú và chính xác của dữ liệu, ứng dụng nên cho phép người dùng đóng góp thông tin.
Giao diện nên được thiết kế trực quan và bắt mắt, dễ dàng thao tác và sử dụng Hình ảnh cần sinh động nhưng không quá phức tạp, đồng thời thông tin về loài cần phải đầy đủ và chính xác Trước mắt, việc xây dựng nội dung nên tập trung vào ngôn ngữ tiếng Việt, sau đó mở rộng sang các ngôn ngữ khác.
Nhóm sẽ phát triển một ứng dụng nhận diện hoa bằng hình ảnh chất lượng cao, tập trung vào việc khắc phục những nhược điểm của các ứng dụng hiện có và tối ưu hóa những ưu điểm đã được khảo sát Mục tiêu là cung cấp cho người dùng khả năng tiếp cận nguồn dữ liệu phong phú và chính xác nhất.
CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 34 1 USECASE DIAGRAM
CHI TIẾT CÁC ACTOR
Chương 3: Thiết kế màn hình giao diện và xử lý
3.1 Các màn hình giao diện của guest 3.2 Các màn hình giao diện của user Chương 4: Lập trình
4.1 Sơ đồ lớp 4.2 Cấu trúc chương trình Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
5.1 Tổng quan về thư viện sử dụng 5.2 Giới thiệu thuật toán CNN 5.3 Giới thiệu về các CNN pre-trained models 5.4 Triển khai mô hình nhận diện hoa
Chương 6: Cài đặt và kiểm thử
6.1 Kế hoạch kiểm thử và quy trình kiểm thử 6.2 Thực hiện chạy các testcase
STT Thời gian Nhiệm vụ Ghi chú
- Mô hình hóa yêu cầu
- Tìm hiểu thư viện TensorFlow
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về React Native
- Tìm hiểu về Redux (thư viện quản lý trạng thái của ứng dụng)
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về Nodejs, ExpressJs
- Tìm hiểu và huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Tìm hiểu về cách xây dựng Restful API
- Xây dựng document Restful API của ứng dụng
(Tuần 9+10) - Xây dựng backend dựa trên document API
- Kiểm thử các chức năng
- Sửa các lỗi của ứng dụng
- Sửa các lỗi của ứng dụng
(Tuần 16) - Hoàn tất ứng dụng, báo cáo
10 Ý kiến của Giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 22
2 MỤC TIÊU CỦA ĐỀ TÀI 22
3 KẾT CẤU CỦA ĐỀ TÀI 23
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 24
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ 24
1.1.1 PlantNet: Nhận dạng thực vật [1] 24
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2] 26
1.1.3 PlantSnap - Nhận diện thực vật, hoa, cây [3] 27
1.2 KẾT LUẬN VỀ NHỮNG TIÊU CHÍ ỨNG DỤNG CẦN ĐẠT ĐƯỢC 32
2 CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 34 2.1 USECASE DIAGRAM 34
2.2.1.3 Danh sách các biểu mẫu 35
2.2.2.2 Danh sách các biểu mẫu 44
2.3 SƠ ĐỒ LUỒNG DỮ LIỆU VÀ CƠ SỞ DỮ LIỆU CÁC NGHIỆP VỤ 53
2.3.1 Các nghiệp vụ của Guest 53
2.3.1.1 Xét nghiệp vụ đăng nhập 53
2.3.2 Các nghiệp vụ của User 54
2.3.2.1 Xét nghiệp vụ Xem màn hình chính 55
2.3.2.2 Xét nghiệp vụ Xem chi tiết bài viết 55
2.3.2.3 Xét nghiệp vụ Viết bài 57
2.3.2.4 Xét nghiệp vụ Nhận diện loài hoa bằng hình ảnh 58
2.3.2.5 Xét nghiệp vụ Tìm kiếm loài hoa theo tên 60
2.3.2.6 Xét nghiệp vụ Xem thông tin chi tiết về loài hoa 61
2.3.2.7 Xét nghiệp vụ Xem thông tin tài khoản 63
2.3.2.8 Xét nghiệp vụ Chỉnh sửa thông tin tài khoản 64
2.4.1 Lược đồ cơ sở dữ liệu 65
2.4.2 Mô tả cơ sở dữ liệu 66
3 CHƯƠNG 3: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 70
3.1 CÁC MÀN HÌNH GIAO DIỆN CỦA GUEST (APP) 70
3.2 CÁC MÀN HÌNH GIAO DIỆN CỦA USER (APP) 71
3.2.2 Màn hình xem thông tin chi tiết bài viết 73
3.2.3 Màn hình tạo bài viết 75
3.2.4 Màn hình quản lý trang cá nhân 78
3.2.5 Màn hình chức năng tìm kiếm bằng hình ảnh 80
3.2.6 Màn hình giao diện chức năng tìm kiếm 82
4.1.1 MÔ TẢ CHI TIẾT TỪNG LỚP 88
4.2.1 Tổng quan về các công nghệ sử dụng (MERN STACK) [6] 91
4.2.1.2 Cơ sở dữ liệu Mongodb 93
4.2.2 Mô tả cấu trúc chương trình 95
5 CHƯƠNG 5: XÂY DỰNG MÔ HÌNH HỌC SÂU NHẬN DẠNG HOA 97
5.1 Tổng quan về thư viện sử dụng 97
5.1.1.3 Một vài khái niệm quan trọng trong TensorFlow 98
5.1.1.4 Các tính năng chính của TensorFlow 100
5.1.2.3 Keras models, losses, and optimizers 104
5.2 Giới thiệu về thuật toán CNN [9] 104
5.2.2 Mô hình CNN cho bài toán phân loại ảnh 105
5.3 Giới thiệu về các CNN pre-trained models [10] 113
5.4 Triển khai mô hình nhận diện hoa 118
5.4.2 Triển khai mô hình trên điện thoại với TensorFlow Lite 123
6 CHƯƠNG 6: KIỂM THỬ PHẦN MỀM 127
6.1 KẾ HOẠCH KIỂM THỬ VÀ QUY TRÌNH KIỂM THỬ 127
6.2 THỰC HIỆN CHẠY CÁC TESTCASE 128
6.2.2.3 Màn hình xem chi tiết thông tin hoa 130
6.2.2.4 Màn hình quản lý thông tin cá nhân 131
6.2.2.5 Màn hình chỉnh sửa thông tin cá nhân 132
6.2.2.6 Màn hình xem bài viết cá nhân 132
6.2.2.8 Màn hình tạo bài viết 134
6.2.2.9 Màn hình xem chi tiết bài viết 135
1 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 138
Hình 1-1 Giao diện ứng dụng PlantNet 25
Hình 1-2 Giao diện ứng dụng PictureThis 26
Hình 1-3 Giao diện ứng dụng PlantSnap 28
Hình 1-4 Giao diện ứng dụng iNaturalist 30
Hình 1-5 Giao diện ứng dụng Seek 32
Hình 2-2 Biểu mẫu đăng nhập 36
Hình 2-3 Biểu mẫu màn hình trang chủ 45
Hình 2-4 Biểu mẫu màn hình xem chi tiết bài viết 46
Hình 2-5 Biểu mẫu màn hình xem đóng góp 47
Hình 2-6 Biểu mẫu màn hình đóng góp 47
Hình 2-7 Biểu mẫu màn hình nhận diện hoa bằng hình ảnh 48
Hình 2-8 Biểu mẫu màn hình tìm kiếm hoa 48
Hình 2-9 Biểu mẫu màn hình xem thông tin chi tiết loài hoa 49
Hình 2-10 Biểu mẫu màn hình quản lý bài viết 49
Hình 2-11 Biểu mẫu màn hình viết bài 50
Hình 2-12 Biểu mẫu màn hình quản lý thông tin cá nhân 51
Hình 2-13 Biểu mẫu màn hình xem thông tin cá nhân 51
Hình 2-14 Biểu mẫu màn hình sửa thông tin cá nhân 52
Hình 2-15 Biểu mẫu màn hình đăng xuất 52
Hình 2-16 Sơ đồ luồn dữ liệu đăng nhập 53
Hình 2-17 Lược đồ sequence đăng nhập 54
Hình 2-18 Sơ đồ luồng dữ liệu màn hình trang chủ 55
Hình 2-19 Sơ đồ luồng dữ liệu xem chi tiết bài viết 56
Hình 2-20 Lược đồ sequence xem chi tiết bài viết 57
Hình 2-21 Sơ đồ luồng dữ liệu viết bài 57
Hình 2-22 Lược đồ sequence viết bài 58
Hình 2-23 Sơ đồ luồng dữ liệu nhận diện hoa bằng hình ảnh 59
Hình 2-24 Lược đồ sequence nhận diện hoa bằng hình ảnh 60
Hình 2-25 Sơ đồ luồng dữ liệu tìm kiếm hoa theo tên 60
Hình 2-26 Lược đồ sequence tìm kiếm hoa theo tên 61
Hình 2-27 Sơ đồ luồng dữ liệu xem chi tiết hoa 62
Hình 2-28 Lược đồ sequence xem chi tiết hoa 63
Hình 2-29 Sơ đồ luồng dữ liệu xem thông tin cá nhân 63
Hình 2-30 Sơ đồ luồng dữ liệu chỉnh sửa thông tin cá nhân 64
Hình 2-31 Lược đồ sequence chỉnh sửa thông tin cá nhân 65
Hình 3-1 Màn hình đăng nhập 70
Hình 3-2 Đánh số màn hình đăng nhập 71
Hình 3-3 Màn hình trang chủ 72
Hình 3-4 Đánh số màn hình trang chủ 72
Hình 3-5 Màn hình xem thông tin chi tiết bài viết 74
Hình 3-6 Đánh số màn hình xem chi tiết bài viết 74
Hình 3-7 Màn hình chức năng tạo bài viết 76
Hình 3-8 Đánh số màn hình chức năng tạo bài viết 77
Hình 3-9 Màn hình chức năng quản lý trang cá nhân 78
Hình 3-10 Đánh số màn hình quản lý trang cá nhân 79
Hình 3-11 Màn hình chức năng tìm kiếm bằng hình ảnh 80
Hình 3-12 Đánh số màn hình chức năng tìm kiếm bằng hình ảnh 81
Hình 3-13 Màn hình chức năng tìm kiếm 83
Hình 3-14 Đánh số màn hình chức năng tìm kiếm 84
Hình 3-15 Màn hình chức năng đóng góp 86
Hình 3-16 Đánh số màn hình chức năng đóng góp 86
Hình 4-2 Cấu trúc chương trình (MERN Stack) 92
Hình 4-3 Sơ đồ tổng quát cấu trúc chương trình 95
Hình 4-4 Xây dựng document API thống nhất cho từng chức năng cụ thể 95
Hình 5-4 Bài toán mô hình CNN 106
Hình 5-16 Kiến trúc của mobilenet model 117
Hình 5-17 Chuẩn bị dữ liệu 118
Hình 5-18 Chuẩn bị dữ liệu - 1 118
Hình 5-19 Kết nối google drive -2 119
Hình 5-20 Kết quả tăng cường dữ liệu 119
Hình 5-22 Khai thác tính năng 120
Hình 5-23 Khai thác tính năng - 1 121
Hình 5-24 Kết quả compile model 121
Hình 5-25 Kết quả compile model - 1 122
Hình 5-26 Huấn luyện mô hình 122
Hình 5-27 Chuyển đổi model từ TensorFlow sang TensorFlow Lite 123
Hình 6-2 Mẫu Testcase chi tiết 128
Hình 6-3 Mẫu thống kê chung 128
Hình 6-4 Testcase màn hình login 129
Hình 6-5 Testcase màn hình camera 129
Hình 6-6 Testcase màn hình nhận diện 130
Bài viết trình bày các testcase liên quan đến quản lý thông tin cá nhân và bài viết trên nền tảng, bao gồm màn hình xem chi tiết thông tin hoa, quản lý thông tin cá nhân, chỉnh sửa thông tin cá nhân, xem bài viết cá nhân, trang chủ, tạo bài viết, xem chi tiết bài viết, đóng góp và tìm kiếm Ngoài ra, bài viết cũng cung cấp thống kê kết quả chạy các testcase để đánh giá hiệu quả hoạt động của hệ thống.
Bài viết trình bày các bảng nghiệp vụ và quy định liên quan đến người dùng và khách, bao gồm bảng nghiệp vụ và quy định cho guest và user, cùng với sơ đồ luồng dữ liệu (SDLDL) cho nhiều nghiệp vụ như đăng nhập, xem màn hình chính, xem chi tiết bài viết, viết bài, nhận diện loài hoa bằng hình ảnh, tìm kiếm hoa theo tên, xem thông tin chi tiết về loài hoa, xem và chỉnh sửa thông tin tài khoản Ngoài ra, các bảng CSDL cho User, Post, Plant, ImagePlant và Contribute cũng được đề cập Bài viết còn mô tả danh sách xử lý cho các màn hình như login, trang chủ, xem chi tiết bài viết, tạo bài viết, quản lý trang cá nhân và tìm kiếm hoa bằng hình ảnh Cuối cùng, các thuộc tính và phương thức của các lớp như Post, User và Plant cũng được liệt kê.
Bảng 4-6 trình bày phương pháp của lớp Plant, trong khi Bảng 4-7 và Bảng 4-8 lần lượt mô tả thuộc tính và phương pháp của lớp Contribute Bảng 5-1 nêu rõ lý do vì sao file nhỏ được ưu tiên lựa chọn, và Bảng 5-2 cung cấp thống kê tỷ lệ dự đoán của mô hình trên điện thoại.
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trí tuệ nhân tạo (AI) đang ngày càng trở nên phổ biến và hiện hữu trong mọi lĩnh vực của cuộc sống con người Sự bùng nổ và những đột phá ấn tượng của AI hiện nay không thể phủ nhận, cho thấy tiềm năng to lớn của công nghệ này trong việc cải thiện và nâng cao chất lượng cuộc sống.
AI là một trong những vấn đề quan trọng của tương lai, với nhiều ứng dụng đa dạng và khả năng mở rộng nhờ vào những cải tiến trong phần cứng máy tính Tuy nhiên, việc áp dụng công nghệ AI tại Việt Nam vẫn còn hạn chế, đặc biệt trong lĩnh vực giáo dục, nơi học sinh chủ yếu tiếp thu kiến thức một cách thụ động từ sách vở AI có thể cung cấp nhiều thông tin hơn về thế giới tự nhiên, giúp nông dân và công nhân lâm nghiệp nhận diện các loại cây lạ trước khi khai thác, từ đó bảo vệ môi trường Việc nghiên cứu và theo dõi các loài quý hiếm cũng đòi hỏi nhiều thời gian và công sức Do đó, nhóm nghiên cứu quyết định xây dựng một ứng dụng giúp nhận diện loài thực vật ngay lập tức qua smartphone, bắt đầu với đối tượng cụ thể là hoa, và đây chính là lý do cho đề tài "XÂY DỰNG ỨNG DỤNG NHẬN DIỆN HOA BẰNG HÌNH ẢNH TRÊN SMARTPHONE".
2 MỤC TIÊU CỦA ĐỀ TÀI
Xây dựng một ứng dụng nhận diện hoa giúp người dùng dễ dàng tìm hiểu về các loài hoa mà không cần mang theo sách vở Ứng dụng này không chỉ thỏa mãn sự tò mò mà còn cung cấp thông tin chi tiết chỉ trong vài giây Người dùng sẽ nhận được tên loài hoa, hình ảnh chất lượng cao và thông tin đầy đủ về loài hoa đó.
2.2 Nội dung nghiên cứu của dự án Áp dụng công nghệ học sâu, trí tuệ nhân tạo và kỹ thuật học chuyển với thư viện TensorFlow bước đầu xây dựng model nhận diện một số loài hoa (bắt đầu với 30 loài) Với kỳ vọng tỷ lệ chính xác của model trên 85% Áp dụng model đã đào tạo vào chương trình trên điện thoại (hệ điều hành android) với kỳ vọng tỷ lệ dự đoán chính xác trên ứng dụng là 80%
Xây dựng hệ thống đóng góp thông tin nhằm làm phong phú cơ sở dữ liệu bằng cách cho phép người dùng đăng tải bài viết, hình ảnh và thông tin về các loài hoa Việc thu thập dữ liệu từ người dùng sẽ tăng cường sự đa dạng và độ chính xác cho tính năng nhận diện hoa.
Thực hiện thử nghiệm và phân tích các chỉ số ảnh hưởng đến độ chính xác của mô hình, đồng thời so sánh tỷ lệ nhận diện chính xác giữa mô hình trước và sau khi được triển khai trên điện thoại thông minh.
2.3 Phương pháp nghiên cứu của luận án
Nghiên cứu lý thuyết kết hợp với đào tạo, thử nghiêm trên máy tính và điện thoại thông minh
2.4 Phạm vi nghiên cứu của luận án Đối tượng nhận diện chủ đạo là hoa
3 KẾT CẤU CỦA ĐỀ TÀI Đề tài bao gồm 5 chương:
- Chương 1: Khảo sát hiện trạng
- Chương 2: Mô hình hóa yêu cầu và thiết kế CSDL
- Chương 3: Thiết kế giao diện và xử lý
- Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
- Chương 6: Kiểm thử phần mềm
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ
1.1.1 PlantNet: Nhận dạng thực vật [1]
PlantNet là một sáng kiến nghiên cứu và giáo dục về đa dạng sinh học thực vật, được hỗ trợ bởi Quỹ Agropolis từ năm 2009 Để đảm bảo tính bền vững cho dự án, cần có sự hỗ trợ từ cả con người và công nghệ, cùng với sự tham gia của người dùng Các nhà sáng lập đang triển khai chiến dịch quyên góp nhằm duy trì các ứng dụng PlantNet miễn phí, không có quảng cáo và dễ dàng truy cập cho tất cả mọi người Chiến dịch này sẽ giúp đánh giá mô hình kinh tế và cân bằng giữa sự phát triển trong tương lai với các khoản đóng góp.
PlantNet là một hành trình khám phá đầy thú vị, kết hợp giữa khoa học, con người và giáo dục thông qua những công nghệ tiên tiến Ứng dụng này giúp người dùng tìm hiểu và khám phá thế giới thực vật theo cách độc đáo và cá nhân của riêng mình.
Các khoản quyên góp cho PlantNet được thu thập bởi Quỹ Agropolis, một nền tảng hợp tác khoa học của Pháp được công nhận là tiện ích công cộng Quỹ này nhằm hỗ trợ các tổ chức công cộng thực hiện các dự án khoa học Ứng dụng PlantNet đã đạt hơn 10 triệu lượt tải về trên Google Play.
Link Android: https://play.google.com/store/apps/details?id=org.plantnet&fbclid=IwAR2X50o5BG6fTPE9diVQdfm5g5DL-Td_G_msGX-k99klcadRh6CR1pCZ3jE
Hình 1-1 Giao diện ứng dụng PlantNet
PlantNet là ứng dụng giúp người dùng nhanh chóng nhận diện và hiểu rõ về các loại thực vật trong tự nhiên, bao gồm thực vật có hoa, cây, cỏ, cây lá kim, dương xỉ, dây leo và xương rồng Ứng dụng cung cấp khả năng lọc các loài thực vật theo chi hoặc họ, hỗ trợ các nhà nghiên cứu trong việc kiểm soát và bảo vệ các loài quý hiếm Việc xác nhận và duyệt các quan sát từ người dùng giúp nâng cao độ chính xác và phong phú dữ liệu của ứng dụng Chức năng nhận diện đa hệ thực vật cho phép người dùng tìm kiếm các loại cây trong toàn bộ hệ thực vật của ứng dụng, rất hữu ích cho việc nghiên cứu Ngoài ra, ứng dụng còn liên kết đến nhiều nguồn thông tin khác nhau, cung cấp thêm kiến thức cho người dùng về các loài thực vật đang tìm kiếm.
- Giao diện: Ứng dụng được thiết kế cho hầu hết mọi người đều có thể sử dụng được với bố cục trực quan dễ nhìn
- Chức năng: Hiện tại PlantNet cho phép nhận ra khoảng 20.000 loài, vẫn còn rất xa so với 360.000 loài sống trên trái đất
- Giao diện: Ứng dụng vẫn chưa tương thích với đa ngôn ngữ, các tiêu đề chưa được làm rõ để tạo hiệu ứng tương tác tốt với người dùng
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2]
Ứng dụng PictureThis cho phép người dùng chụp ảnh cây và hoa để nhận diện, hoạt động như một bách khoa toàn thư thực vật với khả năng nhận ra hơn 10.000 loại thực vật khác nhau Người dùng có thể tìm hiểu thông tin về các loài và cách chăm sóc cho cây, hoa và cây bụi Phiên bản miễn phí của ứng dụng yêu cầu người dùng xem quảng cáo, đăng nhập tài khoản và chia sẻ ảnh trên Facebook Với kích thước 25MB, PictureThis đã thu hút hơn 5 triệu lượt tải về trên Google Play.
Link Android: https://play.google.com/store/apps/details?id=cn.danatech.xingseus
Hình 1-2 Giao diện ứng dụng PictureThis
Ứng dụng PictureThis là công cụ hữu ích giúp người dùng xác định thực vật thông qua hình ảnh Với tính năng tích hợp bản đồ phân bố thực vật dựa trên định vị, người dùng có thể dễ dàng tìm hiểu và phân loại các loại thực vật theo vùng.
27 tích hợp các đề xuất chăm sóc thực vật; các đề xuất dữ liệu chia sẻ trực tiếp từ người dùng
CƠ SỞ DỮ LIỆU
Chương 3: Thiết kế màn hình giao diện và xử lý
3.1 Các màn hình giao diện của guest 3.2 Các màn hình giao diện của user Chương 4: Lập trình
4.1 Sơ đồ lớp 4.2 Cấu trúc chương trình Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
5.1 Tổng quan về thư viện sử dụng 5.2 Giới thiệu thuật toán CNN 5.3 Giới thiệu về các CNN pre-trained models 5.4 Triển khai mô hình nhận diện hoa
Chương 6: Cài đặt và kiểm thử
6.1 Kế hoạch kiểm thử và quy trình kiểm thử 6.2 Thực hiện chạy các testcase
STT Thời gian Nhiệm vụ Ghi chú
- Mô hình hóa yêu cầu
- Tìm hiểu thư viện TensorFlow
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về React Native
- Tìm hiểu về Redux (thư viện quản lý trạng thái của ứng dụng)
- Thu thập dữ liệu (hình ảnh)
- Tìm hiểu về Nodejs, ExpressJs
- Tìm hiểu và huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Huấn luyện mô hình mạng neuron để nhận diện các hình ảnh của từng loài hoa
- Tìm hiểu về cách xây dựng Restful API
- Xây dựng document Restful API của ứng dụng
(Tuần 9+10) - Xây dựng backend dựa trên document API
- Kiểm thử các chức năng
- Sửa các lỗi của ứng dụng
- Sửa các lỗi của ứng dụng
(Tuần 16) - Hoàn tất ứng dụng, báo cáo
10 Ý kiến của Giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 22
2 MỤC TIÊU CỦA ĐỀ TÀI 22
3 KẾT CẤU CỦA ĐỀ TÀI 23
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 24
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ 24
1.1.1 PlantNet: Nhận dạng thực vật [1] 24
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2] 26
1.1.3 PlantSnap - Nhận diện thực vật, hoa, cây [3] 27
1.2 KẾT LUẬN VỀ NHỮNG TIÊU CHÍ ỨNG DỤNG CẦN ĐẠT ĐƯỢC 32
2 CHƯƠNG 2: MÔ HÌNH HÓA YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 34 2.1 USECASE DIAGRAM 34
2.2.1.3 Danh sách các biểu mẫu 35
2.2.2.2 Danh sách các biểu mẫu 44
2.3 SƠ ĐỒ LUỒNG DỮ LIỆU VÀ CƠ SỞ DỮ LIỆU CÁC NGHIỆP VỤ 53
2.3.1 Các nghiệp vụ của Guest 53
2.3.1.1 Xét nghiệp vụ đăng nhập 53
2.3.2 Các nghiệp vụ của User 54
2.3.2.1 Xét nghiệp vụ Xem màn hình chính 55
2.3.2.2 Xét nghiệp vụ Xem chi tiết bài viết 55
2.3.2.3 Xét nghiệp vụ Viết bài 57
2.3.2.4 Xét nghiệp vụ Nhận diện loài hoa bằng hình ảnh 58
2.3.2.5 Xét nghiệp vụ Tìm kiếm loài hoa theo tên 60
2.3.2.6 Xét nghiệp vụ Xem thông tin chi tiết về loài hoa 61
2.3.2.7 Xét nghiệp vụ Xem thông tin tài khoản 63
2.3.2.8 Xét nghiệp vụ Chỉnh sửa thông tin tài khoản 64
2.4.1 Lược đồ cơ sở dữ liệu 65
2.4.2 Mô tả cơ sở dữ liệu 66
3 CHƯƠNG 3: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 70
3.1 CÁC MÀN HÌNH GIAO DIỆN CỦA GUEST (APP) 70
3.2 CÁC MÀN HÌNH GIAO DIỆN CỦA USER (APP) 71
3.2.2 Màn hình xem thông tin chi tiết bài viết 73
3.2.3 Màn hình tạo bài viết 75
3.2.4 Màn hình quản lý trang cá nhân 78
3.2.5 Màn hình chức năng tìm kiếm bằng hình ảnh 80
3.2.6 Màn hình giao diện chức năng tìm kiếm 82
4.1.1 MÔ TẢ CHI TIẾT TỪNG LỚP 88
4.2.1 Tổng quan về các công nghệ sử dụng (MERN STACK) [6] 91
4.2.1.2 Cơ sở dữ liệu Mongodb 93
4.2.2 Mô tả cấu trúc chương trình 95
5 CHƯƠNG 5: XÂY DỰNG MÔ HÌNH HỌC SÂU NHẬN DẠNG HOA 97
5.1 Tổng quan về thư viện sử dụng 97
5.1.1.3 Một vài khái niệm quan trọng trong TensorFlow 98
5.1.1.4 Các tính năng chính của TensorFlow 100
5.1.2.3 Keras models, losses, and optimizers 104
5.2 Giới thiệu về thuật toán CNN [9] 104
5.2.2 Mô hình CNN cho bài toán phân loại ảnh 105
5.3 Giới thiệu về các CNN pre-trained models [10] 113
5.4 Triển khai mô hình nhận diện hoa 118
5.4.2 Triển khai mô hình trên điện thoại với TensorFlow Lite 123
6 CHƯƠNG 6: KIỂM THỬ PHẦN MỀM 127
6.1 KẾ HOẠCH KIỂM THỬ VÀ QUY TRÌNH KIỂM THỬ 127
6.2 THỰC HIỆN CHẠY CÁC TESTCASE 128
6.2.2.3 Màn hình xem chi tiết thông tin hoa 130
6.2.2.4 Màn hình quản lý thông tin cá nhân 131
6.2.2.5 Màn hình chỉnh sửa thông tin cá nhân 132
6.2.2.6 Màn hình xem bài viết cá nhân 132
6.2.2.8 Màn hình tạo bài viết 134
6.2.2.9 Màn hình xem chi tiết bài viết 135
1 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 138
Hình 1-1 Giao diện ứng dụng PlantNet 25
Hình 1-2 Giao diện ứng dụng PictureThis 26
Hình 1-3 Giao diện ứng dụng PlantSnap 28
Hình 1-4 Giao diện ứng dụng iNaturalist 30
Hình 1-5 Giao diện ứng dụng Seek 32
Hình 2-2 Biểu mẫu đăng nhập 36
Hình 2-3 Biểu mẫu màn hình trang chủ 45
Hình 2-4 Biểu mẫu màn hình xem chi tiết bài viết 46
Hình 2-5 Biểu mẫu màn hình xem đóng góp 47
Hình 2-6 Biểu mẫu màn hình đóng góp 47
Hình 2-7 Biểu mẫu màn hình nhận diện hoa bằng hình ảnh 48
Hình 2-8 Biểu mẫu màn hình tìm kiếm hoa 48
Hình 2-9 Biểu mẫu màn hình xem thông tin chi tiết loài hoa 49
Hình 2-10 Biểu mẫu màn hình quản lý bài viết 49
Hình 2-11 Biểu mẫu màn hình viết bài 50
Hình 2-12 Biểu mẫu màn hình quản lý thông tin cá nhân 51
Hình 2-13 Biểu mẫu màn hình xem thông tin cá nhân 51
Hình 2-14 Biểu mẫu màn hình sửa thông tin cá nhân 52
Hình 2-15 Biểu mẫu màn hình đăng xuất 52
Hình 2-16 Sơ đồ luồn dữ liệu đăng nhập 53
Hình 2-17 Lược đồ sequence đăng nhập 54
Hình 2-18 Sơ đồ luồng dữ liệu màn hình trang chủ 55
Hình 2-19 Sơ đồ luồng dữ liệu xem chi tiết bài viết 56
Hình 2-20 Lược đồ sequence xem chi tiết bài viết 57
Hình 2-21 Sơ đồ luồng dữ liệu viết bài 57
Hình 2-22 Lược đồ sequence viết bài 58
Hình 2-23 Sơ đồ luồng dữ liệu nhận diện hoa bằng hình ảnh 59
Hình 2-24 Lược đồ sequence nhận diện hoa bằng hình ảnh 60
Hình 2-25 Sơ đồ luồng dữ liệu tìm kiếm hoa theo tên 60
Hình 2-26 Lược đồ sequence tìm kiếm hoa theo tên 61
Hình 2-27 Sơ đồ luồng dữ liệu xem chi tiết hoa 62
Hình 2-28 Lược đồ sequence xem chi tiết hoa 63
Hình 2-29 Sơ đồ luồng dữ liệu xem thông tin cá nhân 63
Hình 2-30 Sơ đồ luồng dữ liệu chỉnh sửa thông tin cá nhân 64
Hình 2-31 Lược đồ sequence chỉnh sửa thông tin cá nhân 65
Hình 3-1 Màn hình đăng nhập 70
Hình 3-2 Đánh số màn hình đăng nhập 71
Hình 3-3 Màn hình trang chủ 72
Hình 3-4 Đánh số màn hình trang chủ 72
Hình 3-5 Màn hình xem thông tin chi tiết bài viết 74
Hình 3-6 Đánh số màn hình xem chi tiết bài viết 74
Hình 3-7 Màn hình chức năng tạo bài viết 76
Hình 3-8 Đánh số màn hình chức năng tạo bài viết 77
Hình 3-9 Màn hình chức năng quản lý trang cá nhân 78
Hình 3-10 Đánh số màn hình quản lý trang cá nhân 79
Hình 3-11 Màn hình chức năng tìm kiếm bằng hình ảnh 80
Hình 3-12 Đánh số màn hình chức năng tìm kiếm bằng hình ảnh 81
Hình 3-13 Màn hình chức năng tìm kiếm 83
Hình 3-14 Đánh số màn hình chức năng tìm kiếm 84
Hình 3-15 Màn hình chức năng đóng góp 86
Hình 3-16 Đánh số màn hình chức năng đóng góp 86
Hình 4-2 Cấu trúc chương trình (MERN Stack) 92
Hình 4-3 Sơ đồ tổng quát cấu trúc chương trình 95
Hình 4-4 Xây dựng document API thống nhất cho từng chức năng cụ thể 95
Hình 5-4 Bài toán mô hình CNN 106
Hình 5-16 Kiến trúc của mobilenet model 117
Hình 5-17 Chuẩn bị dữ liệu 118
Hình 5-18 Chuẩn bị dữ liệu - 1 118
Hình 5-19 Kết nối google drive -2 119
Hình 5-20 Kết quả tăng cường dữ liệu 119
Hình 5-22 Khai thác tính năng 120
Hình 5-23 Khai thác tính năng - 1 121
Hình 5-24 Kết quả compile model 121
Hình 5-25 Kết quả compile model - 1 122
Hình 5-26 Huấn luyện mô hình 122
Hình 5-27 Chuyển đổi model từ TensorFlow sang TensorFlow Lite 123
Hình 6-2 Mẫu Testcase chi tiết 128
Hình 6-3 Mẫu thống kê chung 128
Hình 6-4 Testcase màn hình login 129
Hình 6-5 Testcase màn hình camera 129
Hình 6-6 Testcase màn hình nhận diện 130
Bài viết này trình bày các testcase quan trọng liên quan đến hệ thống, bao gồm màn hình xem chi tiết thông tin hoa, quản lý thông tin cá nhân, chỉnh sửa thông tin cá nhân, xem bài viết cá nhân, trang chủ, tạo bài viết, xem chi tiết bài viết, đóng góp và tìm kiếm Ngoài ra, cũng có thống kê kết quả chạy testcase để đánh giá hiệu quả của các chức năng này.
Bài viết trình bày các bảng nghiệp vụ và quy định liên quan đến guest và user, bao gồm các bảng SDLDL cho các nghiệp vụ như đăng nhập, xem màn hình chính, viết bài, và nhận diện loài hoa Ngoài ra, bài viết cũng đề cập đến các bảng CSDL cho user, post, plant, và imagePlant Các bảng mô tả danh sách xử lý cho các màn hình như login, trang chủ, xem chi tiết bài viết, và quản lý trang cá nhân cũng được nêu rõ Cuối cùng, bài viết cung cấp thông tin về các thuộc tính và phương thức của các lớp post, user, và plant.
Bảng 4-6 trình bày phương pháp của lớp Plant, trong khi Bảng 4-7 và Bảng 4-8 cung cấp thông tin về thuộc tính và phương pháp của lớp Contribute Bảng 5-1 nêu rõ lý do ưu tiên lựa chọn file nhỏ, và Bảng 5-2 thống kê tỷ lệ dự đoán của mô hình trên điện thoại.
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trí tuệ nhân tạo (AI) đang ngày càng trở nên phổ biến trong tất cả các lĩnh vực của cuộc sống con người Sự bùng nổ và những đột phá đáng kể của AI hiện nay không thể bị phủ nhận.
AI là một trong những vấn đề quan trọng của tương lai với nhiều ứng dụng đa dạng, đặc biệt khi công nghệ phần cứng ngày càng phát triển Mặc dù các thuật toán AI đã vượt qua khả năng của chuyên gia, việc ứng dụng AI tại Việt Nam vẫn còn hạn chế, đặc biệt trong lĩnh vực giáo dục Học sinh thường tiếp thu kiến thức về sinh vật qua sách vở, nhưng phương pháp này chỉ cung cấp một phần nhỏ về thế giới tự nhiên AI có thể hỗ trợ trong việc nhận diện thực vật và giúp nông dân, công nhân lâm nghiệp nhận biết các giống cây lạ, từ đó bảo vệ môi trường Ngoài ra, việc nghiên cứu và theo dõi các loài quý hiếm và xâm nhập cần rất nhiều thời gian và công sức Do đó, nhóm nghiên cứu quyết định xây dựng một ứng dụng nhận diện hoa thông qua hình ảnh trên smartphone, nhằm cung cấp giải pháp nhanh chóng và hiệu quả cho người dùng.
2 MỤC TIÊU CỦA ĐỀ TÀI
Xây dựng ứng dụng nhận diện hoa giúp người dùng nhanh chóng có được kiến thức tổng quan về loài hoa mà không cần mang theo sách vở Ứng dụng này đáp ứng sự tò mò của người dùng bằng cách cung cấp tên loài hoa, hình ảnh chất lượng cao và thông tin chi tiết chỉ trong vài giây.
2.2 Nội dung nghiên cứu của dự án Áp dụng công nghệ học sâu, trí tuệ nhân tạo và kỹ thuật học chuyển với thư viện TensorFlow bước đầu xây dựng model nhận diện một số loài hoa (bắt đầu với 30 loài) Với kỳ vọng tỷ lệ chính xác của model trên 85% Áp dụng model đã đào tạo vào chương trình trên điện thoại (hệ điều hành android) với kỳ vọng tỷ lệ dự đoán chính xác trên ứng dụng là 80%
Xây dựng một hệ thống đóng góp thông tin nhằm làm phong phú cơ sở dữ liệu thông qua việc đăng tải bài viết, hình ảnh và thông tin về các loài hoa Việc thu thập dữ liệu từ người dùng sẽ gia tăng sự đa dạng và độ chính xác cho tính năng nhận diện.
Tiến hành thử nghiệm và phân tích các chỉ số ảnh hưởng đến độ chính xác của mô hình, đồng thời so sánh tỷ lệ nhận diện chính xác giữa mô hình trước và sau khi ứng dụng trên điện thoại thông minh.
2.3 Phương pháp nghiên cứu của luận án
Nghiên cứu lý thuyết kết hợp với đào tạo, thử nghiêm trên máy tính và điện thoại thông minh
2.4 Phạm vi nghiên cứu của luận án Đối tượng nhận diện chủ đạo là hoa
3 KẾT CẤU CỦA ĐỀ TÀI Đề tài bao gồm 5 chương:
- Chương 1: Khảo sát hiện trạng
- Chương 2: Mô hình hóa yêu cầu và thiết kế CSDL
- Chương 3: Thiết kế giao diện và xử lý
- Chương 5: Xây dựng mô hình học sâu nhận dạng hoa
- Chương 6: Kiểm thử phần mềm
1 CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG
1.1 KHẢO SÁT MỘT SỐ ỨNG DỤNG TƯƠNG TỰ
1.1.1 PlantNet: Nhận dạng thực vật [1]
PlantNet là một sáng kiến nghiên cứu và giáo dục về đa dạng sinh học thực vật, được hỗ trợ bởi Quỹ Agropolis từ năm 2009 Để duy trì tính bền vững của sáng kiến này, cần có sự hỗ trợ từ cả con người và công nghệ, cũng như sự tham gia của cộng đồng người dùng Để giữ cho các ứng dụng PlantNet miễn phí, không có quảng cáo và dễ dàng tiếp cận cho mọi người, các nhà sáng lập đang triển khai một chiến dịch quyên góp Chiến dịch này không chỉ giúp đánh giá mô hình kinh tế mà còn cân bằng giữa sự phát triển tương lai và các khoản đóng góp từ người dùng.
PlantNet mang đến một cuộc phiêu lưu thú vị trong việc khám phá thế giới thực vật thông qua khoa học, con người và giáo dục Với những công nghệ tiên tiến, ứng dụng này cho phép người dùng tìm hiểu và khám phá thực vật theo cách riêng của mình.
Quỹ Agropolis, một nền tảng hợp tác khoa học tại Pháp được công nhận là tiện ích công cộng, thu thập các khoản quyên góp cho PlantNet nhằm hỗ trợ các tổ chức công cộng thực hiện các dự án khoa học Ứng dụng này đã đạt hơn 10 triệu lượt tải về trên Google Play.
Link Android: https://play.google.com/store/apps/details?id=org.plantnet&fbclid=IwAR2X50o5BG6fTPE9diVQdfm5g5DL-Td_G_msGX-k99klcadRh6CR1pCZ3jE
Hình 1-1 Giao diện ứng dụng PlantNet
PlantNet là ứng dụng giúp người dùng nhanh chóng nhận diện và hiểu biết về các loại thực vật trong tự nhiên như cây có hoa, cỏ, dương xỉ, và xương rồng với độ trễ thấp Ứng dụng hỗ trợ các nhà nghiên cứu trong việc kiểm soát và bảo vệ các loài thực vật quý hiếm thông qua khả năng lọc theo chi hoặc họ Việc xác nhận và duyệt các quan sát từ người dùng giúp tăng độ chính xác trong nhận diện và phong phú hóa dữ liệu Chức năng nhận diện đa hệ thực vật cho phép người dùng tìm kiếm và nghiên cứu các loại cây trong toàn bộ hệ thực vật của ứng dụng Ngoài ra, PlantNet còn cung cấp liên kết đến nhiều nguồn thông tin khác nhau để người dùng có thêm kiến thức về loài thực vật đang tìm kiếm.
- Giao diện: Ứng dụng được thiết kế cho hầu hết mọi người đều có thể sử dụng được với bố cục trực quan dễ nhìn
- Chức năng: Hiện tại PlantNet cho phép nhận ra khoảng 20.000 loài, vẫn còn rất xa so với 360.000 loài sống trên trái đất
- Giao diện: Ứng dụng vẫn chưa tương thích với đa ngôn ngữ, các tiêu đề chưa được làm rõ để tạo hiệu ứng tương tác tốt với người dùng
1.1.2 PictureThis: Identify Plant, Flower, Weed and More [2]
PictureThis là một ứng dụng hữu ích cho phép người dùng chụp ảnh cây và hoa để nhận dạng, hoạt động như một bách khoa toàn thư thực vật với khả năng nhận diện hơn 10.000 loại thực vật khác nhau Người dùng có thể tìm hiểu thông tin chi tiết về từng loài cũng như cách chăm sóc cho cây, hoa và cây bụi Phiên bản miễn phí của ứng dụng yêu cầu người dùng xem quảng cáo, đăng nhập tài khoản và chia sẻ ảnh trên Facebook Ứng dụng có dung lượng 25MB và đã thu hút hơn 5 triệu lượt tải về trên Google Play.
Link Android: https://play.google.com/store/apps/details?id=cn.danatech.xingseus
Hình 1-2 Giao diện ứng dụng PictureThis
Ứng dụng PictureThis giúp người dùng xác định thực vật thông qua hình ảnh, đồng thời tích hợp bản đồ phân bố thực vật dựa trên định vị Tính năng này cho phép người dùng tìm hiểu và phân vùng các loại thực vật một cách dễ dàng và hiệu quả.
27 tích hợp các đề xuất chăm sóc thực vật; các đề xuất dữ liệu chia sẻ trực tiếp từ người dùng