Software Development
Architecture
A PC-based vision system software consists of several parts.
The algorithm that analyses and inspects images is the core of a vision system software. It must be robust and reliable.
To achieve a high quality of the algorithm, it is important to:
- divide it into simpler and individually testable tasks
- make it manageable and understandable by keeping the code clean and using comments, diagrams and flow charts.
Image processing algorithms are also used
- to make the calibrations
- to perform useful functions when setting up the machine
- to check that the machine is working properly (self-diagnosis). For example, it is possible to automatically detect possible problems, such as insufficient lighting or a dirty lens.
The vision algorithms are developed using commercial (MVTec HALCON, COGNEX VisionPro) and open-source (OpenCV) image processing libraries.
The human-machine interface (HMI) allows the operator to view the results obtained from image processing and interact with the machine.
Data Logging records images and results obtained from processing on the PC.
This data can also be available to remote stations, both computers and mobile devices.
Data exchange with programmable logic controllers (PLCs), servers, clients, robots and other machinery is performed via industrial communication protocols (Modbus, OPC UA, …).
What I do
By developing embedded and PC-based vision systems, I have acquired the skills and knowledge to develop the entire software of a vision system.
My strong point is the development of the algorithm for image processing. I can develop robust and reliable algorithms thanks to good mathematical/geometric modelling skills and accumulated experience.
For the development of image processing algorithms, I use specific image processing libraries, such as OpenCV, MVTec Halcon and Cognex VisionPro, choosing the one that best suits the customer’s needs.