Example usage for org.apache.lucene.store IOContext READONCE

List of usage examples for org.apache.lucene.store IOContext READONCE

Introduction

In this page you can find the example usage for org.apache.lucene.store IOContext READONCE.

Prototype

IOContext READONCE

To view the source code for org.apache.lucene.store IOContext READONCE.

Click Source Link

Usage

From source file:in.cdac.medinfo.csnotk.csnolib.agents.LuceneSearchAgent.java

License:Apache License

/**
 * /*w w  w.  ja  va  2  s .com*/
 * @return indexDirectory
 * @throws IOException
 */
private static Directory getIndexDirectorytoRead() throws IOException {
    if (indexDirectory == null) {
        synchronized (mutex) {
            Properties properties = null;
            try {
                properties = PropertyReader.loadSystemProperties();
            } catch (IOException e) {
                //Get the Stack trace and form the exception message.
                StackTraceElement arrStackTraceElement[];
                arrStackTraceElement = e.getStackTrace();
                String strMessage = e.getClass() + Constants.NEW_LINE + Constants.CLASS_NAME
                        + arrStackTraceElement[0].getClassName() + Constants.NEW_LINE + Constants.METHOD_NAME
                        + arrStackTraceElement[0].getMethodName() + Constants.NEW_LINE + Constants.LINE_NUMBER
                        + arrStackTraceElement[0].getLineNumber() + Constants.NEW_LINE
                        + Constants.MESSAGE_DESCRIPTION + e.getMessage();
                //Log the Exception
                CSNOLogger.logException(strMessage);
            }
            //public RAMDirectory(Directory dir,IOContext context) throws IOException
            //Creates a new RAMDirectory instance from a different Directory implementation. This can be used to 
            //load a disk-based index into memory.

            //Warning: This class is not intended to work with huge indexes. Everything beyond several hundred 
            //megabytes will waste resources (GC cycles), because it uses an internal buffer size of 1024 bytes,
            //producing millions of byte[1024] arrays. This class is optimized for small memory-resident indexes. 
            //It also has bad concurrency on multithreaded environments.
            //Note that the resulting RAMDirectory instance is fully independent from the original Directory (it is a complete copy).
            //Any subsequent changes to the original Directory will not be visible in the RAMDirectory instance.
            indexDirectory = new RAMDirectory(
                    FSDirectory.open(new File(properties.getProperty(Constants.INDEX_DIR))),
                    IOContext.READONCE);
        }
    }
    return indexDirectory;
}

From source file:lsre.utils.LuceneUtils.java

License:Open Source License

public static IndexReader openIndexReader(FSDirectory directory, boolean RAMDirectory) throws IOException {
    if (RAMDirectory)
        return DirectoryReader.open(new RAMDirectory(directory, IOContext.READONCE));
    else//  w w  w . jav a2s  .  co  m
        return DirectoryReader.open(directory);
}

From source file:net.semanticmetadata.lire.benchmarking.TestGroundTruth.java

License:Open Source License

public void testBitSampling() throws IllegalAccessException, IOException, InstantiationException {
    //        double w = 4;
    //        for (int i=500; i <= 2000; i+=250) {
    //            for (int runs = 0; runs<100; runs++) {
    File f = new File(BitSampling.hashFunctionsFileName);
    if (f.exists())
        f.delete();//from   w ww . j a  v  a  2  s.  c om
    //                BitSampling.setNumFunctionBundles(80);
    BitSampling.generateHashFunctions();
    LocalitySensitiveHashing.generateHashFunctions();
    String[] args = new String[] { "-c", "C:\\Temp\\Eval-WIPO\\2index.txt", "-l", indexPath };
    HashingIndexor.main(args);
    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(new File(indexPath)), IOContext.READONCE));
    //        double precision = getRecall(new BitSamplingImageSearcher(30, DocumentBuilder.FIELD_NAME_PHOG,
    //                DocumentBuilder.FIELD_NAME_PHOG + "_hash", new PHOG(), new FileInputStream(BitSampling.hashFunctionsFileName), 500), reader);
    //        System.out.println(precision);
    f = new File(BitSampling.hashFunctionsFileName);
    //                f.renameTo(new File(runs + "_" + precision + "_" + BitSampling.hashFunctionsFileName));
    //            }
    //        }
}

From source file:net.semanticmetadata.lire.benchmarking.TestHashingIndex.java

License:Open Source License

