A significant and challenging example of image-based measurements is described in the
AUTOBEAM project, whose purpose was measuring several parameters
of a beam, where no structured references were present!, using both 2-D and
3-D technologies.
More examples can be seen in real time at our labs.
Counting objects is a high level task that requires employing different techniques, depending on the
object's properties, whether they are rigid or non rigid objects, still or moving ones.
Besides, real time requirements limit the complexity of the algorithms to be utilized.
Sparse still objects, like
mechanical parts or
cells, are the easiest to be counted, since often they
are the easiest to be segmented due to lack of occlusion.
In fact, most of times, counting difficulties strongly depend on segmentation difficulties.
Moreover, objects cannot always be segmented correctly, because of the objective difficulty of the scene.
Moving people (that are non rigid "objects") represent the most
difficult situation to cope with, even because they often need to be tracked before being counted.
In fact, often counting moving objects implies that they cross a virtual line, in a given direction.
People can rapidly change moving speed and direction, thus making
prediction strategies useless. In addition, people can heavily change their appearances while moving,
also due to their moving parts (arms and legs)!
Moving vehicles, are easier to be tracked, and counted accordingly,
since they are rigid bodies. However, crowded situations where different kinds of moving vehicles (cars,
motorbikes, lorries, etc.) occlude each other make the tracking problem very hard to be solved.
Nevertheless, our approaches work very well even under the most challenging conditions.
The classification task represents the highest level task in a pattern recognition problem.
The classification accuracy depends on the segmentation accuracy and, of course, on the
inter-classes differences of the objects. To this purpose, several kinds
of features need to extracted by each object in order to make the object's class unambiguous and to assign the object
to the right one. Feature extraction provides that the objects are
clearly identified in the scene.
In addition, a proper classifier has to be chosen and configured, before performing an effective training
stage using all the features extracted. In almost all the problems we use our implementation of a
multi-class
Support Vector Machine (SVM), that works fine even in case of a reduced number of training samples, by always
maximizing the generalization capability.
It is worth remarking that many real world applications require classified countings: as a matter of fact,
logically speaking classification includes counting. A deep experience has been gathered in counting and classifying
still manufacturing products and
moving objects.
Visual inspection is based on the operator experience that has acquire a deep knowledge of the possible product's
defects. In addition, a given defect can be assigned to different classes according, for instance, to its "measures"
and position, and the operator often manages to classify it at a glance.
Practically speaking, the operator can work manually, looking for anomalies with respect of a
class of templates learned by experience. Automatic or guided detection and measurement systems, based on image and
video analysis, can work with different degrees of independence and help him/her accordingly.
Actually, automatic defect analysis is made of two stages. The first one aims at detecting the presence of defects,
according to the defects specification list provided by the manufacturer and/or using a reference
intact product. The second stage concerns its recognition and characterization (i.e. measurements).
Therefore, most of the defect analyses provide that a pattern matching approach is followed where the pattern
to be compared is either the possible defect or the intact reference object. It is worth remarking that the pattern
can also be a statistical feature or a multidimensional feature.
Some interesting cases are visible in real time at our labs.
While object recognition usually refers to inter-class recognition aiming at populating predefined classes,
code recognition aims at
identifying single objects, often belonging to one class. There are
many types of codes, based on numbers and/or characters (e.g.
number
plates) or symbols (e.g.
bar codes).
In addition, code recognition can be performed on still objects,
if allowed by application, or on moving objects, like those on a conveyer belt. In the latter case, the most
difficult one, the moving objects should be detected first, to reduce false code detection - to this purpose,
our
motion detection algorithms work excellently.
Actually, the activity of code recognition is composed of three consecutive steps: code detection, code
segmentation and, lastly, code recognition.
To detect the code, it is searched by looking for pattern similar to the reference codes as a whole and,
once found, each code symbol is segmented using properties strictly depending on the code. The
final step is a classification step, where the classifier previously trained to recognize each code symbol
is used to recognize it on new occurrences of code. The core of our classifier is constituted by a multiclass
Support Vector Machine (SVM) entirely developed by CVG.
Video Surveillance (video analytics)
Detecting moving objects under different environmental conditions, tracking them and reconstructing their
trajectories are a crucial issue to automatically infer abnormal (illegal or dangerous) behaviours.
Auto-tracking and zoom permits to automatically follow objects moving in the scene and to keep it zoomed.
Our
motion detection algorithm has been employed to build video
analytics products in video surveillance.
These products do not confine themselves just to detecting motion, as a common Digital Video Recorder (DVR), but
to analyse motion in order to eliminate events of change detections not due to human activities.
The main advantages offered by our algorithm are:
- self-training: after an automatic bootstrap, the algorithm starts working automatically. No thresholds
are required to be changed in order to keep same quality performances, since the algorithm adapts itself to environmental light changes
- false alarms reduction: our robust detection and filter for chaotic motion prevent detection of sudden light
changes or moving hedges and trees. This means that even using many cameras, the records in the DB of detected events is extremely small,
containing almost only true events. This enables a fast reconstruction of what has happened
- real time performances: some parts are implemented in assembler and the algorithm has been optimized
to keep effective even in case of single channel images
- scalability: the care employed to develop a multithread core makes our algorithm capable to handle up to 1024 cameras
Motion detection with thermal camera
The thermal cameras imaging technology is different from that of sensors working
in the visible spectrum. Here, the scene imaged (i.e., each "pixel value") is function of the energy emitted
in the infrared spectrum by each body of the scene, that is in its turn related to its temperature. The viewing scene
is represented using a suitable thermal hot/cold colormap (often, hot/cold in red/blue colors). Here, the background is a
"thermal signature" of the scene and the updating scheme is different from that used with common visual sensors.
However, the experience gathered in tens manyear in detecting motion in the visible spectrum, and above all our
self-adaptive technologies, has been partly reused to detect motion with thermal cameras.
Traffic monitoring and event detection
The efforts accomplished to detect accurate masks for moving objects and to achieve an effective tracking
algorithm enable us to face hard problems such as automatic traffic monitoring and event detection.
The traffic monitoring system we have developed exploits the object tracking capability to automatically detect events
(e.g. the presence of stopped, or very slow, vehicles, queues) or anomalous trajectories (e.g. U-turns, vehicles moving in the emergency lane
or vehicles driving along wrong directions).
Actually, on top of the tracking information we perform an accurate trajectory analysis that can be applied "as is" for any problem
involving tracking of rigid bodies (vehicles, objects on a conveyer belt, etc.).
People tracking
To extend tracking of rigid bodies to work with people (one of the most challenging tracking cases) we employ
self-organized artificial neural networks over almost 30 kinds of features extracted be each person.
This permits to keep track of people even in crowded conditions, to count with a high precision people crossing
user defined virtual passages, by discriminating walking direction. Also, advanced trajectory analysis techniques permit
to detect position and stop time for each person, the most walked as well as anomalous paths, so to derive behaviour
analysis for statistical, commercial or security purposes. The software is suitable for shops and malls, bus or trains,
museums or public buildings.