Sunday, April 22, 2018

Embedded Computer Vision with OpenMV

Have you ever wanted to put computer vision into an embedded device? But wasn't sure whether it's possible to cram in a computer vision algorithm into a small hardware device?

Well, that's what the OpenMV project is all about.

OpenMV is a programmable embedded device, with a built-in camera, that you can program with variety of vision tasks.

The OpenMV Cam M7
The OpenMV Cam M7 (Image source)

The OpenMV project has been started back in 2013 with a goal of becoming the "Arduino of Machine Vision". They now have the The OpenMV Cam M7 (pictured above), powered by a 216MHz ARM Cortex M7 processor and 512KB.



The hardware specs might not sound very impressive at first. But remember, this isn't a camera that you plug in and run the processing on your computer. This is an embedded device which you program your computer vision task and let it work on its own.

The OpenMV Cam can be programmed to perform variety of  tasks such as,

  • Frame Differencing
  • Color Tracking
  • Marker Tracking
  • Face Detection
  • Eye Tracking
  • Optical Flow
  • QR Code Detection/Decoding
  • Data Matrix Detection/Decoding
  • Linear Barcode Decoding
  • AprilTag Tracking
  • Line Detection
  • Circle Detection
  • Rectangle Detection
  • Template Matching
  • Image Capture
  • Video Recording
The image and video capture can utilise a micro SD card using the built-in card slot.

The OpenMV IDE
The OpenMV IDE (image source)

The OpenMV Cam runs MicroPython - lean and efficient implementation of the Python 3 that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments - and you program your algorithms using Pyton, using the OpenMV IDE.

The IDE itself has a code editor, a debug window, a frame buffer view to see what the camera sees, and a histogram view of the frames for convenient and efficient embedded programming. The IDE is available for Windows, Mac OS, Ubuntu, and Raspberry Pi.




Like an Arduino, the OpenMV Cam is expandable with various shields, such as LCDs, Motor controllers, Servo controllers, WiFi, and more, adding many options for your robotic projects. They even have options for different types of lenses for different situations.

Expansions for the OpenMV Cam
Expansions for the OpenMV Cam (image source)

But the best thing about the OpenMV Cam, in my opinion, is its low cost. The base module - The OpenMV Cam M7 - is only US$ 65.00, which is very reasonable considering its capabilities.

I have ordered my OpenMV kit (they have worldwide shipping) and eagerly waiting to dig deeper into it once the kit arrives.

Links to OpenMV






Build Deeper: Deep Learning Beginners' Guide is the ultimate guide for anyone taking their first step into Deep Learning.

Get your copy now!

No comments:

Post a Comment