private void testHashing(Class featureClass, String fieldName)
        throws IOException, InstantiationException, IllegalAccessException {
    String hashesFile = "hashes.obj";
    String hashesFileL = "l_hashes.obj";
    int numResults = 50;
    int maxQueries = 20;
    int queryOffset = 100;

    File file = new File(hashesFile);
    if (file.exists())
        file.delete();/*from w w  w  .j a va2s  .co m*/
    file = new File(hashesFileL);
    if (file.exists())
        file.delete();
    BitSampling.generateHashFunctions(hashesFile);
    LocalitySensitiveHashing.generateHashFunctions(hashesFileL);
    //        HashingIndexor hi = new HashingIndexor();
    ProximityHashingIndexor hi = new ProximityHashingIndexor();
    BitSampling.readHashFunctions(new FileInputStream(hashesFile));
    LocalitySensitiveHashing.readHashFunctions(new FileInputStream(hashesFileL));
    hi.setFeatureClass(featureClass);
    hi.addInputFile(new File(dataSetDataOut));
    hi.setIndexPath(testIndex);
    hi.run();
    System.out.println();

    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(new File(testIndex)), IOContext.READONCE));
    // generating ground truth for all queries ...
    ImageSearcher groundTruth = new GenericFastImageSearcher(numResults, featureClass, fieldName);
    ArrayList<ImageSearchHits> trueHitsList = new ArrayList<ImageSearchHits>(maxQueries);
    long time = System.currentTimeMillis();
    for (int q = 0; q < maxQueries; q++) {
        trueHitsList.add(q, groundTruth.search(reader.document(q + queryOffset), reader));
    }
    time = System.currentTimeMillis() - time;
    // header
    System.out.println(featureClass.getName().substring(featureClass.getName().lastIndexOf('.') + 1));
    System.out.println("Number of queries: " + maxQueries);
    System.out.println("Time taken for linear search: " + (time / maxQueries));
    System.out.printf("numFunctionBundles: %d, numBits: %d, w: %2.2f, dimensions: %d\n",
            BitSampling.getNumFunctionBundles(), BitSampling.getBits(), BitSampling.getW(),
            BitSampling.dimensions);
    System.out.println("#hashedResults\ttrue pos.\t#results\tms per search\tprecision");

    for (int j = 100; j <= 3000; j += 100) {
        ImageSearcher hashed = new BitSamplingImageSearcher(numResults, fieldName, fieldName + "_hash",
                (LireFeature) featureClass.newInstance(), new FileInputStream(hashesFile), j);
        long ms = 0;
        long msSum = 0;
        int posSum = 0;
        for (int q = 0; q < maxQueries; q++) {
            ms = System.currentTimeMillis();
            ImageSearchHits hashedHits = hashed.search(reader.document(q + queryOffset), reader);
            assert (hashedHits.length() <= numResults);
            msSum += System.currentTimeMillis() - ms;
            HashSet<Integer> t = new HashSet<Integer>(hashedHits.length());
            HashSet<Integer> h = new HashSet<Integer>(hashedHits.length());
            for (int i = 0; i < trueHitsList.get(q).length(); i++) {
                t.add(((SimpleImageSearchHits) trueHitsList.get(q)).readerID(i));
                h.add(((SimpleImageSearchHits) hashedHits).readerID(i));
            }
            assert (t.size() == h.size());
            int intersect = 0;
            for (Iterator<Integer> iterator = h.iterator(); iterator.hasNext();) {
                if (t.contains(iterator.next())) {
                    intersect++;
                }
            }
            posSum += intersect;
        }
        if (j > 1400)
            j += 100;
        double truePositives = ((double) posSum) / ((double) maxQueries);
        System.out.printf("%4d\t%4.1f\t%4d\t%6.1f\t%1.3f\n", j, truePositives, numResults,
                ((double) msSum) / ((double) maxQueries), truePositives / (double) numResults);
        if (posSum / maxQueries == numResults)
            break;
    }
}

From source file:net.semanticmetadata.lire.benchmarking.TestSimple.java

License:Open Source License

public void testMAP() throws IOException {
    ///*/* www  . j  a  v a  2  s . c om*/

    // INDEXING ...
    parallelIndexer.run();

    System.out.println("** SIMPLE BoVW using CEDD and Rand");
    SimpleFeatureBOVWBuilder simpleBovwBuilderCEDD = new SimpleFeatureBOVWBuilder(
            DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CEDD(),
            SimpleBuilder.KeypointDetector.Random, sample, clusters);
    //        simpleBovwBuilderCEDD.setDeleteLocalFeatures(false);
    simpleBovwBuilderCEDD.index();

    //        System.out.println("** SIMPLE BoVW using FCTH and Rand");
    //        SimpleFeatureBOVWBuilder simpleBovwBuilderFCTH = new SimpleFeatureBOVWBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new FCTH(), SimpleBuilder.KeypointDetector.Random, sample, clusters);
    ////        simpleBovwBuilderFCTH.setDeleteLocalFeatures(false);
    //        simpleBovwBuilderFCTH.index();
    //
    //        System.out.println("** SIMPLE BoVW using JCD and Rand");
    //        SimpleFeatureBOVWBuilder simpleBovwBuilderJCD = new SimpleFeatureBOVWBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new JCD(), SimpleBuilder.KeypointDetector.Random, sample, clusters);
    //        simpleBovwBuilderJCD.index();

    //*/

    // Read queries tha are not included in the collection
    outsideQueries = new LinkedList<Document>();
    outsideQueries.clear();
    if (queriesOutsideCollectionPath != null) {
        SimpleFeatureBOVWBuilder sCEDDBuilderforQueries = new SimpleFeatureBOVWBuilder(
                DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CEDD(),
                SimpleBuilder.KeypointDetector.Random);
        //            SimpleFeatureBOVWBuilder sFCTHBuilderforQueries = new SimpleFeatureBOVWBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new FCTH(), SimpleBuilder.KeypointDetector.Random);
        //            SimpleFeatureBOVWBuilder sJCDBuilderforQueries = new SimpleFeatureBOVWBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new JCD(), SimpleBuilder.KeypointDetector.Random);
        ChainedDocumentBuilder documentBuilder = new ChainedDocumentBuilder();
        parallelIndexer.addBuilders(documentBuilder);
        System.out.println("Getting all queries in " + queriesOutsideCollectionPath + ".");
        List<String> files = files = FileUtils.getAllImages(new File(queriesOutsideCollectionPath), true);
        Document query;
        String path;
        for (Iterator<String> iterator = files.iterator(); iterator.hasNext();) {
            path = iterator.next();
            query = documentBuilder.createDocument(ImageIO.read(new File(path)), path);
            query = sCEDDBuilderforQueries.getVisualWords(query);
            //                query = sFCTHBuilderforQueries.getVisualWords(query);
            //                query = sJCDBuilderforQueries.getVisualWords(query);
            outsideQueries.add(query);
        }
    }

    // SEARCHING
    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(new File(indexPath)), IOContext.READONCE));

    System.out.println("Searching...");

    doSearch(new GenericFastImageSearcher(30, GenericDoubleLireFeature.class,
            (new SimpleBuilder()).getFieldName(SimpleBuilder.KeypointDetector.Random, new CEDD())
                    + DocumentBuilder.FIELD_NAME_BOVW_VECTOR,
            true, reader), "SimpleCEDDRand", reader);
    //        doSearch(new GenericFastImageSearcher(30, GenericDoubleLireFeature.class, (new SimpleBuilder()).getFieldName(SimpleBuilder.KeypointDetector.Random, new FCTH()) + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "SimpleFCTHRand", reader);
    //        doSearch(new GenericFastImageSearcher(30, GenericDoubleLireFeature.class, (new SimpleBuilder()).getFieldName(SimpleBuilder.KeypointDetector.Random, new JCD()) + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "SimpleJCDRand", reader);
    //
    //perform weighting schemes
    //        performWSs((new SimpleBuilder()).getFieldName(SimpleBuilder.KeypointDetector.Random, new CEDD()) + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "SimpleCEDDRand", reader);
    //        performWSs((new SimpleBuilder()).getFieldName(SimpleBuilder.KeypointDetector.Random, new FCTH()) + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "SimpleFCTHRand", reader);
    //        performWSs((new SimpleBuilder()).getFieldName(SimpleBuilder.KeypointDetector.Random, new JCD()) + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "SimpleJCDRand", reader);

}

