Tải thư viện haar_cascade tại link dưới, chép vào folder project
Lưu ý: mỗi file .xml ứng với 1 bộ nhận diện (đọc tên file có mô tả).
Ví dụ để nhận diện khuôn mặt, sử dụng file haarcascade_frontalface_default.xml
opencv/data/haarcascades at master · opencv/opencv
detectMultiScale(img,scaleFactor,minNeighbors,minSize,flags) là hàm quét đa tỉ lệ (multi-scale scanning) để phát hiện đối tượng trong ảnh của OpenCV.
Ở mỗi tỉ lệ scaleFactor , bộ phân loại (cascade) trượt cửa sổ trên ảnh để tìm vùng “khớp” (ở đây là mặt người)
Các cửa sổ phát hiện chồng lấp sẽ được gom nhóm; chỉ những nhóm đủ “đông” (≥ minNeighbors) mới được giữ lại. Kết quả cuối là danh sách các hình chữ nhật (x, y, w, h) bao quanh khuôn mặt
image
: ảnh đầu vào (nên là ảnh xám 8-bit).scaleFactor
(mặc định 1.1): tỉ lệ thu nhỏ giữa các mức.
minNeighbors
(mặc định 3–5 tùy bản): số “láng giềng” tối thiểu khi gom nhóm.
minSize
: kích thước nhỏ nhất của đối tượng cần tìm. Đặt giá trị này giúp tăng tốc và bớt nhiễu (ví dụ nhận diện mặt: (30, 30)
trở lên).maxSize
: kích thước lớn nhất của đối tượng; bỏ qua vùng lớn hơn.flags
: để 0 (tham số cũ, hiện không còn dùng với cascade mới).Biến thể:
detectMultiScale2(...)
trả thêmnumDetections
(bao nhiêu ô góp vào mỗi box).detectMultiScale3(..., outputRejectLevels=True)
trả thêmrejectLevels
vàlevelWeights
(độ “chắc chắn”).
scaleFactor=1.1
, minNeighbors=5
, minSize=(30,30)
.