Implementation details

SceneReader is implemented in ANSI C for speed and portability.

SceneReader currently runs on Linux/x86 and Windows systems; ports to other platforms may be possible by negotiation.

Robustness of analysis

As the sample image gallery demonstrates, SceneReader is tolerant to wide variations in input image quality.

SceneReader can work with relatively poor-quality images such as those from simplistic phone-cameras, as well as high-quality images such as scanned photographs and high-end digital camera output.

The time taken for image analysis is dependent mostly on the size of the input image.

Not an OCR Tool

SceneReader is optimised for handling arbitrary photographic images with complex and unpredictable content.

It is NOT optimised for the analysis of ordinary printed text documents.


Technical details

The following considerations should be noted regarding the initial release of SceneReader 1.0.

1. Only the latin alphabet is supported.
SceneReader comes pre-configured with a general font knowledgebase allowing it to recognise text in a variety of fonts. Currently, this font knowledgebase only includes latin alphabetic characters (so e.g. cyrillic or greek characters are not supported).

2. Only alphabetic characters are supported.
The initial release of SceneReader does not attempt to recognise numeric character sequences, and ignores punctuation. It may occasionally misrecognise certain number sequences as words (because some digits are highly similar to some letters, e.g. 0-O, 1-I, 2-Z, 5-S etc). Future releases may recognise number sequences as well as dictionary words.

3. Only dictionary words are recognised.
To improve recognition in poor-quality images, SceneReader uses a reference dictionary to match the words in an image. Words missing from the dictionary will not be recognised. However, the dictionary can be large without significant performance implications (e.g. we typically use a 60,000-word dictionary for testing purposes).

4. All single-letter words (e.g. "a", "I") are ignored.
To minimise false positives, SceneReader presently ignores single-letter words. In future releases, single-letter words in the midst of other recognised words may be recognised.

5. SceneReader is optimised for recognising printed, non-cursive text.
SceneReader will not, in general, recognise joined-up (cursive) writing or heavily-interconnected text.

6. Result reporting is case-insensitive.
SceneReader can recognize words in upper, lower and mixed case. However, its output results are reported in all-lowercase.