iabdalkader
3eca75774f
Update docs.
2017-12-06 14:12:16 +02:00
Falko Schindler
7673aaf742
changing sign of z_rotation() to follow conventions of a right-handed coordinate system with yaw, pitch and roll defined as right-handed rotations about z-, y- and x-axis ( http://nghiaho.com/?page_id=846 , http://planning.cs.uiuc.edu/node102.html );
...
partly reverts pull request #200 (https://github.com/openmv/openmv/pull/200/files );
relates to discussion in openmv forum (http://forums.openmv.io/viewtopic.php?f=6&t=538 );
note that rotation() is probably effected by this change (but it should not!)
2017-12-06 09:11:52 +01:00
iabdalkader
f79c6ba8d2
Move linker script variables to board config files.
2017-12-04 20:43:49 +02:00
iabdalkader
606cb08d1e
Update docs
2017-12-01 13:54:52 +02:00
Kwabena W. Agyeman
7388a3c7be
Improved the performance of the get_regression() robust linear
...
regression code for racing.
No more memcpys all over the place. Not sure why I was doing that.
... code must have been written by an idiot before :) (me).
2017-11-18 22:27:17 -08:00
iabdalkader
a8f74d5f88
Move WINC1500 firmware to top firmware dir.
2017-11-17 15:53:20 +02:00
iabdalkader
7a33f94df9
Bump firmware version.
2017-11-04 18:13:32 +02:00
iabdalkader
b6608cc754
Fix servo pins.
2017-11-01 19:07:29 +02:00
Kwabena W. Agyeman
8d63f6d84b
Fix up lens_correction and add example script.
2017-10-28 00:31:01 -04:00
Kwabena W. Agyeman
5e3cf92ac4
Add perspective rotation correction code.
...
This code will help you undo image rotation issues in the X/Y/Z
direction. The demo shows off the frame buffer spinning around.
2017-10-27 01:21:13 -04:00
iabdalkader
8160e9120e
Add MT9V034 initial support.
2017-10-24 03:07:17 +02:00
iabdalkader
9104ef3437
Swap read/write word data.
2017-10-21 23:40:56 +02:00
iabdalkader
d860361fcd
Fix cambus read/write-w register width.
2017-10-21 14:18:42 +02:00
iabdalkader
fecf856169
Revert "Add generic cam bus read/write."
...
This reverts commit d2ebe6f7e2 .
2017-10-21 14:17:53 +02:00
iabdalkader
d2ebe6f7e2
Add generic cam bus read/write.
2017-10-19 00:53:43 +02:00
iabdalkader
ff8cf16169
Rename data to reg_data.
2017-10-18 23:19:12 +02:00
iabdalkader
04a14a290f
Rename SCCB/I2C driver to cambus.
2017-10-18 23:14:14 +02:00
iabdalkader
d1a5f72a95
Add new cam support files.
2017-10-17 14:14:08 +02:00
Kwabena W. Agyeman
1748000e4d
Use special version of nlr_raise again.
2017-10-17 01:14:57 -04:00
iabdalkader
927edcf321
Fix M4 UART pins.
2017-10-12 21:49:37 +02:00
iabdalkader
46da0d9f2f
Add roundf to Makefiles.
2017-10-09 21:32:03 +02:00
iabdalkader
c6c7324272
Apply mpconfigboard fix for MP-1.9.2
2017-10-09 21:21:44 +02:00
iabdalkader
11bed4b993
Update to MP-1.9.2
2017-10-09 21:20:06 +02:00
iabdalkader
64143d4a94
Remove frozen code object file.
2017-10-06 01:37:44 +02:00
iabdalkader
20c8b66789
Implement sensor soft sleep.
2017-10-05 01:25:49 +02:00
iabdalkader
f86a5fb63d
Fix blob.density()
...
* Fix issue #268
2017-10-04 11:00:23 +02:00
Kwabena W. Agyeman
cbe2a4aebd
Disable find line segments on the M4.
2017-10-03 02:50:55 -04:00
iabdalkader
c961b3eac0
Remove Cortex flags from MP Makefile.
2017-10-02 00:49:36 +02:00
iabdalkader
38aca6e9e8
Disable frozen modules.
2017-10-02 00:47:03 +02:00
iabdalkader
bb0d0e778a
Disable OPENMV 1 build.
2017-10-02 00:27:03 +02:00
iabdalkader
afe07324c5
Use 1 DMA handle for SD TX/RX
2017-10-02 00:16:27 +02:00
iabdalkader
763228e30d
Update F4 HAL.
2017-10-01 22:57:28 +02:00
iabdalkader
2edc26db6a
Update CMSIS.
2017-10-01 22:47:05 +02:00
iabdalkader
5bffa8879a
Remove comment.
2017-09-26 00:03:41 +02:00
iabdalkader
608ca9ab87
Remove unused pyb functions.
2017-09-24 21:29:34 +02:00
iabdalkader
6e34bafe6b
Add function to execute boot scripts.
2017-09-24 21:16:10 +02:00
iabdalkader
de8caa3006
Remove debugging code.
2017-09-24 20:48:26 +02:00
iabdalkader
0c20049e3d
clean up main.c
2017-09-24 01:47:46 +02:00
iabdalkader
5460f7f5e1
Fix FS cache address.
2017-09-24 01:46:41 +02:00
iabdalkader
e2514ee302
Add pendsv debugging flags to top Makefile.
2017-09-23 15:46:06 +02:00
iabdalkader
041a93502b
Update SCCB probe function.
2017-09-23 15:45:54 +02:00
iabdalkader
3820cd07b7
Update MP.
2017-09-23 15:45:42 +02:00
iabdalkader
6ae6ce0cf7
Reorder init functions.
2017-09-23 15:45:15 +02:00
iabdalkader
ace083430f
Init USB before sensor init to log errors.
2017-09-23 15:00:50 +02:00
iabdalkader
6917e4bb32
Update to micropython 1.9.
...
* The following issues still need fixing:
* Al fb_alloc nlr hooks are DISABLED.
* modnetwork causes cam to hardfault.
* Had to reduce heap by 1K (vfs buffer had to be moved to bss/data).
* self-tests are disabled (cam gets stuck after executing).
2017-09-21 16:58:57 +02:00
iabdalkader
07b7fb1f21
Update main.c for MP 1.9.
2017-09-21 16:58:57 +02:00
iabdalkader
1ab776faf1
Use forced exception to stop scripts.
2017-09-21 16:58:57 +02:00
iabdalkader
3ccc418cf3
Update main Makefile for MP 1.9
2017-09-21 16:58:57 +02:00
iabdalkader
113806e51b
Update WINC1500 FatFS code
2017-09-21 16:58:57 +02:00
iabdalkader
e43bd3223b
Disable nlr/fb-alloc function.
2017-09-21 16:58:57 +02:00
iabdalkader
9db426394f
Update OMV Python modules for MP-1.9
2017-09-21 16:58:57 +02:00
iabdalkader
4a521dae32
Update MP header.
2017-09-21 16:58:57 +02:00
iabdalkader
5018ac1cd4
Add wrappers for oofatfs
2017-09-21 16:58:57 +02:00
iabdalkader
be54d3a8c7
Use MicroPython's OOFatFS.
2017-09-21 16:58:57 +02:00
iabdalkader
260479ae0f
Lower M4 sensor clock.
...
* Add PLL config to board to fine tune M4 sensor clock.
* Note M4 sensor clock is lowered, the MCU can't keep up with high FPS.
2017-09-13 23:46:20 +02:00
Ibrahim Abd Elkader
0cf13e8777
Merge pull request #263 from kwagyeman/lsd
...
Lsd
2017-09-13 18:09:50 +02:00
Kwabena W. Agyeman
5a3153c8b9
Find line segments more stable
...
Switched the find line segments algorithm to something more stable using
the standard LSD algorithm that's used by OpenCV.
2017-09-13 00:33:31 -04:00
Kwabena W. Agyeman
7dff089e6f
Removed QRCodes from the OpenMV Cam M4.
...
They don't really work that well on it anyway due to having to use a low
res. This makes room for more basic CV features on the M4 which it can
run.
2017-09-03 14:39:14 -04:00
iabdalkader
35ab0a26fc
Remove invalid resolutions.
...
* Fix issue #261
2017-08-29 01:54:43 +02:00
iabdalkader
7da5509aa5
Support writing raw images.
2017-08-26 20:27:48 +02:00
iabdalkader
9f25fa752e
Use IM test macros.
2017-08-26 19:48:17 +02:00
iabdalkader
abad31acea
Add IM_IS_BINARY.
2017-08-26 19:41:11 +02:00
iabdalkader
4a62b8b989
Add IM_IS_MUTABLE to check if JPEG or RAW image.
2017-08-24 23:42:05 +02:00
iabdalkader
9f71b89187
Fix IM_IS_JPEG macro.
2017-08-24 23:37:16 +02:00
iabdalkader
5dbc3e68b4
Bump firmware version.
2017-08-10 19:39:54 +02:00
iabdalkader
7d05519518
Enable VGA MJPEG.
2017-08-10 04:03:32 +02:00
iabdalkader
43f9535cf0
Support VGA GIFs with BAYER format.
2017-08-10 03:52:37 +02:00
iabdalkader
db4d47c67f
Initialize FB Enabled flag.
2017-08-08 18:56:11 +02:00
Kwabena W. Agyeman
ae1e00cc2d
Fix to match script
2017-08-07 03:47:25 -04:00
Kwabena W. Agyeman
3caed9461f
Fix find_circles
2017-08-07 03:46:08 -04:00
Kwabena W. Agyeman
d284407898
Fixed issues with polar math code.
2017-08-07 01:40:04 -04:00
iabdalkader
5c469e1e27
Update docs.
2017-07-28 13:59:52 +02:00
iabdalkader
9f658e4cfd
Enable Servo 3.
...
* Fix issue #256 .
2017-07-18 22:00:12 +02:00
Kwabena W. Agyeman
a4e556e7e3
Add find_rects() using AprilTag's quad detector.
...
It's awesome.
2017-07-13 01:25:23 -04:00
iabdalkader
aa2bd8a4e2
Add array insertion sort.
2017-07-11 23:48:49 +02:00
iabdalkader
ef3b058842
Minor fix to Haar loading from path.
...
* Won't need slash anymore.
2017-07-11 23:47:19 +02:00
iabdalkader
652ae88a65
Use ff_wrapper to load Haar cascades.
...
* Fixes unaligned reads warnings.
2017-07-11 23:37:24 +02:00
iabdalkader
200ffeed58
Add LeNet!
2017-07-11 04:10:40 +02:00
iabdalkader
109e403f7a
Fix ORB sorting.
...
* Using pointers to make the sort stable doesn't work. Each keypoint is allocated individually.
2017-07-08 03:56:25 +02:00
iabdalkader
37b2fc0b31
Make ORB keypoints sort function stable.
2017-07-07 04:13:57 +02:00
iabdalkader
1fea5ac78c
Fix ORB bug.
...
* Clear matched flag when loading descriptor.
2017-07-06 21:41:02 +02:00
Kwabena W. Agyeman
089577173c
Improve find lines merging.
2017-07-04 18:23:26 -04:00
Kwabena W. Agyeman
1ed867e39f
Fix memory leak with get_regression.
2017-07-04 14:21:11 -04:00
Kwabena W. Agyeman
5f4e690fa1
Add find circles.
...
Now you can find circles with your OpenMV Cam! The alrogithm can eek out
about 7 FPS on a 160x120 image which is quite impressive given how
computationally expensive circle finding is...
2017-07-04 14:09:21 -04:00
Kwabena W. Agyeman
48f1e0bada
Fixed blob issues.
...
* Angle averaging done correctly using sin/cos now.
* Unspecfied color bounds default to least restrictive instead of most
restrictive.
2017-07-03 13:05:57 -04:00
Kwabena W. Agyeman
cd4ad0dff3
Add linear regression
...
For easy line following mainly. In non-robust mode the line is computed
using least squares. In robust mode the line is computed using the
Theil-Sen median of slopes method. We do not use the Siegel Median of
Medians operation because it costs more CPU time... but, more
importantly there's no way to improve the centroid estimate so even if
the slope is more robust the line will be drawn in the wrong place.
2017-06-28 01:16:15 -04:00
iabdalkader
7d29104ed6
Add sensor.flush()
2017-06-25 16:48:17 +02:00
iabdalkader
99ec972ad0
Rename main_fb_image_size to fb_buffer_size().
2017-06-24 23:29:41 +02:00
iabdalkader
062f86c60a
Remove *_FB_SIZE macros.
2017-06-24 23:03:09 +02:00
iabdalkader
bfe1f02ffa
Remove 4 bytes from FB_SIZE macros.
2017-06-24 22:58:37 +02:00
Kwabena W. Agyeman
c2c92c9f41
No requirement to size FB anymore.
2017-06-24 12:43:23 -04:00
Kwabena W. Agyeman
a02c2bad6c
Fix main FB and JPEG FB size and pixels code.
2017-06-24 12:42:02 -04:00
Kwabena W. Agyeman
fffa3a691a
Add function to get image size in bytes given the format.
2017-06-24 12:27:23 -04:00
iabdalkader
851b5306a7
Add IMAGE_BPP_BAYER.
2017-06-19 01:50:02 +02:00
Kwabena W. Agyeman
87d53385a6
Improve image load.
...
It now copies to the frame buffer and will error out if loading an image
that is too large.
2017-06-18 13:57:34 -04:00
Kwabena W. Agyeman
968574b1a5
Add corners to code objects.
2017-06-16 01:56:33 -04:00
Kwabena W. Agyeman
cfe7881dff
Improve stream file format.
...
All chunks are multiples of 16 bytes. Don't want to run into issues with
long alignment now or in the future.
2017-06-12 01:43:57 -04:00
Kwabena W. Agyeman
dc6ab59cfd
Add Image Writer/Reader
...
These two new classes allow you to record image data for later viewing
at the same speed the image data was recorded. Unlike GIF/MJPEG the
image data is stored on the file system completely uncompressed in
native frame buffer format making super fast reading and writing
possible. Recording VGA Grayscale at ~13 FPS is possible along with
playing it back. (That's about 30 Mb/s folks).
...
The motivation for writing these scripts is so that you can record video
of something like a line following track, take that video home, and work
on computer vision algorithms for that data.
These classes should make it a lot easier to use the camera at home now.
2017-06-11 15:53:43 -04:00
Kwabena W. Agyeman
7ec990223f
Apply requested fixes.
2017-06-11 13:47:44 -04:00
Kwabena W. Agyeman
f9e124f8cd
Refactor framebuffer
...
Moved structs along with image copying code from sensor into
framebuffer.c so that we can use the new copy_fb_to_jpeg_fb() function
in the image library for methods with "copy_to_fb" so that they update
the IDE preview when called.
Also, I noticed that the MAIN_FB_SIZE() value is not calculated
correctly in all cases. Will fix later. Trying to keep this commit clean
for just the refactoring.
All changes have been tested. Too.
2017-06-10 23:31:42 -04:00
iabdalkader
c8d7a4188f
Update built-in README.
2017-06-09 01:00:06 +02:00
iabdalkader
5887129a0a
Remove inf file from fresh FS.
2017-06-09 00:30:13 +02:00
iabdalkader
6850a53bf9
Enable RTC.
2017-06-07 22:59:54 +02:00
iabdalkader
4af10aaa2e
Fix RTC init.
2017-06-07 22:59:42 +02:00
iabdalkader
a5b25bd5b7
Increase UART char timeout.
...
* Fix issue #240
2017-06-07 21:26:34 +02:00
Kwabena W. Agyeman
343c4b9092
Add sensor width and height.
...
Should have added this a long time ago.
2017-06-04 21:49:07 -04:00
iabdalkader
63c3ee85c2
Bump firmware version.
2017-06-04 20:52:02 +02:00
iabdalkader
e287b39968
Fix FW version.
2017-06-04 20:46:24 +02:00
iabdalkader
8cfa8f8b90
Apply SCSI layer fix from MP upstream.
...
* Fix #236
2017-06-04 20:04:39 +02:00
Kwabena W. Agyeman
744a2d7b04
Upstream Kanji fix.
2017-06-03 15:09:42 -04:00
iabdalkader
9091bc6ba0
Update binary ops docs.
2017-06-03 20:52:49 +02:00
Kwabena W. Agyeman
d853e43cd6
Fixed binary and/or naming.
2017-06-03 14:27:19 -04:00
iabdalkader
2232d78586
Bump firmware version.
2017-05-30 01:26:07 +02:00
iabdalkader
f85540b716
Reset the FPS clock every 2s.
2017-05-30 01:03:15 +02:00
iabdalkader
0666d0a465
Update MP docs.
2017-05-29 21:31:03 +02:00
Kwabena W. Agyeman
2557070422
Fix error with compress_for_ide()
...
Forgot to add size of start and end markers.
2017-05-28 23:07:11 -04:00
Kwabena W. Agyeman
a039b5d1c7
Change skip_frames() to use a 2 second timeout.
...
This was necessary due to the increase in the frame rate. The previous
method did not correlate to time.
All scripts updated.
2017-05-27 19:31:41 -04:00
Kwabena W. Agyeman
e9e48d5028
Update QRCode
...
Fixed issues with QRCode method in response to user reqeust on the
forums: http://forums.openmv.io/viewtopic.php ?
f=6&t=286&p=1799&hilit=qrcode#p1799.
2017-05-27 16:21:10 -04:00
Kwabena W. Agyeman
4d6612609e
Add more resolution combinations.
...
With the new frame rate speed increase folks will be asking for smaller
resolutions to get 85 FPS or so when running an algorithm. This commit
adds all scaled modes of frame sizes we already support. We should be
good now on frame sizes for the present and future now.
Todo - skip frames does not run long enough anymore for auto white
balance and gain to stablize before they are turned off in some scripts.
This needs to be adjusted.
2017-05-26 20:09:59 -04:00
iabdalkader
df1bdc65b8
Fix recvfrom return.
2017-05-26 20:29:23 +02:00
iabdalkader
e960546b6b
Add keypoints match object.
2017-05-22 19:48:15 +02:00
iabdalkader
1057dce2c9
Fix formatting.
2017-05-22 18:44:41 +02:00
iabdalkader
c59495d215
Call DCMI_VsyncExtiCallback from EXTI9_5 handler.
2017-05-21 22:29:26 +02:00
iabdalkader
8952962e3c
Add function to set VSYNC I/O output pin.
2017-05-21 22:27:58 +02:00
iabdalkader
666ee15992
Enable VSYNC output on IO pin for synchronization.
2017-05-21 22:23:53 +02:00
iabdalkader
9d8c6701c0
Fix indent.
2017-05-18 01:53:43 +02:00
iabdalkader
d266332a7a
Minor docs fixes.
2017-05-15 23:25:09 +02:00
iabdalkader
e35dbc2108
Lowering OMV2 sensor clock to work with the higher sensor PLL.
2017-05-13 23:04:19 +02:00
iabdalkader
6f4ea1567e
Set SCCB clock to 100KHz.
2017-05-13 04:11:36 +02:00
iabdalkader
103bb27f83
Set sensor PLL to 6x and reduce extclk.
...
* OMV2-F4 extclk = 8MHz * 6 = 48MHz
* OMV3-F7 extclk = 9MHz * 6 = 54MHz
2017-05-13 04:10:04 +02:00
iabdalkader
832819eede
Set sensor window to QVGA when res is <= VGA.
...
* This reduces the readout time allowing to cam to capture more (miss less) frames.
2017-05-13 04:08:33 +02:00
iabdalkader
520537f7b3
Add set resolution macro.
2017-05-13 03:30:13 +02:00
iabdalkader
435644e63f
Add find_lines docs
2017-05-11 13:53:09 +02:00
Kwabena W. Agyeman
f4a9c61544
Add find_line_segments
...
The OpenMV Cam can now infinite lines and line segments from those
infinite lines. find_lines has been updated to allow all this to work.
2017-05-10 21:40:22 -04:00
iabdalkader
dbda114663
Optimize Canny edge detector.
...
* Use separable convolution.
* Merge thresholding and non-max suppression steps.
2017-05-08 05:02:56 +02:00
iabdalkader
d80196002d
Compile additional features only when enabled.
...
* This fixes "unused" errors with newer toolchains.
2017-05-07 03:39:15 +02:00
Kwabena W. Agyeman
31b7b5bf3e
Improved find_lines
...
Frame rate now can hit 30 FPS when JPEG compression is off. Merging of
lines is perfected too which greatly reduces the noise output. Also,
lines are now objects so you can get their values in an easy way.
2017-05-06 14:31:20 -04:00
iabdalkader
b1196d5f8b
Update MP docs
2017-05-01 03:50:58 +02:00
Kwabena W. Agyeman
284a505865
Add ID string to arch output.
2017-04-30 20:09:00 -04:00
Kwabena W. Agyeman
dc599e40eb
Improved subscr and get_buffer
...
In response to PR https://github.com/openmv/openmv/pull/221 .
You can now read and write slices of data to and image at a time.
2017-04-29 19:27:13 -04:00
Kwabena W. Agyeman
690ec923ae
Add data matrix support.
...
Add support for decoding data matrices and example scripts.
2017-04-28 19:58:19 -04:00
Ibrahim Abd Elkader
7204a35758
Revert "Add image.raw() function."
2017-04-28 18:01:11 +02:00
skaiu
b64c744f2f
Add image.raw() function.
2017-04-28 21:51:31 +08:00
Kwabena W. Agyeman
08b36f2b21
Fix typos.
2017-04-27 00:44:28 -04:00
Kwabena W. Agyeman
aa5131467e
Fix UMM_Refactor Issues.
...
Memory allocation will grow organically now when more RAM is available.
2017-04-27 00:15:16 -04:00
Kwabena W. Agyeman
35e9f988d6
Refactor umm_malloc into it's own file.
...
We now have a nice and fast malloc system that easily offers 300KB+
dynamic memory... No need to use xalloc anymore except when we're
transfering objects to MP memory space.
2017-04-26 22:48:52 -04:00
Kwabena W. Agyeman
16d711ad5d
Pull in upstream quirc fixes from github.
2017-04-25 21:17:12 -04:00
iabdalkader
2c4ec23244
Fix gcc2016q4 warnings.
...
* Fixed misleading indentation.
* Removed unused static variables.
* Disabled strict aliasing for STM DSP library.
2017-04-23 20:40:07 +02:00
iabdalkader
1fd9bf9251
Enable UART1 for OPENMV3
2017-04-23 20:32:44 +02:00
iabdalkader
6e2ba0e300
Bump firmware version.
2017-03-26 22:25:23 +02:00
iabdalkader
cab69cc64d
Reverting last commit.
...
* Using parentheses for the logical test.
2017-03-26 21:48:59 +02:00
iabdalkader
e29d7769e6
Fix logical test error in zbar.
2017-03-26 21:41:42 +02:00
iabdalkader
3fd7c15094
Update docs.
2017-03-25 23:38:32 +02:00
Ibrahim Abd Elkader
6614d2380c
Merge pull request #203 from kwagyeman/master
...
Image Streaming Code
2017-03-25 18:54:43 +02:00
Kwabena W. Agyeman
55e4809ff6
Image Streaming Code
...
The user can now call compressed_for_ide() and compress_for_ide() on an
image to make a jpeg compressed image formatted for transmission over a
data link other than USB. Note that OpenMV IDE will automatically handle
one of these compressed images ending up in the frame buffer and display
it like normal.
To send the image data the user can do:
print(img.compress_for_ide(), end='')
print(img.compressed_for_ide(), end='')
uart.write(img.compress_for_ide())
uart.write(img.compressed_for_ide())
and etc. As mentioned above, compress() compresses the image in place.
And that in place compressed image will then end up in the jpeg buffer.
OpenMV IDE will automatically handling decoding these special compressed
images when this happens.
All variations of the above code have been tested and are working.
2017-03-25 12:47:23 -04:00
Kwabena W. Agyeman
bfd048e6f3
Integrate ZBar 2/2
...
ZBar functionality integrated along with an example script.
2017-03-24 12:45:27 -04:00
Kwabena W. Agyeman
dab290675f
ZBar Integration Part 1/2.
...
Main ZBar code, breaking the commit up because the main file is big.
I will refeactor UMM alloc out of apriltag.c and zbar.c once I'm
finished with this commit stream.
ZBar integration gives us support for basically all 1D linear barcodes.
2017-03-24 11:59:10 -04:00
Kwabena W. Agyeman
c6009ae05d
Fixed apriltags z translation.
2017-03-21 21:01:52 -04:00
iabdalkader
fb3582b440
Remove old MAX_INT_FRAME.
2017-03-16 20:34:04 +02:00
iabdalkader
669e9ad072
Removed unused JPEG_OFFS_SIZE.
2017-03-12 19:28:14 +02:00
iabdalkader
15d6b96bed
Fix py_image_get_buffer to support writing BAYER.
2017-03-12 19:25:48 +02:00
iabdalkader
4502256e19
Fix py_image assertion message.
2017-03-12 19:19:00 +02:00
iabdalkader
11abb5221b
Fix framebuffer size checks.
...
* Delay the FB size check and corrections to snapshot(). If the frame doesn't
fit FB it gets cropped for GS, or the sensor is switched to bayer for RGB.
2017-03-12 19:07:26 +02:00
iabdalkader
b0ed5bb7af
Add Bayer sensor support.
2017-03-12 03:38:26 +02:00
iabdalkader
5615a25745
Add Bayer support in OV7725 driver.
2017-03-12 03:33:33 +02:00
iabdalkader
d330486758
Add Bayer JPEG support.
2017-03-12 03:32:20 +02:00
iabdalkader
b94182dce4
Add new RAW/BAYER pixel format to support 2BPP VGA.
2017-03-12 03:29:49 +02:00
iabdalkader
002c2894aa
Add IM_GET_RAW_PIXEL
2017-03-12 02:36:52 +02:00
iabdalkader
fbc30e9736
Add missing ksize.
2017-03-09 22:46:03 +02:00
iabdalkader
e5aa66cd12
Use sep conv in ORB.
2017-03-09 22:43:24 +02:00
iabdalkader
ea7b87e866
Add separable convolution.
2017-03-09 22:43:05 +02:00
iabdalkader
040a3cb0e4
Use separable gaussian kernels.
2017-03-09 22:41:37 +02:00
iabdalkader
a4561c7efa
WINC: Add support for AP mode.
2017-03-09 20:39:53 +02:00
iabdalkader
32dded64fd
Use faster SPI GPIO.
2017-03-09 20:23:13 +02:00
iabdalkader
8c0e1603eb
Redefine log level when CONF_WINC_DEBUG is enabled.
2017-03-09 20:22:00 +02:00
iabdalkader
096361c711
Remove headers from mp.h
2017-03-09 03:47:24 +02:00
iabdalkader
1d1eede947
Updated docs.
2017-03-07 21:35:35 +02:00
iabdalkader
6d838ff8ee
Update docs.
2017-03-04 03:47:41 +02:00
iabdalkader
5e9beab3d6
Bump firmware version.
2017-02-28 18:07:39 +02:00
iabdalkader
a054b5faab
Fix cascade step.
...
* Assumed window width == height.
2017-02-28 17:51:03 +02:00
iabdalkader
7616e487f9
Handle CTRL+D/C/A just like MP boards.
2017-02-23 15:20:14 +02:00
iabdalkader
f7c49cc01d
Add CAN init0/deinit in main.c
2017-02-23 15:16:04 +02:00
iabdalkader
2934e88146
Enable CAN2 for OMV2 and OMV3
2017-02-23 15:04:04 +02:00
iabdalkader
f0a389f2cc
Enable extra MP modules.
2017-02-23 02:15:04 +02:00
Kwabena W. Agyeman
1b3f444351
Add callbacks back in for emulating pixy.
2017-02-15 13:18:11 -05:00
Kwabena W. Agyeman
cd07c0d5fa
AprilTags Fixes
...
* Made all memory allocations during the exhaustive time safe.
* Added 3D pose output from the AprilTags code.
2017-02-14 18:36:52 -05:00
Kwabena W. Agyeman
b22aadc21f
QR Code Bug Fixes
...
Fixed typo in qrcode script. Moved scripts to new folder. Fixed roi
offset for qrcodes. Use fast functions in qrcode library.
2017-02-10 15:14:29 -05:00
Kwabena W. Agyeman
71e795812f
April Tag Release Fixes
...
Everything works. Running out of memory is fixed and the rotation value
is valid now. For 320x240 operation on the STM32H7 we're going to need
on the order of 1 MB in the entire frame buffer. The code is designed to
handle us getting this amount of memory without any new changes for
320x240 support.
2017-02-10 13:42:35 -05:00
Kwabena W. Agyeman
443ba3bff8
AprilTags Support
...
Works super good.
2017-02-09 17:37:18 -05:00
Kwabena W. Agyeman
55716a632a
AprilTags Main
...
This file includes all of the relevant header/source files from the
april tag library merged into one big file. Additionally, it also
includes heap/quicksort code. I've done the work of going through
the april tag library line by line and fixing it to use fb_alloc,
floats, and our fast math functions.
Anyway, I'm sending this massive file by itself first since it's so
big. Note that we migh in the future want to pull things out of this
file for our own use later if we need linear algebra support.
2017-02-09 17:04:08 -05:00
Kwabena W. Agyeman
c4b4a86100
Add flag for SWD programmer.
...
It can now check if the self-test passed.
2017-01-29 19:54:45 -05:00
Kwabena W. Agyeman
3f879ec1b3
Fixed bootloader LED
2017-01-29 19:52:24 -05:00
iabdalkader
0be2676bc1
Bump firmware version.
2017-01-21 23:39:32 +02:00
iabdalkader
3e581156da
Fix LED pinout for OMV3.
2017-01-21 23:20:40 +02:00
iabdalkader
1cba92d757
Update docs.
2017-01-21 23:07:43 +02:00
Kwabena W. Agyeman
02af722fe8
Fixed fb_alloc() with mark for recently re-worked code.
...
I also tested the firmware for about an hour to make sure there was no
stack leak.
Note that I prefer for fb_free() to still be called versus
fb_free_till_mark() doing that for you in the code.
For functions without this fix they will just free the entire fb_alloc
stack when an exception happens. For functions with this fix they will
only free up to and including the mark. Since there are no places in the
firmware where you could start building a second fb_alloc stack when one
is already in place this point is moot currently. But, if we do
something like that in the future the problem will have already been
solved.
Any new code or re-worked code should use the mark function.
2017-01-18 18:39:08 -05:00
iabdalkader
0979ee2c0f
Update MP branch
2017-01-18 04:14:11 +02:00
Ibrahim Abd Elkader
f7e04a450b
Merge pull request #177 from kwagyeman/update_lens_corr
...
Speed up lens_corr.
2017-01-16 04:43:56 +02:00
Kwabena W. Agyeman
d6b49adefa
Speed up lens_corr.
...
Speed up the algorithm by fixing the abs() issue. Do not use that
function in any of your code. It by itself cut the speed of the code
in half. I don't know what's in that function but I'm guessing it does
ABS of a float using ints or something.
I made the zoom parameter functional now too so you can use lens_corr to
zoom in on the image. Argument parsing is handled too. Finally, I
updated the only script where this is used.
Note that I'm able to get more than 10 FPS at 160x120 on the M4 and 15
FPS at 160x120 on the M7. Previous this was at about 5 FPS and 7.5 FPS
respectively.
2017-01-15 21:32:55 -05:00
Kwabena W. Agyeman
ed3f226478
Tested stats with examples and fixed bugs
...
The automatic grayscale and rgb565 color tracking scripts are very cool.
2017-01-15 14:59:42 -05:00
iabdalkader
e4c297d0e3
ORB: Use the normalized arg.
...
* Extract keypoints from the first scale only if normalized == True.
2017-01-15 17:40:29 +02:00
iabdalkader
bba8e5a9e0
Remove match_descriptor type arg.
...
* Not really needed can check MP object types.
2017-01-14 01:15:24 +02:00
iabdalkader
c9806c0588
Allow the IDE to interrupt main.py
2017-01-13 03:14:07 +02:00
Kwabena W. Agyeman
0e89b655bf
Made set_windowing simpilier.
...
Tested with updated qr code example script.
2017-01-12 17:41:40 -05:00
iabdalkader
c28d090ee2
ORB: User floorf to get keypoint xy from scale.
2017-01-12 17:32:05 +02:00
iabdalkader
11f5d67669
Cleanup JPEG buffer checks.
2017-01-12 17:31:33 +02:00
iabdalkader
9a7c3defc3
Update JPEG buffer sizes in OMV2 and OMV3
2017-01-12 17:31:11 +02:00
iabdalkader
607db241a5
Move main memory to DTCM on M7.
...
* Allows bigger fb_alloc buffer
2017-01-12 17:30:24 +02:00
iabdalkader
66a7330d1e
Add comment about write buffer.
2017-01-12 17:29:59 +02:00
Kwabena W. Agyeman
1025d23fe8
Add fb_alloc stack unwinding code.
...
Needs to be linked into MP too.
2017-01-11 23:05:59 -05:00
iabdalkader
cdef215a6e
Make match_keypoints more robust.
...
* Check keypoints sizes.
* Handle zero matches case.
2017-01-12 04:54:40 +02:00
iabdalkader
cfdb4bdc90
Cast sin/cos to ints in draw_keypoints.
2017-01-12 04:52:50 +02:00
iabdalkader
5467993b38
Free FB memory if compress or compressed fail.
2017-01-12 04:51:21 +02:00
iabdalkader
2d201357a6
Add xalloc_try_alloc.
...
* Doesn't raise exception if there's no memory
2017-01-12 04:47:29 +02:00
Ibrahim Abd Elkader
e82e3ab785
Merge pull request #170 from kwagyeman/fix_compress
...
Fix compress and compressed.
2017-01-12 04:47:36 +02:00
Kwabena W. Agyeman
9efd7474ae
Fix compress and compressed.
2017-01-11 21:21:04 -05:00
iabdalkader
819e95dc07
ORB: check if matches == 0
2017-01-12 03:46:57 +02:00
iabdalkader
a533ed3549
ORB: Fix ROI again.
...
* Must leave at least patch_size border.
2017-01-12 02:01:55 +02:00
Kwabena W. Agyeman
9f37c83def
Minor Speed Improvements to Blob, QRCode, and Stats
2017-01-11 17:09:46 -05:00
Kwabena W. Agyeman
cf4cb787f5
Removed new_image_t, replaced with current image_t.
2017-01-10 18:26:49 -05:00
iabdalkader
5f7b40489b
ORB: small fixes.
...
* Do Gaussian smooth on every level, can't get away with just one level.
* Fix ROI, was bigger than needed, and check roi.w/h instead of scaled image.
2017-01-10 14:49:43 +02:00
iabdalkader
e901221c52
ORB: Use popcount for distance.
2017-01-10 06:39:13 +02:00
iabdalkader
58ef87cd85
ORB: Change default threshold to 85 and min match to 5.
2017-01-10 04:11:41 +02:00
iabdalkader
cfc677ed40
Improve bootloader timing
...
* Detect when VBUS is connected and wait for enumeration, the IDE
timeout is only started after enumeration.
* A 2s timeout for enumeration is used so the cam doesn't get stuck
if it's connected to a charger or a power bank.
2017-01-10 00:58:15 +02:00
iabdalkader
d42b2987a7
Fix lookup types for find_keypoints.
2017-01-09 01:30:08 +02:00
iabdalkader
02334ebea3
Init theta.
2017-01-09 01:11:27 +02:00
iabdalkader
1ab282a7eb
ORB: estimate and return the angle of rotation.
2017-01-09 00:59:33 +02:00
iabdalkader
ff6b3d8367
Change default matching threshold to 70.
2017-01-09 00:40:37 +02:00
iabdalkader
c233131ca4
Change default max_keypoints to 100.
2017-01-09 00:29:22 +02:00
iabdalkader
f1f38f3c74
FAST/AGAST: Allocate MAX_CORNERS or the actual max corners.
2017-01-08 19:05:25 +02:00
iabdalkader
b956935550
ORB: Use one array for all octaves.
...
* Since I'm sorting the whole array and not every octave now.
2017-01-08 18:55:14 +02:00
iabdalkader
6b7eb1a105
Add keypoints detector arg.
2017-01-08 18:40:28 +02:00
iabdalkader
05ea5115b5
Add constants for corner detectors.
2017-01-08 18:33:10 +02:00
iabdalkader
96e4f770c0
Use scale_factor instead of scale in find_features
...
* Updated all scripts.
2017-01-08 18:23:25 +02:00
iabdalkader
861627d61b
Set default keypoint size to 10% of the image size
2017-01-08 17:53:59 +02:00
iabdalkader
dccadd7bf5
ORB, FAST, AGAST: Move keypoints sorting to higher level.
2017-01-08 17:39:55 +02:00
iabdalkader
68346372b1
ORB: Add comments.
2017-01-08 17:36:43 +02:00
iabdalkader
7fa9894bdc
ORB: Add max_keypoints and scale_factor args
2017-01-08 17:35:47 +02:00
iabdalkader
9ac0d0b0dd
Merge branch 'master' of https://github.com/openmv/openmv
2017-01-08 17:07:07 +02:00
iabdalkader
ee96ba1353
ORB: pre-compute umax.
2017-01-08 16:58:52 +02:00
iabdalkader
ff50b8ffb2
ORB: Don't scale the first octave
2017-01-08 16:57:41 +02:00
iabdalkader
46fd1936da
ORB: Gaussian smooth the image once before keypoints extraction.
2017-01-08 16:54:52 +02:00
iabdalkader
24292d4f55
ORB: Quantize angle and fix rotation
2017-01-08 16:52:17 +02:00
Kwabena W. Agyeman
0111084125
Updated stats code
...
We now have a method to get an the normalized histogram of an image
patch. The histogram is returned as an object with methods too. You can
then get the stats off of the histogram or just get the CDF of it. The
CDF is particularly useful for automatically chaning the the color
tracking bounds.
2017-01-07 20:11:30 -05:00
iabdalkader
6873f17ea0
Write/read keypoint angle when saving/loading descriptors
2017-01-07 18:49:09 +02:00
iabdalkader
d653bdb136
Fix and update ORB.
...
* Set keypoint angle.
* More downscale levels
* Additional keypoints filter using distance ratio with second best match.
2017-01-07 18:43:38 +02:00
iabdalkader
f47b96360a
Fix keypoints size.
2017-01-07 18:42:52 +02:00
iabdalkader
e06a6520a6
Remove dist from keypoints
2017-01-07 18:42:28 +02:00
iabdalkader
17cf2ca139
Skip matched keypoints.
2017-01-07 15:25:44 +02:00
iabdalkader
c758e14bcb
Add angle, dist to keypoints
2017-01-07 02:44:19 +02:00
iabdalkader
9e76d775d6
Fix ORB angle calculations.
2017-01-07 02:42:32 +02:00
iabdalkader
6000684cb3
Fix keypoint drawing code.
2017-01-07 02:35:18 +02:00
iabdalkader
ea047bde94
Clean up AGAST.
2017-01-07 02:34:05 +02:00
iabdalkader
e2b5338dc8
Fix fast_alloc point
2017-01-06 19:41:22 +02:00
iabdalkader
a1c3061c1b
Optimize keypoints_filter.
2017-01-05 17:01:42 +02:00
iabdalkader
00c30204ee
Add rectangle_expand for bounding boxes.
2017-01-05 16:02:47 +02:00
iabdalkader
945a83c789
Add keypoints filtering function.
...
* This function filters keypoints far from the centroid, it's very useful for finding an accurate bounding box for an object.
If a bounding box for the object is not needed, the centroid can be used instead since it's not affected too much by outliers.
* The filter finds the centroid of all the previously cross-matched keypoints then finds the mean, variance and standard deviation,
it then filters keypoints with a distance higher than standard deviation from the centroid.
2017-01-05 05:35:57 +02:00
iabdalkader
f7a8167ce4
* Multiply by octave when clustering ORB points.
2017-01-05 03:35:43 +02:00
iabdalkader
e0b8d0d66d
Fix ORB keypoints hamming distance.
...
* Used the wrong hamming for 4 points.
2017-01-05 01:53:04 +02:00
iabdalkader
e2d0c48401
Replace FREAK with ORB.
...
* New keypoints descriptor, much better implementation than FREAK.
2017-01-04 05:44:06 +02:00
iabdalkader
d7a223b136
Revert to FAST9
2017-01-03 20:43:27 +02:00
iabdalkader
cf1407cb48
Add AGAST corner detector.
2017-01-03 20:36:08 +02:00
Kwabena W. Agyeman
8dfba8b208
Fixed copy_to_fb for loading images.
2017-01-03 12:25:23 -05:00
iabdalkader
517ab14f40
Clean FB_PIXELS macro.
...
* No need to check BPP anymore.
2017-01-02 18:37:01 +02:00
iabdalkader
0bb431118b
FAST improvements.
...
* Use all available FB memory to allocate corners.
* Limit the number of max keypoints to 150.
2017-01-02 03:15:16 +02:00
iabdalkader
942ddc5602
Make the lens correction function use less ram.
...
* Make lens_corr function work with 1/2 the ram needed.
2017-01-01 19:35:21 +02:00
iabdalkader
1b22a29612
Add set_gain/exposure/whitebalance functions.
...
* Add functions to disable auto functions control and set manual values.
2016-12-29 03:39:06 +02:00
Kwabena W. Agyeman
fbc58cf137
Updated QR Code Library with upstream changes and fixed up scripts for
...
demo.
2016-12-28 10:57:31 -05:00
Kwabena W. Agyeman
af15ec6eb3
New Blob Code
...
The new API is backwards compatible with the previous one except for
advanced features. The new blob code uses a flood fill algorithm that is
3x faster in filling out blobs that the previous code. On the M7 the
performance cap of 30 FPS is usually reached.
Additionally, blobs are objects with named attributes now so you don't
have to index access them anymore. However, index access is still
supported.
2016-12-27 19:10:24 -05:00
Kwabena W. Agyeman
6a8ce01e79
Add QRCode detection.
...
Use the qrcodes script and point your OpenMV Cam at google search
results for QR Codes.
2016-12-27 15:30:35 -05:00
Kwabena W. Agyeman
b668ac7e17
Add collections.
2016-12-27 14:04:30 -05:00
Kwabena W. Agyeman
ba04ff80bd
Better Image Lib Primatives
2016-12-27 12:42:47 -05:00
iabdalkader
6480ecfc1a
Update docs
2016-12-26 23:04:03 +02:00
iabdalkader
fd384bf1b0
Export OV7725's lens shading correction function.
2016-12-25 02:45:05 +02:00
iabdalkader
ac026d0b91
Fix F7 ADC support
2016-12-22 01:25:22 +02:00
iabdalkader
3ff0039bb8
Clean/Invalidate the M7 cache in the DMA driver.
2016-12-20 23:58:51 +02:00
iabdalkader
be95596e3a
Fix OV7725 register name.
2016-12-20 22:25:30 +02:00
iabdalkader
1645ab94b2
Allow image loading directly to FB.
...
* Allows bigger images to be loaded to FB.
2016-12-14 18:44:23 +02:00
iabdalkader
cafddfed17
Redefine CFLAGS MCU_SERIES in the top Makefile.
...
* Make sure the MCU_SERIES is defined if MP config files are included outside MP build.
2016-12-14 13:55:53 +02:00
iabdalkader
0f9456fd37
Use WFI while waiting for snapshots.
2016-12-13 21:57:10 +02:00
iabdalkader
274f9bc445
Disable DCMI LINE in DCMI_Init.
...
* This disables the line interrupt before the first frame.
2016-12-13 21:43:22 +02:00
iabdalkader
edb1eca109
Revert to an older F7 DMA driver.
...
* The new DMA drivers (>v1.0.1) don't work yet.
2016-12-12 22:51:49 +02:00
iabdalkader
75e48c411d
Reverted num of EXTI to 24 for M7
2016-12-11 02:46:09 +02:00
iabdalkader
177f24767b
Enable additional GPIO ports for STM32F769xx only
2016-12-10 22:32:52 +02:00
iabdalkader
3e41450d97
Add support for OpenMV3
2016-11-27 19:32:09 +02:00
iabdalkader
b4aeb32e1b
Add build option to enable stack protection.
2016-11-15 19:07:50 +02:00
iabdalkader
daf2527c0f
Remove IDE/FS interrupt enable in pyexec.
2016-11-15 19:05:18 +02:00
iabdalkader
890d27d1dd
Cleanup USBDBG code.
2016-11-15 18:53:34 +02:00
iabdalkader
a3a1f0cfb9
Disable line interrupt.
...
* saves the overhead and fixes the additional line generated at the end of the frame.
2016-11-14 23:42:51 +02:00
iabdalkader
b421022ef9
Bump firmware version.
2016-11-04 00:17:18 +02:00
iabdalkader
ae10b0a40e
Switch to FAST-12
2016-11-03 23:57:16 +02:00
iabdalkader
615364101f
Fix template ROI when T and F have the same size.
2016-10-17 21:56:09 +02:00
iabdalkader
199a0d0f63
Make functions return arg image to string operations.
2016-10-17 21:33:47 +02:00
iabdalkader
dfde3f4c71
Use socket->timeout for functions that can block.
2016-10-11 00:09:58 +02:00
iabdalkader
fdf0b96270
Add clear image function.
...
* Sets image pixels to 0's.
2016-10-10 17:22:26 +02:00
iabdalkader
ef6e6303c7
Add HoG.
2016-10-10 17:22:04 +02:00
iabdalkader
60dc3f7e91
Remove ToF module.
2016-10-10 16:53:02 +02:00
iabdalkader
b6c4f9b873
Fix ToF module SPI code.
...
* Note the module will be removed in the following commit,
I'm committing fixes anyway, if the module is needed later it can be restored.
2016-10-10 16:41:45 +02:00
iabdalkader
2faa9d9bcf
Fix socket_recv bug.
...
* recv returned the call status not the sent bytes.
2016-10-09 23:13:15 +02:00
iabdalkader
fedd1f2fe4
Add missing lens_corr prototype
2016-09-24 01:57:57 +02:00