Hey Everyone!
It's been two weeks, time for a blog post! Here's what's going on:
1080p Video Recording on the OpenMV Cam RT1062
We got a customer email asking about if we could record 1080p video on the OpenMV Cam RT1062. So, I decided to show that we can easily do it using the OV5640 on the OpenMV Cam RT1062!
This feature depends on the latest un-released firmware for your OpenMV Cam (v4.5.3) which you can install via Tools -> Install Latest Development Release. You can record/stream 1080p video at 15 FPS or 720p video at 30 FPS in JPEG mode. Note: You can also use JPEG mode with RTSP video streaming!
So, give it a try! Turn your OpenMV Cam RT1062 into a video recording machine. Thanks to the 30uA low-power mode you can wakeup on the RTC, record/stream video, and then turn back off while running forever on a battery.
Production Shield Prototypes Received
We finally got our RT1062 production shield prototypes back from the factory! We're going to thoroughly test them all now to make sure everything is in working order and that they are ready to mass produce. We plan to launch the 10/100 Mb/s PoE Ethernet Shield for the RT1062 first as this is what folks have asked the most about.
The other shields pictured above from left to right and top to bottom:
- The PIR Shield:
- It features a 6uA PIR sensor that can wakeup your OpenMV Cam RT1062 from deep sleep and PWM controllable IR (8) and White (8) LEDs. The 850nm IR LEDs can output ~60 mW/sr combined and the White LEDs can output ~200 lumens combined - seriously bright!
- The Relay Shield:
- It features two 60W capable Small Signal SPDT Relays that you can use to pass DC or AC signals. Additionally, it includes standard features like a wide voltage range 6V-36V power supply input, protected analog in, and sync input/output for triggering.
- The Driver Shield:
- It features two 3A H-Bridge Motor Drivers which can be used to drive motors or act as four individual 1.5A push-pull outputs. Additionally, it includes standard features like a wide voltage range 6V-36V power supply input which the high power outputs run off of, and protected analog in, and sync input/output for triggering.
- The RS422/RS485 Shield:
- It features a single RS422 or RS485 driver cable of 10 Mb/s. Additionally, it includes standard features like a wide voltage range 6V-36V power supply input, protected analog in, and sync input/output for triggering.
- The CAN/RS232 Shield:
- It features an 8 Mb/s FD-CAN Transceiver and a 1 Mb/s RS232 Transceiver. Additionally, it includes standard features like a wide voltage range 6V-36V power supply input, protected analog in and, sync input/output for triggering.
- The New Servo Shield:
- It features three Servo Outputs on P7-P9 and allows P10 to be used as a sync input/output for triggering. Additionally, it includes standard features like a wide voltage range 6V-36V power supply input which can power the OpenMV Cam and servos, and protected analog in.
In summary, a lot of new features to help you interface your OpenMV Cam RT1062 to the real world!
Arm Partnership
And now! For the real news! OpenMV is now an official partner and supplier for Arm! Stephen Su, Senior Segment Marketing Manager, and Laurent Le Faucheur, have been following our SIMD optimization work we've been doing a while now and think we should optimize more algorithms!
Thanks to Arm we're going to be speeding up many algorithms across the board using Cortex-M4/M7 SIMD which allows you to double pump most code giving a 2x performance boost and implementing Arm Helium support for the Cortex-M55 and Cortex-M85 to get 8x to 16x more performance from the baseline.
We're going to be bringing the speed on future OpenMV Cams. With the Cortex-M55/M85 we're going HD. 320x240 no more! 1280x720 or 1280x960 by default - leeeeettttts go!
Lens Correction
Out of the many algorithms Arm wants us to optimize, the most significant one they are interested in is for us to implement real lens correction like OpenCV has!
So, we're finally going to get it done this year and implement a general purpose remap function supports nearest neighbor, bilinear, and bicubic scaling. The new remap function will work from a generic lookup table that can be pre-computed before you start streaming frames or on every frame. You'll then be able to use the generic lookup table to apply lens correction, log polar transforms, perspective transformations, and more!
The new code will be much faster and better looking than what we are doing right now where as we currently compute the mapping function for our lens correction code or log polar transform every frame and only have nearest neighbor scaling.
But, we're going to make this work for all OpenMV Cams, even those without external SDRAM. We'll allow you to store the generic lookup table at a different (e.g. lower) resolution than the frame buffer that you are transforming. Using fast bilinear scaling we're going to generate interpolated remap coordinates on the fly. This will allow you to use lens correction on your OpenMV Cam H7 with a 80x60 remap table to remap a 320x240 image for example.
Why is this Important?
Pretty much anyone using computer vision in serious applications applies lens correction to remove distortion effects from the image which typically will make all the lines straight. Doing this before running QR Code detection, for example, will vastly improve the detection performance.
Similarly, if you're using your OpenMV Cam to follow lines you'd then want to apply a birds-eye view perspective transform after applying lens correction to make it easier to follow the line on the ground.
So, with the new remap functionality you'll be able to apply both transforms at the same time, using a faster method, and with higher image quality.
Future Stuff
We're going to be working with Arm closely this year on a few projects. We'll announce more details when we have them. In the mean-time, that's all folks!