Nội dung chính
Trong bối cảnh công nghệ trí tuệ nhân tạo phát triển mạnh mẽ, việc ứng dụng AI vào đời sống hằng ngày đã trở nên phổ biến hơn bao giờ hết. Một trong những lĩnh vực được quan tâm nhiều là nông nghiệp và cây cảnh – nơi việc nhận diện đúng loại cây, giống cây đóng vai trò vô cùng quan trọng cho chăm sóc, nuôi trồng và thương mại hóa. Xuất phát từ nhu cầu đó, dự án “Hệ thống nhận diện cây cảnh bằng AI chạy Local sử dụng Flask” được xây dựng như một demo kỹ thuật nhằm kiểm chứng khả năng nhận diện hình ảnh bằng mô hình học sâu (Deep Learning).
Mặc dù ở giai đoạn hiện tại dự án mới dừng lại ở chức năng nhận diện tên các loại cây cảnh dựa trên ảnh chụp, chưa tích hợp phần tư vấn cách trồng hay chăm sóc, nhưng mô hình đã hoàn thiện đủ mức để chạy được trên máy tính cá nhân (Local) thông qua giao diện web đơn giản dựa trên Flask. Dự án đóng vai trò như một thử nghiệm thực tế cho việc áp dụng AI vào phân loại hình ảnh, giúp người dùng nắm bắt quy trình triển khai một sản phẩm AI hoàn chỉnh từ huấn luyện mô hình cho đến xây dựng ứng dụng web dùng được.
Video demo nhận diện tên cây cảnh bằng AI
Mục tiêu của dự án
Mục tiêu tổng quan
Mục tiêu chính của dự án là xây dựng một ứng dụng AI đơn giản có khả năng:
-
Nhận ảnh từ người dùng (qua trình duyệt web)
-
Xử lý ảnh bằng TensorFlow / Keras
-
Dự đoán và trả về tên loại cây cảnh trong ảnh
-
Chạy hoàn toàn trên máy tính cá nhân mà không phụ thuộc máy chủ cloud
Dự án được xây dựng với tiêu chí:
-
Nhẹ, dễ cài đặt
-
Hiểu được quy trình AI từ A tới Z
-
Có thể mở rộng, nâng cấp sau
Giới hạn của dự án
Vì đây chỉ là phiên bản demo kỹ thuật nên hệ thống chưa tích hợp:
-
Thông tin hướng dẫn tưới nước
-
Thông tin chăm sóc từng loại cây
-
Phân tích bệnh, sâu hại
-
Gợi ý phân bón
Hệ thống ở mức đáp ứng chức năng cốt lõi: nhận diện loại cây cảnh từ ảnh.
Cấu trúc hệ thống và kiến trúc tổng thể
Hệ thống được xây dựng theo mô hình 3 lớp đơn giản:
-
Frontend (Giao diện web) – HTML đơn giản
-
Backend API – Flask phục vụ dự đoán
-
Model AI – mô hình Keras đã được huấn luyện
Cấu trúc thư mục
-
app.py: ứng dụng Flask xử lý request
-
utils.py: hàm load model và dự đoán
-
plant_model.h5: mô hình AI đã huấn luyện
-
wrong_predictions/: thư mục lưu ảnh tạm
Kiến trúc này đảm bảo khả năng mở rộng dễ dàng trong tương lai.
Quy trình xây dựng mô hình AI nhận diện cây
Thu thập dữ liệu hình ảnh
Để huấn luyện mô hình nhận diện cây cảnh, cần một tập dữ liệu đủ lớn và đa dạng. Các nguồn phổ biến:
-
Các bộ dataset công khai trên Kaggle
-
Ảnh tự thu thập
-
Ảnh chụp thực tế trong môi trường nhiều ánh sáng khác nhau
Mỗi loại cây đại diện cho một class trong bài toán classification.
Tiền xử lý dữ liệu
Dữ liệu hình ảnh được chuẩn hóa theo quy trình:
-
Resize về kích thước cố định: 224×224
-
Chuyển đổi giá trị pixel về dạng 0–1
-
Augmentation (nếu cần):
-
Xoay, lật, tăng giảm sáng
-
Tăng độ đa dạng của dữ liệu
-
Chọn mô hình học sâu
Vì mục tiêu là demo chạy Local nên mô hình ưu tiên:
-
Nhẹ
-
Tốc độ nhanh
-
Dễ triển khai
Các mô hình phù hợp:
-
MobileNetV2
-
EfficientNetB0
-
ResNet50 (nhưng nặng và chậm hơn)
Thông thường dùng MobileNetV2 để cân bằng tốc độ và độ chính xác.
Huấn luyện mô hình
Huấn luyện mô hình bằng Keras:
-
Optimizer: Adam
-
Loss: Categorical Crossentropy
-
Epoch: từ 20–50 tuỳ dữ liệu
Sau khi training xong, mô hình được lưu lại thành:
Đây chính là file mà Flask sẽ load lên để sử dụng khi người dùng upload ảnh.
Xây dựng Web Flask chạy Local

