package com.code2roc.fastface.config; import com.seeta.pool.SeetaConfSetting; import com.seeta.proxy.FaceDetectorProxy; import com.seeta.proxy.FaceLandmarkerProxy; import com.seeta.proxy.FaceRecognizerProxy; import com.seeta.sdk.SeetaDevice; import com.seeta.sdk.SeetaModelSetting; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.io.File; import java.io.FileNotFoundException; import java.nio.file.Path; import java.nio.file.Paths; @Configuration public class FaceConfig { @Value("${face.modelPath}") private String modelPath; @Bean public FaceDetectorProxy faceDetector() throws FileNotFoundException { Path tempDir = Paths.get(System.getProperty("user.dir"), modelPath); SeetaConfSetting detectorPoolSetting = new SeetaConfSetting( new SeetaModelSetting(0, new String[]{tempDir + File.separator + "face_detector.csta"}, SeetaDevice.SEETA_DEVICE_CPU)); FaceDetectorProxy faceDetectorProxy = new FaceDetectorProxy(detectorPoolSetting); return faceDetectorProxy; } @Bean public FaceRecognizerProxy faceRecognizer() throws FileNotFoundException { Path tempDir = Paths.get(System.getProperty("user.dir"), modelPath); SeetaConfSetting detectorPoolSetting = new SeetaConfSetting( new SeetaModelSetting(0, new String[]{tempDir + File.separator + "face_recognizer.csta"}, SeetaDevice.SEETA_DEVICE_CPU)); FaceRecognizerProxy faceRecognizerProxy = new FaceRecognizerProxy(detectorPoolSetting); return faceRecognizerProxy; } @Bean public FaceLandmarkerProxy faceLandmarker() throws FileNotFoundException { Path tempDir = Paths.get(System.getProperty("user.dir"), modelPath); SeetaConfSetting detectorPoolSetting = new SeetaConfSetting( new SeetaModelSetting(0, new String[]{tempDir + File.separator + "face_landmarker_pts5.csta"}, SeetaDevice.SEETA_DEVICE_CPU)); FaceLandmarkerProxy faceLandmarkerProxy = new FaceLandmarkerProxy(detectorPoolSetting); return faceLandmarkerProxy; } }