Professional Documents
Culture Documents
Xử lý ảnh và video
Xử lý ảnh và video
Xử lý ảnh và video
Thiết kế hệ thống
1. Mô hình hệ thống
Dựa trên mô hình mạng CNN, nhóm tạo thành một chương trình có chức năng chính
là nhân dạng 4 loại hoa quả cơ bản. Mô hình sẽ nhận ảnh bắt từ các frame của camera
và tiến hành xử lý nhận diện và cho ra kết quả.
2. Thực hiện
2.1. Chuẩn bị dữ liệu
Thu thập hình ảnh của 4 loại hoa quả (mỗi loại 100-200 ảnh). Chia các hình ảnh đã
thu thập thành 2 phần: train (chiếm 80%), test (20% còn lại)
Thực hiện gán nhãn cho các ảnh bằng công cụ labelImg
2.2. Training Data
Thực hiện train dữ liệu thông qua Google Colab
Import các thư viện cần thiết để thực hiện training
Xây dựng một mô hình mạng nơ-ron tích chập (Convolutional Neural Network
- CNN) sử dụng thư viện TensorFlow. Mô hình này bao gồm các: 2 lớp tích
chập Conv2D, 3 lớp MaxPool2D, 1 lớp làm phẳng Flatten, và 5 lớp kết nối đầy
đủ Dense. Mô hình sau cùng được biên dịch với thuật toán tối ưu ‘adam’, hàm
mất mát ‘sparse_categorical_crossentropy’, và đánh giá mô hình dựa trên độ
chính xác.
chi tiết:
o tf.keras.Input(shape = images[0].shape): Định nghĩa đầu vào của mô
hình với kích thước tương ứng với hình ảnh đầu tiên trong tập dữ liệu.
o tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu',
input_shape=[64, 64, 3]): Tạo một lớp tích chập với 32 bộ lọc, kích
thước kernel là 3 và hàm kích hoạt là ‘relu’.
o tf.keras.layers.MaxPool2D(pool_size=2, strides=2): Tạo một lớp gộp
tối đa (Max Pooling) với kích thước pool là 2 và sải bước là 2.
o tf.keras.layers.Flatten(): Làm phẳng tensor đầu vào từ 3D thành 1D.
o tf.keras.layers.Dense(units=32, activation='relu'): Tạo một lớp kết nối
đầy đủ (Fully Connected) với 32 nơ-ron và hàm kích hoạt ‘relu’.
o tf.keras.layers.Dense(units=6, activation='softmax'): Tạo một lớp kết
nối đầy đủ với 6 nơ-ron và hàm kích hoạt ‘softmax’. Đây là lớp đầu ra
của mô hình, với mỗi nơ-ron tương ứng với một lớp phân loại.
o model.compile(optimizer='adam',loss='sparse_categorical_crossentr
opy', metrics=['accuracy']): Biên dịch mô hình với thuật toán tối ưu
‘adam’, hàm mất mát ‘sparse_categorical_crossentropy’ và đánh giá mô
hình dựa trên độ chính xác.
Thực hiện dữ liệu
Vẽ biểu đồ kiểm tra độ chính xác sau khi train
Lưu mô hình sau khi train vào file model.h5 để tiện sử dụng sau này
Thực hiện kiểm thử với một số hình ảnh mới
2.3. Thiết kế hệ thống bằng ngôn ngữ Python
Hệ thống sẽ load và xử lý các dữ liệu sau khi train thông qua file model.h5, sau đó sẽ
nhận ảnh bắt từ các frame của camera và tiến hành xử lý nhận diện và cho ra kết quả.
3. Kết quả
Link Google Colab:
https://colab.research.google.com/drive/17iI98ssJAHmUtBjbSRfvFecch7ACooGo?
usp=sharing
IV. Kết luận
1. Kết luận
Sau quá trình tìm hiểu và xây dựng, nhóm đã xây dựng được 1 ứng dụng nhận dạng
một số loại trái cây cơ bản như: chuối, dâu tây, dứa, dưa chuột với độ chính xác tương
đối.
Tuy nhiên ứng dụng vẫn còn tồn tại một số hạn chế:
Tập dự liệu đầu vào còn khá nhỏ
Độ nhận diện chưa cao
Chỉ nhận diện được 4 loại trái cây kể trên