The human visual system produces an informational revolution in the brain, which processes all the information received and can distinguish any objects in sight. In other words, the eyes see but the brain does all the work for image processing. The brain is the most reliable and the most powerful tool that controls everything, the human visual system is so powerful that we cannot yet speak of an artificial system that can even remotely compare with it. Robots need a system as powerful as the human system and researchers need inspiration to create algorithms that can detect objects, track and estimate their next position. If for a human distinguishing objects is routine and does not require a conscious effort of analyzing the information, for a robot detection with high precision of an object is a task that requires high processing power, an algorithm that identifies objects and a real time image capture system with high quality.
Detecting with accuracy an object by a robot is linked to images captured, light applied to the object, its position in space, occlusion, its movement if it is necessary to perform recognition dynamically and other factors that are dependent on each system. A performance object tracking software must meet a list of requirements to be somehow close to the human visual system. Features of software found in this lineup includes tracking multiple objects, image stabilization, fast detection speed, flexible architecture which is required for a robot which is in continuous development. In this article we gathered together six of the most used object tracking software in robotics.
SwisTrack is one of the most advanced software used for multi-object tracking in robotics. It can be used for tracking objects, other robots, animals, humans, etc. As input it is required to use a camera or a video recorder. Using OpenCV library and having a flexible architecture, SwisTrack can be used for tracking objects in different situations. It has support for USB, FireWire, and GigE cameras.
The flexibility allows developers to implement new components or components already supported by SwisTrack can be used. Using NMEA 0183 format via TCP/IP to capture the position and trajectory, the data can be used in real-time processing.
2. Skilligent Robot Vision System
Skilligent is designed to be used especially in robotics applications for recognition and object tracking. It is used together with a camera which captures images from different views of the object that will be processed. The algorithm which underlies the program is resistant to major changes in light intensity, angle changes up to 30-45 degrees, camera distortions and partial object occlusions. The algorithm uses images captured to extract the objects and then compare these with objects stored in its own database. The software can also be used for applications involving visual object recognition and tracking, image stabilization, visual-based servoing, human-to-machine interaction and visual-augmented navigation. Processing speed of the program is largely provided by a structure used for indexing the representations of objects.
Multi-View object recognition involves the capture of more images of the same object from different views. Used in vision-augmented localization, the software can detect, identify and track in a visual way the objects and provide reference points for pose estimation. The distance to objects can be determined by using dead-reckoning sensors and changes from an optical flow. Since the robots are always moving, for an image stabilization software is required for an accurate object tracking software. To be used efficiently the software requires a multi-core computer for maximum real-time performance.
OpenCV is a free library used for real time vision in robotics and not only. The library includes around 2500 optimized algorithms for general image processing, 3D vision, tracking, segmentation, transformation, fitting, or utility and data structures. It has support for Windows, Linux, Android and Mac operating systems and the interfaces work with C++, C, Python and soon Java. OpenCV is always under improvement with a large community supporting it, where everyone could add new functionality.
4. Tracking-Learning-Detection (TLD)
TLD is an algorithm built by Dr. Zdenek Kalal with a research work in computer vision, and used for tracking, learning, and detection. His work is focused on real-time tracking of unknown objects. Presented for the first time in a competition in UK ICT Pioneers 2011 algorithm result circulated on the Internet in a video called Predator. Objects detected are selected dynamically from video images and are marked with a bounding box around them. If an object leaves the frame and comes back, the algorithm detects the object and recognizes it. As long as the object is visible, the algorithm can discover the trajectory and estimate the object motion. All these informations related with an object are stored into a model which is updated with new changes which may occur in time.
5. CCTV Object Tracking Software
CCTV Object Tracker is a special algorithm which works with CCTV video and can be used for detection and tracking crowd objects. This algorithm is a response to human eyes object tracking system which can count, detect and tracking one or more independently moving objects at the same time. Applied in the robotics field this software can be used for surveillance and safety robots, in automated processes when a tracking and detecting system is required, etc. Operation mode includes the detection of regions both in time and space, and the second step is to identify a set of tracks for each object. Based on a series of video images and image analysis system the software stores images in a time series. Then the algorithm calculates the trajectory in real time based on measurement of maximum distance between two tracks.
6. PositionIt Smartphone Application Object Tracking
Mobile devices, and smartphones in particular, have become very useful tools for robot control and can be used as brains for a robot to track and recognize objects due to an application developed by researchers at the University of Missouri. PositionIt is an application that uses three of a smartphone’s onboard capabilities to calculate the location and track the speed and direction of an object. The three employed features of a smartphone are GPS, compass and camera. After the target is detected the software measures the size of the object and can determine the distance of the target using a single image and comparing its relative size in the image to the target’s known actual size. Longitude and latitude of the object is calculated with GPS data location and compass information.
Using triangulation the software can detect any size of a target using an additional image. In an additional way the algorithm can calculate the speed and direction based on video captures. The accuracy of software depends on camera resolution, GPS accuracy and also by the smartphone battery which is required to perform well for a working system. PositionIt can be used by soldiers, golfers, or by parents for speed tracking of a car.