You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ko...@apache.org on 2012/12/20 14:32:27 UTC

svn commit: r1424457 - in /labs/alike/trunk: demo/ src/java/org/apache/alike/ src/test/org/apache/alike/

Author: koji
Date: Thu Dec 20 13:32:27 2012
New Revision: 1424457

URL: http://svn.apache.org/viewvc?rev=1424457&view=rev
Log:
now qv read xml config

Modified:
    labs/alike/trunk/demo/build.xml
    labs/alike/trunk/demo/demo-conf.xml
    labs/alike/trunk/src/java/org/apache/alike/AlikeConfig.java
    labs/alike/trunk/src/java/org/apache/alike/KMeansLauncher.java
    labs/alike/trunk/src/java/org/apache/alike/QuantizeVectors.java
    labs/alike/trunk/src/test/org/apache/alike/AlikeConfigTest.java

Modified: labs/alike/trunk/demo/build.xml
URL: http://svn.apache.org/viewvc/labs/alike/trunk/demo/build.xml?rev=1424457&r1=1424456&r2=1424457&view=diff
==============================================================================
--- labs/alike/trunk/demo/build.xml (original)
+++ labs/alike/trunk/demo/build.xml Thu Dec 20 13:32:27 2012
@@ -49,10 +49,10 @@
         </java>
     </target>
 
-    <target name="qv" depends="alike-compile" description="run PrepareInputVectors">
-        <java classname="org.apache.alike.QuantizeVectors" fork="true">
+    <target name="qv" depends="alike-compile" description="run QuantizeVectors">
+        <java classname="org.apache.alike.QuantizeVectors" dir="demo" fork="true">
             <jvmarg line="-Dfile.encoding=UTF-8"/>
-            <arg line="demo/desc demo/result-centroids.txt demo/solr-demo-data.xml"/>
+            <arg line="demo-conf.xml"/>
             <classpath refid="common.path.lib"/>
             <classpath path="${cls.dir}"/>
         </java>
@@ -66,7 +66,7 @@
         <delete dir="demo/solrhome/collection1/data"/>
         <delete includeemptydirs="true">
             <fileset dir="demo/desc" includes="**/*"/>
-            <fileset dir="demo" includes="result-centroids.txt,.input-vectors.crc"/>
+            <fileset dir="demo" includes="result-centroids.txt,.input-vectors.crc,solr-demo-data.xml"/>
         </delete>
     </target>
 

Modified: labs/alike/trunk/demo/demo-conf.xml
URL: http://svn.apache.org/viewvc/labs/alike/trunk/demo/demo-conf.xml?rev=1424457&r1=1424456&r2=1424457&view=diff
==============================================================================
--- labs/alike/trunk/demo/demo-conf.xml (original)
+++ labs/alike/trunk/demo/demo-conf.xml Thu Dec 20 13:32:27 2012
@@ -45,7 +45,7 @@
     </fieldNames>
     <indexer class="org.apache.alike.SolrStandardXMLIndexer">
       <histogramMatcher class="org.apache.alike.LeastSquaresHistogramMatcher"/>
-      <param name="file">demo/solr-demo-data.xml</param>
+      <param name="file">solr-demo-data.xml</param>
     </indexer>
   </vectorQuantization>
 

Modified: labs/alike/trunk/src/java/org/apache/alike/AlikeConfig.java
URL: http://svn.apache.org/viewvc/labs/alike/trunk/src/java/org/apache/alike/AlikeConfig.java?rev=1424457&r1=1424456&r2=1424457&view=diff
==============================================================================
--- labs/alike/trunk/src/java/org/apache/alike/AlikeConfig.java (original)
+++ labs/alike/trunk/src/java/org/apache/alike/AlikeConfig.java Thu Dec 20 13:32:27 2012
@@ -38,6 +38,17 @@ public final class AlikeConfig {
     return getStringValue("/config/visualDescriptorsExtraction/method/text()");
   }
   
+  public int getNumOfDimensions(){
+    String method = getMethod();
+    if(method.toLowerCase().equals("sift"))
+      return 128;
+    else if(method.toLowerCase().equals("surf"))
+      return 64;
+    else if(method.toLowerCase().equals("orb"))
+      return 32;
+    return 0;
+  }
+  
   public String getDescNormalFSDir(){
     return getStringValue("/config/visualDescriptorsExtraction/descDir/normalfs/text()");
   }
@@ -46,10 +57,14 @@ public final class AlikeConfig {
     return getStringValue("/config/visualDescriptorsExtraction/descDir/hdfs/text()");
   }
   
