VEIL Event Detection

Event detection illustrates a powerful application of Veil's enhancements to traditional images processing.

Loom uses concept definitions to create a domain-specific language for expressing the elements of an event. This allows a concise, high-level description of an event.


In the example presented here, a Field Training Excercise is defined as a sequence of images showing a group of vehicles:
in a garrison area
traveling on a road in a convoy
exercising in a field
returning in a convoy.

Loom's query facility is used to locate sequences of images that satisfy the constraints of the event description. One such match, using images from the Radius Model Board 2 test set, is shown below:

Behind the Curtain

The event descriptors can be concisely expressed using a event template and the terminology from VEIL's domain model. The template

The descriptor for a field training exercise looks like this:

    (make-event :name 'field-training-exercise
		:case-roles '((armored-unit ?y))
		:components '((:scene ?s1 ?y (in-garrison ?y))
			      (:scene ?s2 ?y (convoy ?y))
			      (:scene ?s3 ?y (deployed-unit ?y))
			      (:scene ?s4 ?y (convoy ?y)))
		:constraints '((before+ ?s1 ?s2)
			       (before+ ?s2 ?s3)
			       (before+ ?s3 ?s4))))

This template is then used to generate a Loom query that retrieves a list of images along with the group that participates in the sequence:

    (retrieve (?S1 ?S2 ?S3 ?S4 ?Y)
	(and (within-context ?S1 (In-Garrison ?Y))
	     (within-context ?S2 (Convoy ?Y))
	     (within-context ?S3 (Deployed-Unit ?Y))
	     (within-context ?S4 (Convoy ?Y))
	     (before+ ?S1 ?S2)
	     (before+ ?S2 ?S3)
	     (before+ ?S3 ?S4))