<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="Module.2003-12-10.4053">
  <name>Old-School Image Querying</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2003/12/10 23:40:53 US/Central</md:created>
  <md:revised>2003/12/16 01:38:22.053 US/Central</md:revised>
  <md:authorlist>
    <md:author id="tcm">
      <md:firstname>Tom</md:firstname>
      
      <md:surname>Mowad</md:surname>
      <md:email>tm@rice.edu</md:email>
    </md:author>
    <md:author id="venkatc">
      <md:firstname>Venkat</md:firstname>
      
      <md:surname>Chandrasekaran</md:surname>
      <md:email>venkatc@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="tcm">
      <md:firstname>Tom</md:firstname>
      
      <md:surname>Mowad</md:surname>
      <md:email>tm@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="venkatc">
      <md:firstname>Venkat</md:firstname>
      
      <md:surname>Chandrasekaran</md:surname>
      <md:email>venkatc@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>fast multiresolution image querying</md:keyword>
    <md:keyword>image querying</md:keyword>
    <md:keyword>wavelets</md:keyword>
  </md:keywordlist>

  <md:abstract>An overview of the methods used in the original paper.</md:abstract>
</metadata>

  <content>

<para id="p1">
Jacobs et al. propose an algorithm where sparse signatures for images in the database are first created. When a user inputs a query image, the signature of the query is computed and compared to signatures in the database.
</para>

<para id="p2">
The signatures are computed as follows:
</para>

<list id="oldskool" type="enumerated">
<item>Compute the discrete wavelet transform of the image.</item>
<item>Set all but the highest magnitude wavelet coefficients to 0.</item>
<item>Of the remaining coefficients, quantize the positive coefficients to +1 and the negative ones to –1.</item>
</list>

     <figure id="fig1">
        <name>A Basic Sketch of the Algorithm</name>
        <media type="image" src="sketch.jpg"/>
      </figure>

<para id="p3">
This matrix of mostly 0’s and a few +1’s and –1’s constitutes the signature for an image. These +1’s and –1’s correspond to the feature points in an image, and basically characterize the image structure. Jacobs et al. concluded, after some experimentation, that on their database, considering the top 60 magnitude coefficients worked well for scanned images, while the top 40 coefficients gave best results for hand-drawn images.
</para>

<para id="p4">
The signatures in our implementation were compared using the generic L1 norm of the difference between signature matrices. Jacobs et al. use the non-intuitive “Lq” norm, which somehow weights the coefficients corresponding to different scales differently. This idea definitely carries some merit, but Jacobs et al. do not provide a very good explanation of this scheme, and we don’t believe that it will improve the performance of their querying algorithm significantly.
</para>


<para id="p30">
Our implementation of their algorithm is available on Owlnet at 
</para>
	<code>
          ~venkatc/elec301/tmproject/code/dwt
        </code>
<para id="p40">
The m-file for generating signatures is <code>sig_gen.m</code>, and the metric function for comparing signatures is <code>metric.m</code>.
</para>

  </content>
  
</document>
