//header
//center

Description of the ground-truth files format

Introduction

This page presents the file format used to describe a complete test, containing symbols models, test data and associated ground-truth. Please note that only training tests will be available with a description file conforming to this format. Its purpose is to allow participants to make comparisons between the results of their recognition methods and the ground-truth. Obviously, this description will not be included in the final tests.

The name of this file, when available, is xxxxx.gt.xml, where xxxxx is the name of the test.

DTD definition (download it!)

    
<!ELEMENT test (testname, modelspath, imagespath, noise, model+, testimage+)>
<!ELEMENT testname (#PCDATA)>
<!ELEMENT modelspath (#PCDATA)>
<!ELEMENT imagespath (#PCDATA)>
<!ELEMENT noise ((degradation?, deformation?)*)>
<!ELEMENT degradation (noiseparam)+>
<!ELEMENT deformation (noiseparam)+>
<!ELEMENT noiseparam EMPTY>
<!ELEMENT model EMPTY>
<!ELEMENT testimage (refmodel)+>
<!ELEMENT refmodel (location?, orientation?, scalefactor?)>
<!ELEMENT location EMPTY>
<!ELEMENT orientation (#PCDATA)>
<!ELEMENT scalefactor (#PCDATA)>

<!ATTLIST test format (bitmap|vectorial) #REQUIRED
segmented (false|true) #REQUIRED
applicationdomain (architecture|electronic|misc) #REQUIRED>
<!ATTLIST degradation type (none|kanungo) #REQUIRED>
<!ATTLIST deformation type CDATA #REQUIRED>
<!ATTLIST noiseparam name CDATA #REQUIRED
value CDATA #IMPLIED>
<!ATTLIST model name CDATA #REQUIRED
id ID #REQUIRED>
<!ATTLIST testimage name CDATA #REQUIRED>
<!ATTLIST refmodel ref IDREF #REQUIRED>
<!ATTLIST location x1 CDATA #REQUIRED
y1 CDATA #REQUIRED
x2 CDATA #REQUIRED
y2 CDATA #REQUIRED>

Description

  • test: root of the XML document, corresponding to a test. Several attributes are required:

    • format: bitmap or vectorial.
    • segmented: does the image contain segmented symbols? (false or true).
    • applicationdomain: 2 domains are defined (we can extend this list).
  • testname : name of the test.
  • modelspath: access path to the models directory (used to generate user description file).
  • imagespath: access path to the image directory (used to generate user description file).
  • noise: a enumerated list of degradations (bitmap) and/or deformations (vectorial). The first noise described
    is assumed to be the first applied to the test image, and so on.
  • degradation: a degradation described by a method type and a list of parameters via some noiseparam
    elements (if any).
  • deformation: a deformation described by a method type and a list of parameters via some noiseparam
    elements (if any).
  • model: filename of a model file (postfixed by .vec). The model files are supposed to be present in the
    modelspath directory.
  • testimage : filename of a test image. The image files are supposed to be present in the imagesspath
    directory.
  • refmodel : element describing the ground-truth. Each (occurence of) symbol present in the current test
    image must be described by an occurence of this element.
  • location : location of the current occurence of a symbol. This element must include 4 attributes : x1, y1,
    x2 and y2, corresponding to the coordinates of 2 diagonally opposite corners of the bounding box of the
    recognized symbol.
  • orientation : angle of the current occurence of a symbol, according to the model (it is assumed that
    all symbol models are defined with an orientation of 0). Angles are measured as positive in the clockwise
    direction and are expressed in degrees.
  • scalefactor : scale factor of the current occurence of a symbol, according to the scale of the model
    (which is assumed to be equal to 1).

Example

    
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE test SYSTEM "GRECTestSpecifications.dtd">
<?xml-stylesheet type="text/xsl" href="GRECSpecifications2Participants.xsl"?>
<test format="bitmap" segmented="true" applicationdomain="architecture">
<testname>testgrec</testname>
<modelspath>models</modelspath>
<imagespath>testgrec</imagespath>
<noise>
<degradation type="kanungo">
<noiseparam name="a0" value="0.8"/>
<noiseparam name="a" value="0.5"/>
<noiseparam name="b0" value="0.02"/>
<noiseparam name="b" value="0.001"/>
<noiseparam name="eta" value="0.0"/>
<noiseparam name="ero" value="1.0"/>
</degradation>
</noise>
<model name="ArchitecturalA" id="m1"/>
<model name="ArchitecturalB" id="m2"/>
<model name="ArchitecturalC" id="m3"/>
<model name="ArchitecturalD" id="m4"/>
<model name="ArchitecturalE" id="m5"/>
<model name="ArchitecturalF" id="m6"/>
<model name="ArchitecturalG" id="m7"/>
<model name="ArchitecturalH" id="m8"/>
<model name="ArchitecturalI" id="m9"/>
<model name="ArchitecturalJ" id="m10"/>
<model name="ElectricalA" id="m11"/>
<model name="ElectricalB" id="m12"/>
<model name="ElectricalC" id="m13"/>
<model name="ElectricalD" id="m14"/>
<model name="ElectricalE" id="m15"/>
<model name="ElectricalF" id="m16"/>
<model name="ElectricalG" id="m17"/>
<model name="ElectricalH" id="m18"/>
<model name="ElectricalI" id="m19"/>
<model name="ElectricalJ" id="m20"/>
<testimage name="testgrec-ArchitecturalA">
<refmodel ref="m1">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalB">
<refmodel ref="m2">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalC">
<refmodel ref="m3">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalD">
<refmodel ref="m4">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalE">
<refmodel ref="m5">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalF">
<refmodel ref="m6">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalG">
<refmodel ref="m7">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalH">
<refmodel ref="m8">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalI">
<refmodel ref="m9">
</refmodel>
</testimage>
<testimage name="testgrec-ArchitecturalJ">
<refmodel ref="m10">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalA">
<refmodel ref="m11">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalB">
<refmodel ref="m12">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalC">
<refmodel ref="m13">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalD">
<refmodel ref="m14">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalE">
<refmodel ref="m15">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalF">
<refmodel ref="m16">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalG">
<refmodel ref="m17">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalH">
<refmodel ref="m18">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalI">
<refmodel ref="m19">
</refmodel>
</testimage>
<testimage name="testgrec-ElectricalJ">
<refmodel ref="m20">
</refmodel>
</testimage>
</test>