@Override public FImage get(int index) { return aligner.align(data.get(index)); }
@Override public void readBinary(DataInput in) throws IOException { String alignerClass = in.readUTF(); aligner = IOUtils.newInstance(alignerClass); aligner.readBinary(in); }
@Override public void writeBinary(DataOutput out) throws IOException { out.writeUTF(aligner.getClass().getName()); aligner.writeBinary(out); } }
@Override public void writeBinary(DataOutput out) throws IOException { out.writeUTF(aligner.getClass().getName()); aligner.writeBinary(out); out.writeInt(blocksX); out.writeInt(blocksY); out.writeInt(radius); out.writeInt(samples); }
private static FImage extractAndAlignFace(FImage img, FKEFaceDetector detector, FaceAligner<KEDetectedFace> aligner) { final List<KEDetectedFace> faces = detector.detectFaces(img); if (faces.size() == 1) return aligner.align(faces.get(0)); return null; }
@Override public void readBinary(DataInput in) throws IOException { final String alignerClass = in.readUTF(); aligner = IOUtils.newInstance(alignerClass); aligner.readBinary(in); blocksX = in.readInt(); blocksY = in.readInt(); radius = in.readInt(); samples = in.readInt(); }
@Override public void writeBinary(DataOutput out) throws IOException { out.writeUTF(weighting.getClass().getName()); weighting.writeBinary(out); out.writeUTF(aligner.getClass().getName()); aligner.writeBinary(out); }
private static FImage extractAndAlignFace(FImage img, FKEFaceDetector detector, FaceAligner<KEDetectedFace> aligner) { final List<KEDetectedFace> faces = detector.detectFaces(img); if (faces.size() == 1) return aligner.align(faces.get(0)); return null; }
@Override public void readBinary(DataInput in) throws IOException { eigen.readBinary(in); final String alignerClass = in.readUTF(); aligner = IOUtils.newInstance(alignerClass); aligner.readBinary(in); }
@Override public void writeBinary(DataOutput out) throws IOException { fisher.writeBinary(out); out.writeUTF(aligner.getClass().getName()); aligner.writeBinary(out); }
/** * Train on a map of data. * * @param data * the data */ public void train(Map<?, ? extends List<T>> data) { final List<IndependentPair<?, FImage>> list = new ArrayList<IndependentPair<?, FImage>>(); for (final Entry<?, ? extends List<T>> e : data.entrySet()) { for (final T i : e.getValue()) { list.add(IndependentPair.pair(e.getKey(), aligner.align(i))); } } fisher.train(list); }
@Override public void readBinary(DataInput in) throws IOException { fisher.readBinary(in); final String alignerClass = in.readUTF(); aligner = IOUtils.newInstance(alignerClass); aligner.readBinary(in); }
@Override public void writeBinary(DataOutput out) throws IOException { eigen.writeBinary(out); out.writeUTF(aligner.getClass().getName()); aligner.writeBinary(out); }
@Override public EigenFaceFeature extractFeature(T face) { final FImage patch = aligner.align(face); final DoubleFV fv = eigen.extractFeature(patch); return new EigenFaceFeature(fv); }
@Override public void readBinary(DataInput in) throws IOException { String weightingClass = in.readUTF(); weighting = IOUtils.newInstance(weightingClass); weighting.readBinary(in); String alignerClass = in.readUTF(); aligner = IOUtils.newInstance(alignerClass); aligner.readBinary(in); }
@Override public FisherFaceFeature extractFeature(T face) { final FImage patch = aligner.align(face); final DoubleFV fv = fisher.extractFeature(patch); return new FisherFaceFeature(fv); }
@Override public IndependentPair<?, FImage> get(int index) { return IndependentPair.pair(data.get(index).firstObject(), aligner.align(data.get(index).secondObject())); }
@Override public FaceImageFeature extractFeature(T face) { FImage faceImage = aligner.align(face); FloatFV feature = FImage2FloatFV.INSTANCE.extractFeature(faceImage); return new FaceImageFeature(feature); }