Top Ad unit 728 × 90


Phân lớp (classifier) trong xử lý ảnh là gì

Phân lớp hiểu đơn giản là tìm nhãn của dữ liệu. Có nhiều bài toán về phân lớp, như là phân lớp động vật, ký tự, đồ vật,… Để làm được điều đó đầu tiên phải training bằng bộ dữ liệu đã được phân lớp sẵn, từ kết quả training mà phân lớp dữ liệu input. Để dễ so sánh mình sử dụng 2 thuật toán là SVM và KNN cho các bạn dễ hình dung.


Chuẩn bị dữ liệu

Trong bài này mình sẽ minh hoạ bằng phân lớp ký tự, link download bộ dữ liệu example nằm ở cuối bài. Download về giải nén các bạn sẽ có:
  • raw: thư mục chứa các ký tự chưa được sắp xếp
  • Trainset: thư mục chứa các ký tự đã được sắp xếp
  • 1.KNNtraining.bat: dùng để training model knn
  • 2.KNNclassifier.bat: dùng để phân lớp dùng model knn đã được training
  • 1.SVMtraining.bat: dùng để training model svm
  • 2.SVMclassifier.bat: dùng để phân lớp dùng model svm đã được training
Các file exe đã được file *.bat truyền tham số, do đó không cần quan tâm nhiều. Còn file opencv_world320.dll chứa các hàm cần thiết, cũng không cần quan tâm nhiều.

Các bước thực hiện

  1. Sắp xếp vài ký tự vào các folder trong thư mục Training (mình đã làm trước 1 vài ký tự)
  2. Chạy file 1.KNNtraining.bat để training, chương trình sẽ lấy các file trong thư mục Training và tạo ra file char.knn
  3. Chạy file 2.KNNclassifier.bat để sắp xếp các ký tự trong thư mục raw vào đúng chỗ
  4. Sau khi phân lớp, các ký tự nào bị phân lớp sai (sai folder) thì cut qua thư mục Trainset rồi chạy lại bước 1
Sau khi làm nhiều lần, khi file char.knn được học đầy đủ dữ liệu sẽ phân loại đúng hơn. Với SVM cũng làm các bước tương tự.
Tài liệu về Phân lớp:
Phân lớp (classifier) trong xử lý ảnh là gì Reviewed by Jacky on tháng 1 10, 2018 Rating: 5

Không có nhận xét nào:

All Rights Reserved by Cộng Đồng OpenCV © 2017
Edit bởi: Jacky Le | Youtube Channel: JACKY LE

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.