Machine Vision System for Printing Manufacturers


In 2020, we were contacted by a leader in the local flexo printing market, a manufacturer of flexible packaging and self-adhesive labels, providing a full-cycle flexo printing house. To make the final products, the client uses a slitter machine that cuts film at high speeds.


Customer Challenge

Our client used to rely on the vision of operators to identify printing gaps. Technically, the operator at the flexible packaging production had to look at a thousand meters of film passing through the slitter machine per minute, which resulted in missing up to 90% of defects. At this point, our client received about 100 printing gap complaints a year, which was about 20% of all complaints. 

In order to maintain its reputation in the market, the company needed a solution for: 

  • reducing time on processing a damaged canvas,

  • reducing the cost of returning substandard products,

  • improving the quality level of the product for end customers,

  • avoiding missed deadlines and reputational risks due to defective products,

  • releasing an affordable solution to the market.

Project Challenge

The slitter machine must cut the film at very high speeds, so the required system had to provide quality control during the main technological stage and manufacturing process. To perform this effectively, the system had to automatically detect printing gaps and signal to stop the slitter machine. The requested solution needed to be both convenient and affordable, as the client had a strict budget.
The prototype of the device was planned to be used on the client’s enterprise, and the manufactured device was to be run on a mass scale


For ensuring quality control during the manufacturing process, we decided to use machine vision technology. However, the scaled implementation of the technology at the industrial level requires cost reduction. Utilizing the potential of neural networks, we reduced the technical requirements of the camera and made an effective solution that did not break the budget.

We’ve been working on the rapid development and debugging of an industrial prototype device based on Colibri iMX6ULL 512MB IT. Before starting programming, we studied the Todadex module from scratch and using its evaluation board, customized the Yocto project for integrating the custom layers into the build. Toradex has already added Yocto support for the Colibri module, which made it possible to customize the software faster. Our team developed a machine vision system that met the following requirements:

  • Capturing and processing video information from a control object moving at a speed of 50 to 1000 meters per minute;

  • Light and sound signaling indicating the occurrence of the monitored event(s);

  • Communication with the control server via Ethernet interface;

  • External sensors connection: speed, contrast;

  • Control of external devices via relays;

  • Single-core CPU with at least 800 MHz clock speed.

As a result, we got a hardware and software platform subject to intellectual property rights, containing all the required components, as in the pictures below.

Server Communication Service

To understand if the slitter machine worked, we used Python programming for the Colibri module. To provide feedback from the module to the server, we implemented the client service using Python and library WebSockets. It was the main communication path for the server to determine the state of the machine: normal mode, idle mode, and no connection. Also, this service allows you to control the light and sound signals in a variety of modes, ranging from the semi-finished product mode (blinking lamp) to the mode of detecting unprinted samples (long-lasting lamp with a long sound signal). It allows the operator to be informed about the defects immediately, and therefore able to stop the machine quickly.

Video Streaming Transmission

The next step after getting the image from the camera was analyzing it with the neural network. To identify if a section of the tape was printed well, we used the video stream broadcast service. It was based on a package distributed with the Yocto project — mjpg_streamer. This solution allows you to start streaming with the following command: mjpg_streamer -i "" -o " -p 8090".

However, the neural network is not a limitless technology, because it can reduce overall system performance when overloaded. When the limit of devices that can be connected at the same time was exceeded, the server started to freeze. We were faced with the problem of the increased load when the WEB interface stopped responding to user actions, and the algorithms for analyzing speeds began to skip points.

External Microcontroller

To implement a hardware solution, we needed a microcontroller that measured the tape speed and acted as a built-in crypto protection chip. We used C++ to write the code for the licensing service and forward the speed of the tape through the MQTT to the server, which communicated with the microcontroller via SPI. Such great usability of the development environment was achieved with the help of the Yocto project and its additional layers.

Development included

  • Embedded Software Development
  • Server Software Development
  • Web Interface Development
  • Hardware Development
  • System Electronics Design



The client got a machine vision system prototype that can detect defects of the tape for the slitter machine automatically. The final system included a device equipped with speed sensors, a camera located above the printed area, and a server. The server also includes a web interface to help managers and operators interact with the system. The system communicates with a camera, detectors, performs video processing and coding of visual information. The server software processes the video using a neural network to analyze and detect unprinted defects.

The delivered system helped the client to:

  • reduce the time spent on reprints

  • increase customer base

  • improve the company’s reputation

  • save costs on operators

The client started the installation process of the beta version of the solution on each slitting machine in the middle of 2020 as a pioneer. The number of printing gaps was reduced by 50% in just 6 months, and reached 10 a year in 2021. It helped the company to return all investments in the solution, with less than a 1-year ROI.

The solution is planned to be launched in mass production in the near future.

Technology Breakdown

Project size
  • 1 Senior Software Engineer
  • 2 Software Engineers
  • 2 Technical Coordinators
  • 1 Project Manager
  • 1 Technical Assistant
  • 1 Designer
  • From December 2020 to February 2022

Further cooperation

The client was fully satisfied with the working results and is currently considering the future development of the delivered product with us. We plan to solve the issues of the limit of machines connected at the same time and, therefore, system overload, by increasing the power of the system. It is likely necessary to change the module to a more powerful model, which has 4 cores and 2GB of RAM on board and to transfer the neural network there. To realize this, we need some architectural solutions related to the interaction with the server. We'll have to transfer video clips with the unprinted areas to the server, but these solutions will help the system to become distributed, and the server will become significantly unloaded.

Let's Connect

Learn more about how we engage and what our specialists can do for you
This site includes photos from Pixabay licensed under CC0 Illustrations by Storyset images by Freepik.