Trong quá trình tìm hiểu mình có gặp chương trình phát hiện giới tính khá tốt. Tuy rằng chưa hoàn hảo nhưng có nhiều ưu điểm nên mình giới thiệu cho mọi người.
Chương trình do Arun Ponnusamy viết bằng ngôn ngữ Python sử dụng Keras. Chương trình vừa đủ các file cần thiết cho người mới tìm hiểu và hỗ trợ ảnh lẫn webcam. Nếu bạn muốn chạy test bằng video thì chỉ cần thay id của webcam thành video path là được.
Sử dụng các package gồm: numpy, opencv-python, tensorflow, keras, requests, progressbar, cvlib.
Ưu điểm của chương trình:
– Dễ chạy
– Độ chính xác chấp nhận được (phát hiện sai với khuôn mặt size nhỏ hơn 80px)
– Dễ training lại
– Code dễ hiểu, ngắn gọn
Sử dụng
Đầu tiên các bạn cần cài các package cần thiết theo cú pháp:
pip install -r requirements.txt
Python sẽ download tất cả các package cần thiết để bạn chạy chương trình.
Lần đầu tiên chạy thì chương trình tự động download model đã training. Và việc download chỉ cần 1 lần duy nhất là được.
Cú pháp sử dụng:
detect_gender.py -i <file path>
Ví dụ: detect_gender.py -i C:/image/person1.jpg
Huấn luyện lại
Nếu bạn thấy độ chính xác không đủ đáp ứng hoặc muốn training lại để tìm hiểu thì sử dụng cú pháp:
python train.py -d <dir path>
Ví dụ: python train.py -d gender_dataset_face
Mặc định chương trình sẽ lưu model output là gender_detection.model. Đồng thời cũng save biểu đồ kết quả ra file plot.png
Thư mục cha phải chứa 2 folder ảnh male/female. Chương trình sẽ lấy hình và huấn luyện rồi save thành model cho các bạn. Bên dưới là quá trình mình training bằng GPU
Link download
Github: https://github.com/arunponnusamy/gender-detection-keras
Download bộ ảnh khuôn mặt đã phân loại sẵn: gender_dataset_face.zip