-  public String getNumOfClusters(){
+  public String getNumOfClustersStr(){
     return getStringValue("/config/clustering/@k");
   }
   
+  public int getNumOfClusters(){
+    return Integer.parseInt(getNumOfClustersStr());
+  }
+  
   public String getOutClusterDir(){
     return getStringValue("/config/clustering/outDir/text()");
   }
@@ -70,6 +85,10 @@ public final class AlikeConfig {
     return getStringValue("/config/clustering/dump/@file");
   }
   
+  public String getIndexerSolrXMLFile(){
+    return getStringValue("/config/vectorQuantization/indexer/param[@name='file']/text()");
+  }
+  
   private String getStringValue(String exp){
     try {
       return ((String)xpath.evaluate(exp, is, XPathConstants.STRING)).trim();

Modified: labs/alike/trunk/src/java/org/apache/alike/KMeansLauncher.java
URL: http://svn.apache.org/viewvc/labs/alike/trunk/src/java/org/apache/alike/KMeansLauncher.java?rev=1424457&r1=1424456&r2=1424457&view=diff
==============================================================================
--- labs/alike/trunk/src/java/org/apache/alike/KMeansLauncher.java (original)
+++ labs/alike/trunk/src/java/org/apache/alike/KMeansLauncher.java Thu Dec 20 13:32:27 2012
@@ -48,7 +48,7 @@ public final class KMeansLauncher {
     arguments[4] = "-o";
     arguments[5] = config.getOutClusterDir();
     arguments[6] = "-k";
-    arguments[7] = config.getNumOfClusters();
+    arguments[7] = config.getNumOfClustersStr();
     arguments[8] = "--maxIter";
     arguments[9] = config.getClusterMaxIter();
     arguments[10] = "-cd";

Modified: labs/alike/trunk/src/java/org/apache/alike/QuantizeVectors.java
URL: http://svn.apache.org/viewvc/labs/alike/trunk/src/java/org/apache/alike/QuantizeVectors.java?rev=1424457&r1=1424456&r2=1424457&view=diff
==============================================================================
--- labs/alike/trunk/src/java/org/apache/alike/QuantizeVectors.java (original)
+++ labs/alike/trunk/src/java/org/apache/alike/QuantizeVectors.java Thu Dec 20 13:32:27 2012
@@ -32,39 +32,49 @@ import java.util.Map;
 import org.apache.alike.FileUtil.Executor;
 import org.apache.commons.io.IOUtils;
 
+/**
+ * This program quantize clustered visual descriptors.
+ *
+ */
 public class QuantizeVectors {
 
-  // TODO: make parameterization
-  static final int K = 1000;
-  static final int D = 64;
+  static int K;
+  static int D;
 
   /**
-   * @param args
+   * The main program that takes the path to alikeconfig.xml as an argument.
+   * 
+   * @param args file path to alikeconfig.xml
    * @throws IOException 
+   * 
+   * @see {@link AlikeConfig}
    */
   public static void main(String[] args) throws IOException {
-    if(args.length != 3){
+    if(args.length != 1){
       printUsage(1);
     }
+    
+    AlikeConfig config = new AlikeConfig(args[0]);
+    
+    K = config.getNumOfClusters();
+    D = config.getNumOfDimensions();
 
     // read cluster centroids
-    double[][] centroids = getCentroids(args[1]);
+    double[][] centroids = getCentroids(config.getClusterDumpFile());
     
     // make histograms
     HistogramExecutor executor = new HistogramExecutor(centroids);
-    FileUtil.executeRecursively(executor, args[0]);
+    FileUtil.executeRecursively(executor, config.getDescNormalFSDir());
     Map<String, int[]> histograms = executor.getHistograms();
 
     // create Solr "standard" XML file
-    createForSolr(args[2], histograms);
+    createForSolr(config.getIndexerSolrXMLFile(), histograms);
   }
 
   static void printUsage(int exit){
-    System.err.printf("Usage: $ java %s <parent_dir_path> <centroids_file_path> <output_file_path>\n",
+    System.err.printf("Usage: $ java %s <path-to-alikeconfig.xml>\n",
         QuantizeVectors.class.getName());
-    System.err.println("\t<parent_dir_path> parent directory path of visual descriptors");
-    System.err.println("\t<centroids_file_path> file path to the cluster centroids");
-    System.err.println("\t<output_file_path> output file path for Solr \"standard\" XML");
+    System.err.println("\t<path-to-alikeconfig.xml> the file path to alikeconfig.xml");
 
     if(exit >= 0){
       System.exit(exit);

Modified: labs/alike/trunk/src/test/org/apache/alike/AlikeConfigTest.java
URL: http://svn.apache.org/viewvc/labs/alike/trunk/src/test/org/apache/alike/AlikeConfigTest.java?rev=1424457&r1=1424456&r2=1424457&view=diff
==============================================================================
--- labs/alike/trunk/src/test/org/apache/alike/AlikeConfigTest.java (original)
+++ labs/alike/trunk/src/test/org/apache/alike/AlikeConfigTest.java Thu Dec 20 13:32:27 2012
@@ -42,6 +42,11 @@ public class AlikeConfigTest {
   }
   
   @Test
+  public void testGetNumOfDimensions() throws Exception {
+    assertEquals(32, config.getNumOfDimensions());
+  }
+  
+  @Test
   public void testGetDescNormalFSDir() throws Exception {
     assertEquals("desc", config.getDescNormalFSDir());
   }
@@ -52,8 +57,8 @@ public class AlikeConfigTest {
   }
   
   @Test
-  public void testGetNumOfClusters() throws Exception {
-    assertEquals("1000", config.getNumOfClusters());
+  public void testGetNumOfClustersStr() throws Exception {
+    assertEquals("1000", config.getNumOfClustersStr());
   }
   
   @Test
@@ -80,4 +85,9 @@ public class AlikeConfigTest {
   public void testGetClusterDumpFile() throws Exception {
     assertEquals("result-centroids.txt", config.getClusterDumpFile());
   }
+  
+  @Test
+  public void testGetIndexerSolrXMLFile() throws Exception {
+    assertEquals("solr-demo-data.xml", config.getIndexerSolrXMLFile());
+  }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org