Распознавание лиц. FaceRecognizer.train — обучение программы распознавания лиц

Функция обчения

FaceRecognizer faceRecognizer = createLBPHFaceRecognizer();
public void train() {
    File imagesDir = new File("src\\vision\\savedFaces");
    FilenameFilter imgFilter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            name = name.toLowerCase();
            return name.endsWith(".jpg") || name.endsWith(".pgm") || name.endsWith(".png");
        }
    };
 
    File[] imageFiles = imagesDir.listFiles(imgFilter);
    MatVector images = new MatVector(imageFiles.length);
 
    Mat labels = new Mat(imageFiles.length, 1, CV_32SC1);
    IntBuffer labelsBuf = labels.createBuffer();
    int counter = 0;
 
    for (File image : imageFiles) {
        Mat baseImage = imread(image.getAbsolutePath(), CV_LOAD_IMAGE_GRAYSCALE);
        int label = Integer.parseInt(image.getName().split("\\-")[0]);
        ass.put(label, image.getName());
        images.put(counter, baseImage);
        labelsBuf.put(counter, label);
        counter++;
    }
 
    faceRecognizer.train(images, labels);
    faceRecognizer.save("src\\vision\\result_train.xml");

Передать фото и получить индекс картинки.

int lable = faceRecognizer.predict(cvarrToMat(face));
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: