A smart camera or intelligent camera is a machine vision system which, in addition to image capture circuitry, is capable of extracting application-specific information from the captured images, along with generating event descriptions or making decisions that are used in an intelligent and automated system. A smart camera is a self-contained, standalone vision system with built-in image sensor in the housing of an industrial video camera. It contains all necessary communication interfaces, e.g. Ethernet, as well as industry-proof 24V I/O lines for connection to a PLC, actuators, relays or pneumatic valves. It is not necessarily larger than an industrial or surveillance camera. A capability in machine vision generally means a degree of development such that these capabilities are ready for use on individual applications. This architecture has the advantage of a more compact volume compared to PC-based vision systems and often achieves lower cost, at the expense of a somewhat simpler (or omitted) user interface. Less powerful versions are often referred to as smart sensors.
Although often used for simpler applications, modern smart cameras can rival PCs in terms of processing power and functionalities. Smart cameras have been marketed since the mid 80s. In the 21st century they have reached widespread use, since technology allowed their size to be reduced and their processing power reached several thousand MIPS (devices with 1 GHz processors and up to 8000MIPS are available as of end of 2006).
Having a dedicated processor in each unit, smart cameras are especially suited for applications where several cameras must operate independently and often asynchronously, or when distributed vision is required (multiple inspection or surveillance points along a production line or within an assembly machine).
A smart camera usually consists of several (but not necessarily all) of the following components:
- Image sensor (matrix or linear, CCD- or CMOS)
- Image digitization circuitry
- Image memory
- processor (often a DSP or suitably powerful processor)
- program- and data memory (RAM, nonvolatile FLASH)
- Communication interface (RS232, Ethernet)
- I/O lines (often optoisolated)
- Lens holder or built in lens (usually C, CS or M-mount)
- Built in illumination device (usually LED)
- Purpose developed real-time operating system (For example VCRT)
- Optional video output (e.g. VGA or SVGA)
Fields of application
In general smart cameras can be used for the same kind of applications where more complex vision systems are used, and can additionally be applied in some applications where volume, pricing or reliability constraints forbid use of bulkier devices and PC's.
Typical fields of application are:
- automated inspection for quality assurance (detection of defects, flaws, missing parts...)
- non contact measurements.
- part sorting and identification.
- code reading and verification (barcode, Data Matrix, alphanumeric etc.)
- web inspection (inspection of continuously flowing materials such as coils, tubes, wires, extruded plastic) for defect detection and dimensional gauging.
- detection of position and rotation of parts for robot guidance and automated picking
- unattended surveillance (detection of intruders, fire or smoke detection)
- biometric recognition and access control (face, fingerprint, iris recognition)
- visual sensor networks
- robot guidance
- nearly any machine vision application
Developers can purchase smart cameras and develop their own programs for special, custom made applications, or they can purchase ready made application software from the camera manufacturer or from third party sources. Custom programs can be developed by programming in various languages (typically C or C++) or by using more intuitive, albeit somewhat less flexible, visual development tools where existing functionalities (often called tool or blocks) can be connected in a list (a sequence or a bi-dimensional flowchart) that describes the desired flow of operations without any need to write program code. The main advantage of the visual approach versus programming is the shorter and somewhat easier development process, available also to non-programmers. Other development tools are available with relatively few but comparatively high level functionalities, which can be configured and deployed with very limited effort.
Smart cameras running software tailored for a single specific application are often called "vision sensors."