The camera films the passing train from the side and builds a continuous strip image of it, while a neural network reads the railcar numbers. The recognised number is tied automatically to the weighing record in the database — the operator only has to confirm the result.
Our own team develops it: the strip-imaging algorithm, the train speed estimation and the number recognition are our own code, not a bought-in module.
The camera stays still. One thin vertical strip is taken from the centre of every frame; the strips are glued together into a long panorama of the whole train, as if a scanner had been run along it.
The video is read frame by frame.
Our own algorithm determines the speed of the train.
Fractional shift accumulates into whole pixels: the faster the train moves, the wider the strip; at a standstill no strip is taken, so the panorama is not stretched.
The strips accumulate and are stitched into a single image, while a speed log is written for later analysis of the pass.
The camera films the passing locomotive and railcars from the side — below is a recording of one pass from one of our sites.
This is what one finished pass looks like: drag the scrollbar under the image to pan through the whole train.
A real frame from one of our sites — the locomotive and the railcars of the train as one continuous strip.
The optical reading module finds the digits of the number on the car body or frame and scores the confidence for every character. If the number cannot be read (dirt, stickers, a non-standard font), the operator enters or corrects it by hand and the link to the weighing is kept.


