|
We
use Psyclone to design and build a Computer Vision architecture
for Cognitive Tracking of Object. We use the SDK to create both
low and high level Vision Modules to process the incoming video
which is streamed through the Whiteboard MediaStreams. The processing
is prioritised so lower level modules are guaranteed to get enough
time to do their work.
The
video is initially analysed to find image features such as corners,
edges and motion and the perceived information is gathered centrally
in a large mathematical representation for further analysis. The
higher level modules have concurrent access to all the data and
can even modify parts of it while others analyse other parts.
Psyclone
uses very fast streaming and caching of Media data between modules
and even between computers when distributing the system across a
network. We use the built-in PsyProbe interface to monitor the system
while it is running and we use the Psyclone GUI for visualisation
of multiple processes simultaneously.
We
are able to seamlessly mix C++ and Java modules, running internally
or externally to Psyclone. All of this is manages with one single
config file which fully specifies the behaviour, data paths and
processing of Modules, Whiteboards and the system as a whole.
Using
simple modules which subscribe to messages and binary data it is
easy to create the proper data flow and allow this to be automatically
regulated to adapt to new scenarios. It is also easy to see the
flow in PsyProbe and make sure that each module is doing the right
thing.
It
is our plan to implement some of the lower level Vision Modules
to make use of many low-cost NVidia graphics cards for the heavy
image processing and the Psyclone modules are ideal for this purpose
as they completely wrap all communication with Psyclone so each
can concentrate on its input, output and processing task.
The
system very easy to regulate and using priorities we hope to be
able to reach a stable online and real-time architecture for Tracking
in Computer Vision. |