Description of algorithm
Main regulations
Frame - picture requested from data acquisition system (either from
gigabit Ethernet in real-time processing or from disk/network in post
processing).
Average frame - derivative of certain amount of frames which main
function is to provide an answer whether given pixel deviated from its
average on the certain number of sigmas or not.
Record or excess - lengthy structure on the individual frame
that satisfied some criteria (of size, intensity in sigmas and so on).
Pre-processing - getting list of records from current
frame and average frame that satisfied some criteria.
Object - some virtual structure got from comparison of lists of records
from different frames. Can correspond to real satellite or meteor, or
transient and so on, but also can correspond to nothing.
Alert - beep of computer when the object begins to satisfy some
criteria
Algorithm
Algorithm itself starts from moment of pre-processing of current frame and
requires list of records to input. Main purpose of the algorithm is to correct
current list of objects and to give alerts out.
Record contains following information: time, coordinates of center,
dimensions, intensity.
Object in its turn contains from list of records (reappearances of
object on different frames) and some status characteristics. In particular
status includes information about time (or number of frames) passed from
object's first appearance in the field.
Algorithm consists of folowing functional parts (not necessarily corresponding
to parts of the code where reasons of optimization are essential).
1.Loop over all objects from objects list. For every object, using its
list of records, expecting region of its reappearance on the current frame is
precomputed. If only one record corresponds to given object, expecting region
is defined from considerations of necessity to catch fast satellite, which
this object can turn out to be. If there are many records (we see object
during several frames already), this region is defined by means of trajectory
fitting with calculation of corresponding position errors.
Then all current frame records located in this region are selected. If there
is only one record, it is added into the list of object's records. If there are
several records, it is the case of «fork». Given object is divided
into several objects which have the same prehistory and differ only in last
record. Later on one from this neogenic objects will survive, others (false)
will die.
2. Loop over all objects from list of objects in which status of every
object is checked for correspondence to alert criteria. Such a criteria are
existence of the object during certain number of frames and its immobility.
For example, the hit of the first object record into current expecting region
can serve as the immobility criterion. Moreover, there is certain sense in
checking here given event for its correspondence to known satellite (using
precomputed ephemeris).
3. Loop over all objects from list of objects where status of every
object is checked for its «death». Fly beyond the frame limits (if
we defined trajectory of this object), abscence of observability during
certain number of frames and so on, correspond to the «death» of
object. «Dead» objects can be dumped into some log or several
logs depending on their type (mobile/immobile, appeared on one/several frames
and so on) for some extra post-processing.
4. For completion of the loop it is necessary to create new objects
from all records which were not attached to already existing objects on
previous steps. This new objects get accordingly one record. Their matching,
alert generating and so on, are performed on the next algorithm iteration.
Later on algorithm repeats with new input data obtained from new current
frame - next iteration is performed.
What has been done
At this moment there is a working realization of above listed algorithm with
simplified way of alerts forming (only check for motion and for object's
existence on certain number of frames). There is a model variant of
pre-processing procedure which picks out coherent regions excessed on given
number of sigmas and filters them by size (removes all regions with 1 pixel
size).
In such a variant, satellites in test consequences are confidently catched and
tracked. Even satellite which caused 2 magnitude "flash of star" is tracked
during several frames before and after flash, i.e. such event is considered
as satellite but not transient.
Demo
Work of beta version of algorithm is demonstrated in following videos.
Field with satellites
Field with satellites
Difference frames
Objects catching
Every object is signed with its "length".
Failures of catching algorithm in the last video caused by irregularity of
frames getting process.
«Flashing star»
Flashing star
Objects catching
Official notice As author of algorithm and its
program realization, I strongly appreciate not to use this videos without my
knowledge.
Sergey Karpov
|