List of usage examples for org.apache.lucene.store IOContext READONCE
IOContext READONCE
To view the source code for org.apache.lucene.store IOContext READONCE.
Click Source Link
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)); }