Mã QR
Dự án sử dụng học không giám sát để phát hiện mã QR và số bất thường.
Trong ứng dụng này, chúng tôi sử dụng thuật toán PatchCore để học từ bộ dữ liệu chỉ chứa các mẫu tốt. Sau đó, chúng tôi sử dụng thuật toán K-Nearest Neighbors (KNN) để phân biệt dữ liệu tốt và ng mới được nhìn thấy.
1. Chuẩn bị bộ dữ liệu của bạn
# cấu trúc bộ dữ liệu của bạn nên như sau
data/
-train/
-good/
-*.jpg
-test/
-good/
-*.jpg
-ng/
-*.jpg
Ghi
Số lượng dữ liệu huấn luyện phải > 10 mục. Nếu <10 mục, vui lòng xoay các ảnh để tạo thêm.
2. Cách sử dụng
Huấn luyện
Đi tới /projects/tsk_qrcode
Thực hiện lệnh này:
!python train.py --model_type patchcore --data_dir "<ĐƯỜNG_DẪN_ĐẾN_THƯ_MỤC_HUẤN_LUYỆN>"
--generate_dataset "<SỐ_BẢN_SAO>" --split_ratio "<TỶ_LỆ>"
SỐ_BẢN_SAO
: Số bản sao cho mỗi hình ảnh. Tự động tăng cường đến số lượng bản sao được chỉ định rồi tạo bộ dữ liệu. Ví dụ: 1,2,3,4. Nếu generate_dataset = 0, tạo bộ dữ liệu sẽ tắt.TỶ_LỆ
: Nhập tỷ lệ (từ 0-1). Lấy hình ảnh ngẫu nhiên từ bộ dữ liệu huấn luyện để tạo bộ dữ liệu kiểm định nếu thư mụcvalid
chưa tồn tại.
Ghi
ĐƯỜNG_DẪN_ĐẾN_THƯ_MỤC_HUẤN_LUYỆN
nên ở một cấp trên các tệp ảnh, tức là ../data/train
, không phải ../data/train/good
Mô hình sẽ được lưu trong thư mục results
.
Kiểm tra
Đi tới /projects/tsk_qrcode
Thực hiện lệnh này:
python predict.py --model_type patchcore --data_dir "<ĐƯỜNG_DẪN_ĐẾN_THƯ_MỤC_KIỂM_TRA>"
--threshold "<NGƯỠNG_ĐIỂM_ẢNH>"
--is_pixel_score_used "<SỬ_DỤNG_NGƯỠNG_ĐIỂM_ẢNH>" --threshold_pixel_score "<NGƯỠNG_ĐIỂM_ẢNH_PIXEL>"
ĐƯỜNG_DẪN_ĐẾN_THƯ_MỤC_KIỂM_TRA
: nên là nơi có các tệp ảnhNGƯỠNG_ĐIỂM_ẢNH
: Ngưỡng để xác định kết quả làtốt
hoặcNG
. Mặc địnhNone
, Nếu sử dụngNone
, mô hình tự động lấy ngưỡng điểm từ quá trình huấn luyện.SỬ_DỤNG_NGƯỠNG_ĐIỂM_ẢNH
: sử dụng thêm giá trị điểm ảnhNGƯỠNG_ĐIỂM_ẢNH_PIXEL
: Ngưỡng giá trị điểm ảnh để xác định kết quả làtốt
hoặcNG
. Mặc định:None
. Nếu sử dụngNone
, mô hình tự động lấy ngưỡng điểm ảnh từ quá trình huấn luyện.
Ghi
ĐƯỜNG_DẪN_ĐẾN_THƯ_MỤC_KIỂM_TRA
nên là nơi có các tệp ảnh, tức là ../data/test/good
Hình ảnh kết quả sẽ được lưu trong thư mục results
.
3. Cải thiện hiệu suất
Nếu dự đoán không tốt, hãy cân nhắc điều chỉnh ngưỡng hoặc thêm dữ liệu