/** * Default constructor that takes the minimum size (in pixels) of detections * that should be considered faces. * * @param minSize * The minimum size of face boxes */ public KLTHaarFaceTracker(final int minSize) { this.faceDetector.setMinSize(minSize); }
@Override public FaceDetector<DetectedFace, FImage> getDetector() { final HaarCascadeDetector fd = cascade.load(); fd.setMinSize(minSize); return fd; } }
@Override public FaceDetector<DetectedFace, FImage> getDetector() { final HaarCascadeDetector fd = cascade.load(); fd.setMinSize(minSize); return fd; } }
public static void main(String[] args) throws IOException, InterruptedException { final File fddbGroundTruth = new File("/Users/jsh2/Downloads/FDDB-folds/FDDB-fold-01-ellipseList.txt"); final File imageBase = new File("/Users/jsh2/Downloads/originalPics/"); final FDDBDataset dataset = new FDDBDataset(fddbGroundTruth, imageBase, true); final HaarCascadeDetector det = HaarCascadeDetector.BuiltInCascade.frontalface_alt2.load(); det.setGroupingFilter(new OpenCVGrouping(0)); det.setMinSize(80); final EvaluationDetector evDet = new EvaluationDetector() { @Override public synchronized List<? extends DetectedFace> getDetections(FDDBRecord record) { final List<DetectedFace> faces = det.detectFaces(record.getFImage()); // for (final DetectedFace f : faces) // f.setConfidence(1); return faces; } }; final FDDBEvaluation eval = new FDDBEvaluation(); final List<Results> result = eval.performEvaluation(dataset, evDet); System.out.println(Results.getROCData(result)); } }
hcd.setMinSize( minSize );
hcd.setMinSize( minSize );
@Override public synchronized void beforeUpdate(MBFImage frame) { List<? extends DetectedFace> faces = null; if (findKeypoints) { faces = engine .detectFaces(Transforms.calculateIntensityNTSC(frame)); } else { faces = innerEngine.detectFaces(Transforms .calculateIntensityNTSC(frame)); } if (faces.size() > 0) { Rectangle r = faces.get(0).getBounds(); ((HaarCascadeDetector) innerEngine) .setMinSize((int) (r.width * 0.9)); } else { ((HaarCascadeDetector) innerEngine).setMinSize(1); } for (DetectedFace face : faces) { final Shape bounds = face.getBounds(); MBFImageRenderer renderer = frame.createRenderer(); renderer.drawPolygon(bounds.asPolygon(), RGBColour.RED); if (findKeypoints) { for (FacialKeypoint kp : ((KEDetectedFace) face).getKeypoints()) { Point2d pt = kp.position.clone(); pt.translate((float) bounds.minX(), (float) bounds.minY()); renderer.drawPoint(pt, RGBColour.GREEN, 3); } } } }
@Override public synchronized void beforeUpdate(MBFImage frame) { List<? extends DetectedFace> faces = null; if (findKeypoints) { faces = engine .detectFaces(Transforms.calculateIntensityNTSC(frame)); } else { faces = innerEngine.detectFaces(Transforms .calculateIntensityNTSC(frame)); } if (faces.size() > 0) { Rectangle r = faces.get(0).getBounds(); ((HaarCascadeDetector) innerEngine) .setMinSize((int) (r.width * 0.9)); } else { ((HaarCascadeDetector) innerEngine).setMinSize(1); } for (DetectedFace face : faces) { final Shape bounds = face.getBounds(); MBFImageRenderer renderer = frame.createRenderer(); renderer.drawPolygon(bounds.asPolygon(), RGBColour.RED); if (findKeypoints) { for (FacialKeypoint kp : ((KEDetectedFace) face).getKeypoints()) { Point2d pt = kp.position.clone(); pt.translate((float) bounds.minX(), (float) bounds.minY()); renderer.drawPoint(pt, RGBColour.GREEN, 3); } } } }
fd.setMinSize( this.options.faceSize );
fd.setMinSize( this.options.faceSize );
final PTServoController servos = new PTServoController("/dev/tty.usbmodemfa131"); final HaarCascadeDetector faceDetector = HaarCascadeDetector.BuiltInCascade.frontalface_alt2.load(); faceDetector.setMinSize(80); final Point2d frameCentre = new Point2dImpl(capture.getWidth() / 2, capture.getHeight() / 2);
final PTServoController servos = new PTServoController("/dev/tty.usbmodemfa131"); final HaarCascadeDetector faceDetector = HaarCascadeDetector.BuiltInCascade.frontalface_alt2.load(); faceDetector.setMinSize(80); final Point2d frameCentre = new Point2dImpl(capture.getWidth() / 2, capture.getHeight() / 2);