Intlab UIC

Wagon UIC number recognition SDK
(for 1435 mm track gauge)

What is Intlab UIC for?

24/7 real-time optical recognition of UIC numbers on the side or chassis of wagons, railway platform, and tank cars, with a single consolidated recognition result for each wagon.

Intlab UIC is a software development kit (SDK) for third-party integration of optical detection and recognition of UIC wagon numbers (used in the EU and other countries with 1435 mm track guage). The module supports 24/7 recognition of numbers on all types of locomotives, passenger wagons, freight wagons, platforms, and tank cars in a broad range of external conditions. The module can recognize numbers in individual images as well as video steams from analog or digital sources. The module provides the best quality recognition when used with a video stream, since the results received from individual frames taken from different cameras are analyzed and combined using complex algorithms to form a single result for each car. Since the wagon number appears on both sides and on the chassis, the best recognition results are obtained using 2 to 4 cameras.

Basic specifications

        ​up to

Recognition accuracy


Single-frame recognition time


Maximum rolling stock speed


Minimal character height

Results from individual frames are merged and a single result is issued for each wagon

Supported wagon types


Windows 7, 10
Windows Server
C# (.Net)
Many others

Specifications, system requirements, and the API

  • Specifications
  • System requirements
  • API

Typical probability of accurate recognition results when reading numbers in video streams from two sides

up to 95%

Supported character height characters as small as 10 pixels are supported, though a height of at least 16 pixels is recommended for best accuracy
Rolling stock speed up to 20 km/h
Supported wagon types

all types of locomotives, freight, passenger wagons with a number compliant with the UIC standard

Places where numbers can be read side or chassis of wagons
Supported number types


Number of cameras
Recommended: at least 2; or 4 if number on chassis and side are  both present
Width of camera's monitored area 5 — 10 meters
Camera's angle from the horizontal <= 20°
Camera's angle from the vertical <= 30°
Camera's roll angle <= 5°
Camera's installed height 3 — 3.5 meters
Camera's distance to wagon

1.5 — 10 meters (depending on the focal length of the camera lens); the optimal distance is 3-5 meters

Minimum light level

depends on the video camera used, 50 lux is typical
Supported video signals individual images or live streams from an analog or digital camera
Average time spent processing each frame with the recommended resolution 200 milliseconds
Correction of perspective and radial lens distortion +
Syntactic control and verification of wagon numbers using the UIC checksum +
Determination of the wagon's direction of motion from the video  +
Consolidated recognition results based on the series of video frames captured as the wagon moves through the monitored area +
Licensing system

1 license for each instance of a primary / secondary recognition object, USB dongle

Supported operating systems SDK can be used in applications in C / C ++, C #, VB.Net, Java and any other programming languages that support calling C functions.
Package contents SDK distribution package, documentation, examples in C / C++, C#, USB license dongle

Supported operating systems

Windows 7,8,10 (32/64 bit), Windows Server 2008, 2012 (32/64 bit), Linux Ubuntu (64 bit)

Recommended computer configuration
  • Core i5 (4th generation desktop CPU or higher) to perform recognition simultaneously on 1-2 video streams of rolling stock moving up to 10 km/h.
  • Core i5 (4th generation desktop CPU or higher, 4 cores) to perform recognition simultaneously on 2-4 video streams of rolling stock moving up to 10 km/h.
  • Core i7 (4th generation desktop CPU or higher, 4 cores) to perform recognition simultaneously on 1-4 video streams of rolling stock for speeds above 10 km/h.
  • Core i7 (4th generation desktop CPU or higher, 8 cores) to perform recognition simultaneously on 5-8 video streams of rolling stock for speeds above 10 km/h.
  • RAM: 4 Gb or greater.

Engine input

  • images loaded from a file or passed in a memory buffer in BMP, JPEG, or RAW format
  • real-time video stream passed in a memory buffer in BMP, JPEG, or RAW format, event indicating when wagon first appears in the monitored area, event indicating when the wagon has left the monitored area
Engine settings Frame resolution, rectangular recognition zone within the frame (region of interest - ROI), minimum and maximum size of characters in numbers, average character height, average aspect ratio, parameters for camera tilt correction (optional), parameters for radial distortion correction (optional)
Engine output When the engine receives an event indicating that the wagon has left the frame or stopped, the following results are returned:
  • the set of the best recognition hypotheses for each separate frame, where each hypothesis contains a string representation of the number, a recognition confidence score (hypothesis weight), the timestamp and image of the frame with the highest confidence score for this hypothesis, the location of the number within the frame, and the timestamps of the first and last frames where the wagon number was detected;
  • the final result, obtained by combining the results from each frame, contains a string representation of the number with the recognition confidence score (hypothesis weight), recognition confidence score for each character, direction of wagon motion, and a link to the recognition data from the best camera;

Key advantages

Inhouse development
Inhouse development
Our engineers developed all of our recognition libraries from scratch, putting us in the best position to answer customers' questions, since there are no third-party dependencies.
The recognition engine works smoothly on a video stream (up to 10 fps) of rolling stock moving up to 20 km/h, performing recognition using 4 cameras on a single railway track, while also maintaining the highest possible recognition quality.
High recognition accuracy
High recognition accuracy
Our superior recognition accuracy, which is confirmed by internal and third-party testing, is achieved thanks to the high recognition speed (which ensures that frames are not skipped), most advanced recognition algorithms, smart unification of per-frame results, and the ability to use up to 4 cameras from both sides of a wagon to recognize numbers on the wagon sides and chassis.
Support for non-standard numbers
Support for non-standard numbers
Unlike ordinary recognition engines, Intlab UIC doesn't use any limited selection of geometric templates for wagon numbers. Instead, it uses proprietary font-independent OCR, allowing the engine to support the broadest possible range of versions of UIC wagon numbers.
Hardware independence
Hardware independence
Our video analytics engines are not tied to any specialized equipment or cameras. You can use any hardware that meets the technical requirements.
Fast and simple development
Fast and simple development
We strive to provide the most flexible, functional, convenient, and coherent APIs for all of our product lineups. We provide developer support and consultations during integration of our products into client solutions. We care about our clients and strive as much as possible to maintain backwards compatibility and support older versions of the API.
Friendly and effective support
Friendly and effective support
A qualified expert developer will quickly answer even your most difficult question.
Personal approach / Custom modifications
Personal approach / Custom modifications
We are always open to collaboration and take customers' wishes into consideration in the development of future versions. Our flexible, modular recognition engine also makes it possible to rapidly solve non-standard tasks (number recognition on a company's rolling stock with a proprietary numbering system, etc.)
Superb qualifications
Superb qualifications
12+ years of real-world experience conducting research, and developing and perfecting software in the area of OCR and computer vision.
Continuous improvement
Continuous improvement
During the lineup of product's more than 12 years of existence, we have worked continuously to improve the technical characteristics of the recognition engine. Having a lineup of number recognition products lets us continuously grow our expertise while simultaneously advancing and improving the recognition kernel in the entire product lineup.