
Code Pthon Phân biệt các loại trái cây sử dụng Machine Learning
by Duyên VPin Python , Scripts & Code on May 6, 2024Choose Your Desired Option(s)
Code Pthon Phân biệt các loại trái cây sử dụng Machine Learning
Phân loại trái cây dựa trên hình ảnh sử dụng các kĩ thuật machine learning
Bài toán: Tiến bộ trong lĩnh vực xử lý hình ảnh và tự động hóa đã mở ra cánh cửa cho việc áp dụng machine learning vào nhiều lĩnh vực khác nhau. Trong ngành công nghiệp, việc phân loại trái cây dựa trên hình ảnh vẫn là một thách thức. Phân loại trái cây có thể được sử dụng để tăng cường quy trình sắp xếp và phân loại, giúp quản lý và bảo quản chúng hiệu quả hơn (phụ thuộc vào các phương pháp bảo quản phù hợp với từng loại trái cây). Phương pháp truyền thống yêu cầu việc phân loại thủ công, một quá trình tốn thời gian và phụ thuộc vào sự hiện diện của con người.
Phương pháp giải quyết: Áp dụng kỹ thuật Machine Learning để xây dựng mô hình phân loại trái cây dựa trên hình ảnh. Qua đó, quy trình sắp xếp và phân loại trái cây có thể được tự động hóa gần như hoàn toàn.
Input: Ảnh của một loại trái cây trên nền đơn giản (màu đơn).
Output: Tên của loại trái cây đó.
II. DỮ LIỆU
Cấu trúc thư mục dữ liệu – fruits_data: Bộ dữ liệu bao gồm 10 loại trái cây với tổng cộng 2500 ảnh. Mỗi loại trái cây được tổ chức trong 10 thư mục khác nhau trong thư mục fruits_data, ví dụ: “cachua” chứa ảnh của trái cà chua. Mỗi thư mục bao gồm 250 ảnh của loại trái cây tương ứng.
Thu thập dữ liệu: Bộ dữ liệu này được thu thập thông qua việc đi tới siêu thị Big C, nơi chúng tôi sử dụng smartphone để chụp ảnh từng trái của mỗi loại trái cây trong khoảng thời gian 4 tiếng. Một số loại trái cây cũng được mua về để chụp ảnh trong một phòng riêng.
- Tổng số hình ảnh: 2500 ảnh
- Số loại trái cây: 10 loại
- Ảnh của mỗi loại: 250 ảnh
- Size ảnh: Bộ data sẽ để nguyên size gốc khi chụp bằng điện thoại nhưng khi sử dụng sẽ chuyển về size 200×200 pixel
- Định dạng tên tệp: <tên quả>_<chỉ số>.jpg – Ví dụ: cachua_1.jpg
- Tỉ lệ train/test size: 75/25
- Chúng mình sử dụng 2 phương pháp tách biệt để xử lí data và training model đó là dựa trên màu sắc và cạnh. Sau đó kết hợp lại với nhau để train model.
- Resize ảnh về size 200×200.
- Đưa bức ảnh về 2 màu sử dụng thuật toán K-means.
- Loại bỏ màu sáng hơn của bức ảnh (Màu sáng hơn thường là màu nền, nên loại bỏ).
- Chia nhỏ bức ảnh thành 25 section (40×40).
- Tính trung bình và độ lệch chuẩn cho:
- Hướng thứ nhất: Từng channel màu trong 3 channel màu RGB
- Hướng thứ hai: Cho từng section
- Resize ảnh về size 200×200.
- Hướng thứ nhất:
- Đưa bức ảnh về 2 màu sử dụng thuật toán K-means.
- Sử dụng thuật toán Canny để tìm cạnh.
- Chia nhỏ bức ảnh thành 25 section (40×40).
- Tính trung bình và độ lệch chuẩn cho từng section.
- Hướng thứ hai:
- Sử dụng thuật toán Canny để tìm cạnh.
- Chia nhỏ bức ảnh thành 25 section (40×40).
- Tính trung bình và độ lệch chuẩn cho từng section.
- Đây là phương pháp xây dựng một tập hợp rất nhiều cây quyết định và sử dụng phương pháp voting để đưa ra quyết định về biến target cần được dự báo.
- Tìm hiểu thêm về Random Forest Classifier
- Áp dụng thuật toán dựa trên libsvm (thư viện svm). Thời gian tính toán ít nhất bằng bậc 2 của số lượng samples và có thể không thể áp dụng với số lượng samples vượt quá 10000
- Tìm hiểu thêm về Support Vector Classification
Thực hiện các model machine learning đối với 4 hướng tiếp cận:
- Sử dụng trung bình và độ lệch chuẩn của các giá trị pixels cho từng lớp RGB của ảnh đã cluster:
- Sử dụng trung bình và độ lệch chuẩn của các giá trị pixels cho toàn ảnh đã được cluster về 2 màu với các section 40 x 40 pixels:
- Sử dụng trung bình và độ lệch chuẩn của các giá trị pixels cho từng section 40 x 40 với ảnh đã được cluster chỉ còn 2 màu và xử lý về canny edge:
- Sau khi đã có kết quả đánh giá sơ bộ, nhóm quyết định sử dụng kết hợp 2 trên 4 phương pháp ở trên:
- Xử lý màu: Hướng thứ nhất
- Xứ lý cạnh: Hướng thứ nhất
- Kết quả:
- Kết quả trên bộ valid data:
- fruits_data: folfer chứa data.
- model: folder chứa các model đã train.
- output_input: data đã được chia thủ công và đọc thành file csv.
- valid data: Bộ data thực tế để kiểm tra model.
- Extract_Color.ipynb: Trích xuất đặc trưng màu.
- Extract_Edge.ipynb: Trích xuất đặc trưng cạnh.
- eval_cluster_color.ipynb: Đánh giá model với 2 hướng xử lí màu.
- eval_edgecluster_model.ipynb: Đánh giá model với 2 hướng xử lí cạnh.
- Final_model_FruitClassification.ipynb: Model hoàn chỉnh khi kết hợp 2 phương pháp cạnh và màu.
- Fruits_classify_app.ipynb: App cho người dùng test model.
Download Category | Python, Scripts & Code |
Product Homepage URL→ | |
Product Version | |
File Type | IPYNB |
File Size | 4 GB |
Developer | |
Documentation |