From source file:net.semanticmetadata.lire.benchmarking.TestUCID.java

License:Open Source License

public void testMAP() throws IOException {
    // INDEXING ...
    parallelIndexer.run();//  w ww  . j av a2  s . c o  m

    //        System.out.println("** CVSURF BoVW");
    //        BOVWBuilder bovwBuilderSURF = new BOVWBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CvSurfFeature(), sample, clusters);
    //        bovwBuilderSURF.index();
    //        System.out.println("** CVSIFT BoVW");
    //        BOVWBuilder bovwBuilder = new BOVWBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CvSiftFeature(), sample, clusters);
    //        bovwBuilder.index();

    //        System.out.println("** CVSIFT VLAD");
    //        VLADBuilder vladBuilder = new VLADBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CvSiftFeature(), sample, clusters);
    //        vladBuilder.index();

    System.out.println("** SIMPLE BoVW using CEDD and CVSURF");
    SimpleFeatureBOVWBuilder simpleBovwBuilder = new SimpleFeatureBOVWBuilder(
            DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CEDD(),
            SimpleBuilder.KeypointDetector.CVSURF, sample, clusters);
    simpleBovwBuilder.index();

    //        System.out.println("** SIMPLE VLAD using CEDD and CVSURF");
    //        SimpleFeatureVLADBuilder simpleVladBuilder = new SimpleFeatureVLADBuilder(DirectoryReader.open(FSDirectory.open(new File(indexPath))), new CEDD(), SimpleBuilder.KeypointDetector.CVSURF, sample, clusters);
    //        simpleVladBuilder.index();

    // SEARCHING
    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(new File(indexPath)), IOContext.READONCE));

    System.out.println("Feature\tMAP\tp@10\tER");
    //        computeMAP(new GenericFastImageSearcher(1000, CEDD.class, true, reader), "CEDD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, FCTH.class, true, reader), "FCTH", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, JCD.class, true, reader), "JCD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, PHOG.class, true, reader), "PHOG", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, true, reader), "Color Layout", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, true, reader), "Edge Histogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, true, reader), "Scalable Color", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, JointHistogram.class, true, reader), "Joint Histogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, true, reader), "Opponent Histogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SimpleColorHistogram.class, true, reader), "RGB Color Histogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, true, reader), "Color Correlation", reader);

    //        computeMAP(new GenericFastImageSearcher(1000, SPCEDD.class, true, reader), "SPCEDD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPJCD.class, true, reader), "SPJCD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPFCTH.class, true, reader), "SPFCTH", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPACC.class, true, reader), "SPACC ", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, LocalBinaryPatterns.class, "lbp", true, reader), "LBP ", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, LocalBinaryPatternsAndOpponent.class, "jhl", true, reader), "JHL ", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, RotationInvariantLocalBinaryPatterns.class, "rlbp"), "RILBP ", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPLBP.class, true, reader), "SPLBP ", reader);
    //        computeMAP(ImageSearcherFactory.createTamuraImageSearcher(1400), "Tamura", reader);
    //        computeMAP(ImageSearcherFactory.createTamuraImageSearcher(1400), "Tamura", reader);

    //        computeMAP(new VisualWordsImageSearcher(1000, DocumentBuilder.FIELD_NAME_SURF + DocumentBuilder.FIELD_NAME_BOVW), "Surf BoVW Lucene", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SURF_LOCAL_FEATURE_HISTOGRAM, true, reader), "Surf BoVW L2", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIFT_LOCAL_FEATURE_HISTOGRAM, true, reader), "Sift BoVW L2", reader);
    //        computeMAP(new VisualWordsImageSearcher(1400, (new ScalableColor()).getFieldName() + "LoDe"), "LoDe SC Lucene", reader);
    //        computeMAP(new GenericFastImageSearcher(1400, GenericDoubleLireFeature.class, (new CEDD()).getFieldName() + "LoDe_Hist", true, reader), "LoDe SC L2", reader);
    //        computeMAP(new VisualWordsImageSearcher(1400, (new CEDD()).getFieldName() + "LoDe"), "LoDe CEDD Lucene", reader);

    //NEK TESTS for SIMPLE//
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_CEDD + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW CEDD CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_FCTH + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW FCTH CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_JCD + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW JCD CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_AUTOCOLORCORRELOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW AutoColCorrel CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_OPPONENT_HISTOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW OppHist CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_LOCAL_BINARY_PATTERNS + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW LBP CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_ROTATION_INVARIANT_LOCAL_BINARY_PATTERNS + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW RILBP CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_SCALABLECOLOR + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW SC CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_COLORLAYOUT + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW CL CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_EDGEHISTOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Simple BOVW EH CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "CVSURF BoVW", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_CVSIFT + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "CVSIFT BoVW", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Surf BoVW", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIFT + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, true, reader), "Sift BoVW", reader);
    //
    //perform weighting schemes for SIMPLE
    performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_CEDD
            + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW CEDD CVSURF",
            reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_FCTH + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW FCTH CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_JCD + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW JCD CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_AUTOCOLORCORRELOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW AutoColCorrel CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_OPPONENT_HISTOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW OppHist CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_LOCAL_BINARY_PATTERNS + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW LBP CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_ROTATION_INVARIANT_LOCAL_BINARY_PATTERNS + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW RILBP CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_SCALABLECOLOR + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW SC CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_COLORLAYOUT + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW CL CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_EDGEHISTOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Simple BOVW EH CVSURF", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_CVSURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "CVSURF BoVW", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_CVSIFT + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "CVSIFT BoVW", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SURF + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Surf BoVW", reader);
    //        performWSs(DocumentBuilder.FIELD_NAME_SIFT + DocumentBuilder.FIELD_NAME_BOVW_VECTOR, "Sift BoVW", reader);
    //
    //
    //VLAD
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_CEDD + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD CEDD CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_FCTH + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD FCTH CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_JCD + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD JCD CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_AUTOCOLORCORRELOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD AutoColCorrel CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_OPPONENT_HISTOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD OppHist CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_LOCAL_BINARY_PATTERNS + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD LBP CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_ROTATION_INVARIANT_LOCAL_BINARY_PATTERNS + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD RILBP CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_SCALABLECOLOR + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD SC CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_COLORLAYOUT + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD CL CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIMPLE + DocumentBuilder.FIELD_NAME_EDGEHISTOGRAM + SimpleBuilder.Detector_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Simple VLAD EH CVSURF", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_CVSURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "CVSURF VLAD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_CVSIFT + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "CVSIFT VLAD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SURF + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Surf VLAD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, GenericDoubleLireFeature.class, DocumentBuilder.FIELD_NAME_SIFT + DocumentBuilder.FIELD_NAME_VLAD_VECTOR, true, reader), "Sift VLAD", reader);
}

