Suggestions on Viper-PE

62 views
Skip to first unread message

Miki

unread,
Oct 20, 2007, 6:45:02 AM10/20/07
to ViPER Mailing List
Hello, I'm new with Viper-PE, and so I've some questions about this.

1) I'm not able to make filters work. What's the syntax with the rules
"contains, intersects, excludes"? Maybe an example will more
comprehensive.

2) The evaluation about ellipses doesn't work. I've to change in the
TRUTH.xml file the type "ellipse" with "obox", and so I'm able to
evaluate them. But how can I evaluate ellipse? It's a problem of my
computer or it's not supported by Viper-PE??

3) A dynamic attribute is list of strings (i.e "lvalue" with
possibles of type "svalue"). This because for this attribute I want a
finite number of possibles mutually exclusives. How can I evaluate if
the TARGET and the CANDIDATE have the same value for this attribute in
the same frame? What metric should I use to evaluate "lvalue"?

Thank you very much, It's very helpful to me.

David Mihalcik

unread,
Oct 20, 2007, 9:31:39 AM10/20/07
to ViPER Mailing List
1) Filters can be specified to work on: the input or output (input
filters make it as if the filtered objects are not in the file. output
filters work on the matched objects; if either element in a match is
filtered, both are filtered. This is useful for, say, ignoring scene
text if you are evaluating an algorithm designed for overlay text.)
They can also be specified to work on targets (ground truth) or
candidates (result data).

The format of each filter section is
<Obj declaration> [: frame filter, if any]
[attr declaration : filter]

Where filter is usually of the form [op] [param] or (filter) or
(filter [log op] filter). Supported logical operators include and and
or. As an example, to only evaluate data that includes the first frame
of the file:

#BEGIN_GROUND_OUTPUT_FILTER
OBJECT Person : contains 1:1
#END_GROUND_OUTPUT_FILTER

Copied from PE's README:

+ FILTERS

Filters are a way to only read in a subset of the descriptors
listed in a file. They are useful mostly for only examinig descriptors
from certain frames, but can also be used on any of the attributes.
Note
that this will often have a strange effect on your data, as using a
subset
of the truth will increase the amount of false detections if no
similar
filter is applied to the results. This is the opposite of EVALUATION,
where
the distance data is computed but not output.
In the file, the filter blocks are delimited by
#BEGIN_GROUND_FILTER and #END_GROUND_FILTER for filters on .gtf, and
#BEGIN_RESULT_FILTER and #END_RESULT_FILTER for filters on .rdf.
Inside,
the data format is similar to the EVALUATIONS section. Rules can be
anded
and ored together, with the &&'s taking precedence. There is as of yet
no
support for parentheses. Each attribute type may define its own rule
operators, but the only allowed logical connectives are && and ||.
Standard operators include contains, intesects, and excludes for frame
numbers, == , !=, <=, <, etc for numerics, etc.

#BEGIN_GROUND_FILTER
OBJECT Text : contains 1:5 || (intersects 100:200 && excludes 50:50)
READABLE : == true
#END_GROUND_FILTER

This filter will only read in .gtf descriptors that contain the first
five
frames or ones that have some frames between 100 and 200 and no frame
at
50.

attributeFilter ::== <attribute name> : filters
filters ::== filter | filters connective filter
| (filters) connective filters || (filters)
connective ::== || | &&
filter ::== rule value | rule("value")
rule ::== (depends on attribute type. Some rules include:
==, != Defined for most types
<. <=, >, >= Defined for most numbers
contains, excludes,
intersects Defined for dimensional data
ex. frames)

There is also a shortcut, if you only have one equlity rule you can
leave
the == symbol off. This is useful for lvalues, when you want to only
look
at one.


2) Looking at the source code for the distances inplemented for
ellipses - in:

gt/src/viper/descriptors/attributes/Attribute_ellipse.java

It appears that the only metric defined for the ellipse is 'Equality'.
The 'Obox' measures should work okay... but they aren't exactly right,
since they will be measures on the rectangle that defines the ellipse,
not the ellipse itself.

3) 'lvalue' is like an 'enum' type. I'd recommend using the equality
metric ATTR : [.5 E]

#BEGIN_OBJECT_EVALUATION
OBJECT Text [- -]
LVAL_ATTR : [.5 E]
#END_OBJECT_EVALUATION

Miki

unread,
Oct 23, 2007, 7:20:12 AM10/23/07
to ViPER Mailing List
Thank you very much, you're very helpful to me.

But I don't understand one thing, yet.
This is the CONFIG file:

<descriptor name="Descriptor_1" type="OBJECT">
<attribute dynamic="true" name="Attrib_1" type="http://
lamp.cfar.umd.edu/viperdata#ellipse"/>
<attribute dynamic="true" name="Attrib_2" type="http://
lamp.cfar.umd.edu/viperdata#lvalue">
<data:lvalue-possibles>
<data:lvalue-enum value="0_front"/>
<data:lvalue-enum value="30"/>
<data:lvalue-enum value="60"/>
<data:lvalue-enum value="90_side"/>
<data:lvalue-enum value="180_rear"/>
</data:lvalue-possibles>
</attribute>
</descriptor>


This is the TARGET data file:

<object framespan="1:5" id="0" name="Descriptor_1">
<attribute name="Attrib_1">
<data:obox framespan="1:5" height="100"
rotation="0"
width="70" x="200" y="100"/>
</attribute>
<attribute name="Attrib_2">
<data:lvalue framespan="1:1" value="0_front"/>
<data:lvalue framespan="2:2" value="30"/>
<data:lvalue framespan="3:3" value="60"/>
<data:lvalue framespan="4:4" value="90_side"/>
<data:lvalue framespan="5:5" value="180_rear"/>
</attribute>
</object>

This is the CANDIDATE data:

<object framespan="1:5" id="0" name="Descriptor_1">
<attribute name="Attrib_1">
<data:obox framespan="1:5" height="100"
rotation="0"
width="70" x="200" y="100"/>
</attribute>
<attribute name="Attrib_2">
<data:lvalue framespan="1:3" value="0_front"/>
<data:lvalue framespan="4:5" value="90_side"/>
</attribute>
</object>


How can I evaluate for each frame the value of the Attrib_2? I expect
something like this:

framespan 1:1 --> equals
framespan 2:3 --> NOT equals
framespan 4:4 --> equals
framespan 5:5 --> NOT equals

There is a way to check if for each frame the value of Attrib_2 of the
TARGET is equals or not to the one of CANDIDATE?

Thank you again!!!!

Miki

unread,
Oct 29, 2007, 7:57:37 AM10/29/07
to ViPER Mailing List
Hello,
how is defined "fragmentation" in framewise evaluation???

Thank you very much..

Reply all
Reply to author
Forward
0 new messages