PDF version of this entire document

Development Environment

As a baseline example and starting point, Figure [*] shows a prototype of a program that captures about 5 frames per second from an Android-enabled camera.

Figure: Example of an OpenCV-enabled application run on a low-resolution device with a keyboard (emulation). The number on the left represents the number of frames per second and the checkerboard pattern indicates that no camera is currently operating.
Image small-sized-device

The interface is quite different for a high-resolution smartphone or a tablet, as shown in emulation mode in figures [*] and [*].

Figure: Emulation of Android on a tablet-type device with OpenCV
Image honeycomb-1280-800

Figure: Applications installed on Android on a tablet-type device with OpenCV
Image honeycomb-1280-800-apps

Figure [*] shows the image obtained by applying Canny edge detector [5] to the synthetic scene shown before.

Figure: A simple program that applies the Canny edge detector to the video input (the default checkerboard pattern in this case) and the accompanying frame rate estimator on a dual-core AMD workstation (emulation mode). This may correspond to a high-resolution smartphone such as the Galaxy series or even a comparable tablet.
Image large-sized-device-canny

The SDK in use is Eclipse, which is further enhanced with Google addons, as shown in Figure [*]. The program requires the Android SDK, NDK, typically Eclipse, and of course OpenCV (I used version 2.4.x).

Figure: Eclipse SDK and the two device types being tested with the simple program. Notice how the Eclipse toolbar is augmented by Google addons.
Image eclipse-adt

One would have to photograph the tablet to properly show this running with real data. In emulation I tested several device types, but the camera is emulated (the example in Figure [*] is WVGA), unlike when it is run on the device.

Figure: The program in WVGA, emulated
Image wvga

For demonstration purposes I gathered some screenshots of the complete program running on a real device, a high-resolution tablet in this case. Figure [*] shows some of those screenshots. These show the latest version of the program in ``About Impact'' mode - a menu option that enables tracking nearby obstacles. There are nearly 10 such menu options (the total varies depending on classification of distinction), but some are simpler filters.

Figure: Top left: car detection from a distance; Top right: detection from a shorter distance; Bottom left: car too close for detection; Bottom right: detection from afar. The program also comes with a menu and is not complicated to work with.
Image program-car-nav

Roy Schestowitz 2012-07-02