From source file:net.semanticmetadata.lire.benchmarking.TestUCID.java

License:Open Source License

private void testSearchSpeed(ArrayList<String> images, final Class featureClass) throws IOException {
    parallelIndexer = new ParallelIndexer(8, indexPath, testExtensive, true) {
        @Override/*  w  ww  .  j a  v a2 s  .c o m*/
        public void addBuilders(ChainedDocumentBuilder builder) {
            builder.addBuilder(new GenericDocumentBuilder(featureClass, "feature"));
        }
    };
    parallelIndexer.run();
    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(new File(indexPath)), IOContext.READONCE));
    Bits liveDocs = MultiFields.getLiveDocs(reader);
    double queryCount = 0d;
    ImageSearcher searcher = new GenericFastImageSearcher(100, featureClass, "feature");
    long ms = System.currentTimeMillis();
    for (int i = 0; i < reader.maxDoc(); i++) {
        if (reader.hasDeletions() && !liveDocs.get(i))
            continue; // if it is deleted, just ignore it.
        String fileName = getIDfromFileName(
                reader.document(i).getValues(DocumentBuilder.FIELD_NAME_IDENTIFIER)[0]);
        if (queries.keySet().contains(fileName)) {
            queryCount += 1d;
            // ok, we've got a query here for a document ...
            Document queryDoc = reader.document(i);
            ImageSearchHits hits = searcher.search(queryDoc, reader);
        }
    }
    ms = System.currentTimeMillis() - ms;
    System.out.printf("%s \t %3.1f \n",
            featureClass.getName().substring(featureClass.getName().lastIndexOf('.') + 1),
            (double) ms / queryCount);
}

From source file:net.semanticmetadata.lire.benchmarking.TestUniversal.java

License:Open Source License

