

-1.jpg)

The OpenMV Cam is a small, low power, microcontroller board which allows you to easily implement applications using machine vision in the real-world. You program the OpenMV Cam in high level Python scripts (courtesy of the MicroPython Operating System) instead of C/C++. This makes it easier to deal with the complex outputs of machine vision algorithms and working with high level data structures. But, you still have total control over your OpenMV Cam and its I/O pins in Python. You can easily trigger taking pictures and video on external events or execute machine vision algorithms to figure out how to control your I/O pins.
The OpenMV Cam features:
- STM32H743II ARM Cortex M7 processor running at 480 MHz with 32MBs SDRAM + 1MB of SRAM and 32 MB of external flash + 2 MB of internal flash. All I/O pins output 3.3V and are 5V tolerant. The processor has the following I/O interfaces:
- A full speed USB (12Mbs) interface to your computer. Your OpenMV Cam will appear as a Virtual COM Port and a USB Flash Drive when plugged in.
- A μSD Card socket capable of 100Mbs reads/writes which allows your OpenMV Cam to take pictures and easily pull machine vision assets off of the μSD card.
- A SPI bus that can run up to 80Mbs allowing you to easily stream image data off the system to either the LCD Shield, the WiFi Shield, or another microcontroller.
- An I2C Bus (up to 1Mb/s), CAN Bus (up to 1Mb/s), and an Asynchronous Serial Bus (TX/RX, up to 7.5Mb/s) for interfacing with other microcontrollers and sensors.
- A 12-bit ADC and a 12-bit DAC.
- Two I/O pins for servo control.
- Interrupts and PWM on all I/O pins (there are 10 I/O pins on the board).
- And, an RGB LED and two high power 850nm IR LEDs.
- 32 MB of external 32-bit SDRAM clocked at 100 MHz for 400 MB/s of bandwidth.
- 32 MB of external quadspi flash clocked at 100 MHz in 4-bit DDR mode for 100 MB/s of bandwidth (read speed).
- A removable camera module system, with support for 8-bit parallel, allowing the OpenMV Cam H7 to interface with different sensors:
- The OpenMV Cam H7 Plus comes with a OV5640 image sensor is capable of taking 2592x1944 (5MP) images. Most simple algorithms will run between 25-50 FPS on QVGA (320x240) resolutions and below. Your image sensor comes with a 2.8mm lens on a standard M12 lens mount. If you want to use more specialized lenses with your image sensor you can easily buy and attach them yourself. use more specialized lenses, you can easily install them.
- For professional machine vision applications, you can purchase our global shutter camera module mt9V034.
- For infrared thermal imaging machine vision applications, you can purchase our FLIR Lepton thermal imaging module.
- 3.7V lithium-ion battery interface, you can purchase our 3.7V-1000MAH lithium-ion battery
Documentation: https://singtown.com/openmv/
Applications
Currently, the OpenMV camera can do the following (with more to come):
- Neural Network Object Detection
- You can use OpenMV to train neural networks for object detection, training any target you want to detect. For example, different numbers, different fruits, different markers, different parts, or any specific irregular targets can be trained to identify the number, coordinates, and object type name of specific targets.
- You can detect traffic signs in our actual roads based on our video tutorials, such as no honking, no parking, speed limit 80, etc. /learn/50918
- Neural Network Classification
- You can use OpenMV to train neural networks for object detection, training any target you want to detect. For example, different numbers, different fruits, different markers, different parts, or any specific irregular targets can be trained to identify the number, coordinates, and object type name of specific targets.
- It can classify whether a person is wearing a mask based on our video tutorial./learn/50872
- TensorFlow Lite for Microcontrollers
- TensorFlow Lite support allows you to run custom image classification and segmentation models on the OpenMV Cam. With TensorFlow Lite, you can easily classify complex areas in the picture and control the 1/0 pins based on what you see.

- Frame Differencing
- You can use the frame differencing algorithm on your OpenMV Cam to see motion in a scene. Frame differencing allows your OpenMV to be used for security applications.
- Color Tracking
- You can use OpenMV to detect up to 16 colors simultaneously in an image (though you'll never want to find more than 4 colors), and each color can have any number of different blobs. OpenMV will tell you the location, size, center, and orientation of each blob. Using color tracking, your OpenMV Cam can be programmed to track the sun, follow lines, track targets, and more. Video demo: /learn/49993

- Marker Tracking
- You can use your OpenMV Cam to detect groups of colors instead of individual colors. This allows you to place color tags (2 or more color labels) on objects and OpenMV will get the content of the tagged objects.
- Face Detection
- You can use your OpenMV Cam to detect faces (or any generic object). Your OpenMV camera can process Haar templates for generic object detection and comes with built-in Frontal Face and Eye Haar templates for detecting faces and eyes. /learn/50013

- Eye Tracking
- You can use eye tracking to detect the direction someone is looking. You can use this to control robots. Eye tracking detects pupil position while detecting if eyes are present in the image.
- Person Detection
- You can use the built-in person detector (TensorFlow Lite model) to detect if there are people in view.

- Optical Flow
- You can use optical flow to detect motion in front of your OpenMV camera. For example, you can use optical flow on a quadcopter to control stability in the air.

- QR Code Detection/Decoding
- You can use your OpenMV Cam to read QR codes in its field of view. With QR code detection/decoding, you can enable smart robots to read labels in their environment.

- Data Matrix Detection/Decoding
- OpenMV Cam can also detect and decode Data Matrix codes (2D barcodes). You can view our video here.
- Linear Barcode Decoding
- OpenMV Cam can also process 1D barcodes. It can decode EAN2, EAN5, EAN8, UPCE, ISBN10, UPCA, EAN13, ISBN13, I25, DATABAR, DARABAR_EXP, CODABAR, CODE39, CODE93, and CODE128. View our video here: /learn/50017

- AprilTag Tracking
- Even better than QR codes above, OpenMV Cam can also track AprilTags. AprilTags are state-of-the-art fiducial markers that are rotation-invariant, scale-invariant, shear-invariant, and illumination-invariant. View our video here: /learn/49590

- Line Detection
- OpenMV Cam can quickly complete infinite line detection while running at almost full frame rate. Also, it can find non-infinite line segments. You can see our video here: /learn/50009
- Circle Detection
- You can easily use OpenMV to detect circles in images.

- Rectangle Detection
- OpenMV can also detect rectangles, using the square detection code from the AprilTag library.
- Template Matching
- You can use OpenMV template matching to detect if there are template-similar images in view. For example, template matching can be used to find markers on PCBs or read known numbers on displays.

- Image Capture
- You can use OpenMV to capture RGB565/grayscale BMP/JPG/PPM/PGM images. You can directly control how to capture images in Python scripts. Most importantly, use machine vision algorithms to draw lines, draw characters, and then save.

- Video Recording
- You can use OpenMV camera to record RGB565/grayscale MJPEG videos or GIF images (or RAW videos). You can directly control how each video frame is recorded in Python scripts and have complete control over when video recording starts and ends. Also, like taking pictures, you can use machine vision algorithms to draw lines, draw characters, and then save.
Finally, all the above features can be mixed with IO pin control to work with your own custom applications to interact with the real world.