public static void main(String[] args) throws IOException { final FImage image = ImageUtilities.readF(new File("/Users/jsh2/Data/ukbench/full/ukbench01001.jpg")); final DoGSIFTEngine engine = new DoGSIFTEngine(); engine.getOptions().setDoubleInitialImage(false); final LocalFeatureList<Keypoint> features = engine.findFeatures(image); final List<FloatKeypoint> fkeys = FloatKeypoint.convert(features); for (final FloatKeypoint k : fkeys) HellingerNormaliser.normalise(k.vector, 0); final VLADIndexerData indexer = VLADIndexerData.read(new File("/Users/jsh2/vlad-indexer-ukbench-2x.dat")); // final ByteCentroidsResult centroids = IOUtils.read(new // File("/Users/jsh2/Desktop/ukbench16.voc"), // ByteCentroidsResult.class); // final ExactByteAssigner assigner = new ExactByteAssigner(centroids); // final VLAD<byte[]> vlad = new VLAD<byte[]>(assigner, // centroids.centroids, true); // final MultidimensionalFloatFV agg = vlad.aggregate(features); final MultidimensionalFloatFV agg = indexer.getVLAD().aggregate(fkeys); System.out.println(agg); DisplayUtilities.display(VLAD.drawDescriptor(agg.values, 64, 4, 8)); } }
public static void main(String[] args) throws IOException { final FImage image = ImageUtilities.readF(new File("/Users/jsh2/Data/ukbench/full/ukbench01001.jpg")); final DoGSIFTEngine engine = new DoGSIFTEngine(); engine.getOptions().setDoubleInitialImage(false); final LocalFeatureList<Keypoint> features = engine.findFeatures(image); final List<FloatKeypoint> fkeys = FloatKeypoint.convert(features); for (final FloatKeypoint k : fkeys) HellingerNormaliser.normalise(k.vector, 0); final VLADIndexerData indexer = VLADIndexerData.read(new File("/Users/jsh2/vlad-indexer-ukbench-2x.dat")); // final ByteCentroidsResult centroids = IOUtils.read(new // File("/Users/jsh2/Desktop/ukbench16.voc"), // ByteCentroidsResult.class); // final ExactByteAssigner assigner = new ExactByteAssigner(centroids); // final VLAD<byte[]> vlad = new VLAD<byte[]>(assigner, // centroids.centroids, true); // final MultidimensionalFloatFV agg = vlad.aggregate(features); final MultidimensionalFloatFV agg = indexer.getVLAD().aggregate(fkeys); System.out.println(agg); DisplayUtilities.display(VLAD.drawDescriptor(agg.values, 64, 4, 8)); } }