public void testMAP() throws IOException {
    // INDEXING ...
    ParallelIndexer parallelIndexer = new ParallelIndexer(DocumentBuilder.NUM_OF_THREADS, indexPath,
            testExtensive, numOfClusters, numOfDocsForVocabulary, aggregator);
    //        ParallelIndexer parallelIndexer = new ParallelIndexer(DocumentBuilder.NUM_OF_THREADS, indexPath, testExtensive, false);
    //        ParallelIndexer parallelIndexer = new ParallelIndexer(DocumentBuilder.NUM_OF_THREADS, indexPath, testExtensive);

    //GLOBALS/*from   w w w. j a v  a  2  s.  c o  m*/
    //        parallelIndexer.addExtractor(ACCID.class);
    parallelIndexer.addExtractor(CEDD.class);
    //        parallelIndexer.addExtractor(FCTH.class);
    //        parallelIndexer.addExtractor(JCD.class);
    //        parallelIndexer.addExtractor(AutoColorCorrelogram.class);
    //        parallelIndexer.addExtractor(BinaryPatternsPyramid.class);
    //        parallelIndexer.addExtractor(FuzzyColorHistogram.class);
    //        parallelIndexer.addExtractor(FuzzyOpponentHistogram.class);
    //        parallelIndexer.addExtractor(Gabor.class);
    //        parallelIndexer.addExtractor(JpegCoefficientHistogram.class);
    //        parallelIndexer.addExtractor(LocalBinaryPatterns.class);
    //        parallelIndexer.addExtractor(LuminanceLayout.class);
    //        parallelIndexer.addExtractor(OpponentHistogram.class);
    //        parallelIndexer.addExtractor(PHOG.class);
    //        parallelIndexer.addExtractor(RotationInvariantLocalBinaryPatterns.class);
    //        parallelIndexer.addExtractor(SimpleColorHistogram.class);
    //        parallelIndexer.addExtractor(Tamura.class);
    //        parallelIndexer.addExtractor(JointHistogram.class);
    //        parallelIndexer.addExtractor(LocalBinaryPatternsAndOpponent.class);
    //        parallelIndexer.addExtractor(RankAndOpponent.class);
    //        parallelIndexer.addExtractor(ColorLayout.class);
    //        parallelIndexer.addExtractor(EdgeHistogram.class);
    //        parallelIndexer.addExtractor(ScalableColor.class);
    //        parallelIndexer.addExtractor(SPCEDD.class);
    //        parallelIndexer.addExtractor(SPJCD.class);
    //        parallelIndexer.addExtractor(SPFCTH.class);
    //        parallelIndexer.addExtractor(SPACC.class);
    //        parallelIndexer.addExtractor(SPLBP.class);

    //SIMPLE
    //        parallelIndexer.addExtractor(CEDD.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(FCTH.class, SimpleExtractor.KeypointDetector.CVSURF);
    parallelIndexer.addExtractor(JCD.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF);

    //LOCAL
    parallelIndexer.addExtractor(CvSurfExtractor.class);
    //        parallelIndexer.addExtractor(CvSiftExtractor.class);
    //        parallelIndexer.addExtractor(SurfExtractor.class);
    //        parallelIndexer.addExtractor(SiftExtractor.class);
    //        parallelIndexer.addExtractor(SelfSimilaritiesExtractor.class);

    parallelIndexer.run();

    // SEARCHING
    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(Paths.get(indexPath)), IOContext.READONCE));
    //        IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(indexPath)));
    System.out.println("Documents in the reader: " + reader.maxDoc());
    //
    System.out.println("Feature\tMAP\tp@10\tER");
    //
    long start = System.currentTimeMillis();
    //
    //        computeMAP(new GenericFastImageSearcher(1000, ACCID.class, true, reader), "ACCID", reader);
    computeMAP(new GenericFastImageSearcher(1000, CEDD.class, true, reader), "CEDD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, FCTH.class, true, reader), "FCTH", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, JCD.class, true, reader), "JCD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, true, reader), "AutoColorCorrelogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, BinaryPatternsPyramid.class, true, reader), "BinaryPatternsPyramid", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, FuzzyColorHistogram.class, true, reader), "FuzzyColorHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, FuzzyOpponentHistogram.class, true, reader), "FuzzyOpponentHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, Gabor.class, true, reader), "Gabor", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, JpegCoefficientHistogram.class, true, reader), "JpegCoefficientHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, LocalBinaryPatterns.class, true, reader), "LocalBinaryPatterns", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, LuminanceLayout.class, true, reader), "LuminanceLayout", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, true, reader), "OpponentHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, PHOG.class, true, reader), "PHOG", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, RotationInvariantLocalBinaryPatterns.class, true, reader), "RotationInvariantLocalBinaryPatterns", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SimpleColorHistogram.class, true, reader), "SimpleColorHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, Tamura.class, true, reader), "Tamura", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, JointHistogram.class, true, reader), "JointHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, LocalBinaryPatternsAndOpponent.class, true, reader), "LocalBinaryPatternsAndOpponent", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, RankAndOpponent.class, true, reader), "RankAndOpponent", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, true, reader), "ColorLayout", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, true, reader), "EdgeHistogram", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, true, reader), "ScalableColor", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPCEDD.class, true, reader), "SPCEDD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPJCD.class, true, reader), "SPJCD", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPFCTH.class, true, reader), "SPFCTH", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPACC.class, true, reader), "SPACC", reader);
    //        computeMAP(new GenericFastImageSearcher(1000, SPLBP.class, true, reader), "SPLBP", reader);

    //BOVW
    for (int i = 0; i < numOfClusters.length; i++) {
        //            computeMAP(new GenericFastImageSearcher(1000, CEDD.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW CEDD CVSURF", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, FCTH.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW FCTH CVSURF", reader, numOfClusters[i]);
        computeMAP(
                new GenericFastImageSearcher(1000, JCD.class, SimpleExtractor.KeypointDetector.CVSURF,
                        new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"),
                "Simple BOVW JCD CVSURF", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW AutoColorCorrelogram CVSURF", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW OpponentHistogram CVSURF", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW ColorLayout CVSURF", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW EdgeHistogram CVSURF", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple BOVW ScalableColor CVSURF", reader, numOfClusters[i]);

        //            performWSs(CEDD.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW CEDD CVSURF");
        //            performWSs(FCTH.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW FCTH CVSURF");
        performWSs(JCD.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader,
                indexPath + ".config", "Simple BOVW JCD CVSURF");
        //            performWSs(AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW AutoColorCorrelogram CVSURF");
        //            performWSs(OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW OpponentHistogram CVSURF");
        //            performWSs(ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW ColorLayout CVSURF");
        //            performWSs(EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW EdgeHistogram CVSURF");
        //            performWSs(ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "Simple BOVW ScalableColor CVSURF");

        computeMAP(new GenericFastImageSearcher(1000, CvSurfExtractor.class, new BOVW(), numOfClusters[i], true,
                reader, indexPath + ".config"), "CVSURF BOVW", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, CvSiftExtractor.class, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "CVSIFT BOVW", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, SurfExtractor.class, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "SURF BOVW", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, SiftExtractor.class, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "SIFT BOVW", reader, numOfClusters[i]);
        //            computeMAP(new GenericFastImageSearcher(1000, SelfSimilaritiesExtractor.class, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "SelfSimilarities BOVW", reader, numOfClusters[i]);

        performWSs(CvSurfExtractor.class, new BOVW(), numOfClusters[i], reader, indexPath + ".config",
                "CVSURF BOVW");
        //            performWSs(CvSiftExtractor.class, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "CVSIFT BOVW");
        //            performWSs(SurfExtractor.class, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "SURF BOVW");
        //            performWSs(SiftExtractor.class, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "SIFT BOVW");
        //            performWSs(SelfSimilaritiesExtractor.class, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "SelfSimilarities BOVW");
    }

    //VLAD
    //        for (int i = 0; i < numOfClusters.length; i++) {
    //            computeMAP(new GenericFastImageSearcher(1000, CEDD.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD CEDD CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, FCTH.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD FCTH CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, JCD.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD JCD CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD AutoColorCorrelogram CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD OpponentHistogram CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD ColorLayout CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD EdgeHistogram CVSURF", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "Simple VLAD ScalableColor CVSURF", reader, numOfClusters[i]);
    ////
    //            computeMAP(new GenericFastImageSearcher(1000, CvSurfExtractor.class, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "CVSURF VLAD", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, CvSiftExtractor.class, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "CVSIFT VLAD", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, SurfExtractor.class, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "SURF VLAD", reader, numOfClusters[i]);
    //            computeMAP(new GenericFastImageSearcher(1000, SiftExtractor.class, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "SIFT VLAD", reader, numOfClusters[i]);
    ////            computeMAP(new GenericFastImageSearcher(1000, SelfSimilaritiesExtractor.class, new VLAD(), numOfClusters[i], true, reader, indexPath + ".config"), "SelfSimilarities VLAD", reader, numOfClusters[i]);
    //        }

    double h = (System.currentTimeMillis() - start) / 3600000.0;
    double m = (h - Math.floor(h)) * 60.0;
    double s = (m - Math.floor(m)) * 60;
    System.out.printf("Total time of searching: %s.\n", String.format("%s%02d:%02d",
            (((int) h > 0) ? String.format("%02d:", (int) h) : ""), (int) m, (int) s));
}

From source file:net.semanticmetadata.lire.benchmarking.TestUniversal.java

License:Open Source License

private void testSearchSpeed(Class<? extends GlobalFeature> featureClass) throws IOException {
    ParallelIndexer parallelIndexer = new ParallelIndexer(DocumentBuilder.NUM_OF_THREADS, indexPath,
            testExtensive, true);/*from w w  w .j  av  a  2s .  c  o m*/
    parallelIndexer.addExtractor(featureClass);
    parallelIndexer.run();
    IndexReader reader = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(Paths.get(indexPath)), IOContext.READONCE));
    Bits liveDocs = MultiFields.getLiveDocs(reader);
    double queryCount = 0d;
    ImageSearcher searcher = new GenericFastImageSearcher(100, featureClass);
    long ms = System.currentTimeMillis();
    String fileName;
    Document queryDoc;
    ImageSearchHits hits;
    for (int i = 0; i < reader.maxDoc(); i++) {
        if (reader.hasDeletions() && !liveDocs.get(i))
            continue; // if it is deleted, just ignore it.
        fileName = getIDfromFileName(reader.document(i).getValues(DocumentBuilder.FIELD_NAME_IDENTIFIER)[0]);
        if (queries.keySet().contains(fileName)) {
            queryCount += 1d;
            // ok, we've got a query here for a document ...
            queryDoc = reader.document(i);
            hits = searcher.search(queryDoc, reader);
        }
    }
    ms = System.currentTimeMillis() - ms;
    System.out.printf("%s \t %3.1f \n",
            featureClass.getName().substring(featureClass.getName().lastIndexOf('.') + 1),
            (double) ms / queryCount);
}

