Commit Graph

1031 Commits

Author SHA1 Message Date
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
iabdalkader
14b6330b67 Add simple lens correction function. 2016-09-23 18:46:11 +02:00
iabdalkader
af24644f87 Remove match pointer from keypoint struct. 2016-09-23 18:44:23 +02:00
iabdalkader
6beb89c6e6 Fix image.gaussian return object. 2016-09-23 18:25:19 +02:00
iabdalkader
926be29c43 Bump firmware version. 2016-09-20 01:17:53 +02:00
iabdalkader
f55c9b48eb Add gaussian function. 2016-09-20 01:03:22 +02:00
iabdalkader
7b3d2d931e Move image kernels to imlib.c 2016-09-20 01:02:51 +02:00
iabdalkader
91bc9af3ec Allow FREAK keypoints to be clustered using kmeans. 2016-09-20 00:08:59 +02:00
iabdalkader
0950d6e52a Update Kmeans.
* Small fixes with arrays handling.
* Add generic distance function.
2016-09-16 03:31:34 +02:00
iabdalkader
6591558af4 Init RNG when calling randint. 2016-09-16 03:30:08 +02:00
iabdalkader
e81f228796 Add simple edge function. 2016-09-14 20:54:53 +02:00
iabdalkader
51f1605aee More fixes to Canny edge.
* Clear output border
2016-09-13 17:53:53 +02:00
iabdalkader
0be9e958a1 Small fix to Canny.
* Threshold gradients before nonmaximal suppression.
2016-09-13 13:15:01 +02:00
iabdalkader
e104be63df Implement Canny edge detector. 2016-09-13 02:37:43 +02:00
iabdalkader
49124b4e8c Add py_helper_lookup_int_array. 2016-09-13 01:59:32 +02:00
iabdalkader
83451de050 Add Hough Transform. 2016-09-12 22:16:58 +02:00
iabdalkader
217b3a8dd4 Rename FFT sin/cos table to avoid conflict with generic tables. 2016-09-11 17:05:35 +02:00
iabdalkader
f5e1028786 Add sin/cos tables. 2016-09-11 17:01:53 +02:00
iabdalkader
f908da8d5a Make FFT sin/cos tables static. 2016-09-11 16:59:42 +02:00
iabdalkader
627d81f569 Add imlib mask_ellipse. 2016-09-08 03:12:14 +02:00
iabdalkader
9153325c06 Fix LBP for face recognition.
* Rollback to 7x7 windows.
* Use chi square for distance with weights optimized for facerec.
2016-09-08 01:29:17 +02:00
iabdalkader
8cdf53d3fb Return arg image in histeq. 2016-09-04 21:33:41 +02:00
iabdalkader
21920eaa06 Bump firmware version. 2016-08-31 02:45:06 +02:00
iabdalkader
0653f49bde Set max FPS reduction to 1/2 FPS (30FPS).
* A compromise between FPS reduction and noise level (in night mode).
2016-08-31 01:41:34 +02:00
iabdalkader
bdafca5a78 Set default gain ceiling to 8x 2016-08-31 01:37:43 +02:00
iabdalkader
2fa4a67a96 Cleanup debug log. 2016-08-30 22:46:08 +02:00
iabdalkader
bb93be6da0 Use debug_printf in winc module. 2016-08-30 22:43:35 +02:00
iabdalkader
2877225003 Remove mdefs.h 2016-08-30 22:43:06 +02:00
iabdalkader
faf79007c9 Add DEBUG_PRINTF flag 2016-08-30 22:37:22 +02:00
iabdalkader
b665c65ed6 Rename mdefs.h to common.h 2016-08-30 22:37:04 +02:00
iabdalkader
f200f2e0b8 Set WINC SPI baudrate. 2016-08-30 01:09:49 +02:00
iabdalkader
f4907e6603 Up WINC SPI speed 2016-08-30 01:02:26 +02:00
iabdalkader
ed9133e447 Cleanup sockets error handling. 2016-08-30 00:55:51 +02:00
iabdalkader
60714b339c Clean up async request code. 2016-08-29 21:49:16 +02:00
iabdalkader
8541c3c2ca Fix WINC accept info. 2016-08-28 18:22:05 +02:00