The Silicam IGO
The SiliCam IGO was a fully programmable stereo camera, which provides simple vision capabilities to small-embedded systems in the form of an intelligent camera. It was our first SmartCamera available to Universities and Makers !
- Sensors: IGO houses 2 synchronized 30x30 pixels image sensors that are capable of frame rates up to 100fps. The lens holders accept any M12 x 0.5mm lenses as used in small surveillance cameras and webcams.
- Processing: Processing is performed by a dsPIC33EP512GP806, running at 140MHz and giving 70 MIPS performance. This processor has an advanced DSP pipeline giving ample performance for several image processing tasks. All input and output streams are dealt with by SPI-DMA channels leaving all processing power for the application. With this horsepower typical applications such as motion detection, motion estimation, tracking and depth estimation reach easily speeds far over 30 fps. Next to the internal memory, the board is equipped with an additional 1Mbit SRAM of external memory.
- Connections: As communication interfaces, the IGO has a TTL UART connection that reaches 1500000 bps. Also, it houses a radio module with 64 channels in the 868MHz band (for EU) or 915MHz (for US), reaching up to 30m (100ft). Next to that, the IGO is provided with a 56Khz IR receiver as a low-speed instruction channel and a real-time-clock. For future extensions, the pin-headers for an I2C, SPI and IO connections and 3 12-bit ADC channels are provided. These connections allow to build a (wireless) network of smart cameras out of several IGO modules.
- Programming: Silicam IGO can be programmed in C and C++ using the free MPLABX environment with the xc16 compiler (available as a free student version). Programs are downloaded through the ICSP connector on the board.
- Powering: the board accepts 3.3v to 12V at 120mA trough a 5.5x2.1/2.5 mm power plug. Alternatively, it can be powered by batteries. On-board, the input voltage is stabilized to 3.3V.
- Applications: Despite the low resolution, several applications have already been shown on this hardware including background detection,face detection, vehicle classification, speed measurement, motion detection and estimation and depth estimation.
The Silicam RIK
The SiliCam RIK is our new fully programmable SmartCamera!
Based on the feedback we got in the last two years from the Universities, we made a new board that is Smaller and Customizable.The people using it gave us few important feedbacks :
- No need for stereo vision in consideration that the two image sensors are too close and depth estimation can be used only for close objects
- Need for a wired connection to the Silicam for fast streaming (es: USB)
- Need of a wireless network capable to control it and allow image streaming on request
- Possibility to add sensors or other devices to it
Based on these assumptions we remade the Silicam IGO.
- Sensors: RIK houses a 30x30 pixels image sensors that is capable of frame rates up to 100fps. The lens holders accept any M12 x 0.5mm lenses as used in small surveillance cameras and webcams.
- Processing: Processing is performed by a dsPIC33EP256MU806, running at 140MHz and giving 70 MIPS performance. Next to the internal memory, the board is equipped with an additional 1Mbit SRAM of external memory.
- Connections: As communication interfaces, the RIK has a mini USB 2.0 connector. Also, it houses MikroBus connector. Next to that, the RIK is provided with a 38Khz IR receiver as a low-speed instruction channel.
- Programming: Silicam RIK can be programmed in C and C++ using the free MPLABX environment with the xc16 compiler (available as a free student version). Programs are downloaded through the ICSP connector on the board.
- Powering: Usb power
The Silicam RIK with the MoXi node used to connect it to the MoXi network
- Stereo Streaming
A simple video that shows the IGO streaming stereo video through serial TTL at almost 100fps
- Edge-Based Foreground Detection for Low-Resolution Video Processing This video has been made by Francis Deboeverie, Gianni Allebosch, Dirk Van Haerenborgh, Peter Veelaert and Wilfried Philips at TELIN (University of Ghent, Belgium) and it shows the stereo images of 3 cameras in the same room on the left and stereo foreground background segmentation on the right. The segmentation algorithm here used is a special algorithm developed by them as written in below abstract.
- Depth Estimation This is a video demonstrating the depth estimation algorithm created at ETRO-VUB. The algorithm processes raw data of the Silicam in real-time and drives a cuboid-based 3D visualization. A live demo presentation of the system is planned at ACM/IEEE International conference on Distributed Smart Cameras (ICDSC 2013) (http://www.icdsc.org/), entitled "Demo: Depth Estimation for 1K-Pixel Stereo Visual Sensors" by Jan Hanca, Frederik Verbist, Nikos Deligianis, Richard Kleihorst, and Adrian Munteanu.
- Smoke Detection Both sequences were taken in a public park of Seville called "El Parque del Alamillo". We tried to detect smoke generated by commercial pyrotechnic bottles placed at different distances from the Silicam IGO, in most cases around 100m. The experiments were carried out by Jorge Fernández Berni, Ricardo Carmona Galán and Juan Antonio Leñero-Bardallo. The three of us are members of the Institute of Microelectronics of Seville (CSIC - Universidad de Sevilla). The Silicam IGO was powered via USB (we purchased a specific cable for that) and sent images, also via USB, that were handled by a program written in C where the vision algorithm was encoded. This program makes intensive use of OpenCV functions.