From source file:net.semanticmetadata.lire.benchmarking.TestZuBuD.java

License:Open Source License

public void testMAP() throws IOException {
    // INDEXING ...
    ParallelIndexer parallelIndexer = new ParallelIndexer(DocumentBuilder.NUM_OF_THREADS, indexPath,
            testExtensive, numOfClusters, numOfDocsForVocabulary, aggregator);

    //GLOBALS//from  ww w . jav a  2 s .  co m
    //        parallelIndexer.addExtractor(ACCID.class);
    parallelIndexer.addExtractor(CEDD.class);
    //        parallelIndexer.addExtractor(FCTH.class);
    //        parallelIndexer.addExtractor(JCD.class);
    //        parallelIndexer.addExtractor(AutoColorCorrelogram.class);
    //        parallelIndexer.addExtractor(BinaryPatternsPyramid.class);
    //        parallelIndexer.addExtractor(FuzzyColorHistogram.class);
    //        parallelIndexer.addExtractor(FuzzyOpponentHistogram.class);
    //        parallelIndexer.addExtractor(Gabor.class);
    //        parallelIndexer.addExtractor(JpegCoefficientHistogram.class);
    //        parallelIndexer.addExtractor(LocalBinaryPatterns.class);
    //        parallelIndexer.addExtractor(LuminanceLayout.class);
    //        parallelIndexer.addExtractor(OpponentHistogram.class);
    //        parallelIndexer.addExtractor(PHOG.class);
    //        parallelIndexer.addExtractor(RotationInvariantLocalBinaryPatterns.class);
    //        parallelIndexer.addExtractor(SimpleColorHistogram.class);
    //        parallelIndexer.addExtractor(Tamura.class);
    //        parallelIndexer.addExtractor(JointHistogram.class);
    //        parallelIndexer.addExtractor(LocalBinaryPatternsAndOpponent.class);
    //        parallelIndexer.addExtractor(RankAndOpponent.class);
    //        parallelIndexer.addExtractor(ColorLayout.class);
    //        parallelIndexer.addExtractor(EdgeHistogram.class);
    //        parallelIndexer.addExtractor(ScalableColor.class);
    //        parallelIndexer.addExtractor(SPCEDD.class);
    //        parallelIndexer.addExtractor(SPJCD.class);
    //        parallelIndexer.addExtractor(SPFCTH.class);
    //        parallelIndexer.addExtractor(SPACC.class);
    //        parallelIndexer.addExtractor(SPLBP.class);

    //SIMPLE
    //        parallelIndexer.addExtractor(CEDD.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(FCTH.class, SimpleExtractor.KeypointDetector.CVSURF);
    parallelIndexer.addExtractor(JCD.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF);
    //        parallelIndexer.addExtractor(ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF);

    //LOCAL
    parallelIndexer.addExtractor(CvSurfExtractor.class);
    //        parallelIndexer.addExtractor(CvSiftExtractor.class);
    //        parallelIndexer.addExtractor(SurfExtractor.class);
    //        parallelIndexer.addExtractor(SiftExtractor.class);
    //        parallelIndexer.addExtractor(SelfSimilaritiesExtractor.class);

    parallelIndexer.run();

    ParallelIndexer parallelIndexerSeparate = new ParallelIndexer(DocumentBuilder.NUM_OF_THREADS,
            indexPathQueries, testExtensiveQueries, indexPath);
    parallelIndexerSeparate.run();

    // SEARCHING
    IndexReader readerIndex = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(Paths.get(indexPath)), IOContext.READONCE));
    System.out.println("Documents in the reader: " + readerIndex.maxDoc());

    IndexReader readerQueries = DirectoryReader
            .open(new RAMDirectory(FSDirectory.open(Paths.get(indexPathQueries)), IOContext.READONCE));
    System.out.println("Documents in the reader: " + readerQueries.maxDoc());

    System.out.println("Feature\tMAP\tp@10\tER");

    long start = System.currentTimeMillis();
    //
    //        computeMAP(new GenericFastImageSearcher(1000, ACCID.class, true, readerIndex), "ACCID", readerIndex, readerQueries);
    computeMAP(new GenericFastImageSearcher(1000, CEDD.class, true, readerIndex), "CEDD", readerIndex,
            readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, FCTH.class, true, readerIndex), "FCTH", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, JCD.class, true, readerIndex), "JCD", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, true, readerIndex), "AutoColorCorrelogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, BinaryPatternsPyramid.class, true, readerIndex), "BinaryPatternsPyramid", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, FuzzyColorHistogram.class, true, readerIndex), "FuzzyColorHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, FuzzyOpponentHistogram.class, true, readerIndex), "FuzzyOpponentHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, Gabor.class, true, readerIndex), "Gabor", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, JpegCoefficientHistogram.class, true, readerIndex), "JpegCoefficientHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, LocalBinaryPatterns.class, true, readerIndex), "LocalBinaryPatterns", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, LuminanceLayout.class, true, readerIndex), "LuminanceLayout", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, true, readerIndex), "OpponentHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, PHOG.class, true, readerIndex), "PHOG", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, RotationInvariantLocalBinaryPatterns.class, true, readerIndex), "RotationInvariantLocalBinaryPatterns", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, SimpleColorHistogram.class, true, readerIndex), "SimpleColorHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, Tamura.class, true, readerIndex), "Tamura", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, JointHistogram.class, true, readerIndex), "JointHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, LocalBinaryPatternsAndOpponent.class, true, readerIndex), "LocalBinaryPatternsAndOpponent", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, RankAndOpponent.class, true, readerIndex), "RankAndOpponent", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, true, readerIndex), "ColorLayout", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, true, readerIndex), "EdgeHistogram", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, true, readerIndex), "ScalableColor", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, SPCEDD.class, true, readerIndex), "SPCEDD", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, SPJCD.class, true, readerIndex), "SPJCD", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, SPFCTH.class, true, readerIndex), "SPFCTH", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, SPACC.class, true, readerIndex), "SPACC", readerIndex, readerQueries);
    //        computeMAP(new GenericFastImageSearcher(1000, SPLBP.class, true, readerIndex), "SPLBP", readerIndex, readerQueries);

    //BOVW
    for (int i = 0; i < numOfClusters.length; i++) {
        //            computeMAP(new GenericFastImageSearcher(1000, CEDD.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW CEDD CVSURF", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, FCTH.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW FCTH CVSURF", readerIndex, numOfClusters[i], readerQueries);
        computeMAP(
                new GenericFastImageSearcher(1000, JCD.class, SimpleExtractor.KeypointDetector.CVSURF,
                        new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"),
                "Simple BOVW JCD CVSURF", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW AutoColorCorrelogram CVSURF", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW OpponentHistogram CVSURF", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW ColorLayout CVSURF", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW EdgeHistogram CVSURF", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple BOVW ScalableColor CVSURF", readerIndex, numOfClusters[i], readerQueries);

        //            performWSs(CEDD.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW CEDD CVSURF", readerQueries);
        //            performWSs(FCTH.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW FCTH CVSURF", readerQueries);
        performWSs(JCD.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i],
                readerIndex, indexPath + ".config", "Simple BOVW JCD CVSURF", readerQueries);
        //            performWSs(AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW AutoColorCorrelogram CVSURF", readerQueries);
        //            performWSs(OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW OpponentHistogram CVSURF", readerQueries);
        //            performWSs(ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW ColorLayout CVSURF", readerQueries);
        //            performWSs(EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW EdgeHistogram CVSURF", readerQueries);
        //            performWSs(ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "Simple BOVW ScalableColor CVSURF", readerQueries);

        computeMAP(
                new GenericFastImageSearcher(1000, CvSurfExtractor.class, new BOVW(), numOfClusters[i], true,
                        readerIndex, indexPath + ".config"),
                "CVSURF BOVW", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, CvSiftExtractor.class, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "CVSIFT BOVW", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, SurfExtractor.class, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "SURF BOVW", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, SiftExtractor.class, new BOVW(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "SIFT BOVW", readerIndex, numOfClusters[i], readerQueries);
        //            computeMAP(new GenericFastImageSearcher(1000, SelfSimilaritiesExtractor.class, new BOVW(), numOfClusters[i], true, reader, indexPath + ".config"), "SelfSimilarities BOVW", reader, numOfClusters[i], readerQueries);

        performWSs(CvSurfExtractor.class, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config",
                "CVSURF BOVW", readerQueries);
        //            performWSs(CvSiftExtractor.class, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "CVSIFT BOVW", readerQueries);
        //            performWSs(SurfExtractor.class, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "SURF BOVW", readerQueries);
        //            performWSs(SiftExtractor.class, new BOVW(), numOfClusters[i], readerIndex, indexPath + ".config", "SIFT BOVW", readerQueries);
        //            performWSs(SelfSimilaritiesExtractor.class, new BOVW(), numOfClusters[i], reader, indexPath + ".config", "SelfSimilarities BOVW", readerQueries);
    }

    //VLAD
    //        for (int i = 0; i < numOfClusters.length; i++) {
    //            computeMAP(new GenericFastImageSearcher(1000, CEDD.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD CEDD CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, FCTH.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD FCTH CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, JCD.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD JCD CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, AutoColorCorrelogram.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD AutoColorCorrelogram CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, OpponentHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD OpponentHistogram CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, ColorLayout.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD ColorLayout CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, EdgeHistogram.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD EdgeHistogram CVSURF", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, ScalableColor.class, SimpleExtractor.KeypointDetector.CVSURF, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "Simple VLAD ScalableColor CVSURF", readerIndex, numOfClusters[i], readerQueries);
    ////
    //            computeMAP(new GenericFastImageSearcher(1000, CvSurfExtractor.class, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "CVSURF VLAD", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, CvSiftExtractor.class, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "CVSIFT VLAD", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, SurfExtractor.class, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "SURF VLAD", readerIndex, numOfClusters[i], readerQueries);
    //            computeMAP(new GenericFastImageSearcher(1000, SiftExtractor.class, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "SIFT VLAD", readerIndex, numOfClusters[i], readerQueries);
    ////            computeMAP(new GenericFastImageSearcher(1000, SelfSimilaritiesExtractor.class, new VLAD(), numOfClusters[i], true, readerIndex, indexPath + ".config"), "SelfSimilarities VLAD", readerIndex, numOfClusters[i], readerQueries);
    //        }

    double h = (System.currentTimeMillis() - start) / 3600000.0;
    double m = (h - Math.floor(h)) * 60.0;
    double s = (m - Math.floor(m)) * 60;
    System.out.printf("Total time of searching: %s.\n", String.format("%s%02d:%02d",
            (((int) h > 0) ? String.format("%02d:", (int) h) : ""), (int) m, (int) s));
}