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