We've got a huge feature update today! OpenMV IDE v1.8.1 is here which brings library folder support to OpenMV IDE along with firmware v2.7.0 where we added a ton of new features folks were requesting.
But first... DIY Robocar Racing
OpenMV IDE v1.8.1
OpenMV IDE now has built-in library folder support. This means OpenMV IDE will create a new "OpenMV" folder in your "Documents" directory and display code stored in this folder under the file menu. OpenMV IDE will handle recursively displaying both files and folders being stored in your library folder. Additionally, OpenMV IDE is able to open non-python file types.
But, in addition to the above OpenMV IDE can now automatically scan python imports in your scripts! So, if you include a module in your script found in either your library folder or the examples folder OpenMV IDE will detect if it's missing from the your OpenMV Cam's file system or if it has changed and prompt you to copy/update the file to/on your OpenMV Cam's flash drive. OpenMV IDE will then scan that imported/updated file too and prompt you to copy/update any files that imported file depends on.
This new features makes working with modules and splitting your code up much easier. Additionally, sharing example scripts and modules for other folks to use is much more palatable now with the new library folder location.
OpenMV Firmware v2.7.0
As for the firmware, we added a bunch of new things:
- Camera Sensor
- We've received a lot of requests from folks about setting the camera exposure. So, you now can along with being able to set the camera's gain and white balance settings too. Example scripts are now included with OpenMV IDE showing off how to control the camera sensor.
- In order to support keeping multiple images in memory we've now exposed the ability to allocate extra frame buffers! By allocating an extra frame buffer you can now keep two or more full sized images in RAM. This is super useful for methods like frame differencing and optical flow which require comparison between two images.
- Image Library
- If you need to compare images we've now got structural similarity image comparison code.
- In addition to the above we improved the frame differencing code and added a lot of examples to OpenMV IDE.
- To help with frame differencing we added shadow removal code to the OpenMV Cam. It requires a shadow free source-of-truth image to use... But, once you have that your can quickly remove shadows from scenes with minimal FPS overhead.
- You can now segment histograms using Otsu's method with the new get_threshold() method. This allows you to dynamically get optimal color thresholds without any user intervention based on the scene.
- Mean/Median/Mode/Midpoint all are able to adaptively threshold the image now. So, if you need to threshold edges in the image it's no problem now.
- You can now pass a mask image to the above methods to filter particular pixels.
- Boundary condition issues for all the kernel methods were also fixed. You may have noticed these before. They are now not a problem.
- Better optical flow via phase correlation is now available on the OpenMV Cam M7. The previous phase correlation code was in a working but rather sorry state. We've now built out all the examples and made sure everything works while improving the FPS on the OpenMV Cam M7. You can watch the video below:
Other Cool Stuff
In case you missed it here's our new video on frame differencing support...
... and linear/log polar transforms:
Finally, we've finished manufacturing 2.5K new OpenMV Cams in China w/ Etonnet and have received them at our new warehouse. But, before we can start selling them we've got a few more things to do behind the scenes. We'll be sending out a new blog post about this very soon along with new products we'll be stocking once we've got everything setup.