protected FVProviderExtractor<DoubleFV, CLMDetectedFace> getWrapperExtractor() { switch (mode) { case POSE: { final CLMPoseFeature.Extractor extr = new CLMPoseFeature.Extractor(); return FVProviderExtractor.create(extr); } case SHAPE: { final CLMShapeFeature.Extractor extr = new CLMShapeFeature.Extractor(); return FVProviderExtractor.create(extr); } case POSE_SHAPE: { final CLMPoseShapeFeature.Extractor extr = new CLMPoseShapeFeature.Extractor(); return FVProviderExtractor.create(extr); } } return null; } }
/** * Create a new {@link FVProviderExtractor} with the given extractor. * * @param extractor * the extractor * * @param <FV> * Type of {@link FeatureVector} * @param <OBJECT> * Type of object the extractor works on. * @param <EXTRACTOR> * Type of extractor. * * @return the new {@link FVProviderExtractor} */ public static <FV extends FeatureVector, OBJECT, EXTRACTOR extends FeatureExtractor<? extends FeatureVectorProvider<FV>, OBJECT>> FVProviderExtractor<FV, OBJECT> create(EXTRACTOR extractor) { return new FVProviderExtractor<FV, OBJECT>(extractor); } }
protected FVProviderExtractor<DoubleFV, CLMDetectedFace> getWrapperExtractor() { switch (mode) { case POSE: { final CLMPoseFeature.Extractor extr = new CLMPoseFeature.Extractor(); return FVProviderExtractor.create(extr); } case SHAPE: { final CLMShapeFeature.Extractor extr = new CLMShapeFeature.Extractor(); return FVProviderExtractor.create(extr); } case POSE_SHAPE: { final CLMPoseShapeFeature.Extractor extr = new CLMPoseShapeFeature.Extractor(); return FVProviderExtractor.create(extr); } } return null; } }
/** * Create a new {@link FVProviderExtractor} with the given extractor. * * @param extractor * the extractor * * @param <FV> * Type of {@link FeatureVector} * @param <OBJECT> * Type of object the extractor works on. * @param <EXTRACTOR> * Type of extractor. * * @return the new {@link FVProviderExtractor} */ public static <FV extends FeatureVector, OBJECT, EXTRACTOR extends FeatureExtractor<? extends FeatureVectorProvider<FV>, OBJECT>> FVProviderExtractor<FV, OBJECT> create(EXTRACTOR extractor) { return new FVProviderExtractor<FV, OBJECT>(extractor); } }
/** * Convenience method to create an {@link EigenFaceRecogniser} with a * standard KNN classifier. * * @param <FACE> * The type of {@link DetectedFace} * @param <PERSON> * the type representing a person * @param numComponents * the number of principal components to keep * @param aligner * the face aligner * @param k * the number of nearest neighbours * @param compar * the distance comparison function * @return a new {@link EigenFaceRecogniser} */ public static <FACE extends DetectedFace, PERSON> EigenFaceRecogniser<FACE, PERSON> create(int numComponents, FaceAligner<FACE> aligner, int k, DoubleFVComparator compar) { final Extractor<FACE> extractor = new Extractor<FACE>(numComponents, aligner); final FVProviderExtractor<DoubleFV, FACE> extractor2 = FVProviderExtractor.create(extractor); final KNNAnnotator<FACE, PERSON, DoubleFV> knn = KNNAnnotator.create(extractor2, compar, k); return new EigenFaceRecogniser<FACE, PERSON>(extractor, knn); }
final FVProviderExtractor<DoubleFV, FACE> extractor2 = FVProviderExtractor.create(extractor);
/** * Convenience method to create an {@link FisherFaceRecogniser} with a * standard KNN classifier. * * @param <FACE> * The type of {@link DetectedFace} * @param <PERSON> * the type representing a person * @param numComponents * the number of principal components to keep * @param aligner * the face aligner * @param k * the number of nearest neighbours * @param compar * the distance comparison function * @return a new {@link FisherFaceRecogniser} */ public static <FACE extends DetectedFace, PERSON> FisherFaceRecogniser<FACE, PERSON> create(int numComponents, FaceAligner<FACE> aligner, int k, DoubleFVComparator compar) { final Extractor<FACE> extractor = new Extractor<FACE>(numComponents, aligner); final FVProviderExtractor<DoubleFV, FACE> extractor2 = FVProviderExtractor.create(extractor); final KNNAnnotator<FACE, PERSON, DoubleFV> knn = KNNAnnotator.create(extractor2, compar, k); return new FisherFaceRecogniser<FACE, PERSON>(extractor, knn); }
final FVProviderExtractor<DoubleFV, FACE> extractor2 = FVProviderExtractor.create(extractor);