More info

Smart Camera

A smart camera is a basic vision system containing:

  • a sensor
  • an image digitization system
  • an image processing system

A smart camera is slightly larger than a normal camera.

Through evolution smart cameras are no longer relegated to simple tasks (such as reading barcodes) and are a valid alternative to the classic setup consisting of a camera and a computer.

At the moment, the main differences between smart cameras are in the processing unit, which may be based on:

  • a DSP, which is a processing unit optimized for specific tasks. It is less flexible than other solutions and often needs proprietary utilities to be configured
  • ARM + FPGA. The ARM processor is often used for generic applications, while the FPGA is only used as a performance accelerator. It provides greater flexibility compared to the setup based on a DSP. The support is often limited to Linux, but with certain frameworks one can use code written by the user.
  • ARM + GPU. The GPU is used as an accelerator, as in the previous setup.
  • CPU + VPU. A Visual Processing Unit is often used as an accelerator together with a CPU (ARM or x86) with generic tasks. It differs from ARM + FPGA or ARM + GPU solutions, as the chips are not in the same SOC. There are no substantial differences on the user’s side.
  • X86 board. The setup is more similar to a PC. It allows for great flexibility, as it can support different operating systems and code written by the user.

Table with pros and cons of different solutions:

Platform

Pros

Cons

DSP

  • Processor optimized for certain tasks
  • Energy Efficiency
  • Reduced flexibility
  • Often closed and proprietary systems

ARM + FPGA

  • Excellent flexibility in performing different tasks
  • Energy Efficiency
  • Standard and open systems
  • Good computing power
  • Difficulty in programming FPGA in an optimized way

ARM + GPU

  • Excellent flexibility in performing different tasks
  • Energy Efficiency
  • High computing power
  • Energy Efficiency
  • Easy to program

CPU + VPU

  • Good flexibility in performing different tasks
  • Energy Efficiency
  • Good computing power
  • Limited set of features

X86 board

  • Excellent flexibility in performing different tasks
  • Highly customized
  • Good computing power
  • Energy Efficiency

A smart camera may also feature a GPIO and a communication interface.

The architecture of a vision system is strongly related to the application it is meant to solve. Some systems are “stand-alone” machines designed to solve specific problems (e.g. measurement/identification), while others are integrated into a more complex framework that can include e.g. mechanical actuators, sensors etc. Nevertheless, all vision systems operate are characterized by these fundamental operations:

Image acquisition. The first and most important task of a vision system is to acquire an image, usually by means of light-sensitive sensor. This image can be a traditional 2-D image, or a 3-D points set, or an image sequence. A number of parameters can be configured in this phase, such as image triggering, camera exposure time, lens aperture, lighting geometry, and so on.

Feature extraction. In this phase, specific characteristics can be extrapolated from the image: lines, edges, angles, regions of interest (ROIs), as well as more complex features, such as motion tracking, shapes and textures.

Detection/segmentation. at this point of the process, the system must decide which information previously collected will be passed on up the chain for further elaboration.

High-level processing. The input at this point usually consists of a narrow set of data. The purpose of this last step can be to:

  • Classify objects or object’s feature in a particular class
  • Verify that the input has the specifications required by the model or class
  • Measure/estimate/calculate specifics parameters as position or dimensions of object or object’s features
loader