Chức năng chính
-
Giao diện web cho phép upload ảnh
-
Gửi ảnh tới API
/identify -
API xử lý ảnh, đưa vào model
-
Trả về kết quả dự đoán tên cây
Luồng hoạt động
-
Người dùng mở trình duyệt → vào đường dẫn
http://127.0.0.1:7860 -
Upload một file ảnh
-
Flask nhận ảnh → lưu tạm
-
Gọi hàm
predict_plant()để phân loại -
Backend trả kết quả
-
Giao diện hiển thị tên loại cây
Dù đơn giản nhưng quy trình này mô phỏng đầy đủ cách một hệ thống AI hoạt động trong môi trường thực tế.
Chi tiết về file app.py
Ứng dụng Flask được thiết kế:
-
Nhỏ gọn
-
Dễ hiểu
-
Có 2 endpoint chính:
-
/→ Trang upload -
/identify→ API nhận diện
-
Điều này giúp tách biệt UI và logic xử lý AI.
Chi tiết file utils.py
utils.py chịu trách nhiệm:
-
Load mô hình
.h5vào RAM -
Tiền xử lý hình ảnh
-
Chạy model.predict
-
Trả về kết quả
Việc tách riêng file giúp:
-
Backend nhẹ, dễ bảo trì
-
Có thể thay model mới mà không sửa nhiều code
Đánh giá dự án hiện tại
Điểm mạnh của dự án
✔ Chạy Local, không cần internet
Toàn bộ mô hình AI, xử lý ảnh, server Flask đều chạy trong máy cá nhân, không phụ thuộc cloud.
✔ Dễ triển khai và học theo
Quy trình đơn giản nhưng đầy đủ:
-
Tạo model
-
Load model
-
API Flask
-
Upload file
-
Predict
Đây là cấu trúc mà 90% các dự án AI thực tế sử dụng.
✔ Có thể mở rộng
Dự án dễ nâng cấp:
-
Thêm nhiều loại cây
-
Nâng cấp lên API REST chuẩn
-
Kết nối giao diện React hoặc Flutter
-
Gộp nhiều module AI khác nhau
Hạn chế của phiên bản hiện tại
❌ Chưa có hướng dẫn tưới nước, chăm sóc
Hệ thống chỉ đoán tên cây chứ chưa đưa ra thông tin chăm sóc.
❌ Chưa tối ưu tốc độ load model
Mỗi lần khởi động Flask phải load lại model từ file .h5.
❌ Giao diện đơn giản
Chỉ có form upload ảnh, chưa có UI đẹp hay mobile-friendly.
Định hướng phát triển tương lai
1. Tích hợp hướng dẫn chăm sóc
Sau khi nhận diện được cây, hệ thống có thể:
-
Gợi ý tần suất tưới nước
-
Điều kiện ánh sáng
-
Nhiệt độ
-
Loại phân bón phù hợp
Dữ liệu có thể lưu trong:
-
JSON
-
MySQL
-
Firestore
2. Xây dựng cơ sở dữ liệu bệnh cây
Người dùng có thể upload ảnh lá bệnh, AI phân tích:
-
Vàng lá
-
Đốm nâu
-
Thối rễ
-
Thiếu ánh sáng
3. Chuyển sang mobile app
Có thể tích hợp:
-
Flutter
-
React Native
-
AI on-device (TensorFlow Lite)
4. Tối ưu mô hình
-
Convert
.h5sang.tflitegiúp chạy nhanh gấp 5 lần -
Giảm kích thước bằng quantization
5. Triển khai lên server thật
Dùng:
-
VPS
-
Docker
-
Nginx reverse proxy
Ứng dụng lúc đó có thể phục vụ hàng trăm người dùng.
Kết luận
Dự án “Hệ thống nhận diện cây cảnh bằng AI chạy Local với Flask” là một bước thử nghiệm quan trọng giúp hiểu rõ quy trình:
-
Thu thập và chuẩn hóa dữ liệu hình ảnh
-
Huấn luyện mô hình Deep Learning
-
Lưu và triển khai mô hình
-
Xây dựng API nhận diện ảnh
-
Tạo giao diện web đơn giản để demo
Mặc dù dự án ở thời điểm hiện tại mới dừng lại ở khả năng nhận diện tên cây cảnh, chưa bao gồm phần hướng dẫn chăm sóc, nhưng đã thể hiện đầy đủ quy trình xây dựng một sản phẩm AI hoàn chỉnh ở mức cơ bản. Nhờ chạy hoàn toàn Local, dự án phù hợp cho sinh viên, người học AI hoặc các doanh nghiệp nhỏ muốn thử nghiệm công nghệ trí tuệ nhân tạo trước khi xây dựng hệ thống lớn.

Be the first to comment