3D Pose Estimation
This sample application demonstrates usage of POSIT and Coplanar POSIT algorithms for 3D pose estimation. The application renders some artificial object allowing user to rotate and move it. Then projected points are used for estimation of the object's pose. Application provides original objects' transformation matrix and the estimated one, so user could compare them both. The sample is mostly aimed for testing/understanding of the pose estimation algorithms.
3D Pose Estimation (2)
This sample application also demonstrates usage of POSIT and Coplanar POSIT algorithms for 3D pose estimation, however it estimates pose of a real objects shown on some picture. The application allows to open some image file, select image points of the object to estimate pose for, specify model coordinates of those points and then estimate the object's pose. When estimation is done, the application will render X/Y/Z coordinate system using the estimated rotation and position, which ideally should match the object show on the picture. The application contains several built-in samples to demonstrate how it works.
This sample application demonstrates capturing video and depth data from Microsoft Kinect sensor. It also allows to control sensor's LED and motor and get access to accelerometer data.
The sample application demonstrates usage of Hough line and circle transformations, which may be applied for detection of straight lines and circles of the given radius.
The sample application demonstrates different image processing filters and their application to an image. The applications demonstrates filters from many different areas, like color filtering, correction of color levels, convolution filters, edge detection filters, binarization filters, etc.
The sample serves a good demonstration of usage of difference image processing filters.
This sample applications demonstrates finding all separate objects in the specified image. It finds each individual object, provides its properties and provides convex hull for each object or its quadrilateral's corners (if the object is really a quadrilateral, then its corners should be found with good precision).
This sample demonstrates detecting/checking some simple geometrical shapes. The sample application uses few demo images (generated and real) and recognizes shapes in them.
Duplicate songs detector via audio fingerprinting
This demonstration shows an efficient algorithm of signal processing which will allow one to have a competent system of sound fingerprinting and signal recognition.
As an example, consider an audio signal Ψ1, which you would like to compare to another Ψ2 in order to see if they both are coming from the same song or audio object. Any person could cope with this assignment with no problem at all, but computers unfortunately are not that intuitively "smart". The difficulty lies in the fact that each of the signals might have distinct digitized formats, thus making their binary signatures totally opposite (resulting in an obsolete byte-by-byte comparison). The dissimilarity may also result because of the combination of variant internal characteristics of the same audio format (bit rate, sampling rate, number of channels (mono, stereo, etc.)). Even if you proceed with the conversion of the files to some predefined specifications (e.g., 44100 Hz, stereo, WAVE PCM format), you still might bump into the problem of having different binary representations because of the possible time misalignment, noise, distortion, or "loudness levels" for the same song.
Behaviour Tree Editor
Brain Designer is a visual behaviour tree editor. It allows you to build behaviour trees by using simply drag&drop. The editor supports plugins, exporters and stores behaviours as XML files.
Please notice that the Brain Designer is an editor. You have to write your own exporter which generates files for your AI. The editor contains no node logic so it contains no AI. You have to implement the nodes by yourself. Nodes can be added, removed or modified by modifying the source code of the example plugin included.
Support for Workspaces and Plugins
License Plate Recognition
According to wikipedia
Automatic number plate recognition (ANPR; see also other names below) is a mass surveillance method that uses optical character recognition on images to read the license plates on vehicles. As of 2006, systems can scan number plates at around one per second on cars traveling up to 100 mph (160 km/h). They can use existing closed-circuit television or road-rule enforcement cameras, or ones specifically designed for the task. They are used by various police forces and as a method of electronic toll collection on pay-per-use roads and monitoring traffic activity, such as red light adherence in an intersection.
ANPR can be used to store the images captured by the cameras as well as the text from the license plate, with some configurable to store a photograph of the driver. Systems commonly use infrared lighting to allow the camera to take the picture at any time of the day. A powerful flash is included in at least one version of the intersection-monitoring cameras, serving both to illuminate the picture and to make the offender aware of his or her mistake. ANPR technology tends to be region-specific, owing to plate variation from place to place.
This sample application demonstrates usage of the API to control Lego Mindstorm RCX robotics kit. With the sample application it is possible to connect RCX brick (USB IR tower is required), read its sensors' values, control motors, get information about the device and play simple sounds on the device.
The sample application is very similar to the above one, but demonstrates usage of API to control Lego Mindstorm NXT robotics kit. The application provides the same functionality - connecting to NXT brick (over Bluetooth), checking its sensors values, controlling motors, etc.
This application also demonstrates controlling Surveyour's Stereo Vision System board. The application allows receiving video feeds from both cameras, show stereo anaglyph images and manipulate robot by driving it using predefined commands or using direct motors' control.