iabdalkader
f264c62de2
Fix JPEG MCU boundaries.
2019-01-06 17:49:20 +02:00
Kwabena W. Agyeman
ac4afe0d24
Fixed binary to work correctly
...
* It now actually parses a list of thresholds and not just the first.
* to_bitmap/copy work as they should in-place now.
2019-01-04 02:29:16 -05:00
Kwabena W. Agyeman
32f6fe2e45
Fix binary to RGB565
2019-01-04 02:14:26 -05:00
Kwabena W. Agyeman
0554c189a9
Add back the ability for draw keypoints to handle keypoint tuples.
...
Can call it without a keypoint object now again.
2019-01-04 00:32:27 -05:00
Kwabena W. Agyeman
e7f7a732eb
Add alpha blening support to draw image.
2019-01-02 12:33:15 -05:00
Kwabena W. Agyeman
4ba25713b7
Error check scaling on draw_string.
2019-01-02 12:16:20 -05:00
Kwabena W. Agyeman
262769989f
Allow non-integer scaling on draw_string.
2019-01-02 12:13:52 -05:00
Kwabena W. Agyeman
3e05d24ce9
Don't require self if operating on self.
2019-01-02 12:13:01 -05:00
Kwabena W. Agyeman
6b11353312
Add mod support to div.
2019-01-02 11:52:56 -05:00
Kwabena W. Agyeman
dbe7bf0591
Add transpose support to replace and aliases
...
Now you can rotate and image by 0, 90, 180, 270 degrees along with
vertical flip and horizontal mirror. This method works in place or out
of place.
2019-01-02 01:35:34 -05:00
Kwabena W. Agyeman
563642a174
Change to yLine for speed.
2019-01-01 03:33:27 -05:00
Kwabena W. Agyeman
35e19f0233
Remove unused marks.
2019-01-01 02:43:55 -05:00
Kwabena W. Agyeman
8bcf5ac0c3
Add gamma correction
...
A user requested this a while ago. This feature also ads contrast and
brightness correction. The code is fast!
2019-01-01 02:28:40 -05:00
Kwabena W. Agyeman
b47dbe2c15
Kwabena/drawing updates ( #422 )
...
* Add ellipse drawing function.
2018-12-31 18:32:13 +02:00
iabdalkader
a3e502a3a6
Update FLIR module documentation
2018-12-23 22:57:30 +02:00
iabdalkader
329c9fa968
Fix F4 build.
2018-12-23 18:21:09 +02:00
iabdalkader
264308ca99
Clear UART ORE flag.
2018-12-17 14:33:12 +02:00
iabdalkader
d248f99551
Call nlr_raise in py_assert.
...
* nlr_jump shouldn't be called directly because it doesn't free fb memory.
* Fix #417
2018-12-13 02:14:59 +02:00
iabdalkader
175a23b6ee
Fix RTC IRQ handler.
2018-11-22 22:37:19 +02:00
iabdalkader
7ae6cd11c8
Bump firmware version.
2018-11-04 23:25:28 +02:00
iabdalkader
e67ca9ab23
UVC: send GS descriptor for MT sensor.
2018-11-03 01:33:37 +02:00
iabdalkader
001a41e6da
Parse config on soft resets.
...
* Otherwise config is read once and then reset.
2018-11-01 01:47:40 +02:00
iabdalkader
5d4982cc74
Enable exFAT for OpenMV 3 and 4.
2018-10-31 02:43:13 +02:00
iabdalkader
a327fec8cf
Create hidden file for the IDE to detect OMV disk.
2018-10-31 02:19:48 +02:00
Ibrahim Abd Elkader
f0bdcd5d40
Merge pull request #404 from openmv/remove_streaming_workaround
...
Remove streaming callback workaround.
2018-10-29 23:37:45 +02:00
iabdalkader
25878492bc
Remove streaming callback workaround.
...
* All sensors support streaming callback now.
2018-10-29 23:26:32 +02:00
iabdalkader
68f0b3749c
Revert MT to default snapshot function.
2018-10-29 23:21:14 +02:00
iabdalkader
d140a8ef1b
FLIR: Faster UVC streaming.
2018-10-29 20:55:09 +02:00
iabdalkader
545bfd0435
Add WINC patch set.
...
* Will keep patches in that dir to apply when updating the drivers.
2018-10-25 01:31:29 +02:00
iabdalkader
d1c6e0e0bb
Fix WINC init timeout.
2018-10-25 01:18:36 +02:00
Kwabena W. Agyeman
0df6500e92
Lepton driver working great for flir 1/3 with scaling now.
2018-10-22 01:30:06 -04:00
Ibrahim Abd Elkader
7f73d394a6
Merge pull request #396 from openmv/update_cmsis_nn
...
Update to CMSIS NN 5.4.0
2018-10-21 03:50:26 +02:00
iabdalkader
e5746fb252
Update to CMSIS NN 5.4.0
2018-10-21 03:15:53 +02:00
bj-wanghz
4017db219a
Update lbp.c
...
fix lbp_weights index calculation in imlib_lbp_desc_distance.
2018-10-20 20:52:43 +08:00
iabdalkader
eb57e9eecc
Fix H7 DMA region size.
...
* Note still need to make the MSC buffer size configurable in MP.
2018-10-17 19:28:16 +02:00
iabdalkader
4449cbe369
Fix NN col buffer size.
2018-10-10 20:58:04 +02:00
iabdalkader
0f7a4049af
Use the MPU to make H7 DMA region uncacheable.
2018-10-10 18:07:51 +02:00
iabdalkader
97e52d037c
Add printf stubs to UVC.
2018-10-10 02:12:41 +02:00
iabdalkader
5d296cfa0c
Move lepton init to MSP
2018-10-09 23:42:43 +02:00
iabdalkader
4c554e2147
Use DMA for LEPTON 1 and 3.
2018-10-09 23:07:38 +02:00
iabdalkader
6df8ab7187
Add VOSPI memory region.
2018-10-09 20:26:59 +02:00
iabdalkader
45293c1dce
Disable MP DMA1_Stream0 for Lepton SPI3.
2018-10-09 20:25:11 +02:00
iabdalkader
f2e36e0c25
Fix H7 SPI clock source.
2018-10-06 01:29:32 +02:00
iabdalkader
1479cefc6f
NN: fix col buffer size.
...
* This is a workaround until a proper fix is found.
2018-10-03 19:07:09 +02:00
iabdalkader
c16894aeb7
Bump firmware version.
2018-10-02 00:53:18 +02:00
iabdalkader
e0be6b6569
Rename webcam to uvc.
2018-10-01 19:16:55 +02:00
iabdalkader
0f1fce6b31
Add streaming support to snapshot function.
2018-10-01 03:08:26 +02:00
iabdalkader
3fa52f966f
Fix UVC streaming on H7.
2018-09-30 02:42:47 +02:00
Ibrahim Abd Elkader
36111eb2c0
Faster UVC streaming using double buffers. ( #383 )
2018-09-29 20:02:05 +02:00
Kwabena W. Agyeman
e97e0a2021
Add MLX support.
2018-09-24 22:58:47 +02:00
iabdalkader
8e5c8aac21
Add function to check if IDE is connected (debug mode).
2018-09-20 18:00:22 +02:00
iabdalkader
d4c596ae25
Fix MT driver typos.
2018-09-17 01:57:16 +02:00
iabdalkader
d1bd214376
Set fixed FS label.
2018-09-17 01:29:52 +02:00
Ibrahim Abd Elkader
c25271bd3f
Merge pull request #375 from openmv/fix_h7_latency
...
Fix H7 flash latency.
2018-09-17 01:22:08 +02:00
Ibrahim Abd Elkader
dac73fcd09
Add webcam/UVC firmware. ( #374 )
2018-09-17 01:21:49 +02:00
iabdalkader
7709ee8acc
Fix H7 flash latency.
...
* VOS1 ~1.2v the flash latency should be 2 cycles.
2018-09-16 00:50:54 +02:00
iabdalkader
681cef11eb
Add pysensor shutdown function.
2018-09-05 17:15:53 +02:00
iabdalkader
4eb2f1ac35
Add shutdown function.
2018-09-05 16:44:58 +02:00
Michael Mueller
edc193da8f
SPI timeout in slave mode, due to internal chip error
...
See stm32f7 erratasheet, chapter 2.11.2
2018-08-16 11:47:54 +02:00
iabdalkader
87c64f3c32
WiFi debug: Fix bcast time, close all sockets on error.
2018-08-14 21:26:32 +02:00
iabdalkader
5b7cd80123
Fix WiFi timer.
2018-08-14 21:01:53 +02:00
iabdalkader
25c3f06fb9
Make WiFi timer accept frequency arg.
2018-08-14 20:47:20 +02:00
iabdalkader
a50f059243
Fix OMV4 build.
2018-08-14 15:39:24 +02:00
iabdalkader
673fca8432
Add a recv buffer per socket.
...
* WINC partial recv bug workaround.
2018-08-14 15:19:20 +02:00
iabdalkader
fd46a946e2
Add a recv buffer per socket.
...
* WINC partial recv bug workaround.
2018-08-14 15:13:09 +02:00
iabdalkader
7afd566ccd
Add recv buffer per socket.
...
* WINC partial recv bug workaround.
2018-08-14 15:11:47 +02:00
iabdalkader
4767229a7c
Close file after writing raw image.
...
* Fixes #365
2018-08-10 22:13:30 +02:00
Kwabena W. Agyeman
60f6d1ddc7
Add UDP Broadcast for OpenMV Cam discovery.
...
* Now OpenMV Cam's can be discovered in the wild by OpenMV IDE without
hardcoding the OpenMV Cam WiFi IP address and port.
* The firmware reads settings from OpenMV IDE for STA and AP mode.
* Boradcast in both modes works and OpenMV IDE can find the cam.
* AP mode works (albeit the driver needs help).
* Station mode sometimes connects every now and then. There's a bug in
the WiFi module that prevents this from working right. The same code
executes on the cam and in the IDE for both modes but station mode has
issues...
2018-08-10 16:18:05 +02:00
Kwabena W. Agyeman
abe97a73ba
Disable Mean on OMV2
2018-08-10 16:09:53 +02:00
Ibrahim Abd Elkader
4c25cffa7f
Add WiFi programming. ( #362 )
2018-07-30 20:10:55 +02:00
iabdalkader
4e34b32ec6
Fix OMV2 build.
...
* Disable morph().
2018-07-30 19:42:47 +02:00
iabdalkader
747ca41f09
Update winc header.
...
* Fix MAKE_ADDR macro.
* Add winc_security_t.
2018-07-16 22:09:54 +02:00
iabdalkader
75e12ae8ff
Minor fix to ini_atoi.
2018-07-16 22:06:53 +02:00
iabdalkader
e8eabd6be2
Fix ini_atoi.
2018-07-16 22:02:39 +02:00
iabdalkader
f301c9f4c9
Move ini functions to ini.h/c
2018-07-16 22:01:18 +02:00
iabdalkader
bdacce048d
Fix/Re-enable CAN.
2018-07-14 20:09:13 +02:00
iabdalkader
a69bfc3709
Add imlib flag to enable/disable math ops.
2018-07-14 19:53:54 +02:00
iabdalkader
fa6e24373f
Enable more MP modules.
2018-07-10 20:29:25 +02:00
iabdalkader
7e9c83d409
Update MP docs.
2018-07-08 23:50:35 +02:00
Kwabena W. Agyeman
493069e893
FIxed FLIR driver
2018-07-06 02:55:05 -04:00
iabdalkader
f4e7e1cb8d
Enable uctypes.
...
* Fix issue #338 and issue #360
2018-07-03 11:14:44 +02:00
iabdalkader
06431cdc3f
Add imlib macro.
2018-06-30 18:32:06 +02:00
iabdalkader
f598de860a
Add selective search.
2018-06-30 18:30:14 +02:00
iabdalkader
574eeedc3e
Bump firmware version.
2018-06-29 22:37:46 +02:00
iabdalkader
14617a0713
ORB: support RGB images.
2018-06-28 18:22:00 +02:00
iabdalkader
d5ab4e4919
Add macro to convert (if needed) RGB pixel to GS.
2018-06-28 18:17:28 +02:00
iabdalkader
4f209ea9b1
Add comments and fix style.
2018-06-27 02:16:03 +02:00
iabdalkader
833bc04f78
OMV2: Re-enable gaussian.
2018-06-24 23:40:36 +02:00
Ibrahim Abd Elkader
560c190908
Merge pull request #358 from kwagyeman/bitmap_streaming
...
Fix bitmap streaming bpp value check.
2018-06-22 17:19:26 +02:00
Kwabena W. Agyeman
e925b1a3f8
Fix bitmap streaming bpp value check.
2018-06-22 02:41:26 -04:00
Kwabena W. Agyeman
f49576a679
Make both networks output the same value types.
...
Both CIFAR and LENET work still.
The smile network... I couldn;t really get to work before or afterwards.
I noticed the Haar one has trouble finding my face. Maybe fix via using
the contrast settings of the previous Haar scripts?
2018-06-22 02:28:49 -04:00
iabdalkader
9cc33a16a7
NN: Remove printf's while loading network.
2018-06-21 21:58:41 +02:00
iabdalkader
978115a2a2
Fix TO_GS_PIXEL macro.
2018-06-21 21:22:36 +02:00
iabdalkader
46bf00119d
Fix Canny edge ROI.
2018-06-21 20:23:31 +02:00
Kwabena W. Agyeman
6a56b0eaad
Fix bad realloc error.
2018-06-20 18:48:34 +02:00
Kwabena W. Agyeman
157a469ec3
Fix finding small apriltags.
2018-06-20 18:48:25 +02:00
Kwabena W. Agyeman
13496ee2fc
Fix broken atan2 return.
...
This has been an issue for a while and I was just working around it in
code. It is fixed now.
2018-06-20 18:44:04 +02:00
Kwabena W. Agyeman
0c35755fc2
No need to drop array contents anymore.
2018-06-20 18:43:46 +02:00
Kwabena W. Agyeman
aa4d15e4f8
Improve error messages when out of memory.
2018-06-20 18:43:25 +02:00
Kwabena W. Agyeman
2040647fbb
Use fast arm sin/cos.
2018-06-20 18:43:09 +02:00
Kwabena W. Agyeman
bd77afbc0a
Improved H7 AprilTags res.
2018-06-20 18:42:50 +02:00
Kwabena W. Agyeman
d7c13bce9d
Update umm_malloc to the latest.
2018-06-20 18:41:15 +02:00
Kwabena W. Agyeman
1db09070cc
Improve OOM error messages.
2018-06-20 18:39:14 +02:00
Kwabena W. Agyeman
343735a2a5
Remove redundant code.
2018-06-20 18:32:36 +02:00
iabdalkader
a0fe5b9559
Fix USB HID interface number and endpoints numbers.
2018-06-20 01:50:54 +02:00
iabdalkader
e04331d142
Enable boot.py to set USB mode to HID if required.
2018-06-20 00:23:04 +02:00
iabdalkader
925f662786
Cleanup config parsing.
2018-06-19 23:54:20 +02:00
iabdalkader
f135c12cd9
Enable mutable images for Haar cascades.
2018-06-19 22:51:45 +02:00
iabdalkader
3591161984
Add support for running Haar on RGB images.
2018-06-19 22:41:00 +02:00
iabdalkader
b570bd6e12
MP: Apply upstream SPI patch.
2018-06-19 20:50:28 +02:00
iabdalkader
2d4ffac9f8
MP: Fix pendsv bug.
...
* Thanks to Rocky from NXP for finding and fixing the bug.
2018-06-13 18:30:59 +02:00
iabdalkader
571c356464
MP: Revert pyexec to parse/compile/exec.
2018-06-13 18:29:51 +02:00
iabdalkader
aa25be6397
MP: Update I2C docs.
2018-06-12 02:05:24 +02:00
Ibrahim Abd Elkader
59eabdf13d
Merge pull request #355 from kwagyeman/nn_upgrade
...
NN: Clean up and support sliding window.
2018-06-11 05:27:11 +02:00
iabdalkader
9b08e91557
MP: Update to MP 1.9.4
2018-06-11 05:18:54 +02:00
Kwabena W. Agyeman
70920585df
Sub sample for contrast check to go faster.
2018-06-10 23:10:19 -04:00
Kwabena W. Agyeman
ccbe073861
Add NN search method to be able to deal with multiple scales and
...
positions.
2018-06-10 22:08:11 -04:00
Kwabena W. Agyeman
0f262acdc1
Add ROI to forward and add stack guards.
2018-06-10 22:08:11 -04:00
Kwabena W. Agyeman
3abd8bedb1
Add new CMSIS NN file.
2018-06-10 22:08:11 -04:00
Kwabena W. Agyeman
688fb54d91
Add ROI Support to forward.
2018-06-10 22:08:11 -04:00
Kwabena W. Agyeman
e4f238e794
Updated ARM CMSIS NN Lib
2018-06-10 22:08:11 -04:00
Kwabena W. Agyeman
107019a357
More cleanup
...
* Moved variable inits around.
* Added spacing.
2018-06-10 22:08:10 -04:00
Kwabena W. Agyeman
19473ef28c
Module Cleanup
...
* Updated the header.
* Removed redundant includes.
* Switched to ROM pointers.
* Fixed some spacing issue.
2018-06-10 22:08:10 -04:00
iabdalkader
deadb0980d
NN: Define ARM_MATH_DSP and ARM_NN_TRUNCATE.
2018-06-09 21:23:51 +02:00
iabdalkader
8eed8b4580
CMSIS: Add missing __STATIC_FORCEINLINE for GCC.
2018-06-09 21:23:02 +02:00
Kwabena W. Agyeman
bf2f45bff7
Fixed bitmap support for image operations
2018-06-06 01:01:38 -04:00
iabdalkader
d3ef8e748e
Re-enable OMV2 build
2018-06-04 18:18:53 +02:00
iabdalkader
14750d2915
Disable NN for OMV2.
2018-06-04 18:18:11 +02:00
iabdalkader
940c56ec8c
Rename py_image_unavailable_obj.
2018-06-04 18:17:21 +02:00
iabdalkader
c9e4be4df3
Move py_image_unavailable_obj to py_helper.
2018-06-04 18:14:28 +02:00
Kwabena W. Agyeman
3233592c07
Support jpeg compressing bitmap images.
2018-06-04 17:32:05 +02:00
Kwabena W. Agyeman
8a44f0cd91
Support converting binary images to bitmaps in place.
...
This is useful for building image masks.
2018-06-04 17:26:35 +02:00
iabdalkader
158813452e
Lepton: move SPI PRESCALER to omg_boardconfig.h.
2018-06-04 16:36:16 +02:00
iabdalkader
3e0b605bea
Disable MT9V034 and LEPTON for OMV1/2/3.
2018-05-30 20:10:45 +02:00
iabdalkader
573b362626
Use FSIN to trigger MT snapshot.
2018-05-30 19:26:33 +02:00
iabdalkader
6d936e2567
Fix OMV4 FSIN pin.
2018-05-30 19:25:09 +02:00
iabdalkader
d7bc409cf3
Remove unused sensor pins from omv_boardconfig files.
2018-05-30 19:22:46 +02:00
Kwabena W. Agyeman
40cce70c90
Implement Lepton snapshot function.
2018-05-30 19:12:26 +02:00
Kwabena W. Agyeman
804d97f5b0
Update FLIR Lepton driver.
...
* Fix window code.
* Support smaller resolutions.
2018-05-30 19:11:07 +02:00
Kwabena W. Agyeman
7d16d008f9
Update error handling code for sensor.reset() and sensor.sleep().
2018-05-30 19:07:12 +02:00
Kwabena W. Agyeman
6daabb3a52
Fix hardcoded freqs.
2018-05-30 19:06:49 +02:00
Kwabena W. Agyeman
eb8b0777f4
Fix dynamically changing the XCLK frequency.
2018-05-30 19:04:52 +02:00
Kwabena W. Agyeman
e69afb34b1
Disable color bar test for non-ov7725 sensors.
2018-05-30 19:02:40 +02:00
iabdalkader
e1ee5cc22b
NN: Add softmax arg.
2018-05-29 18:05:22 +02:00
iabdalkader
5fba4c3ad9
NN: Move output buffer to network struct.
2018-05-29 17:57:56 +02:00
iabdalkader
1c0c8d744b
NN: Fix output size.
2018-05-29 17:44:39 +02:00
iabdalkader
8ce21ddb72
NN: Add output size to network struct.
2018-05-29 17:33:20 +02:00
Kwabena W. Agyeman
ba47e84ec1
Add higher resolutions.
2018-05-29 16:46:26 +02:00
iabdalkader
83dd9bafd4
NN: apply q7 fix from upstream.
2018-05-29 04:41:26 +02:00
iabdalkader
d151f7e38d
NN: Remove hard-coded NNs.
2018-05-25 22:50:28 +02:00
iabdalkader
ce49f7e56f
NN: Add input scaling.
...
* From CMSISNN CIFAR10 example.
2018-05-25 18:04:16 +02:00
iabdalkader
758d3ac1a7
NN: Handle GS->GS, GS->RGB888 and RGB565->GS.
2018-05-24 23:25:35 +02:00
iabdalkader
25608d86d5
NN: No reason to use fballoc0
2018-05-24 19:47:29 +02:00
iabdalkader
91f22e7d6e
NN: remove convert/scaling code from network test.
2018-05-24 19:45:17 +02:00
iabdalkader
85267ee276
NN: Add test function.
...
* Simulates the network without actually calling any functions.
2018-05-23 03:01:01 +02:00
iabdalkader
fb83fb701f
NN: Add forward code.
2018-05-23 02:26:08 +02:00
iabdalkader
d967ad62cd
NN: Make base layer fields accessible from sub layers.
2018-05-22 16:30:46 +02:00
iabdalkader
fce3b9476a
Add trace buffer.
...
* This is a simple buffer used for debugging.
2018-05-21 23:30:54 +02:00
iabdalkader
10758f376b
Split script parse_compile_execute function.
...
* This avoids interrupting parser with pendsv (which causes a hardfault).
* Not sure what the real issue is, but this solution works for now.
2018-05-21 23:01:46 +02:00
iabdalkader
23993210dd
Add initial NN loading code.
2018-05-19 23:50:07 +02:00
iabdalkader
97518da1df
Fix collections list_pop_front bug.
...
* Thanks to Rocky Song for finding the bug.
2018-05-19 23:42:48 +02:00
iabdalkader
36948fff45
Fix keypoints match list.
2018-05-17 23:55:56 +02:00
iabdalkader
a07fb2f600
WINC: Return bytes from send, recv, sendto and recvfrom.
2018-05-15 02:22:13 +02:00
Kwabena W. Agyeman
ac2d2fc1cd
Update find circles with min and max radius to run faster.
...
This was a user request.
2018-05-13 19:31:32 -04:00
iabdalkader
a1fd72b8c8
MP: Fix docs.
2018-05-07 13:39:57 +02:00
iabdalkader
ffdadcf8df
Bump firmware version.
2018-05-07 00:04:54 +02:00
iabdalkader
da7f797429
Disable OMV2 build.
2018-05-06 23:41:51 +02:00
iabdalkader
f264c60664
SD card fixes.
...
* Fix DMA buffer macros.
* Remove WFI from wait_finished (causes issues on F7).
* Remove buffer alignment code (avoiding m_alloc's).
2018-05-06 23:12:33 +02:00
iabdalkader
2c7049805c
Update docs.
2018-05-06 00:33:24 +02:00
iabdalkader
8bc4468d0c
Disable USB IRQ for non-DMA SD transfer.
2018-05-06 00:29:49 +02:00
iabdalkader
d8a24caeab
Update docs.
2018-05-02 18:19:01 +02:00
iabdalkader
f7e691e390
Remove line_filter function.
2018-04-27 02:01:23 +02:00
iabdalkader
6c208b52c9
Sensor: Check window size.
2018-04-26 01:03:32 +02:00
iabdalkader
4b5338ad8b
JPEG: Fix BAYER bounds.
2018-04-26 01:02:15 +02:00
iabdalkader
b8527178f1
JPEG: Move bayer_to_rgb565 to imlib.
2018-04-26 00:43:46 +02:00
iabdalkader
9603870e04
Use software cropping instead of DCMI HW cropping.
...
* This fixes issues with some DMA transfer sizes.
2018-04-25 23:43:30 +02:00
iabdalkader
8e123e0cfc
Add WINC SPI prescaler to OMV board config files.
2018-04-25 15:03:41 +02:00
Kwabena W. Agyeman
167daa3538
Add LEPTON Module ID Support
2018-04-25 14:59:39 +02:00
Kwabena W. Agyeman
60a9c50502
Add support for the lepton module
2018-04-25 14:54:53 +02:00
Kwabena W. Agyeman
a7e442c9ca
Add FLIR Lepton Module
2018-04-25 04:18:53 +02:00
iabdalkader
e006e9b249
Allow sensors to override the default snapshot function.
2018-04-25 04:02:50 +02:00
Kwabena W. Agyeman
8fbab69cab
Add Lepton SDK
2018-04-24 21:57:49 +02:00
Kwabena W. Agyeman
420d7f7eeb
cambus: Support 16-bit register address.
2018-04-24 21:36:09 +02:00
Kwabena W. Agyeman
25d23f113d
FLIR: Set SPI1/2/3 clock source to 160MHz.
2018-04-24 21:20:59 +02:00
Kwabena W. Agyeman
45e59006a4
Fix board type.
2018-04-24 21:10:36 +02:00
iabdalkader
af2bfbd6da
Bump firmware version.
2018-04-23 22:21:13 +02:00
iabdalkader
22d22fa3f7
NN: Use the same order as caffe model.
2018-04-23 21:46:54 +02:00
iabdalkader
8d3c60267c
Fix image save without extension.
...
* Fix issue #341
2018-04-23 18:59:11 +02:00
iabdalkader
38eb9e59bb
Enable math special functions.
...
* Fix issue #339
2018-04-20 01:44:49 +02:00
iabdalkader
ca5ebbc0ff
Fix H7 build.
...
* CAN is not supported yet for H7.
2018-04-17 14:12:45 +02:00
iabdalkader
16bacb3ca0
Enable I2C4.
2018-04-16 00:52:23 +02:00
Kwabena W. Agyeman
76e9d9fd50
Fix compile issues with the M4 firmware.
...
Also added a method that will give an error to the user versus not
found.
2018-04-14 02:23:17 -04:00
Kwabena W. Agyeman
93b81fcffc
Add image conversion methods.
...
Requested by customers to make a grayscale image and rainbow image.
2018-04-14 01:01:55 -04:00
iabdalkader
5881e5ef4f
H7: Lower sensor external clock to 48MHz.
...
* Produces better image quality.
* FPS is lower but HW JPEG makes up for it.
2018-04-12 19:33:48 +02:00
iabdalkader
b9ac80997b
WINC: Use HAL to init SPI.
...
* Use plain HAL code to init WINC SPI.
* Add HAL SPI config to board config files.
2018-04-12 19:32:23 +02:00
iabdalkader
7d09e219a2
Set RNG clock source.
2018-04-09 15:18:09 +02:00
Ibrahim Abd Elkader
74664d1962
Merge pull request #335 from kwagyeman/master
...
Fix gain_db control
2018-04-09 05:14:12 +02:00
Kwabena W. Agyeman
01532ae11d
Fix gain_db control
...
Mapping is correct now.
2018-04-08 20:22:21 -04:00
iabdalkader
3b9148cf9b
Make low/high JPEG quality configurable.
2018-04-09 01:07:49 +02:00
Kwabena W. Agyeman
137fd1e89d
Add openmv version info module.
...
Lets you print out and access a few key strings.
2018-04-08 18:35:38 -04:00
Kwabena W. Agyeman
bbb6a0ae92
Add better text drawing.
...
Non monospace text drawing.
2018-04-08 17:31:51 -04:00
Kwabena W. Agyeman
31b1273fb6
Add draw image for drawing images.
...
Can also be used to draw sprites by using the mask image to turn off
drawing some pixels.
2018-04-08 00:45:34 -04:00
Kwabena W. Agyeman
aa7386ac5f
Add cartoon filtering
...
It's not as good as mean shift filtering but can approximate it if you
heavily control the image image lighting conditions. That said, it's a
lot faster and less memory than mean shift filtering.
2018-04-07 23:38:38 -04:00
iabdalkader
cf6225de3a
Clean up MP board config file.
2018-04-08 02:03:34 +02:00
Kwabena W. Agyeman
7f798a8282
Add flood fill
...
The algorithm itself is setup to be used for future filters.
2018-04-06 00:20:19 -04:00
iabdalkader
82ff7a250e
Add H7 DAC support.
2018-04-06 01:08:34 +02:00
iabdalkader
6cd715bf96
Reduce HW JPEG timeout.
...
* Avoid getting stuck when there's an overflow (abort seems useless).
2018-04-04 16:06:58 +02:00
iabdalkader
aa53cf2352
Support H7 hardware JPEG encoder.
2018-04-03 22:08:53 +02:00
Ibrahim Abd Elkader
6877b3afe6
Merge pull request #329 from kwagyeman/master
...
Random Library Fixes
2018-04-03 22:10:01 +02:00
Kwabena W. Agyeman
7bd8fe45fd
Add masking support to replace.
2018-04-01 17:15:28 -04:00
Kwabena W. Agyeman
c4e40f9a36
Fix image pixel access methods to be safer.
2018-04-01 16:56:09 -04:00
Kwabena W. Agyeman
311607f02b
Add masking support to binary.
2018-04-01 16:55:42 -04:00
Kwabena W. Agyeman
6436eb15dc
Normalize bilteral filter sigma values.
...
Its easy to pick sigma now and it works great. Features get nice and
smooth.
2018-04-01 15:54:43 -04:00
Kwabena W. Agyeman
6e02030cbc
Add contrast limited adaptive histogram equalization.
...
This method is fast and super useful.
2018-04-01 15:33:30 -04:00
Ibrahim Abd Elkader
11a9610902
Merge pull request #328 from kwagyeman/master
...
More image filtering stuff
2018-04-01 17:46:02 +02:00
iabdalkader
c14e0e809d
Minor fixes to ADC code.
2018-04-01 17:40:12 +02:00
Kwabena W. Agyeman
09c9d97a70
Add bilateral filtering support
...
Runs faster than median filtering with a large kernel size. That said,
if sigma is set to low for the particular scene you can get corrupted
pixels if there's too much change in a particular kernel area. Tried a
few things to filter this out but was not successful. Not sure how to
fix... but, turning the sigma up hides the issue. It has something to do
with zeros in the luts used to speed the algorithm up causing
instability.
2018-04-01 00:56:41 -04:00
Kwabena W. Agyeman
c3c40680f5
Add missing binary image filtering functionality
...
Open/Close/TopHat/BlackHat/MorphMethods/Etc.
2018-03-31 15:06:20 -04:00
iabdalkader
2ddb4510e6
Add H7 ADC support.
2018-03-31 20:41:38 +02:00
iabdalkader
fac6f19b75
Increase the JPEG quality threshold for H7.
2018-03-30 14:42:59 +02:00
iabdalkader
fcdeb09283
Update MP.
2018-03-27 20:57:10 +02:00
iabdalkader
e9286f6a85
Fix OMV2 build.
2018-03-27 20:41:54 +02:00
iabdalkader
870ce65c51
Merge H7 SRAM1 and SRAM2.
2018-03-27 20:41:26 +02:00
iabdalkader
965e7e1529
Move JPEG buffer to SRAM3.
2018-03-27 20:40:06 +02:00
iabdalkader
ee2aab62be
Add IMLIB_ENABLE_FAST to imlib config.
2018-03-27 03:47:28 +02:00
iabdalkader
ef3faa3df7
Move AprilTags qsort to separate file.
...
* Needed by F4 build.
2018-03-26 20:50:51 +02:00
iabdalkader
bbb5b8dda0
Update F4 HAL.
2018-03-26 20:39:10 +02:00
iabdalkader
fabe9cf292
Fix H7 HAL strict aliasing errors (patch from MP/stm32lib).
2018-03-26 20:38:45 +02:00
Kwabena W. Agyeman
a05daabf5b
Fix bug with sharpen.
...
Wayyy too much gain before.
2018-03-26 01:24:24 -04:00
iabdalkader
6a3eb2814d
Mount FLASH FS if SD card fails to mount.
2018-03-25 01:34:55 +02:00
iabdalkader
eef37ce696
Avoid 64-bit integer division in LPUART.
2018-03-25 01:08:43 +02:00
iabdalkader
e3f08179fb
Update MP.
2018-03-25 00:57:38 +02:00
iabdalkader
9e1401add6
Update F7 HAL.
2018-03-25 00:57:23 +02:00
iabdalkader
0a5d4525bc
Add H7 DCMI cache maintenance.
2018-03-24 03:31:41 +02:00
iabdalkader
dfe67393dc
Move H7 DMA buffers to AXI memory.
...
* SD can only access AXI memory.
2018-03-24 03:30:44 +02:00
iabdalkader
39373f2950
Update linker script.
2018-03-24 03:30:32 +02:00
iabdalkader
014942a75b
Fix bootloader version.
2018-03-24 00:45:32 +02:00
iabdalkader
f5a30c5301
Implement bootloader V2 flash layout command.
2018-03-23 00:14:55 +02:00
iabdalkader
34010c62a8
Merge F7 SRAM1 and SRAM2.
2018-03-22 23:54:10 +02:00
iabdalkader
006225c2f3
Fix USB issues on Windows.
2018-03-21 21:30:46 +02:00
Kwabena W. Agyeman
efe69c961d
Add support for scalar operations
...
This brings all our basic operations code up to spec with other image
library offers.
Anyway, you can now pass a "color" value as the parameter to a basic op
method and it will apply that value to all pixels in the image.
2018-03-20 03:31:24 -04:00
Kwabena W. Agyeman
ed795c4fce
Fix possible stack smashing issue.
...
User could pass too large a kernel size and crash their camera without a
nice error messages.
2018-03-20 00:52:55 -04:00
iabdalkader
e7dff016f6
Enable MDMA driver.
2018-03-19 14:58:23 +02:00
iabdalkader
88826bb414
Disable H7 SD transceiver.
2018-03-19 14:51:18 +02:00
Kwabena W. Agyeman
74c892abd6
Fixed morph edge methods.
...
Redcued noise being injected. Looks a lot better now.
2018-03-19 02:41:23 -04:00
Kwabena W. Agyeman
3342f68ca2
Fixed Divide by zero
...
Saw this floating around.
2018-03-18 22:10:57 -04:00
Kwabena W. Agyeman
d7159fba3e
Upate filtering operations
...
Binary images are now handled. Cleaned up and optimized code. Some speed
gains after shifting to multiplies and not using int8_t.
Added a sharp and unsharp mask feature. Fixed up guassian. Added a
laplacian operation for edge detection.
2018-03-18 22:06:03 -04:00
iabdalkader
93f82440f2
Enable MDMA clock.
2018-03-17 01:25:15 +02:00
Ibrahim Abd Elkader
be6de2e467
Merge pull request #324 from kwagyeman/master
...
Add the ability to pull higher scaled text kerning in...
2018-03-17 00:04:01 +02:00
iabdalkader
97b2bb8bb2
Enable delayblock.
2018-03-16 20:48:35 +02:00
Kwabena W. Agyeman
45b319dc84
Add the ability to pull higher scaled text kerning in...
2018-03-16 01:27:51 -04:00
iabdalkader
00b9a99f44
Set DFU gap-fill to 0xFF.
...
* Makes it easier to diff hexdumps from flash.
2018-03-15 23:55:06 +02:00
iabdalkader
6cfcc8d784
Update MP H7 support.
2018-03-15 20:46:51 +02:00
iabdalkader
60ee2ecfe9
Move H7 main memory to SRAM1.
...
* We can't use the CCM for main memory because it's only accessible by MDMA.
2018-03-15 17:50:11 +02:00
iabdalkader
1d6defa15b
Use volatile flash_offset.
2018-03-14 16:49:28 +02:00
iabdalkader
2f194aa877
Fix bootloader flash bug.
2018-03-14 16:48:48 +02:00
iabdalkader
e429386620
Make bootloader flash index volatile.
2018-03-14 16:32:01 +02:00
iabdalkader
4eaa875208
Fix formatting.
2018-03-14 14:10:28 +02:00
iabdalkader
dff902a4fa
Use uint32_t for fb_w and fb_h.
2018-03-14 14:09:58 +02:00
iabdalkader
d4fde23096
Set DCMI byte select mode for H7.
2018-03-14 00:36:36 +02:00
iabdalkader
f3dba04591
Add H7 dma descriptors.
2018-03-13 21:48:48 +02:00
iabdalkader
53723e3e08
Disable caching of H7 DMA memory using the MPU.
2018-03-13 20:46:33 +02:00
iabdalkader
32e1b522e2
Update imlib config.
2018-03-13 20:46:12 +02:00
iabdalkader
294018378a
Fix cpufreq RCC_PLLP_DIV2.
2018-03-13 19:14:31 +02:00
iabdalkader
3318909925
Add HAL_DCMI_Start_DMA_MB to H7 HAL.
2018-03-13 19:06:03 +02:00
iabdalkader
66ddae84b1
Update OMV4 board config file.
2018-03-13 19:04:48 +02:00
iabdalkader
a1b7d19007
Move JPEG buffer to main memory region.
...
* Note on the F7 this is the same memory region (CCM).
* On the H7, the DMA buffers where moved to SRAM3.
2018-03-13 19:03:00 +02:00
iabdalkader
d31fc84f60
Minor cleanups.
2018-03-13 03:24:51 +02:00
iabdalkader
69f62740a7
Update sensor to support H7.
2018-03-13 03:21:12 +02:00
iabdalkader
7cc601e7d2
Enable SRAM1/2/3 early in startup code.
2018-03-13 03:07:39 +02:00
iabdalkader
83cab47b27
Set cambus timing for H7.
2018-03-13 02:57:33 +02:00
iabdalkader
6edd70587c
Fix linker script typo.
2018-03-12 20:34:20 +02:00
iabdalkader
5218aad02d
Fix H7 flash file system cache memory.
2018-03-12 20:30:29 +02:00
iabdalkader
1fa990b96a
Update the bootloader to support the H7 flash.
2018-03-12 20:10:27 +02:00
iabdalkader
74c035ca8a
Update OMV4 board config.
...
* Note keeping everything in DTCM for now.
2018-03-12 16:45:42 +02:00
iabdalkader
aca7b9e8a8
Move the USB voltage level detector after all init code.
2018-03-12 16:45:03 +02:00
iabdalkader
85f06771d3
Include legacy header
2018-03-12 16:42:50 +02:00
iabdalkader
6a303f3d94
Update H7 legacy header.
2018-03-12 16:42:33 +02:00
iabdalkader
0d59d7584e
Disable SRAM1/2/3 in bootloader.
...
* Not actually used
2018-03-12 16:39:19 +02:00
iabdalkader
793c451437
Add Makefile targets using dfu-util.
2018-03-12 16:38:22 +02:00
Ibrahim Abd Elkader
0a5146e393
Merge pull request #322 from kwagyeman/master
...
Upgrade Drawing Features
2018-03-12 16:38:24 +02:00
Kwabena W. Agyeman
0d63aa52df
Fix minor numerical issues.
...
Couldn't sleep. Needed to make sure this got fixed.
On a side note. We should use a better font. It doesn't really scale
well. Not going to fix now.
2018-03-12 08:51:56 -04:00
Kwabena W. Agyeman
fc74e70c32
Upgrade Drawing Features
...
Heavily upgraded the drawing features onboard the OpenMV Cam. We now
have all the basic drawing methods folks expect along with all the
parameters you need. Finally! You can make big text fonts.
* Added line thickness support
* Added shape fills
* Added text scaling
* Added draw arrow.
2018-03-12 01:14:03 -04:00
iabdalkader
f27f94b76d
Define new memory regions.
2018-03-12 02:40:17 +02:00
iabdalkader
6880482afd
Enable D2 SRAM1/2/3 clocks.
2018-03-12 01:36:45 +02:00
iabdalkader
50d27dacee
Enable USB clock during sleep.
2018-03-12 01:35:50 +02:00
iabdalkader
6339815ae3
Comment SDMMC definition.
2018-03-10 22:51:33 +02:00
iabdalkader
99dc3365b6
Update H7 CMSIS headers.
2018-03-10 20:17:36 +02:00
iabdalkader
453b41a6ec
Update to latest MP.
2018-03-10 20:14:49 +02:00
iabdalkader
2f9da92e12
Fix H7 HSE_VALUE.
2018-03-10 18:58:14 +02:00
iabdalkader
4af7bb4b57
Update H7 ST HAL.
2018-03-10 17:30:03 +02:00
iabdalkader
93ba0a51bb
Update to MP 1.9.3
2018-03-09 20:22:29 +02:00
iabdalkader
92b617877c
Move USB headers to usbdev to avoid including MP USB headers.
2018-03-09 20:21:18 +02:00
iabdalkader
68e761d55a
Fix typo in comment.
2018-03-05 19:18:45 +02:00
Kwabena W. Agyeman
e0e112468e
Argument Parsing Done Correctly
...
All of our argument parsing code has now been updated to handle
positional as well as keyword arguments in our python libraries.
Basically, python allows you to pass some number of positional arguments
to functions/methods followed by keyword arguments (you cannot have more
positional arguments after keyword arguments). Previously, our code
would only look for keyword arguments. Now, it works better and will
grab as many positional arguments as it can followed by processing
keyword arguments. Note: If the case of a positional argument value for
a parameter being passed followed by a keyword for that same parameter
the keyword value is taken (since it comes aftward).
Because arguments were passed in keyword form before this update has no
affect on current code. However, moving forward, argument positions are
now locked and cannot be moved around.
2018-03-05 00:49:36 -05:00
iabdalkader
75d89f7172
Add CMSIS CNN.
2018-03-05 03:10:10 +02:00
iabdalkader
28cc88845c
Fix system init.
2018-03-04 17:18:14 +02:00
iabdalkader
11040db094
Update imlib_image_mean to handle RGB images.
2018-03-04 03:29:11 +02:00
iabdalkader
789496e13a
Fix OMV2 imlib_config.h
2018-03-04 01:31:06 +02:00
iabdalkader
c0efb0884a
Revert c1e5daf6fd.
...
* FPU_USED is already defined.
2018-03-04 01:08:17 +02:00
iabdalkader
c1e5daf6fd
Add FPU_USED to CFLAGS.
2018-03-04 01:07:19 +02:00
iabdalkader
1c91b1dcb1
Update SystemInit.
2018-03-04 01:06:31 +02:00
iabdalkader
bc3807ed30
Fix py_cpufreq.
2018-03-03 22:58:12 +02:00
iabdalkader
de1c6427a6
Wait for PWR_FLAG_VOSRDY
2018-03-02 17:38:35 +02:00
iabdalkader
659abe0225
Clean up system clockconfig function.
2018-03-02 17:37:03 +02:00
iabdalkader
e028215be5
Remove unused functions in system.c
2018-03-02 17:32:00 +02:00
Kwabena W. Agyeman
397abe4746
Cleanup Math Operations
...
Add binary image support to the math operations and updated them to
support masks. Replace now also support mirroring operations. Finally,
adding missing basic math ops like add/sub/mul/div. The operations are
designed to work as image blending operations so they take care of
scaling their output accordingly.
2018-02-25 22:03:31 -05:00
Kwabena W. Agyeman
fb3d0776f0
Overhaul Binary Functions
...
Binary() can noew zero things so you can remove bright lights. All the
line ops (and/or/xor/etc) accept masks. Erode and dilate now accept
masks. And finally, you can now pass arguments versus keywords for folks
who don't read the documentation. Also, the binary image type is now
supported for these methods.
I'm putting in all this work because I saw the need for it when I was
doing shadow removal.
Note: Some effort needs to be put into optimizing the py_image.c code
soon. This is on the todo list before the next release.
2018-02-25 00:15:02 -05:00
Kwabena W. Agyeman
646425b2a6
Add color thresholding support to get_histogram/stats.
...
You can now pass a color threshold list to get histogram and get stats
(along with an invert arg) to control what gets put into the histogram.
2018-02-21 01:27:13 -05:00
iabdalkader
5027e0162e
Protect VCP buffer pointer with atomic section.
...
* Fix issue #313
2018-02-17 00:22:21 +02:00
iabdalkader
7c6ee56862
Move wifi driver to separate files.
...
* This will enable using wifi from C code.
2018-02-12 23:53:43 +02:00
iabdalkader
eaaf391ec8
Enable threading.
2018-02-12 23:53:00 +02:00
Ibrahim Abd Elkader
43a17f2890
Merge pull request #312 from kwagyeman/wifi_dbg
...
Add wifi_dbg stub.
2018-02-12 22:21:42 +02:00
iabdalkader
ff75b760f7
Update MP docs.
2018-02-12 00:41:26 +02:00
Kwabena W. Agyeman
11983a0228
Add wifi_dbg stub.
...
All the notes about how to implement wifi programming are in the code.
Steps:
1. Get wifi_apply_settings() working first and make sure you can turn
the wifi shield on in the right mode. Then add the necessary hooks into
the network code to make it such that previous user wifi code still
works. Also, make sure to handle start and shutdown gracefully.
Basically, get all the lifecycle code working first before moving to the
next step so notning gets in a weird state and bugs creep in...
2. Get the beacon method working. Once this works OpenMV IDE should see
the camera when you hit the connect button.
3. Do the code to turn off the regular usbdbg interface and swtich to
having the data come from wifi_dbg. This isn't a lot of code... but,
will be tricky since you no longer will have USB frames to work with.
All bytes are just going to come randomly and in bursts so you have to
handle the serial stream yourself... (Kwabena can help writing a
statemachine for dealing with this type of stuff if you want. I do it
all the time).
2018-02-08 01:49:29 -05:00
iabdalkader
7ef6bf0e5c
Disable unused functions in imlib_config.
2018-02-06 02:26:09 +02:00
iabdalkader
333e5417b1
Disable qrcodes if not used.
2018-02-06 02:17:46 +02:00
iabdalkader
291b06db13
Disable find_rects if not used.
2018-02-06 02:17:01 +02:00
iabdalkader
45dd265d51
Update imlib config.
2018-02-06 02:11:11 +02:00
iabdalkader
9a2bf08c50
Move line functions to line.c
2018-02-06 02:07:36 +02:00
iabdalkader
3010a47930
Disable imlib similarity if not used.
2018-02-05 02:17:48 +02:00
iabdalkader
6d396b809a
Enable auto dependency generation.
2018-02-04 18:31:39 +02:00
iabdalkader
2f6c18d286
Update imlib config files.
2018-02-04 16:19:21 +02:00
iabdalkader
581e1ab2d2
Disable rotation correction if not used.
2018-02-04 16:14:04 +02:00
iabdalkader
1935c34f4f
Disable phase corr if not used.
2018-02-04 16:08:20 +02:00
iabdalkader
7cb0133bc9
Disable logpolar if not used
2018-02-04 16:01:39 +02:00
iabdalkader
ba2539f09e
Add imlib macros to shadow removal.
2018-02-02 16:44:41 +02:00
iabdalkader
45dba499ad
Add missing imlib macro.
2018-02-02 16:41:24 +02:00
iabdalkader
c8741f5cc1
Rename OMV_ENABLE to IMLIB_ENABLE.
2018-02-02 01:35:13 +02:00
iabdalkader
5e47520a48
Add imlib config file.
2018-02-02 01:26:21 +02:00
Kwabena W. Agyeman
5377f6f575
Add single image shadow remover code.
...
Calling remove_shadows() on an image without a background source of
truth image now works. However, that said, the shadow remover isn't
suitable for anything other than removing shadow on an image of concrete
flow or somthing of the like. In general, it can only remove shadows
from a scene that has nothing else in it except for a hard edge shadow.
Improving this to work for anything is about a month of work. I've
researched enough about shadow removal to now know the optimal way to do
it. However, it requires many steps and a large amount of RAM. On the H7
I may revist this as being possible.
...
In order to get the shadow remover working well I had to add a few
features to the image library and fix some of the convolution code.
These fixes will likely be more useful than the shadow removal code.
Note the addition of the new get_threshold() method. This computes
otsu's threshold on a histogram allowing you to pick the optimal color
bounds.
2018-01-28 19:33:04 -05:00
iabdalkader
f608150b02
Bump firmware version.
2018-01-24 15:05:04 +02:00
iabdalkader
a245e5fb14
Update OMV2 stack and heap
2018-01-24 14:51:32 +02:00
Kwabena W. Agyeman
e0ef7d5bcc
Add more ifdefs to remove OpenMV Cam M4 features since we're flash
...
exhausted.
2018-01-24 01:33:45 -05:00
Kwabena W. Agyeman
bfcdcd4793
Add REPL Uart Ini File Setting Support
...
OpenMV IDE includes an ini file generator which will let you set board
settings easily from the IDE. Currently, the IDE has support for setting
the WiFi shield up along with adding a REPL Uart.
Anyway, this commit adds support for the OpenMV Cam to parse an ini file
on startup to configure things before starting main.py. WiFi support is
not yet implmented. However, we now have the ability to turn the UART
and put the REPL terminal on it on startup given a setting in the ini
file.
(Why not use boot.py like normal MP? While that is more flxible it's
much harder for the IDE to easily write out settings for you which is
what most users will want to do versus coding this up).
...
The movitation for adding REPL UART support in particular is so that the
OpenMV Cam can be used as a slave processor to IoT type processors like
the ESP32/ESP8266/ParticlePhoton/ElectricImp. In particular, a processor
like the ParticlePhoton can control the OpenMV Cam's reset wire. Wake
the camera up by releasing reset, then send a script to it after it
powers on over the UART. The camera will then run the script, do
computer vision, and report results back over the UART to the
ParticlePhoton. Users can then push new scripts to the OpenMV Cam from
the cloud allowing for semi-flexible firmware fixes for the OpenMV Cam
over low data rate networks.
By setting this feature up the need for OpenMV to offer a WiFi IoT
system is reduced as we can now just be the best camera for everything.
...
Due to... I don't know... ctrl-c doesn't work on the duplicated UART.
https://github.com/micropython/micropython/issues/1568
Not sure how to handle this. I don't want to fix it since it needs to be
fixed by MP upstream. Right now the work around is for the mastering MCU
to just reset the OpenMV Cam when it's done with the system.
That said, this does mean that once you start a script using the Open
Terminal command line system you won't be able to stop the script.
2018-01-23 00:22:23 -05:00
Kwabena W. Agyeman
fc9c416a21
Frame Differencing with Shadow Removal
...
Add in support for shadow removal from the current image using a shadow
free background image. Test results show the algorithm works similar to
max() while still keeping dark objects around. The preformance impact of
the algorithm is not too high. An in memory example can achieve 30 FPS.
2018-01-21 16:41:04 -05:00
Kwabena W. Agyeman
38f2c41877
Add pixel and area threshold settings to get_regression()
...
You can now make it not return anything for images with a low pixel
count.
2018-01-20 01:57:17 -05:00
Kwabena W. Agyeman
432b39bc17
Add min()/max() for frame differencing.
...
These have cool ghost image like affects and are useful for frame
differencing.
2018-01-17 02:13:55 -05:00
iabdalkader
abf836519f
Support bayer pixel access.
2018-01-16 22:59:01 +02:00
Ibrahim Abd Elkader
633be51050
Merge pull request #304 from kwagyeman/better_phase_correlation
...
Phase Corr Redo 2
2018-01-16 12:38:42 +02:00
Kwabena W. Agyeman
c78f91b421
Phase Corr Redo 2
...
Redid the phase correlation code again so it's one method call now. This
method call can either do logpolar phase correlation to get rotation/
scale or translation(x/y). Additionally, it will be able to also do both
at once. However, I don't have that quite working yet.
I've updated the example scripts to reflect the new code too.
Finally, I had to fix a bug in the rotation correction code.
...
Once I've got the full pipeline working I will post scripts for that. I
have all the code in there and it's been somewhat debugged... However, I
can't get a useful phase correlation lock out of the log polar fft mag.
I plan to look into noise filtering and spectral whitening solutions for
this.
2018-01-15 23:29:04 -05:00
Kwabena W. Agyeman
9eba59c6c1
Update to full invariant image.
...
This commit updates the shadow free invariant image to 2 colors from
just grayscale.
If we need to save ROM room in the future we'll just disable the LUT and
have the algorithm run with the regular C code. Right now this is not an
issue.
2018-01-14 20:05:49 -05:00
iabdalkader
09c38e7c31
Fix find_template bug.
2018-01-13 19:08:35 +02:00
iabdalkader
4d09a13f30
Use ROI for lenet.
2018-01-12 01:23:03 +02:00
Kwabena W. Agyeman
3da3c60e12
Fixed bugs with logpolar/linpolar.
...
Images look great now.
2018-01-09 01:25:10 -05:00
Kwabena W. Agyeman
7516d7699f
Add Advanced Optical Flow scripts
...
Someone asked me about doing a field of receptors before. These scripts
show how to do that. Also, added example scripts for calling the linear
polar and log polar methods added previously which power
find_rotscale().
2018-01-08 00:10:55 -05:00
Kwabena W. Agyeman
213396d090
Complete Overhaul of phasecorrelation
...
Just doing one big commit/PR here since I noticed that breaking it up
causes issues.
Anyway, these fixes give us GOOD/WORKING/FAST optical flow now on the
OpenMV Cam M7. A number of changes were made to the optical flow
scripts. You have have absolute and differential estimation example
scripts. Additionally, you also have the ability to measure rotation and
scale changes too. Linear/Log Polar conversion was added for this. Users
may use the new code for generic image manipulation too. Finally, I
updated the power of 2 resolutions since you actually HAVE to use them
with optical flow for the phasecorrelation code to work correctly.
I have some more advanced scripts coming after this. But, This commit is
already getting kinda large so I'm stopping it here.
2018-01-07 17:48:07 -05:00
Ibrahim Abd Elkader
075cfbc0de
Merge pull request #298 from kwagyeman/sensor_fixes
...
Update invariant table.
2018-01-06 18:42:35 +02:00
Kwabena W. Agyeman
edffa55873
Update invariant table.
...
Boosted gain by 3X.
2018-01-06 11:07:16 -05:00
iabdalkader
e3872b4c22
Increase gethostbyname timeout.
2018-01-06 00:12:00 +02:00
Kwabena W. Agyeman
30ecbdc4f8
Add white balance control.
...
You can now get white balance gains from the camera chip and set the
camera to then use these gains again in a new enviorment.
2017-12-31 19:56:02 -05:00
Kwabena W. Agyeman
1cf5211efb
Fix bugs with sensor auto gain control.
2017-12-31 17:28:27 -05:00
iabdalkader
b1e84d9955
Fix formatting.
2017-12-31 16:12:17 +02:00
Kwabena W. Agyeman
139cdbdbc9
Add auto gain control ceiling value to be settable by the auto gain
...
method.
Things are in dB now too. Need to remove the previous settable method.
2017-12-30 23:54:19 -05:00
Kwabena W. Agyeman
aeb0238040
Added hmirror and vflip support to the MT9V034 and example scripts ( #294 )
...
* Added hmirror and vflip support to the MT9V034 and example scripts.
* Moved sensor example scripts to one place.
* Add delay to these script for register settling time.
2017-12-31 00:32:01 +02:00
Kwabena W. Agyeman
b906c5f192
Add auto gain control setting support ( #293 )
...
You can now get the auto gain setting in dBs and set the value in dBs.
Example scripts are included. Code was tested on the OV7725.
2017-12-30 23:18:35 +02:00
Kwabena W. Agyeman
7be0a7a182
Add exposure control for all sensors ( #292 )
...
* Textual register cleanup.
No functional changes.
* Add exposure control support.
You can now set the exposure for the camera in microseconds (versus an
opaque unknown value previously). First, we have a new method called
get_exposure_us() which will get the expsoure time in microseconds. This
let's you determine what the auto exposure algorithm set the exposure
time to. Second, the previously implmented set_auto_exposure() method
which allows you to turn aec off and on accepts a exposure_us keyword
argument when you turn aec off to manually control the exposure.
The next commit will add support for other sensor types.
* Cleanup register formatting.
No functional changes.
* Add exposure control support for the OV2640.
Register access for this chip is a PITA.
* Formatting Cleanup.
No functional changes.
* Add exposure control for ov9650.
Just doing it for all sensors.
* Add missing 2 factor.
* Added exposure control for the MT9V034.
* Add exposure control example.
Works well on the OV7725.
2017-12-30 15:56:11 +02:00
Kwabena W. Agyeman
cbbead0785
Add adaptive thresholding to filters.
...
I still need to go back and optimizing and cleanup the code. I just
wanted to get the feature in first.
2017-12-27 19:23:48 -05:00
iabdalkader
7cec96a9db
Fix H7 build.
2017-12-28 01:04:51 +02:00
Ibrahim Abd Elkader
ece149d8d2
Merge pull request #288 from kwagyeman/sensor_fb_fix
...
Restore MAIN_FB() size on snapshot()
2017-12-26 21:24:00 +02:00
Ibrahim Abd Elkader
d5721a4f39
Merge pull request #289 from kwagyeman/histeq_update
...
Refactor histeq()
2017-12-26 13:48:10 +02:00
Kwabena W. Agyeman
dcc31ec37d
Refactor histeq()
...
Just updating the code with the same style as other methods. I have
another new sister method for histeq() comming up next which I'll push
as soon as this PR is done. Didn't want to merge the two into one PR.
2017-12-26 00:02:51 -05:00
Kwabena W. Agyeman
046a2e1825
Restore MAIN_FB() size on snapshot()
...
This fix allows "copy_to_fb" with a different resolution than the
current frame buffer to work. It also allows the frame buffer to be
resized, etc. In particular, the pooling methods I added for optical
flow work again... you'll also be able to scale the frame buffer too.
2017-12-25 18:00:58 -05:00
Ibrahim Abd Elkader
e0fc302dda
Merge pull request #287 from kwagyeman/compare_methods
...
Add extra frame buffer.
2017-12-25 19:14:47 +02:00
Kwabena W. Agyeman
27f5110ab7
Add extra frame buffer.
...
You can now allocate an extra frame buffer for storing images. However,
this takes memory from the main frame buffer. In particular this reduces
the RAM for many methods that do image processing making memory errors
more likely to happen. Note that you may allocate as many extra fb's as
you like. Dealloc happens in reverse order.
Anyway, you can use this method to now storage things like difference
images in RAM allowing for MUCH faster frame difference image
processing.
Moving on, to keep memory management sane... the second fb looks just
like an image and you can use all the image methods to load and update
it, etc. That said, if users deallocate the second FB they need to *NOT*
use the image pointer anymore. There's no way for me to delete the image
pointer in python right now so this is just something that has to be
manually managed (even if I did setup a deconstructor the second FB is
on a stack... so, things wouldn't work so easily with that).
2017-12-24 22:40:26 -05:00
iabdalkader
e1fa2371bb
Add missing H7 flash constants.
2017-12-24 22:14:02 +02:00
iabdalkader
a9c8cdb752
Update system.c to support H7.
2017-12-24 22:13:38 +02:00
iabdalkader
f8ba3e4e10
Use MCU_SERIES
2017-12-24 22:11:57 +02:00
iabdalkader
04ce644f55
Add H7 headers and startup.
2017-12-24 22:10:30 +02:00
iabdalkader
a51e0de410
Copy USB code to bootloader.
...
* The bootloader will be more self-contained.
2017-12-24 21:24:25 +02:00
iabdalkader
e0779b685c
Add H7 HAL
2017-12-24 21:23:01 +02:00
iabdalkader
ed761075e4
Update OMV4 board files.
2017-12-24 21:07:50 +02:00
Ibrahim Abd Elkader
6753b93842
Merge pull request #286 from kwagyeman/compare_methods
...
Add a LUT for illuminvar()
2017-12-24 17:24:31 +02:00
iabdalkader
9cb0ca0b9a
Add no-strict-aliasing to STHAL CFLAGS.
2017-12-24 17:21:08 +02:00
Kwabena W. Agyeman
f2c36e780a
Add a LUT for illuminvar()
...
It's now faster to be more useful.
Need to work on HDR for the sensor and making the sensor output better.
I fixed some issues with the illuminvar() method going crazy when it
gets colors with values near 0... but, the shot noise from the sensor
adds a lot of noise to everything. Fixing this will likely solve a lot
of algorithm problems.
2017-12-23 21:16:55 -05:00
Ibrahim Abd Elkader
7346efbf0d
Merge pull request #285 from kwagyeman/compare_methods
...
Compare methods
2017-12-23 22:22:22 +02:00
Kwabena W. Agyeman
e2025e8d1e
SSIM Code
...
Image comparison using SSIM. It can be used to detect image
differences... but, the algorithm was designed to compare image quality
and look at compression artifacts. Anyway, it works kinda okay for
detecting frame differences.
2017-12-23 15:01:13 -05:00
Kwabena W. Agyeman
e5eb7185fb
Line ops can now accept a parameter value.
2017-12-21 22:22:12 -05:00
iabdalkader
f2431de175
Add a list of matching keypoints to keypoints match object.
2017-12-21 21:07:01 +02:00
iabdalkader
eabdcbbbca
Add unary_op and subscr to keypoints object.
2017-12-21 19:53:20 +02:00
iabdalkader
ed7cb98b86
Fix bootloader linker script.
2017-12-18 23:38:23 +02:00
Ibrahim Abd Elkader
9b652606dd
Merge pull request #284 from kwagyeman/illuminvar
...
Add chrominace and illuminace invariant image generators.
2017-12-18 15:36:35 +02:00
Kwabena W. Agyeman
937aa1fa22
Add chrominace and illuminace invariant image generators.
...
Both algorithms were tested on the OpenMV Cam using images loaded from a
file and work correctly. However, shot noise from the sensor.snapshot()
makes the output value somewhat worthless except in a situation unless
you've controlled for it. Anyway, the illuminvar work best when the
image is constrained to a very particular view point looking at a flat
scene without shadow and then a shadow enters.
(Not adding demo's for these methods since the output looks like crap
unless you've put some work into constraining the scene... need to add
HDR code and other stuff to the sensor module to get better images).
2017-12-17 21:57:08 -05:00
iabdalkader
dca8f3781d
Fix low-power modes.
2017-12-17 01:58:37 +02:00
iabdalkader
2fb155aff3
Update docs.
2017-12-10 04:34:51 +02:00
Ibrahim Abd Elkader
f77284e38a
Merge pull request #283 from falkoschindler/master
...
changing sign of z_rotation() to follow conventions of a right-handed coordinate system...
2017-12-07 11:26:40 +02:00
iabdalkader
9cc209d128
Add WINC BSP mode.
...
* For programming FW via WINC's debug UART.
2017-12-06 20:33:26 +02:00
iabdalkader
fcc3b0b9c6
Make WINC programmer accept firmware file path.
2017-12-06 17:08:45 +02:00
iabdalkader
475c083c75
Move ffs_strerror declaration to header.
2017-12-06 16:44:57 +02:00
iabdalkader
278fb1c797
Update docs.
2017-12-06 15:30:30 +02:00
iabdalkader
64c2d1a535
Revert "Update docs."
...
This reverts commit 3eca75774f .
2017-12-06 15:29:23 +02:00
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
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
iabdalkader
5d92001f75
Cleanup WINC line endings.
2016-08-28 17:52:07 +02:00
iabdalkader
813a2e6e6a
Fix WINC socket_send.
...
* Check sent bytes returned from async request.
2016-08-28 17:51:42 +02:00
iabdalkader
014847da5d
Bump firmware version.
2016-08-25 19:26:20 +02:00
iabdalkader
fa65054815
Update firmware version.
2016-08-25 19:08:41 +02:00
iabdalkader
3cde9f9260
Revert to old FS caching.
2016-08-24 22:31:46 +02:00
iabdalkader
4b07286284
Update colorbars test.
...
* Invert colorbars for OV7725.
* Increase colorbars thresholds.
2016-08-23 22:37:47 +02:00
iabdalkader
2ad2418d61
Enable DSP colorbar for OV7725.
...
* Enabling DSP colorbar outputs solid colorbars without an image,
which makes the colorbars test run better.
2016-08-23 22:30:18 +02:00
iabdalkader
e88c344028
Use the same serial number used in bootloader.
2016-08-22 23:03:58 +02:00
iabdalkader
d93661aa03
Set heap back to 54K.
2016-08-22 23:03:42 +02:00
iabdalkader
2a6e30de98
Reuse SPI handle for WINC.
2016-08-22 23:03:24 +02:00
iabdalkader
5238d55042
Use JPEG_SUBSAMPLE_1x1 for 60 quality.
2016-08-22 21:16:28 +02:00
iabdalkader
ebf9a93294
Increase OMV2 FB_ALLOC and JPEG buffer size.
2016-08-22 21:15:44 +02:00
iabdalkader
fd46db4143
Use new FS block caching.
2016-08-22 21:15:13 +02:00
iabdalkader
0e60cb39ec
Reduce AGC/AEC Fast Mode Operating Region.
...
* Increasing VPT causes more motion blur.
2016-08-22 21:04:37 +02:00
iabdalkader
a998acbe22
Return 0 if FB is not ready.
...
* Fix bug introduced in last commit.
2016-08-21 03:01:21 +02:00
iabdalkader
5b8de6f867
Clean USBDBG_FRAME_SIZE code.
2016-08-19 19:17:22 +02:00
iabdalkader
1142940b88
Add MLX qstrs.
2016-08-19 19:09:47 +02:00
iabdalkader
a6953e8757
Invalidate frame after IDE reads it.
2016-08-19 19:09:17 +02:00
iabdalkader
958c5b7f78
Use keyword args for MLX refresh rate and adc resolution.
...
* Issue #148 PR #149
2016-08-19 13:23:47 +02:00
William Minarik
18975dfb85
changes fir_init() to take specified refresh rate and ADC resolution
2016-08-18 14:36:05 -04:00
iabdalkader
4cd4b1f902
Optimize haar
...
* Skip homogeneous regions based on STD.
2016-08-18 00:29:45 +02:00
iabdalkader
b655a54885
Remove frame size assertion in snapshot()
...
* Frame gets automatically cropped if it's bigger than the max raw frame.
2016-08-18 00:26:01 +02:00
iabdalkader
c6181cc7f5
Increase AEC/AGC operating region.
2016-08-17 21:19:07 +02:00
iabdalkader
56438bc079
Add cpufreq module.
...
* Add CPU frequency scaling module and example script.
2016-08-17 19:42:05 +02:00
iabdalkader
7a7fcf73e7
Add OMV_XCLK_SOURCE to board config
...
* Use MCO output to drive sensor clock on OMV2
2016-08-17 19:40:29 +02:00
iabdalkader
3a39a6fce0
Set default PLL settings to 192MHz
2016-08-17 19:09:48 +02:00
iabdalkader
c371893a60
Remove old RCC code.
2016-08-17 18:59:14 +02:00
iabdalkader
f8747cb60b
Re-enable DMA2 Stream 3 and 4 for uSD
...
* Fix issue #148
2016-08-16 21:24:56 +02:00
iabdalkader
6722710329
Make IDE interrupt static.
2016-08-16 13:00:12 +02:00
iabdalkader
3a5b82c1b0
Add comment to linker script
2016-08-16 12:59:58 +02:00
iabdalkader
abace9e4fe
Crop resolutions higher than OMV_MAX_RAW_FRAME.
2016-08-16 12:48:47 +02:00
iabdalkader
2affb38a22
Fix DCMI/DMA transfer size overflow.
2016-08-16 12:47:20 +02:00
iabdalkader
839523bd90
Fix DCMI init struct for OMV7.
2016-08-16 12:46:40 +02:00
iabdalkader
7499062bda
Fix OMV2 max frames.
2016-08-16 12:45:49 +02:00
iabdalkader
d9c8b1535d
Reduce IDE JPEG quality.
2016-08-15 01:11:10 +02:00
iabdalkader
bcac8731b2
Add ARCH_STR to board files.
2016-08-14 15:14:43 +02:00
iabdalkader
6d6ad783b7
Add ARCH_STR command.
2016-08-14 15:12:43 +02:00
iabdalkader
26909490c7
Fix adaptive JPEG quality.
2016-08-14 14:26:30 +02:00
iabdalkader
4211e37c53
Remove JPEG enable/disable USBDBG command.
2016-08-14 00:45:34 +02:00
iabdalkader
37ec0095fc
Enable OS module.
2016-08-13 22:08:15 +02:00
iabdalkader
dcdb3e5e8d
Remove old comments.
2016-08-13 22:07:50 +02:00
iabdalkader
2821690a35
Update MP branch with M7 support.
2016-08-12 23:27:20 +02:00
iabdalkader
53df7fed4f
Update bootloader to support M7.
2016-08-12 23:03:11 +02:00
iabdalkader
d0ae48d3a6
Update OV7725 regs
2016-08-12 22:46:04 +02:00
iabdalkader
56ef404919
Add realloc arg to JPEG encoder.
...
* If realloc is set to false, JPEG encoder won't try to realloc JPEG buffer and will fail gracefully.
2016-08-12 22:44:39 +02:00
iabdalkader
1cbcb7e434
Add M7 support
2016-08-12 22:43:50 +02:00
iabdalkader
21c693f968
Update CMSIS
2016-08-06 00:25:04 +02:00
iabdalkader
e44d86b483
Update CMSIS
2016-07-29 12:28:42 +03:00
iabdalkader
11c44d11e2
Update DSP lib
2016-07-29 12:28:10 +03:00
iabdalkader
7d99357e25
Add F4 and F7 HAL
2016-07-28 16:38:45 +03:00
iabdalkader
e4ee55eefb
Update firmware version.
2016-07-27 22:18:43 +03:00
iabdalkader
0da4951e62
Fix integral image lookup
2016-07-27 22:00:51 +03:00
iabdalkader
0363fa8758
Add ToF module.
2016-07-27 15:21:33 +03:00
iabdalkader
f7aa217f39
Use scaled DCT.
2016-07-06 21:19:14 +02:00
iabdalkader
9db7b8113c
Set JPEG quality based on frame size.
...
* Use higher quality/subsampling for small resolutions.
2016-07-03 21:33:19 +02:00
iabdalkader
b5486fc2a3
Set JPEG chroma subsampling based on quality.
2016-07-03 21:27:44 +02:00
iabdalkader
9e592d45bf
Add JPEG subsampling enum.
2016-07-03 21:27:28 +02:00
iabdalkader
0575314ab3
Make image pool work on arg image without changing FB.
2016-06-20 22:25:25 +02:00
iabdalkader
02088a14e1
Rename set_binning to set_windowing.
2016-06-20 22:24:00 +02:00
iabdalkader
968bfde8f2
Add new smaller resolutions.
...
* Add 40x30, 64x32 and 64x64
2016-06-19 21:27:09 +02:00
Kwabena W. Agyeman
7af818c4d8
Finished up optical flow code.
...
* Added pooling functions to make getting small images easy. set_binning
works too... but, it zooms in way to much. pooling functions aout you to
shrink the image while not zooming in.
* To make the pooling functions easy to use I created a version that
pools the image out of place and one that pools the image in place. The
inplace pooling function can work on the frame buffer (see edits to
sensor.c)
* I added the code to do hann windowing to the FFT lib. However, I
commented it out after it improved performance by basically zero.
Specialized windowing stuff will only come in handy for folks trying to
tune their algorithm... not in general for everything.
* I added subpixel resolution for the phase correlation code. You can
now track the image movement really precisely. Additionally, I fixed up
the displacement outputs to give expected results. I also added a QoR
output for the displacement code so that you can know when the results
are bad.
* Finally, an example script has been added to show off the features.
2016-06-18 23:05:44 -04:00
iabdalkader
6adb46e1fa
Make copy_to_fb accept (x,y) offset
2016-06-17 00:31:56 +02:00
iabdalkader
2594a1e320
Add py_helper_lookup_offset.
2016-06-17 00:30:02 +02:00
iabdalkader
76e3a77869
Reduce DS search step by one.
2016-06-15 23:41:08 +02:00
iabdalkader
7a977b5568
Reduce step size in DS search.
...
* Reduce DS step size instead of switching to smaller pattern.
* Makes it slower but more accurate, close to EX search.
2016-06-15 23:33:33 +02:00
iabdalkader
e40c50f739
Add diamond search for fast template matching.
2016-06-15 22:59:17 +02:00
iabdalkader
d9b03641f7
Add copy to framebuffer function and example script.
2016-06-15 21:59:36 +02:00
iabdalkader
86b038df33
Fix typo in Haar.
2016-06-15 21:04:25 +02:00
Kwabena W. Agyeman
15aed91efd
Fixed FFT and Phase Correlation!
...
There were some mistakes, they are fixed now. FFT 1D and 2D work
flawlessly. No problems with that code anymore.
As for phase correlation I need to study how to interpret the output
better. The function generates noisy results once you move the image too
far and I'm not quite sure if I have the code right for detecting
positive and negative displacements.
2016-06-14 00:00:27 -04:00
iabdalkader
2767791aae
Add loop step argument to template matching.
2016-06-14 00:14:22 +02:00
iabdalkader
a25e0c162e
Make template matching use ROIs.
2016-06-14 00:07:54 +02:00
Kwabena W. Agyeman
45fdcc973e
Add FFT Code and Phase Correlation Code
...
The heart of the 1D FFT works. I tested this on the PC. However, 2D FFTs
may have issues and the phase correlation algorithm does not generate
the expected results. That said, most of the work is done. Stuff just
needs to be deubgged.
The FFT lib is designed to handle up to 1024 point real FFTs and 512
complex FFTs. As for 2D FFTs, we can do up to 64x64 pixels. After which,
we don't have enough RAM to handle them because they use up about 128KB
each.
Things to do... the 2D FFT needs to be verified. So, we need to run an
image through it and then back again to verify that there are no
problems. Then we need to compare the 2D FFT output with another 2D FFT
algorithm on the PC...
Once the FFTs are known to be good we then need to make sure the phase
corelation algorithm outs the correct results. We need to test that with
multiple shifted images, etc.
2016-06-12 19:55:45 -04:00
iabdalkader
f0a6892475
Cleanup template matching code.
2016-06-11 02:00:27 +02:00
iabdalkader
8fac08e29e
Fix integral_image_sq bug in calculating first row.
2016-06-10 00:14:41 +02:00
iabdalkader
15ba6a4927
Enable binning when resolution is higher VGA.
2016-06-03 23:05:51 +02:00
iabdalkader
ee2995115f
Disable auto zoom/scale factors for VGA resolution.
...
* Disable auto zoom/scale factors for VGA resolution on OV7725.
2016-06-03 23:04:11 +02:00
iabdalkader
440c9dc8bc
Implement binning.
2016-06-03 23:01:28 +02:00
iabdalkader
318b67da42
Fix typo.
2016-05-25 03:42:57 +02:00
iabdalkader
39f439cda5
Fix the base priority when doing a soft-reset
2016-05-16 14:26:48 +02:00
iabdalkader
8f35a14ad8
Update USBDBG patch version.
2016-05-16 14:22:59 +02:00
iabdalkader
2e2c563227
Re-implement line filters with Python callbacks.
2016-05-16 14:22:30 +02:00
iabdalkader
5265211cc4
Remove USBDBG FRAME_UPDATE command.
2016-05-16 13:40:09 +02:00
iabdalkader
5d9fbf729c
Enable some MP optimizations.
2016-05-16 13:37:27 +02:00
iabdalkader
fea0b45eaa
Update MP branch.
...
* Fix ADC channels.
* Add 427 AF file.
2016-05-12 18:25:06 +02:00
iabdalkader
a865075e85
Fix Makefile dependencies.
...
* Fixes issue with parallel builds (make -jn)
2016-05-12 14:28:27 +02:00
iabdalkader
959d3e5410
Disable STM-HAL build in MicroPython.
2016-05-12 14:02:45 +02:00
iabdalkader
f61d89e0a4
Fix Makefile Verbosity.
...
* Make build more quite.
2016-05-12 14:01:14 +02:00
iabdalkader
23f1935924
Enable modmachine.
2016-05-12 12:53:55 +02:00
iabdalkader
ba73787c8a
Use MicroPython's SD Card Module.
2016-05-11 18:46:38 +02:00
iabdalkader
8e503f4145
Update to MP v1.8
2016-05-09 21:46:41 +02:00
iabdalkader
9a5992c03e
Update code for MP v1.8
2016-05-09 21:46:29 +02:00
iabdalkader
2803a8f483
Update MP branch.
2016-05-04 21:37:15 +02:00
iabdalkader
c10fc56f44
MLX fixes.
...
* Alloc variables using xalloc.
* Change ADC resolution to 18 bits.
2016-05-04 21:37:10 +02:00
iabdalkader
e5cde106fb
Remove MLX variables from linker script
2016-05-04 20:14:52 +02:00
iabdalkader
2b26d46f1e
Fix py_fir memory issues.
2016-05-04 20:14:38 +02:00
iabdalkader
1f150c1847
Cleanup Makefile.
...
* Rename binary files.
* Misc cleanups
2016-05-03 19:16:43 +02:00
iabdalkader
a314b59d1a
Generate a combined binary for the programming jig.
2016-05-03 16:12:52 +02:00
iabdalkader
a0d7c69cb7
Remove old CC3K code.
2016-05-02 23:11:11 +02:00
iabdalkader
d8359a99e1
Define MAIN_FW_ADDR.
2016-05-01 15:51:20 +02:00
iabdalkader
c7c3ddce63
Add DAC init in main.c
...
* Fix issue #121
2016-05-01 15:50:10 +02:00
iabdalkader
260caaa8e7
Fix WINC client.send() zeros data being sent.
...
* Issue #129
2016-04-30 23:08:23 +02:00
Kwabena W. Agyeman
fc605b0a80
Made histeg work for RGB565.
...
Added YUV to RGB565 conversion to make this happen.
2016-04-29 23:03:19 -04:00
iabdalkader
6b581af1b1
Add mass erase to make flash.
2016-04-29 20:32:14 +02:00
Ibrahim Abd Elkader
ebb7053040
Merge pull request #132 from kwagyeman/master
...
Add missing cam functionality
2016-04-28 23:58:27 +02:00
iabdalkader
0d5aaf5064
Fix USB descriptors.
...
* This fix makes the bootloader+fw image enumerate correctly on Linux and Windows.
2016-04-28 12:47:21 +02:00
Kwabena W. Agyeman
80cb701d3b
Add missing cam functionality
...
Added the ability to turn AGC off. Kinda will need the ability to restore
AGC settings back to user specified ones in the future... but, this will
do for now.
Added the ability to turn AEC off. Objectively this function probably
won't be used. But, in low light situations it can help.
Added get_fb() to allow you to get the last image snapshot returned.
There was some old exposure function in the code that was getting
optimized out. So, I deleted the used methods that didn't have any code
in them and commented out the only method that did.
2016-04-27 21:53:06 -04:00
iabdalkader
794bb367ae
Fix Bootloader CDC descriptors.
...
* Removed some unused descriptors, but mainly set the CDC interface number to (1)
same as MP, as Windows doesn't like different interface numbers for the same device.
2016-04-27 19:38:44 +02:00
iabdalkader
8cd6fbf301
Replace pyboard and MP string descriptors.
2016-04-27 18:17:42 +02:00
iabdalkader
130fcbf162
Pass wValue to control requests.
2016-04-27 08:34:20 +02:00
iabdalkader
cadb73eb5e
Fix Makefile build order.
2016-04-26 22:58:07 +02:00
Kwabena W. Agyeman
7a01a9bede
Final Imlib Cleanup
...
Finished going through imlib.c.
-> Histeq uses fb_alloc now and has hook for RGB histeq when reserve YUV
LUT is added (coming soon in next PR).
Cleanuped py_helper.c/h
-> No functional changes. Just added some header info.
Finished going through py_image.c
* 1 - Finished general code cleanup and updating everything to using new
library functions. In particular, I updated the remaining find_*
functions with the new roi clipping code when they accept rois.
* 2 - Made blob stuff return a list when nothing is found so you don't
have to do an if on the returned value anymore.
* 3 - img subscr is more powerful now allowing image reading and
writing. I updated this because I had to use it to find a previous bug
with socket.send() for the WINC driver.
* 4 - Renamed find_eyes to find_eye. Because it just finds one eye.
* 5 - Other than that just general code cleanup to make functions look
consistent.
And yes, changes have been test. Face tracking, eye tracking, keypoints,
etc. all work still.
Future things todo before release:
1 - Change all LAB stuff to YUV.
2 - Add in reverse YUV->RGB LUT and update functions like Mode() to use
this so they don't generate messed up outputs, also histeq() too.
3 - Add any remaining sensor control functions like agc control.
2016-04-25 21:55:49 -04:00
Ibrahim Abd Elkader
3ac7872188
Merge pull request #130 from kwagyeman/master
...
Improve JPEG capabilities.
2016-04-26 02:47:08 +02:00
iabdalkader
232461295d
Remove old DFU code.
2016-04-25 20:35:36 +02:00
iabdalkader
3d38908f2a
Update main Makefile
...
* Add bootloader sources.
* Generate main FW image dfu, bootloader dfu and combined dfu image.
2016-04-25 18:20:20 +02:00
iabdalkader
508f303d91
Move ISR vector start of the main firmware image.
2016-04-25 18:19:39 +02:00
iabdalkader
d14c55251d
Change interrupt vector table offset.
...
* Set to 0x08010000 where the main FW image starts
2016-04-25 18:18:27 +02:00
iabdalkader
9ed107ccee
Re-enable IRQs in main.c
2016-04-25 18:18:03 +02:00
iabdalkader
87740c0170
Add CDC bootloader source dir
2016-04-25 18:17:21 +02:00
Kwabena W. Agyeman
367e5fdd3d
Improved JPEG capabilities.
...
* Added the ability to control the quality on JPEG functions... However,
due to our JPEG implementation this doesn't seem to help. 90% JPEG
quality images and regular images should be about equal. But, you can
see heavy degredation with 90% still. E.g. text is unreabable. Not
exactly sure why this is happening but it can be fixed later.
* Changed the compress() function to compressed(). Also, it now
compresses using FB_Alloc to prevent realloc issues when compressing.
* Added new compress() function. This function compresses an image in
place and if that image is the frame bufffer then it will update the
frame buffer bpp value to reflect the image was compressed. Users can use
this function to basically finalize the frame buffer and then pass the FB
to functions that need to send image bytes. The benefit of using this
function is that it should allow higher quality JPEGs and let everything
run at a faster speed while connected to the IDE.
I made this function to speed up WiFi. However, I encountered a bug with
the winc.send() method. It appears to zero the bytes it sends. I didn't
debug further except to verify that the image data became zero after
calling send.
2016-04-23 16:37:21 -04:00
Kwabena W. Agyeman
bb9d79d744
Fixed dilate.
...
This was bugged. Tested and now works.
2016-04-21 13:11:38 -04:00
iabdalkader
da612ff75f
Apply HAL I2C/DMA patch from MicroPython.
2016-04-20 23:03:39 +02:00
iabdalkader
ef772db6c4
Up MP branch
2016-04-20 22:30:43 +02:00
Kwabena W. Agyeman
b534dc6ffc
Imlib cleanup
...
*Changed subimg to copy.
*Made blend work the same way as all our other double image argument
functions.
*Changed bilt to replace (the name of bilt is way to esoteric). Replace
gives you the basic assignment op.
* Removed scale/sacled. I removed this code because we don't want to
encourage people to scale things and allocate additional images in
memory. I decided to keep copy() for completeness sakes... but, I don't
see anyone using it. (By completeness sakes I mean that we now have the
assignment op, copy op, etc. for an image object).
* Removed rainbow. This feature is built into the FIR module now.
Moving on, compress needs to be renamed to compressed and a new compress
function will need to be added.
The compress() function will compress the image (or frame buffer, etc)
and not return a new object. The compressed() function will return a new
object and not compress the original image.
The compress function will make it easier for users to compress images
once they are done working on them before sending the image some where.
I don't see compressed() being used much then after adding the
compress() function. Since the compress() function won't use up heap
space this makes it very good.
2016-04-19 21:42:56 -04:00
Kwabena W. Agyeman
8a2852b706
Fixed file buffer bug.
...
This wasn't getting reinited breaking the system.
2016-04-14 23:56:54 -04:00
Kwabena W. Agyeman
1b9be6f81c
Fixed blob merge bug.
...
Merging now keeps trying after a merge to make sure it's collected
everything.
2016-04-13 23:48:16 -04:00
Kwabena W. Agyeman
16daeb83a2
Fixed blob code.
...
Removed micropython code from the image libary. Also, blobs are now 10
tuple values by default now. The multilist thing has been removed from
blobs and it will return just a list of blobs instead of a tree of
lists.
Filter functions still work too.
2016-04-13 23:16:51 -04:00
Kwabena W. Agyeman
9e5d379c18
Remove old code.
...
Pixels, centroid, and orientation are calculated in the blob code now.
As for threshold, it is no longer needed (plus, it required storing a
secondary image in RAM which isn't really something we can handle).
2016-04-09 19:32:14 -04:00
Kwabena W. Agyeman
d1ff36602a
New blob code.
...
Blob tracking has now been updated to work without requiring prior
segmentation of the image. You can still run it on a segmented image,
but, that is not needed anymore.
Use the copy color feature of the OpenMV IDE to get a color in the
image. Once you have that you can then pass the color to find_blobs which
will output a tuple of lists of blobs for each color. By default, all
blobs less than 1/1000th of the image are filtered out, however, you can
add a custom filter function which gets the image and the blob about to
be added to the list and you can decide to filter it or not.
For marker tracking, we now have a function called find markers which
basically merges all the blobs found by find blobs into one list of
blobs. Each new blob will have a color code value which will tell you
what colors are part of that blob. We support tracking up to 30 unique
colors this way.
2016-04-09 11:43:35 -04:00
iabdalkader
37c8587333
Fix WINC's FW update.
...
* Remove unused WINC code.
* Replace WINC fw update process with a single fw image.
2016-04-06 02:35:32 +02:00
iabdalkader
f841828818
Add WINC fw dump function.
2016-04-06 02:30:42 +02:00
iabdalkader
cc67372726
Add fw_dump
2016-04-06 02:29:39 +02:00
iabdalkader
6aaef6b68d
Update WINC's firmware image.
2016-04-06 02:28:18 +02:00
iabdalkader
f2a1a1f641
Fix printf format.
2016-04-05 23:42:37 +02:00
iabdalkader
6addddbbc7
Fix WINC's firmware_verify.
2016-04-05 23:40:09 +02:00
Ibrahim Abd Elkader
749cd96e0c
Merge pull request #112 from kwagyeman/master
...
Add mean, median, and mode filters.
2016-04-05 23:22:23 +02:00
iabdalkader
b9ec840a76
Add winc fw_update function.
2016-04-05 22:35:02 +02:00
iabdalkader
3268edceb2
Add WINC1500 Firmware image and certificates.
...
* FW version 19.4.4
2016-04-05 22:32:50 +02:00
iabdalkader
330b41aab6
Add WINC1500 FW upload code.
2016-04-05 22:31:39 +02:00
iabdalkader
dae73f6250
Update WINC1500 driver to 19.4.4
2016-04-05 22:30:00 +02:00
Kwabena W. Agyeman
401b7b72a8
Added mean, median, and mode filters.
...
Mean filter -> Fast and easy to use. This will likely be the only filter
that gets alot of action on the M4.
Median filter -> Works really well, but, slow. On grayscale at 160x120
you can get also 10 FPS with it for a 3x3 kernel. That said, it's still
slow. Also, the code only works for 3x3 and 5x5 kernels.
About the previous histogram filter... technically, that filter should be
better. However, it suffers from a startup cost. The operation of finding
the median point in the histogram costs too much to compute. This is
what causes it to be slow. On very large kernels it will be faster than
the sorting median alrogithm I put up... but, large kernels will be too
slow for anyone to use anyway. The paper Ibrahim linked to about it
showed it being used for like 7x7 kernels and up... so, I think the
researcher who thought of the idea was really thinking about the
algorithm for large kernels.
Mode filter -> Works great on grayscale. Not so much on color. I think it
needs to be run on the LAB color space instead of the RGB color space. I
say this because it causes pretty strong artifacts around edges. When we
get more flash we'll be able to have a reverse lookup table for LAB to
make the mode filter better. Until then...
2016-04-04 20:04:50 -04:00
iabdalkader
1566b38bde
Implement fw_version.
2016-04-02 01:39:53 +02:00
iabdalkader
27adf0dcd2
Enable CONF_MGMT.
2016-04-02 01:39:29 +02:00
iabdalkader
0d19f693c0
Implement Listen and Accept.
2016-03-31 22:35:49 +02:00
iabdalkader
e5fd02c59a
Implement bind, sendto and recvfrom.
2016-03-31 02:46:14 +02:00
iabdalkader
4201f0480d
Use fd instead of u_state.
2016-03-31 01:05:26 +02:00
iabdalkader
a5d1b0f446
Implement socket settimeout
2016-03-31 01:04:57 +02:00
iabdalkader
1cccae0fcb
Implement WINC send/recv.
2016-03-30 18:51:13 +02:00
iabdalkader
bf674dbe6d
Add Socket and DNS callbacks.
2016-03-30 01:47:35 +02:00
Kwabena W. Agyeman
bc687ebf59
We seem to be doing this alot in the code.
...
So I'm just adding a function to do it cleanly and efficently. Call
skip_frames() after changing any camera settings to let it settle.
10 frames by default works fine. Tested it.
2016-03-28 22:59:59 -04:00
iabdalkader
4e31f25db8
Additional qstr definitions for OpenMV.
2016-03-29 02:26:39 +02:00
iabdalkader
9003a27c85
Rename fir.display to fir.draw
2016-03-27 00:42:54 +02:00
Kwabena W. Agyeman
a6c2efcebe
Renamed Display to Draw
...
And fixed type in blend. Per Ibrahim's suggestion.
2016-03-26 10:26:19 -04:00
iabdalkader
5411f9e8e7
Update MP branch.
2016-03-26 15:15:07 +02:00
Kwabena W. Agyeman
978b4c12df
Add Midpoint filter.
...
Has a bias value that allows you to control if its really a midpoint,
min, max filter, or something inbetween. Run at 160x120 or lower. 320x240
is slow (seems to be the case for all convoltions at that res).
2016-03-25 21:26:20 -04:00
iabdalkader
b92f146323
Add initial WINC1500 WiFi module driver.
...
* Note: partial implemented, based on CC3000 module (only scan, connect, ifconfig work)
2016-03-26 01:52:29 +02:00
iabdalkader
f447455580
Disable WINC's debugging info.
2016-03-26 00:15:28 +02:00
iabdalkader
ce949333f2
Rename WINC1500 Sockets.
...
* Rename functions in WINC's sockets implementation to avoid
conflicts with other sockets implementations.
2016-03-26 00:14:01 +02:00
iabdalkader
9dd3dce5af
Update MP branch
2016-03-26 00:11:52 +02:00
Kwabena W. Agyeman
2fa8227c7b
Add AWB/HMirror/VFlip
...
Added setters for these camera settings. AWB is necessary for color
tracking to work correctly. AGC still runs, which causes lighting
shifts. It may need to be disabled too. Not sure... if I want to do that
or not however, because without it lightning won't get normalized to
remain at a certain level. So, turning AGC off may cause issues in other
ways.
2016-03-25 16:36:10 -04:00
Kwabena W. Agyeman
a74dd50eaf
Improved IR code.
...
Return min and max from read_ir now. Also, made drawing functions take
IR values.
Example scripts have been updated to work with the new module code.
2016-03-24 19:52:00 -04:00
iabdalkader
dfad6e4c0a
Update MP branch.
2016-03-25 00:37:27 +02:00
Kwabena W. Agyeman
88907c438c
Redid MLX Code
...
First, a few things:
The MLX 16x4 sensor has just too low of a resolution for mass appeal for
the price. The product is not going to sell very well. We need to look
into supporting sensors with a better res. Like the FLIR 1. The MLX
module was renamed to the "flir" module with this idea in mind.
The flir code now takes care of doing scaling and blending itself. I did
this to get rid of the user having to scale the image themselves and
blend themselves. Its too easy to run out of memory given our current
ultra small heap. In general, anything that requires multiple images in
RAM has got to go. When we do another OpenMV Cam with external RAM in
the MB range then maybe such functions will be safe. But, right now they
are definately not.
Anyway, moving on, I fixed a few bugs with the MLX math code. But, for
the most part was correct. I also added reconmended polling code for
brownouts as required by the datasheet.
Last, I designed this code like the LCD code to support a type value
when inited. This will allow the system to user a different sensor in the
future without any API changes to the user.
I will add test scripts for this next. Basic usage follows:
import flir
flir.init()
flir.display_ir(sensor.snapshot())
And that's it. Super easy. If the user wants the raw temp values they
can use flir.read_ir() to get the ta and to values. The display function
has a hidden alpha and scale argument for controling blending and the
min/max scaling.
The previous way we worked out scaling kinda sucked... it was a good
shot, but, controllable min and maxes that autoscale by default just
work better. If the user knows the temp range then they can just set the
min and max.'
Anyway, longest commit ever done.
2016-03-24 18:04:05 -04:00
Ibrahim Abd Elkader
825911abe6
Merge pull request #99 from kwagyeman/master
...
Move LCD code into module.
2016-03-19 01:33:35 +02:00
iabdalkader
44895ead25
Add LCD module
2016-03-19 01:32:05 +02:00
Kwabena W. Agyeman
94910c8ed7
Move LCD code into module. It's now ultra fast, safe and friendly. I
...
tested everything too and added an example script (very simple).
2016-03-17 20:01:03 -04:00
iabdalkader
900b5cdba2
Add P6 pin alias.
2016-03-15 00:11:13 +02:00
iabdalkader
9a8a5375da
Add pin aliases.
2016-03-15 00:03:02 +02:00
iabdalkader
d4ea452902
Fix median code.
...
* Use new IM_ macros.
* Fix allocation problems.
2016-03-13 23:37:58 +02:00
iabdalkader
33d4d2a1ad
Support keypoints on QVGA resolution.
...
* Use the moving window integral to compute keypoints.
2016-03-13 01:44:07 +02:00
iabdalkader
2f9a541cbc
Abort DMA transfer after snapshot.
2016-03-11 04:17:18 +02:00
iabdalkader
ebf13197a9
Disable USB IRQ before stopping script.
...
* This ensures that FS IRQ will never run during a soft-reset which
causes issues when using SD card.
2016-03-11 04:14:19 +02:00
iabdalkader
31697a163b
Re-init storage after soft-reset.
2016-03-11 04:13:23 +02:00
iabdalkader
0370eb54be
Move SD card initialization to sdcard_init
2016-03-11 04:12:06 +02:00
Kwabena W. Agyeman
302deb0662
Add file read speed.
...
File reading is runing ultra fast now. We're getting that SD card speed
the STM32 promised now. The file buffer commands have been updated to
alloc as much available memory to read as much of a file in as possible
now to speed up things. This works really great.
Note however, while the file buffer is active you have to use the file
buffer versions of tell and size. Spent a few hours on tracking down an
error related to not using the buffered versions.
2016-03-08 23:38:13 -05:00
Kwabena W. Agyeman
14dbcbd73c
Updated code to use fb_alloc.
...
All file write functions now use fb_alloc to go much faster. Writes are
re-directed to the extra frame buffer RAM and are grouped until they can
be written in a massive multi-block write to the SD card. We get the
best SD card write speed by doing things this way.
Ideally we'd want to buffer the whole file... but, this is about as good
as we're going to get for now.
Going to fix reading functions to use the same buffer next.
2016-03-07 00:09:04 -05:00
iabdalkader
2ab0688cbd
Fix comment.
...
* Framebuffer is not actually global.
2016-03-06 19:03:30 +02:00
iabdalkader
6cb7288def
Add NORETURN to __fatal_error
2016-03-06 19:03:00 +02:00
iabdalkader
a1c9e8a6f6
Set fb values directly when request frame size.
2016-03-06 19:02:12 +02:00
iabdalkader
d1e782df3d
Remove default sensor config.
...
* Not really needed.
2016-03-06 19:01:10 +02:00
iabdalkader
e3cc4cd83f
Add delays after changing pixformat/framesize.
2016-03-06 19:00:41 +02:00
iabdalkader
3e6e84cbb4
Skip the first frame after changing size or format.
2016-03-06 18:38:25 +02:00
Kwabena W. Agyeman
66248c444b
Update Gif to use fb_alloc_all.
...
And tested it along with mjpeg to make sure all this stuff is good. I
also see the issue with QQVGA now. That just appeared.
2016-03-05 22:29:21 -05:00
iabdalkader
b78e325c60
Up MP branch.
2016-03-06 03:14:42 +02:00
Kwabena W. Agyeman
5316b26d83
Added a new mjpeg module for Mjpeg support.
...
The built-in mjpeg module allows you to record videos seamlessly. It
will automatically compress the frame buffer using the extra space in the
main ram. So... you don't have to pass it jpeg images. Gets 7 FPS at
320x240 while connected to the computer too (it has to compress the
frame twice in this situation).
Anyway, the module work like Gif.
2016-03-05 20:03:48 -05:00
iabdalkader
acc35704d8
Disable IRQs when doing a soft-reset.
2016-03-06 02:51:34 +02:00
iabdalkader
2ab317063d
Re-exec REPL if there's no script to execute.
2016-03-06 02:39:58 +02:00
iabdalkader
fe506fa0fb
Use sizeof(tx_buf_len) instead of length.
...
* Length should always be 4 but it's safer this way.
2016-03-06 02:37:36 +02:00
iabdalkader
c12473d8b7
Execute a script only if there's no script running.
2016-03-06 02:36:45 +02:00
iabdalkader
28047269ac
Add DSB after setting USBDBG IRQ.
2016-03-06 02:36:10 +02:00
iabdalkader
87f9c92f1b
Skip the first JPEG/RAW frame.
...
* Set BPP to zero in set_pixformat to skip compressing/sending the first frame.
2016-03-06 02:32:11 +02:00
iabdalkader
911f9827ea
Enable DMA IRQ just before the snapshot.
2016-03-06 02:28:05 +02:00
Kwabena W. Agyeman
98800c31c7
Add fb_alloc_all.
...
Now you can just grab all the free ram in the frame buffer in one go.
This fixes problems figuring out how many lines to alloc. Will update line
op code with this new info later.
2016-03-05 11:27:37 -05:00
iabdalkader
06b1cfca3b
Use IRQ priorities defined in irqs.h
2016-03-05 18:25:51 +02:00
iabdalkader
55a4b4536f
Add irqs.h.
...
* Defines IRQ priorities and functions.
2016-03-05 18:23:53 +02:00
iabdalkader
5dcedb8397
Align GIF buffers.
...
* Make GIF buffers aligned so DMA can be used.
2016-03-05 16:23:43 +02:00
iabdalkader
9230f0d53e
Use DMA for SDIO transfers
2016-03-05 15:44:39 +02:00
Kwabena W. Agyeman
9325029675
Add support for color gif.
...
Color gifs look very good for how bad you'd expect them to be with just
7 bits of color (rgb232) - quite amazing. Also, I hardened the gif
module to make it "user ready".
2016-03-04 23:30:01 -05:00
iabdalkader
03a06a409d
Added color conversion strings.
2016-03-04 15:36:39 +02:00
Kwabena W. Agyeman
0ded05e333
Add color functions.
...
Now you can convert from rgb to lab/grayscale and vice-versa. Without
this functionality it would be hard to deal with moving between RGB and
LAB.
2016-03-03 23:48:04 -05:00
iabdalkader
02ef98f25f
Move MSC bot data to main SRAM (update MP).
2016-03-04 00:59:06 +02:00
iabdalkader
af82c9936d
Move MSC bot data to main SRAM.
...
* MSC can use DMA transfers.
* Free about 2KBs of CCM.
2016-03-03 15:37:13 +02:00
iabdalkader
872b7c1c5e
Update qstrs.
2016-03-03 01:14:03 +02:00
Kwabena W. Agyeman
488253a8b0
Add statistics function.
...
You can now get the color stats for an area in the image. The stats
function returns the mean, median, mode, min, max, st_dev,
lower_quartile, and upper_quartile.
This function allows you to automate binary and threshold functions
based on what's in the iamge.
2016-03-01 21:43:52 -05:00
iabdalkader
3e5bfb27cc
Move FatFS file buffer to main SRAM.
...
* Allows DMA transfers of file data.
2016-03-02 00:19:29 +02:00
iabdalkader
3ea5761076
Add _fb_alloc linker script variable.
2016-03-01 23:47:13 +02:00
Kwabena W. Agyeman
6ed08213b5
Fix unintialized error.
...
If the rect was not intersecting these functions would have returned bad
values.
2016-02-29 21:31:59 -05:00
iabdalkader
744329f8f6
Add strings for morph.
2016-03-01 01:42:51 +02:00
iabdalkader
e0c93b8ec3
Add missing morph qstrs
2016-03-01 01:26:03 +02:00
Kwabena W. Agyeman
98f4dde21f
Add new morph function.
...
The morph function lets you convolve the image with a kernel. It's
decently fast right now. But, in the future we'll have to optimize it by
a lot (unrolling loops, using SIMD instructions, etc.).
Anyway, along with morph I added an edge detection test script showing
how you can use a high pass filter on an image to get all the edges in
it. This is not as good as canny edge dection... but, it's about the
same and fast enough.
We'll need a Hough Transform system in the future to make edge dection
useful. Not sure how that will be implemented... so, that's going to be
far away for now.
2016-02-29 18:04:45 -05:00
Kwabena W. Agyeman
fb8b357c24
Dilate and errode working.
...
The old code did not actually implement the errode anhd dilate kernels
correctly. However, it migh have been a little faster because it avoided
the boundary problem.
In the future we can optimize all the kernel code to have different loops
for doing the edges of image versus the center. But, for now, this is
good enough. QVGA color tracking with kernels will be slow, but, the
speed can be improved with QQVGA resolution. Using a 3x3 kernel is
plenty fast. Larger ones are slower.
I also added the ability for you to set the threshold for erode and
dialte. This lets you make the kenrel a little bit smarter so that it
won't errode or dilate a pixel unless the threshold is met. Meaning,
you'll be able to use erode to erode an image down to 1 pixel wide
lines.
2016-02-28 16:27:49 -05:00
iabdalkader
d4e1e3d323
Alloc FatFS LFN buffer on stack.
...
* Saves 512 bytes
2016-02-28 21:54:30 +02:00
iabdalkader
2e7ded5dd4
Add GIF module
2016-02-28 21:34:47 +02:00
iabdalkader
963dd69ca0
Fix typo.
2016-02-28 08:06:32 +02:00
iabdalkader
afa1686940
USE OMV_XCLK_FREQUENCY from OMV board config file.
2016-02-28 04:30:37 +02:00
iabdalkader
8b3b7e6ece
Fix skin filter.
...
* Remove Y from GS threshold.
* Not really fixed, just looks slightly better.
2016-02-28 04:10:56 +02:00
iabdalkader
7e1a4169a7
Add match_descriptor function.
...
* A single function to match LBP/FREAK descriptors.
2016-02-28 03:39:13 +02:00
iabdalkader
154cb5be69
Change descriptor functions to accept file pointer.
2016-02-28 03:22:07 +02:00
iabdalkader
acafef5207
Revert HaarCascade.
...
* HaarCascade doesn't really fit into generic descriptor functions.
2016-02-28 02:37:35 +02:00
iabdalkader
67acf7188c
Use one load/save function for all descriptors.
2016-02-28 01:38:24 +02:00
Kwabena W. Agyeman
4ed49082a1
Background Subtraction is working!!!
...
Woot, all the effort to make it so you can manipulate the image buffer
with an image off disk works!
Try out the motion_detection script.
2016-02-27 11:58:37 -05:00
Kwabena W. Agyeman
00ee215e89
Add line op function.
...
All the work previously has been more or less leading up to supporting
this function. The line op function will open a file and execute a
function pointer on each line of the file opened to modify the frame
buffer.
2016-02-27 09:59:54 -05:00
Kwabena W. Agyeman
1121a6f7df
Fixed save image.
...
It now figures out the file type from the file extension. If no file
extension is given it just saves the file as BMP if its not a JPEG image
or JPEG if it's a JPEG image. If you specify an extension and the file is
not of that type then it will give you an error.
The new test_save.py should run until you reach the JPEG image part
where it quits due to lack of JPEG support natively on OV7725 boards.
Maybe JPEG mode should be supoorted by just compressing pictures?
2016-02-26 22:00:04 -05:00
iabdalkader
2b27d1542f
Add save LBP descriptor.
2016-02-26 23:12:15 +02:00
Kwabena W. Agyeman
ac3d1e4373
Add BMP/PNM/JPEG image file loading and saving.
...
There's not a lot of actual functionality changes from the last commit.
However, switching the basic wrapper library to just long_jump on
failure and moving all the state info to structs required changes to all
the base functions in the last commit. The rest of the changes are to
link in the new functionality and to get the code to compile (usbdbg.c
edits).
Next I'll work on a function which abstracts the problem of opening an
image up and executing a line by line function op on it. I already
worked the code out for that. But, it's not in this commit to keep
things streamlined.
2016-02-25 22:26:56 -05:00
iabdalkader
6d1044ffcf
Up the max size of integral images to QVGA.
...
* With the new integral moving window we can support face detection,
keypoints and template matching on QVGA frames. However, it was only
implemented and tested for face detection.
* Increasing the max integral frame now for easier testing.
2016-02-26 03:27:24 +02:00
iabdalkader
c43906eb3d
Fix FREAK's mean_intensity function.
...
* Using imlib_integral_lookup for lookups.
* Rounding errors caused the patch not be rectangular.
2016-02-26 01:47:22 +02:00
iabdalkader
074cf9d5e4
Add pointer to matching keypoint to kp_t struct.
...
* This way we don't need to allocate the array of matching keypoints
and risk running out of memory due to fragmentation. So all or nothing.
2016-02-26 01:44:23 +02:00
iabdalkader
1b27383c9d
Allocate kpts until GC is almost out of memory
...
* Keep allocating keypoints until GC is out of memory.
2016-02-26 00:50:46 +02:00
iabdalkader
5ff5419bf1
Return empty list if no blobs were found.
...
* Fixes #81
2016-02-26 00:47:31 +02:00
iabdalkader
3e4c2c2f3b
Fix keypoint bug.
...
* Set keypoint descriptor to zero, bug was introduced when switching to arrays.
2016-02-26 00:26:37 +02:00
iabdalkader
b15c0c6bc0
Fix formatting.
2016-02-26 00:26:20 +02:00
iabdalkader
5c6056f875
Add file format strings
2016-02-25 11:52:10 +02:00
Kwabena W. Agyeman
d8ac8f9408
Fix swap bug.
...
The code clearly did not swap mins and maxes.
2016-02-24 19:07:57 -05:00
iabdalkader
f34a7e30d7
Use fb_alloc to allocate corners.
...
* Leaves more heap memory for keypoints.
2016-02-24 06:30:14 +02:00
Kwabena W. Agyeman
4df0b5044b
Add top level file open function.
...
Fimrware will now automatically detect the appropriate file type and read
in that file type correctly.
Working on tying on of this stuff togheter next. It's getting a little
bit too complicated to deal with error cases. Need to add error message
function layer.
2016-02-23 21:26:43 -05:00
iabdalkader
c3936f4322
Fix FAST/FREAK ROI.
2016-02-24 00:38:48 +02:00
iabdalkader
4d7db778fb
Remove angle from keypoint.
...
* Not really used right now and saves 4 bytes per keypoint.
2016-02-23 20:43:33 +02:00
iabdalkader
3a747ef952
Use arrays in FAST/FREAK keypoints.
...
* Using arrays for FAST/FREAK keypoints, this saves some memory
allocated for intermediate data.
2016-02-23 18:19:49 +02:00
iabdalkader
7a22cb3e5c
Extract keypoints in one step.
...
* Make find_keypoints extract FAST keypoints.
2016-02-23 00:55:54 +02:00
iabdalkader
93d3885a3c
Set keypoints threshold range between 0 and 100.
2016-02-22 20:31:24 +02:00
iabdalkader
9d02e2a42a
Make match_lbp accept roi and extract second LBP.
2016-02-22 19:41:16 +02:00
iabdalkader
473b8025bf
Fix assertion in find_features.
2016-02-22 19:39:26 +02:00
iabdalkader
015181588a
Fix assertion in find_features.
2016-02-22 19:35:11 +02:00
iabdalkader
ddcb170af0
Cleanup py_image.c
...
* Code cleanups in py_image.c
2016-02-22 19:17:14 +02:00
iabdalkader
124a31772c
Rename helper functions.
2016-02-22 18:47:35 +02:00
iabdalkader
5860695f5d
Move helper functions to new files.
2016-02-22 18:41:50 +02:00
iabdalkader
0f48c12a89
Replace all mp_map_lookup()s with helper functions.
2016-02-22 18:35:00 +02:00
iabdalkader
4bcdb251a3
Update MP branch
2016-02-22 18:02:59 +02:00
iabdalkader
93dc73c7f2
Fix arg to get_rectangle_kw.
2016-02-22 18:00:20 +02:00
iabdalkader
4c63721efa
Use default roi when calling save_image
2016-02-22 17:55:26 +02:00
Kwabena W. Agyeman
901716b878
Made grayscale read/writing fast.
...
RGB565 reading and writing is going to be slow. But, grayscale is going
to be going as fast as the system can go.
If Omnivision has just reversed the byte order of data sent to the
camera we wouldn't have this problem for RGB565.
2016-02-21 21:24:57 -05:00
iabdalkader
4e5b200bdf
Make keypoints_match return the % of matching kpts.
...
* Change keypoints_match to return the percentage of matching keypoints.
2016-02-22 03:31:15 +02:00
Kwabena W. Agyeman
ccd6078c04
Add BMP and P2/3/5/6 file format support.
...
Added BMP file format reading and writing support code and modified the
ppm code to match. Upper level glue code has been left intact to be
altered in future commits.
Tested save() and ppm writing functionality still works. More
comprehensive tests coming soon.
... Kinda concerend that standard image file formats might not cut it for
the speed we'd like to have when using image files in function calls. I
think only grayscale is going to be fast. All other formats require a
lot of prep work.
I think I may modify some of this low level stuff in the future to
autodetect if an entire grayscale image can be read in or written out
in one go to speed that stuff up.
2016-02-21 17:24:32 -05:00
iabdalkader
43dc87d43e
Fix HQVGA resolution.
2016-02-21 23:05:07 +02:00
iabdalkader
032a6e3e4d
Make Haar detector work on ROIs.
2016-02-21 23:01:34 +02:00
iabdalkader
1d4b95353a
Fix Iris bounding box.
2016-02-21 22:39:14 +02:00
iabdalkader
50e53c91bc
Change Iris detector to work on a single region.
...
* This allows the detector to work on ROIs detected by the eye Haar
cascade, which improves the accuracy and speed of the detection.
2016-02-21 20:38:01 +02:00
iabdalkader
e18058f27c
Update MP branch.
...
* Add new qstrs.
2016-02-21 03:46:17 +02:00
Kwabena W. Agyeman
c3cfb117d0
Add frame differencing functions.
...
The negate function gives you the ability to negate an image before
running difference on it. The difference function will subtract two images
from each other and return the abs() of the result.
I believe it would have been optimal to work on the RGB565 image in the
LAB color space. However, since we don't have an inverse LAB lut this is
not possible. If we could replace LAB with YUV then that would free up
space to have an inverse YUV table (YUV->RGB).
2016-02-20 20:29:19 -05:00
Kwabena W. Agyeman
140ceb3b77
Fixed bug in centroid and added tests.
...
Stuff works. Yay! Moving on to other things now.
2016-02-20 16:04:59 -05:00
Kwabena W. Agyeman
88d9c02a1b
Draw keypoints now accepts lists.
...
Made draw keypoints accept lists of (x, y, angle) tuples. I did this so
it could be used to show object rotation easily.
2016-02-20 16:04:59 -05:00
iabdalkader
767b0d99b9
Update MicroPython branch
2016-02-20 20:12:02 +02:00
Kwabena W. Agyeman
0606f5be44
Added binary image functions.
...
Pixels, centroid, orientation, along with the basic binary tool kit
functions like and/or/xor.
2016-02-20 11:46:26 -05:00
iabdalkader
db5464948b
Use fb_alloc in dilate, erode and median.
2016-02-20 17:48:42 +02:00
iabdalkader
f3e85e1dbb
Add fb_free_all.
...
* Free all blocks allocated on fb ram
2016-02-20 17:41:21 +02:00
iabdalkader
84ff228384
Fix RGB skin filter
2016-02-20 06:16:22 +02:00
Ibrahim Abd Elkader
e72e55802c
Merge pull request #73 from kwagyeman/master
...
Fix set pixel.
2016-02-20 06:03:48 +02:00
Kwabena W. Agyeman
b01adfee26
Fixed up drawing code and scripts along with drawing code.
...
Set pixel works too now.
2016-02-19 22:55:50 -05:00
iabdalkader
015f924096
Fix BW filter to handle RGB.
2016-02-20 04:22:03 +02:00
Kwabena W. Agyeman
a035aae493
Fixed set pixel.
2016-02-19 21:05:02 -05:00
iabdalkader
a4ea3e0e20
Add filter functions
...
* Filter functions bypass the default line processing in sensor.c, and pre-process lines.
* Processing is done on the fly, i.e. filters are called from after each line is received.
2016-02-20 03:58:40 +02:00
iabdalkader
a40101e3e0
Fix indent.
2016-02-20 01:26:18 +02:00
iabdalkader
8d47b7b9b2
Add helper functions to lookup color and int.
2016-02-20 01:24:29 +02:00
iabdalkader
e31e504f64
Update MP branch
2016-02-19 17:02:45 +02:00
Kwabena W. Agyeman
bcd5151412
New drawing functions.
...
All the drawing functions have been updated to handle automatic clipping
when drawing offscren and work with both grayscale and RGB565.
Additionally, all functions now accept color arguments.
I've also updated the example scripts with the new functions and tested
them out to make sure they work.
Additionally, I wrote a test suite for the drawing functions to make
sure they work.
2016-02-18 22:40:12 -05:00
iabdalkader
04a2e89fd5
Optimize JPEG stack usage
2016-02-18 17:55:45 +02:00
Kwabena W. Agyeman
f9ae24f3a0
Reverted commands back to old argument format.
2016-02-17 23:50:08 -05:00
Kwabena W. Agyeman
dd6a322646
Added basic image querying functions.
...
Now you can get the width/height/format along with size. Additionally, I
fixed up get and set pixel.
2016-02-17 23:04:23 -05:00
iabdalkader
5aa3555a36
Add enable/disable JPEG to USB commands.
2016-02-18 04:12:53 +02:00
iabdalkader
da15b6a915
* Allow fb compression to be enabled/disabled.
...
* This allows reading RGB images on PC if needed.
2016-02-18 04:01:41 +02:00
iabdalkader
8fd89db5fe
Add Hardware/Software JPEG flags to sensor flags.
...
* Not used right now.
2016-02-18 03:26:41 +02:00
iabdalkader
31679cab9a
Allow Haar detector to accept ROIs.
2016-02-17 22:36:57 +02:00
iabdalkader
61f98e6c21
Cleanup old integral image code.
2016-02-17 20:34:21 +02:00
iabdalkader
dc86780578
Use FB_PIXELS() to get a pointer to fb pixels.
2016-02-17 20:32:50 +02:00
iabdalkader
6460fefa15
Fix old integral image lookup
2016-02-17 20:32:33 +02:00
iabdalkader
d658608061
Fix FB_PIXELS() macro.
...
* If bpp > 2 (means JPEG image) return pixels + bpp (bpp stores image size in JPEG mode)
* If bpp <= 2 (means GS or RGB image) return pixels + w * h * bpp.
2016-02-17 20:27:58 +02:00
iabdalkader
d2ac2c63a8
Use fb_alloc to alloc/free integral images.
2016-02-17 20:06:31 +02:00
iabdalkader
c2e6d96c27
Remove unused xalloc include
2016-02-17 20:01:05 +02:00
iabdalkader
d3d7e5dc39
Use typdef's for sensor enum and structs.
2016-02-17 19:46:45 +02:00
iabdalkader
d639df0bfe
Cleanup sensor.h comments.
2016-02-17 19:08:56 +02:00
iabdalkader
c809ec1b53
Add comment about cropping.
2016-02-17 18:49:51 +02:00
iabdalkader
33e552b276
Add DMA2D to sthal's Makefile
2016-02-17 18:48:20 +02:00
iabdalkader
5fdaf08cac
Increase heap size by 256 bytes.
2016-02-17 18:47:33 +02:00
iabdalkader
c1bf4ad33d
Add one pass standard deviation function.
2016-02-17 18:46:46 +02:00
iabdalkader
027641e51e
Improved Haar detector.
...
* Use a scanning factor proportional to the current scale.
* Use the new integral moving window to allow two integral images
(sum and sum squared) for fast mean, variance and standard deviation.
* Higher FPS and more accurate detection.
2016-02-17 18:43:47 +02:00
iabdalkader
b7b4153367
Add integral moving window.
...
* A new integral image implementation that uses a moving window.
* Integral image is computed in steps, each shift computes n new lines.
* This only requires (image_width * (feature_height+1) * 4) bytes.
* Allows Haar detector to run on QVGA, and allows a second squared
integral image for standard deviation calculations.
2016-02-17 18:43:09 +02:00
iabdalkader
c043ebc233
Update qstrs
2016-02-17 18:16:15 +02:00
iabdalkader
0904f0bb6b
Fix FB_PIXELS()
...
* Return fb->pixels+fb->bpp when JPEG is enabled.
2016-02-17 05:28:28 +02:00
iabdalkader
db667c061f
Rename fb_stack to fb_alloc and call init0 in main
2016-02-17 05:24:17 +02:00
Ibrahim Abd Elkader
cfa9b6e440
Merge pull request #67 from kwagyeman/master
...
Add framebuffer alloc functions.
2016-02-17 05:07:34 +02:00
Kwabena W. Agyeman
024b16d475
Added some helper stuff.
...
The alloc functions allow you to use the framebuffer as a storage space.
It's very simple but effective. You can alloc which puts some memory on a
stack... and then when you're done you can free which pops the stack.
Pops (frees) must be done in reverse order of pushes (allocs).
In general, functions should call the init code before using the stack.
It could be in a bad state.
Also, I added some wrappers for file system functions to make that stuff
easier. This will be used in the future.
2016-02-16 21:31:35 -05:00
Ibrahim Abd Elkader
983f1783e3
Merge pull request #66 from kwagyeman/master
...
Update lookup tables and scripts.
2016-02-17 03:57:51 +02:00
Kwabena W. Agyeman
88f37014f1
Finished updating tables.
...
With new RGB565<->RGB888 scaling. This included redoing the LAB/YUV/XYZ
tables. I translated the table gen code to python also and added
comments as to where the math came from.
And yes, I tested and compared the tables to make sure they weren't
borken. The tables are slightly different... but, if look at the
progression of values loosely you'll see the triplets are very close to
each other when doing a compare. This is to be expected given I used a
slightly better scaling algo.
2016-02-16 19:37:19 -05:00
Ibrahim Abd Elkader
e3b76ebabb
Merge pull request #65 from kwagyeman/master
...
* Move image macros to imlib.c.
* Add prefix to image macros.
* Add RGB LUT, and gen_rgb2rgb.py script.
2016-02-16 17:24:48 +02:00
Kwabena W. Agyeman
6699ea4d0e
Added RGB LUT.
...
And modified the rainbow table so that the RGB888 to RGB565 translation
is done using a rounding technique versus hard floor. This is also used
for the RGB565<->RGB888 LUTs.
Additionally, I added a bunch of stuff to the image library to make
working with images easier. I will using these helpers in the future.
Finally, I cleaned up trailing space in the font stuff (pet peeve).
2016-02-15 22:12:25 -05:00
Ibrahim Abd Elkader
42db630564
Merge pull request #64 from kwagyeman/master
...
Fixed up point and rect.
2016-02-15 04:58:46 +02:00
Kwabena W. Agyeman
67b9a815b3
Switch int to int16_t.
2016-02-14 21:54:55 -05:00
Kwabena W. Agyeman
0384d43304
Fixed up point and rect.
...
Point didn't need many changes. However, for rect I made the merge
function alot better so it won't alloc while merging, just free.
Additionally, I added a function to get the intersecting rectangle of an
image. This will be used for all functions that accept a subimg
argument. This function allows the user to basically pass any wild and
crazy rect they want and the function will find the intersecting area (if
it exists) and return just that to operate on. This is good for "do what
I mean" functionality versus "do what I say".
2016-02-14 21:13:55 -05:00
Ibrahim Abd Elkader
020ed9369a
Merge pull request #63 from kwagyeman/master
...
Fixed up array functions.
2016-02-15 02:45:11 +02:00
Kwabena W. Agyeman
84a964f930
Fixed up array functions.
...
There were a lot of missing features in the array module. I added
quicksort based on the MP sort function and I expanded the array code so
you can do stuff like take() which lets you get an object from an array
and easily put it into another array.
I also fixed the "struct array" problems in the code. Anonymous structs
have to go.
2016-02-14 19:29:34 -05:00
iabdalkader
46d91cc95a
VJ: Use a scanning step proportional to scale.
2016-02-15 00:58:17 +02:00
Ibrahim Abd Elkader
d850325de4
Merge pull request #60 from kwagyeman/master
...
Cleaned up some whitespace and unnecessary header.
2016-02-14 17:02:18 +02:00
Kwabena W. Agyeman
ffaea46159
Removed unneeded headers.
...
And... added a comment about the implementation being standard.
2016-02-14 09:38:42 -05:00
Kwabena W. Agyeman
c622e05b58
Re-added timeout.
...
Given how the SCCB won't fail it should really be 0... but, then the
rountines wouldn't return if there was a failure.
2016-02-14 09:27:04 -05:00
iabdalkader
5deaf38a34
Switch to 2x2 (4:2:0) Chroma Subsampling.
2016-02-14 11:20:04 +02:00
iabdalkader
77239a5891
Support 2x1(4:2:2) Chroma subsampling.
2016-02-14 07:34:43 +02:00
Kwabena W. Agyeman
b6eb26d324
Lowered timeout.
...
It was previous set to 10 seconds... since the timeout is in ms. Now
it's at 1 second. This represents 100 clocks at 100KHz I2c. Also, I
noticed general call mode was being set for the I2C which is not at all
something we want (the ability to address multiple devices at once).
I tested the changes with all my cameras. No problems. This was 4 units
(2 being the original protos).
2016-02-13 23:05:27 -05:00
Kwabena W. Agyeman
abac52534c
Reviewed code. No errors. Cleaned up some whitespace and unncessary
...
header.
2016-02-13 21:55:10 -05:00
iabdalkader
597b9aeba4
Emit proper JPEG headers for grayscale images.
2016-02-14 01:54:19 +02:00
Ibrahim Abd Elkader
21eabc63bf
Merge pull request #59 from kwagyeman/master
...
Made XALLOC better.
2016-02-14 00:59:50 +02:00
Kwabena W. Agyeman
456c4ab757
Made XALLOC better. Now the functions detect if you are trying to alloc
...
0 bytes and don't fail if you do that. Additionally, I added some
comments on behavior. (I studied what the gc functions did extensively
to know the behavior of this stuff). All changes have been tested with
code that does memory allocs.
2016-02-13 13:56:33 -05:00
iabdalkader
ee6192aeba
Use a faster BinDCT.
...
* A slightly faster BinDCT.
* JPEG time: GS:22ms RGB:62ms (tested on color-bar images).
2016-02-13 04:28:26 +02:00
Ibrahim Abd Elkader
2e9f25515b
Merge pull request #57 from kwagyeman/master
...
Made Soft I2C Pretty
2016-02-12 18:05:03 +02:00
Kwabena W. Agyeman
095c95a998
Made Soft I2C Pretty
2016-02-12 00:31:26 -05:00
iabdalkader
9685cbb727
Small JPEG optimizations.
2016-02-12 07:08:22 +02:00
iabdalkader
3acb5903a2
Optimize Grayscale JPEG.
...
* Skip UV tables for Grayscale images.
2016-02-12 04:40:36 +02:00
iabdalkader
f8bfbfabe9
Add sensor.get_id function to return PID.
2016-02-10 19:00:05 +02:00
iabdalkader
4ed583380e
Remove mp.h include
2016-02-10 18:24:30 +02:00
iabdalkader
a0b2f3f7fa
Fix frame request flag.
2016-02-09 03:40:20 +02:00
iabdalkader
0a8a1fd58c
Return error from extclk_config.
2016-02-09 02:44:26 +02:00
iabdalkader
312fabad13
Add jpeg line buffer to linker script.
2016-02-09 02:17:05 +02:00
iabdalkader
d4b13d21ce
Add support for special effects.
2016-02-09 02:08:07 +02:00
iabdalkader
dbd69a3a25
Remove framebuffer locking.
...
* Not needed anymore.
2016-02-09 01:11:25 +02:00
iabdalkader
74d084ee6b
Add frame size check to keypoints
2016-02-09 01:05:34 +02:00
iabdalkader
ed69e4b15a
Transfer raw frames line by line.
...
* Add HAL_DCMI_Start_DMA_MB to allow line by line transfers for
raw frames using DMA double buffering feature.
* This means bigger grayscale resolution that would not otherwise
fit into RAM.
* YUV to Grayscale conversion on the fly (as the frame being read).
* It's possible to perform differencing (and maybe JPEG) on the fly.
* Additionally, FPS for grayscale should be exactly like RGB
(since there's no additional step after capturing the frame)
2016-02-08 16:53:11 +02:00
iabdalkader
bcb72ef7ff
Use a single resolution table.
2016-02-08 16:11:57 +02:00
iabdalkader
dd8fcf0ece
Better JPEG scaling.
2016-02-07 03:20:04 +02:00
iabdalkader
4627f21623
Remove extra resolution from size table.
2016-02-07 02:39:32 +02:00
iabdalkader
fa27c540ee
Use __REV16 to swap pixels
2016-02-07 02:36:26 +02:00
iabdalkader
69cd07e923
Add sanity checks and meaningful error messages.
2016-02-07 02:34:47 +02:00
iabdalkader
9a18497b56
Adjust board configs.
2016-02-07 02:34:03 +02:00
iabdalkader
07e0385bf0
Add HQVGA resolution.
2016-02-07 02:32:16 +02:00
iabdalkader
f074958595
Use __REV instructions in imlib
2016-02-06 23:57:59 +02:00
iabdalkader
700d82642b
Enable H/V zoom to support arbitrary scaling.
2016-02-06 22:34:00 +02:00
iabdalkader
70d3ffcb50
Enable selftests
2016-02-06 21:56:01 +02:00
iabdalkader
79264b6ab0
Fix bug in integral image.
...
* First row was skipped.
2016-02-06 21:15:39 +02:00
iabdalkader
05da962b73
Write the LSBs of VOUTSIZE and HOUTSIZE
2016-02-06 20:36:18 +02:00
iabdalkader
7fff65dbd2
Add boards dir to Makefile
2016-02-06 19:32:35 +02:00
iabdalkader
eb97a51183
Fix the ABI version to avoid breaking older IDE's
2016-02-06 19:19:55 +02:00
iabdalkader
b8e442b60c
Add openmv board config headers and remove hal_msp.h
2016-02-06 19:13:45 +02:00
iabdalkader
cf641af6b0
Add command to return script running flag.
...
* Return script running flag to disable/enable execute and stop buttons.
* Up ABI version
2016-02-06 17:59:52 +02:00
iabdalkader
d76fa2b558
Remove the JPEG offset buffer.
...
* Set the address of the DMA transfer to addr + offset to allow JPEG
Compression of the framebuffer without overwriting image pixels.
* This saves 1KBs of stack and conditionals in jpeg_put_bytes/char.
2016-02-06 17:13:53 +02:00
iabdalkader
544dee93ae
Remove USBDBG clear flags (not needed anymore).
2016-02-06 17:03:50 +02:00
iabdalkader
c0a9e5279f
Use soft_reset in main.
...
* This fixes the issue with script upload failing when gc is locked,
and resets peripherals to their initial state.
2016-02-06 15:32:12 +02:00
iabdalkader
fb429f175f
Lower sleep time after sensor power cycle.
2016-02-06 15:31:26 +02:00
iabdalkader
14df7fc05f
Add sensor_init0.
...
* This resets the framebuffer state.
2016-02-06 04:08:39 +02:00
iabdalkader
14891b1cc8
More JPEG cleanup
2016-02-06 03:53:48 +02:00
iabdalkader
b2480801d1
Small JPEG optimizations.
2016-02-06 00:14:25 +02:00
iabdalkader
7f76f68d82
Fix quantization tables initialization.
2016-02-05 23:55:52 +02:00
iabdalkader
5721ab40da
Adjust stack and heap sizes
2016-02-05 23:55:30 +02:00
iabdalkader
a231b17055
JPEG-compress the frame buffer to lower bandwidth.
2016-02-05 02:42:03 +02:00
iabdalkader
ab833d4302
Set all sensors XCLK to 12MHz
2016-02-05 02:41:03 +02:00
iabdalkader
ec1de1c2eb
Replace sensor struct clock polarities with flags.
2016-02-05 02:38:07 +02:00
iabdalkader
e0c5822c28
Raise exception if pixel format is not supported.
2016-02-05 02:15:22 +02:00
iabdalkader
8e60588455
Support in place JPEG compression.
...
* Modify the JPEG compressor to allow in place compression.
2016-02-04 21:56:48 +02:00
iabdalkader
e9147d4594
Remove extra byte in JPEG image size.
2016-02-04 07:04:20 +02:00
iabdalkader
7fff1dc12b
Add Grayscale Support to the JPEG compressor.
2016-02-04 07:03:49 +02:00
iabdalkader
bab1ec7dbf
Mirror image when colorbar is enabled.
...
* This allows the OV7725 to pass self-tests without changes.
2016-02-04 00:38:30 +02:00
iabdalkader
3627778d80
Increase heap to 0xCB00
2016-02-04 00:19:04 +02:00
iabdalkader
562e2ce9ca
Add FSIN pin.
2016-02-04 00:07:50 +02:00
iabdalkader
d378a1bbfa
Remove unused defines.
2016-02-04 00:03:01 +02:00
iabdalkader
22154c2bad
Adjust PLL setting.
...
* XCLK=12MHz PCLK=48MHz
2016-02-04 00:01:15 +02:00
iabdalkader
fd418576c0
Optimize JPEG library.
2016-02-04 00:00:29 +02:00
iabdalkader
726e3a8e21
Add RGB565 to YUV lookup table
2016-02-03 23:45:20 +02:00
iabdalkader
23fe7b6363
Move framebuffer sync code before snapshot code.
...
* This forces the IDE to read the image before any drawing, which
Fixes the double buffering issue.
2016-02-03 02:47:54 +02:00
iabdalkader
38efbd5bbe
Add missing register.
2016-02-02 00:43:12 +02:00
iabdalkader
5203fd8434
Pass slave address to SCCB_Read/Write
...
* Add slave address to sensor struct.
* Pass slave address to every SCCB_Read/Write function.
* Pass a pointer to the sensor struct to sensor functions.
2016-01-28 14:09:12 +02:00
iabdalkader
6752aeacf3
Add support for OV7725
2016-01-28 12:42:17 +02:00
iabdalkader
756c5965d4
Add initial OV7725 driver
2016-01-28 12:40:55 +02:00
iabdalkader
b4aeaa4f16
Add SCCB_Probe function.
...
* Remove hard-coded SCCB slave address.
* Add probe function to find slave address.
2016-01-28 12:37:29 +02:00
iabdalkader
3bad11fd61
More fixes to MLX driver
...
* Fix read raw to return rotated ir readings.
* Add refresh rate parameter to mlx_init.
* Rename mlx_read to mlx_read_ir.
* Add mlx_read_ta to return the ambient temperature.
2016-01-25 23:30:17 +02:00
iabdalkader
7358952c14
Misc fixes to the MLX driver
2016-01-25 22:31:57 +02:00
iabdalkader
5677c28b4d
Update MLX driver.
...
* Update MLX driver to support the new MLX90621.
2016-01-24 02:13:31 +02:00
iabdalkader
a846005c16
Add more comments to imlib_threshold
2015-10-04 01:15:30 +02:00
iabdalkader
b55a93069d
Remove unused prototype.
2015-10-04 01:09:52 +02:00
iabdalkader
2bda1d13a3
Increase sensor_snapshot timeout
2015-10-04 00:26:46 +02:00
iabdalkader
5a8c7ec311
Add PY_ASSERT_FALSE_MSG to py_assert.h
2015-10-04 00:10:28 +02:00
iabdalkader
5924de6ee3
Increase sensor_snapshot timeout.
2015-09-26 03:25:45 +02:00
iabdalkader
2b9b69bf92
Add OPENMV1 WINC1500 BSP header
2015-09-24 14:29:38 +02:00
iabdalkader
4f392e4639
Rename pincfg.h to stm32f4xx_hal_msp.h
2015-09-24 14:21:39 +02:00
iabdalkader
a1e4f79256
Clean up pincfg.h
2015-09-24 14:15:10 +02:00
iabdalkader
8a28cba8c7
Fix servo timers
...
* call servo_init in main
* Fix servo timer, number of channels and pin mappings.
2015-09-24 02:04:51 +02:00
iabdalkader
088b39c521
Remove redundant m2m_ota source file
2015-09-23 16:31:47 +02:00
iabdalkader
d11e8f7212
Inline systick_has_passed call in sensor_snapshot
2015-09-23 02:03:26 +02:00
iabdalkader
8fabc9b35a
Fix image module globals_dict_table
2015-09-22 02:27:51 +02:00
iabdalkader
e3f41d674e
Add sensor_snapshot timeout
2015-09-22 01:34:21 +02:00
iabdalkader
47ae5a7669
Add ATWINC1500 driver
2015-09-15 02:41:36 +02:00
iabdalkader
54c77b2f48
Add systick sleep and current_millis prototypes.
2015-08-20 16:38:07 +02:00
iabdalkader
4491000c44
Remove some old unused files
...
* omv/systick.h
* omv/stm32f4xx_it.c
2015-08-20 16:29:11 +02:00
iabdalkader
78a6d54c89
Remove old systick.c
2015-08-20 16:26:55 +02:00
iabdalkader
d031ea87f1
Implement set_pixel
2015-08-20 16:25:37 +02:00
iabdalkader
940f3a0d7d
Disabled self tests for OMV1
...
* RGB QVGA doesn't fit in OMV1's RAM, fix the script or write another one.
2015-08-18 23:54:49 +02:00
iabdalkader
d7130234d3
Return script buffer without copying.
...
* Since IDE interrupts are enabled after compiling the script, we can
just return a pointer to the script buffer without copying it first.
2015-08-17 19:48:45 +02:00
iabdalkader
b33f7b4c29
Add functions to disable/enable IDE interrupts
...
* This constrains IDE interrupts avoiding the need for critical sections.
2015-08-17 19:48:18 +02:00
iabdalkader
bf9401ee6f
Remove unused #define
2015-08-16 01:11:05 +02:00
iabdalkader
20b823333a
Free script buffer after copying it.
2015-08-16 00:16:16 +02:00
iabdalkader
02ac02643e
Increase QCIF res
2015-08-15 16:54:09 +02:00
iabdalkader
891f6ab96b
Move FS cache to main SRAM for OMV2
2015-08-15 16:50:14 +02:00
iabdalkader
9e19e0ffc6
Re-enable TIM3 to flush storage periodically.
2015-08-14 16:02:11 +02:00
iabdalkader
801f74c2da
Remove global misc functions
...
* Remove redundant functions
2015-08-13 23:18:59 +02:00
iabdalkader
7d949694ef
Fix main script FS template
2015-08-13 23:15:57 +02:00
iabdalkader
eb29fc8894
Add sanity checks to draw_string
2015-08-13 23:15:35 +02:00
iabdalkader
83c52c020f
Fix draw_string to support Grayscale
2015-08-13 23:14:52 +02:00
iabdalkader
533f0e3e8f
Re-init MP state and use pyexec_file/str
...
* Use pyexec_file/str with re-raise flag
* re-init MP state before executing scripts
2015-08-13 00:22:55 +02:00
iabdalkader
cbbd93b0ca
Add the selftest script in main
2015-08-09 22:06:57 +02:00
iabdalkader
d9d991054d
Clear debug flags when initializing usbdbg
2015-08-09 21:58:31 +02:00
iabdalkader
54288c5351
Add image module
...
* Move Image class and misc functions to image module
2015-08-09 13:00:06 +02:00
iabdalkader
0dffedda92
Fix typo
2015-08-08 00:33:26 +02:00
iabdalkader
fa12a1a704
Log fatal errors to file
2015-08-08 00:31:59 +02:00
iabdalkader
4376e87609
Revert sensor_init and check error after USB init
2015-08-08 00:30:39 +02:00
iabdalkader
9af3b9eaba
Return different error codes in sensor_init
2015-08-07 23:31:45 +02:00
iabdalkader
aaeaff476d
Delay sensor_init
...
* Call sensor_init after initializing USB mass storage to log errors.
2015-08-07 23:16:30 +02:00
iabdalkader
b99df66659
Wait for IDE to read the frame buffer
...
* Wait for the IDE to read the frame buffer after trying the lock.
2015-08-07 17:55:11 +02:00
iabdalkader
5f54935378
Fix internal ADC channels readings
2015-08-06 23:13:09 +02:00
iabdalkader
35df760a8c
Init one ADC channel in ADCAll
...
* ADC channel 5 in OMV2
2015-08-06 12:20:58 +02:00
iabdalkader
4c9982b7e9
Rename usbdbg clear script to clear flags
2015-08-06 12:20:17 +02:00
iabdalkader
99bedb06b6
Move firmware files to board directories.
2015-08-01 11:16:59 +02:00
iabdalkader
939c47da6c
Add ring buffer
2015-08-01 11:07:22 +02:00
iabdalkader
8c1ff900a8
Fix OPENMV1 build
...
* Fix board config files
* Fix linker script
* Fix sdcard CD
2015-08-01 10:56:37 +02:00
iabdalkader
856938fea5
Add image get/set pixel
2015-07-31 14:13:09 +02:00
iabdalkader
78abfb87e6
Add PY_ASSERT_TRUE_MSG
2015-07-31 14:11:26 +02:00
iabdalkader
269345303b
Add image subscr
2015-07-31 12:37:45 +02:00
iabdalkader
e446e03f9d
Remove check for unused pyexec_mode_kind
2015-07-30 17:37:31 +02:00
iabdalkader
b42da07430
Remove reset_mode
2015-07-30 17:33:12 +02:00
iabdalkader
d43eda7e51
Move parse and compile inside exception handler
...
* This allows syntax errors to be caught and printed
2015-07-29 23:04:41 +02:00
iabdalkader
86a141e51a
Add set color bar function
2015-07-29 22:32:05 +02:00
iabdalkader
f6d5129cc7
Clear fb ready flag when stopping script
...
* This stops the IDE from reading the same frame buffer
2015-07-29 22:04:36 +02:00
iabdalkader
4174eaf029
Generate binaries in firmware dir
2015-07-28 20:33:05 +02:00
iabdalkader
3d31d2662a
Update USB VID/PID
2015-07-21 17:42:31 +02:00
iabdalkader
4965343069
Update micropython branch to r1.4.4
2015-07-18 07:05:39 +02:00
iabdalkader
f34b07f015
Update print function
2015-07-18 07:05:13 +02:00
iabdalkader
7fbe54ad4e
Update headers for MP 1.4.4
2015-07-18 07:04:46 +02:00
iabdalkader
39b40526d3
Update Makefile for MP 1.4.4
2015-07-18 06:58:47 +02:00
iabdalkader
302dde7017
Update MP
...
* Add HardFault debugging.
2015-07-18 05:58:31 +02:00
iabdalkader
f7d71cd594
More parse and compile script to main thread
2015-07-13 07:51:48 +02:00
iabdalkader
e2f634675f
Rename ptr to mem for consistency.
2015-07-13 07:07:46 +02:00
iabdalkader
a26f752285
Change memory exception to MemoryError
2015-07-13 07:07:02 +02:00
iabdalkader
b5e90c4c8d
Add xalloc_fail
2015-07-13 07:06:25 +02:00
iabdalkader
a94b324bb4
Call DCMI DMA abort in sensor reset function
...
* Call DMA abort in sensor reset function just in case there's a
DMA request in progress.
2015-07-12 07:58:41 +02:00
iabdalkader
4618aeb496
Enable DCMI interrupts
2015-07-12 07:57:34 +02:00
iabdalkader
16fdecf7f4
Remove hard sensor reset
2015-07-12 04:11:44 +02:00
iabdalkader
c76c75e7b0
Fixe jpeg mode assignment
2015-07-12 03:15:10 +02:00
iabdalkader
54bf1b4334
Add JPEG mode to dcmi_config
...
* This also disables DCMI interrupts the second time dcmi_config is called
2015-07-12 02:24:46 +02:00
iabdalkader
3f9d97c511
Increase heap
2015-07-12 01:48:33 +02:00
iabdalkader
fb7d17a127
Remove xalloc_init
2015-07-12 00:38:26 +02:00
iabdalkader
c5fb6657fd
Use nlr_raise in xalloc
2015-07-12 00:36:48 +02:00
iabdalkader
765632af91
Check number of stages when loading cascade
2015-07-10 04:10:03 +02:00
iabdalkader
57ebe7eb9c
Fix the number of features and rectangles
...
* Fix the number of features and rectangles when loading cascades from flash
2015-07-10 02:58:07 +02:00
iabdalkader
e273e43961
Add stages kw arg to load cascade function
2015-07-10 02:57:30 +02:00
iabdalkader
e00d92f6f7
Fix find_features
...
* Add all objects to returned list.
2015-07-10 01:36:26 +02:00
iabdalkader
9d51051ba8
Return FR_NO_FILE if built-in cascade not found
2015-07-09 04:38:07 +02:00
iabdalkader
d0d1883354
Add Built-in Haar Cascades
...
* Add common cascades to flash
2015-07-09 03:49:57 +02:00
iabdalkader
ff611f3706
Increase flash storage size
2015-07-08 23:08:41 +02:00
iabdalkader
4ff2d795bd
Fix text length
2015-07-08 23:00:10 +02:00
iabdalkader
42b439a52e
Change IDE interrupt type
...
* Change IDE interrupt from OSError to Exception
2015-07-08 22:27:44 +02:00
iabdalkader
3ba0612a8a
Add another standard baudrate for the IDE
2015-07-08 02:39:38 +02:00
iabdalkader
0ffb74df7a
Lower pixel clock frequency to 54MHz
...
* Lower pixel clock frequency to be within the DCMI specs (max 54MHz)
2015-07-04 21:13:16 +02:00
iabdalkader
182a844cd2
Add FW version command
...
* Add FW version command to usbdbg.
* Add FW version function to openmv.py
* Check for major version in the IDE.
2015-07-04 03:44:42 +02:00
iabdalkader
2de4c717eb
Cleanup the MLX module
...
* Set update rate to 32Hz
* Use ambient temp to scale IR data
* Return a GRAYSCALE or RAINBOW image
2015-05-07 09:54:39 +03:00
iabdalkader
a674b99474
Small fixes to stmhal/spi
2015-05-05 14:04:56 +03:00
iabdalkader
d38112fb3c
Add set_saturation function
2015-05-05 14:02:44 +03:00
iabdalkader
54ae5ff425
Add new resolution for LCD
2015-05-05 13:39:16 +03:00
iabdalkader
e540a52f29
Fix soft I2C pin mapping
2015-05-05 13:29:53 +03:00
iabdalkader
09e77b5da8
Fix volume labels and root dir
2015-05-04 11:51:46 +03:00
iabdalkader
5bd4876989
Update MP
2015-05-03 13:13:09 +03:00
iabdalkader
8a68746a37
Increase heap size
2015-05-03 11:04:16 +03:00
iabdalkader
1879988bcb
Set correct stack limit for MP
2015-05-03 10:58:58 +03:00
iabdalkader
aed7c8678e
Clear frame ready in sensor_init
2015-05-03 10:25:15 +03:00
iabdalkader
ace7b976fb
Remove init_modules
...
* init modules is not needed anymore.
2015-05-03 10:22:07 +03:00
iabdalkader
4d92e632fc
Use MCO as sensor clock source for OMV2
2015-05-01 04:59:28 +03:00
iabdalkader
b9801708c8
Fix SDCARD chip detect
2015-05-01 04:58:39 +03:00
iabdalkader
1c66afe971
Fix mlx undefined reference
2015-05-01 04:58:16 +03:00
iabdalkader
117b6d862d
Alloc only k rows for median filter
2015-05-01 04:57:14 +03:00
iabdalkader
76c96cab61
Use FB for intergal images for OMV1/2
2015-05-01 04:56:41 +03:00
iabdalkader
74cba716b7
Fix image window for OMV2
2015-05-01 04:44:53 +03:00
iabdalkader
57cccca3f3
Add support for OpenMV2
2015-05-01 04:44:31 +03:00
iabdalkader
338320ad3c
Update MP
2015-04-29 04:13:07 +03:00
iabdalkader
fa7ab8f70a
Rename lab.c to lab_tab.c
2015-04-29 04:11:37 +03:00
iabdalkader
6231d528d2
Use pydfu.py instead of dfu-util
...
* Latest libusb broke dfu-util
* See https://github.com/walac/pyusb/issues/94
2015-04-29 04:08:39 +03:00
iabdalkader
6886c7b531
Update top Makefile
...
* Remove old modules
* Add MP modules
* Update for new MP code
2015-04-29 04:07:29 +03:00
iabdalkader
021fa678c9
Remove old pin config and MSP code
2015-04-29 04:05:58 +03:00
iabdalkader
fafd586b32
Disable LAB table for OpenMV1
...
* The LAB lookup is too big for 512K flash, it used to fit
at some point but not after enabling all the needed modules.
* The imlib_rgb_to_lab function is way slower than LAB lookup,
but it's a must to maintain support for OMV1
2015-04-29 04:02:40 +03:00
iabdalkader
8197a44c3f
Fix fast_cbrtf
2015-04-29 04:01:36 +03:00
iabdalkader
b244eb0ec8
Remove old modules from omv/Makefile
2015-04-29 00:46:45 +03:00
iabdalkader
977b068316
Use pendsv_nlr_jump_hard to schedule HW PENDSV
2015-04-29 00:46:02 +03:00
iabdalkader
7cd5e9e840
Add comment on RGB565->RGB888 macros
2015-04-28 23:29:50 +03:00
iabdalkader
aeee94726b
Remove USB from ISR section
2015-04-28 22:48:27 +03:00
iabdalkader
12fd9d5df2
Return compiled script instead of vstr
...
* Compile the script when the last part is received.
* This makes sure script_buf is not changed before it's compiled
2015-04-25 23:39:58 +03:00
iabdalkader
ecdcac56d2
Add missing headers
2015-04-25 23:34:42 +03:00
iabdalkader
9b068dd992
Add extern ffs_strerror
2015-04-25 23:06:36 +03:00
iabdalkader
1edee935d1
Add atomic sections to SCCB/I2C read/write
2015-04-25 22:28:02 +03:00
iabdalkader
a8928ca3b2
Move clock module to py_time
2015-04-22 02:27:37 +02:00
iabdalkader
6d2fafa947
Remove old peripheral modules
...
* Remove old peripheral modules
* Use MP's built-in modules
2015-04-22 00:07:20 +02:00
iabdalkader
74d6fa4314
Remove RNG
2015-04-15 23:40:11 +02:00
iabdalkader
74bb497e52
Update FatFS to 0.10c
2015-04-15 23:40:11 +02:00
iabdalkader
2ccfee7837
Update branch
...
* Flush 64-bytes packets with empty packets
2015-02-11 07:13:37 +02:00
iabdalkader
63b156cf48
Reset Rx/Tx pointers when switching cdc/debug mode
2015-02-08 11:19:01 +02:00
iabdalkader
754cce406c
Implement debugging over CDC
2015-02-08 11:12:24 +02:00
iabdalkader
a888f769bc
Fix temlate matching
2014-12-18 20:15:13 +02:00
iabdalkader
9ec26a53d0
Remove empty interface from second config
...
* Windows 7 64-bit doesn't like it.
2014-11-15 04:24:02 +02:00
iabdalkader
d48a7ef1e9
Update Makefiles to use DfuSe files.
2014-11-15 04:21:00 +02:00
iabdalkader
f524650881
Add DFU image
...
* Generate dfu image
2014-11-11 01:33:16 +02:00
iabdalkader
6a0af1f3c3
Use separate configs for cdc/hid and debug
...
* This is the only solution that works with libusb on Windows
* Soft-disconnect is used to switch between configs
2014-11-10 19:36:34 +02:00
iabdalkader
40d43a2a8c
Add OMV Debug Interface
2014-11-06 15:14:33 +02:00
iabdalkader
551a8be156
Increase delay for IDE
2014-11-02 15:53:02 +02:00
iabdalkader
cea31c1774
Use one request for locking and header
...
* Use one request for locking and FB header to save bandwidth
2014-11-01 15:58:52 +02:00
iabdalkader
899ec65507
Add delay if IDE tried to lock FB
...
* Fix #27
2014-10-31 13:57:17 +02:00
iabdalkader
ef9bf26981
Add Eye Detector
2014-10-25 15:33:02 +02:00
iabdalkader
cf92de7c8a
Modify LBP to use a cascade
2014-10-21 16:51:07 +02:00
iabdalkader
a2780e5a5a
Add invert,binary
2014-10-21 16:47:00 +02:00
iabdalkader
56c7bb31ab
Fix typo
2014-10-20 13:17:33 +02:00
iabdalkader
e4003e3e96
Enable UXGA
2014-10-06 17:37:51 +02:00
iabdalkader
07b1269ed0
Fix read/write return mp_obj_t
2014-10-05 00:14:25 +02:00
iabdalkader
4891184b67
Fix uart read/write
2014-10-03 22:56:39 +02:00
iabdalkader
8b0456b93e
Update MP branch
2014-10-02 15:54:02 +02:00
iabdalkader
97ea356e9d
Use larger stack limit
2014-10-02 01:38:50 +02:00
iabdalkader
b45dec9b1a
Use MP_ATOMIC_SECTION to enable/disable IRQs
2014-10-02 01:38:28 +02:00
iabdalkader
17d3e73f86
Update MP branch
2014-10-01 01:41:38 +02:00
iabdalkader
d2fd0f631d
Disable patch prog
2014-10-01 01:41:13 +02:00
iabdalkader
559da9af95
Remove RNG from ISR
2014-10-01 01:35:59 +02:00
iabdalkader
db7bce66d1
Update STM Cube to 1.3
2014-10-01 01:26:03 +02:00
iabdalkader
90309715c9
Pass RGB to image_threshold and convert to LAB
2014-09-28 16:40:06 +02:00
iabdalkader
2ba464310e
Fix XYZ lookup
2014-09-28 15:37:23 +02:00
iabdalkader
2706b0c41b
Move xyz table to /img
2014-09-28 15:35:51 +02:00
iabdalkader
3fca55514a
Remove commented code
2014-09-27 18:57:12 +02:00
shimniok@gmail.com
dbb2019b9a
Added feature to reset into DFU from omv onboard software when receiving USBDB_BOOT
2014-09-26 22:55:01 -06:00
shimniok@gmail.com
cbace2759a
added functionality for starting bootloader via USBDBG_BOOT
2014-09-26 11:15:27 -06:00
iabdalkader
8467c67f06
Add System Reset Command
...
* Add sys reset to USBDBG and IDE
2014-09-25 03:37:00 +02:00
iabdalkader
d6375f0292
Use gpio module to reg interrupts
2014-09-25 00:14:39 +02:00
iabdalkader
422778e7b3
Add priority, sub_priority to gpio_init_exti
2014-09-24 23:56:30 +02:00
iabdalkader
a70dc7052d
Fix GPIO pin defs
2014-09-24 23:55:15 +02:00
iabdalkader
0224c29588
Fix GPIO pin mapping
2014-09-24 23:26:59 +02:00
iabdalkader
04c1fe0d0e
Fix FAST ROI
...
* Find all KPs then discard based on ROI (for small ROIs)
2014-09-24 22:56:45 +02:00
iabdalkader
ec8ed77f27
Fix SDRAM Timings
2014-09-24 22:25:27 +02:00
iabdalkader
ce3d435137
Add load_lbp
2014-09-24 22:25:14 +02:00
iabdalkader
3a04f1c74a
Optimize PPM writer
2014-09-20 09:02:24 +02:00
iabdalkader
65cd8a133a
Update license
...
* Switch to MIT
* Add license notice to source files
2014-09-20 05:09:52 +02:00
iabdalkader
bd56912fb6
Fix uSD SPI issue corrupting framebuffer
2014-09-20 03:34:54 +02:00
iabdalkader
5f51438029
Add LBP
2014-09-20 02:02:22 +02:00
iabdalkader
a25650562c
Cleanup main
2014-09-18 19:23:10 +02:00
iabdalkader
27f5ae0093
Move FS cache to heap
...
* This will alloc FS cache only if it's needed.
* Increase heap to ~45K
2014-09-18 19:22:21 +02:00
iabdalkader
e01565cdb5
Fix quant table init
2014-09-17 22:16:04 +02:00
iabdalkader
c41cbc1e85
Format LICENSE
2014-09-17 21:42:23 +02:00
iabdalkader
f470517b2b
Disable a few modules, update qstr
2014-09-17 21:40:30 +02:00
iabdalkader
8493538076
Remove old syscalls file
2014-09-17 21:40:13 +02:00
iabdalkader
a44be5d38b
Compile for OMV2 only
2014-09-17 21:39:35 +02:00
iabdalkader
8854f0a9d5
Add JPEG encoder
2014-09-17 21:39:19 +02:00
iabdalkader
9cb9c4b892
Move more Objects to ISR section
2014-09-17 21:32:55 +02:00
iabdalkader
cc522583bb
Fix lab,xyz tables
2014-09-17 21:20:19 +02:00
iabdalkader
73543a727e
Expand heap a bit
2014-09-12 20:55:29 +02:00
iabdalkader
dcd65daee5
Add threshold, scale KW args to VJ detector
2014-09-12 20:53:43 +02:00
iabdalkader
52c71f387e
Add STD to cascade.
2014-09-12 19:00:21 +02:00
iabdalkader
9fa248f44b
Bug fixes and optimization
2014-09-12 18:59:49 +02:00
iabdalkader
c30adb6ea1
Fix scaled integral
2014-09-12 18:44:26 +02:00
iabdalkader
8bfc2c92a9
Add threshold param to haar detector
2014-09-12 14:32:18 +02:00
iabdalkader
918026a22c
Use ROI in Keypoint detector
2014-09-12 13:56:08 +02:00
iabdalkader
017b62d20d
Use integral_scaled
2014-09-12 13:48:17 +02:00
iabdalkader
b2d39d3e66
Add integral_scaled prototype
2014-09-12 13:42:37 +02:00
iabdalkader
065a3cb337
Remove SCALE_FACTOR const
2014-09-12 11:50:17 +02:00
iabdalkader
e898bbd15a
Fix assertion code
2014-09-12 11:47:14 +02:00
iabdalkader
4a0790635e
Check draw_line image boundaries
2014-09-11 11:49:36 +02:00
iabdalkader
04b013b33b
Cleanup
2014-09-11 07:35:33 +02:00
iabdalkader
fe778e07f9
Use integral_alloc
2014-09-11 07:08:35 +02:00
iabdalkader
f8e08b9749
Add draw_line
2014-09-11 07:05:36 +02:00
iabdalkader
1bb823b981
Add integral_alloc
2014-09-11 07:03:49 +02:00
iabdalkader
5ec8511f90
Better atan2f
2014-09-11 07:02:52 +02:00
iabdalkader
aa93ab7c42
Use bytes for scores
2014-09-11 06:05:21 +02:00
iabdalkader
44669573ce
Minor fixes
2014-09-11 05:52:43 +02:00
iabdalkader
649344c40c
More fixes to median
2014-09-11 03:40:51 +02:00
iabdalkader
54fec0f294
Fix median
2014-09-10 23:18:15 +02:00
iabdalkader
b8d989be57
Update MP branch
2014-09-10 23:16:37 +02:00
iabdalkader
7bb8bef8a1
Add Update FB Command
2014-09-10 22:22:50 +02:00
iabdalkader
949fbfef51
Save angle when writing descriptor
2014-09-10 19:00:13 +02:00
iabdalkader
c70960d17e
Add save descriptor from ROI
2014-09-10 18:59:34 +02:00
iabdalkader
d0cce539de
Fix atan2f
2014-09-09 17:04:04 +02:00
iabdalkader
50062826d2
Add missing header
2014-09-09 15:09:06 +02:00
iabdalkader
3270d08241
Add UART defs
2014-09-09 15:08:25 +02:00
iabdalkader
903f756a7c
Misc Fixes, add load/save descriptor
2014-09-09 15:07:22 +02:00
iabdalkader
06c8f77662
Add ceil
2014-09-09 15:02:34 +02:00
iabdalkader
2f5b82ec77
Update UART code
2014-09-05 18:09:07 +02:00
iabdalkader
41d531242a
Fix big frame size
2014-09-04 01:03:38 +02:00
iabdalkader
cf9be6bf71
Mirror/VFLIP when building for OMV2
2014-09-03 23:47:09 +02:00
iabdalkader
c12f559d62
Remove sd from isr section
...
* Overflows on OMV2
2014-09-03 23:37:19 +02:00
iabdalkader
734eca7e97
Add Color to draw_string
2014-09-03 19:16:41 +02:00
iabdalkader
d142654920
Add Scaled Integral Function
2014-09-03 16:17:46 +02:00
iabdalkader
2e81c7a150
Cleanup Haar code
2014-09-03 16:14:17 +02:00
iabdalkader
b2eb44910a
Add subimg
2014-09-02 16:29:20 +02:00
iabdalkader
5fdd6e09a3
Add font rendering
2014-09-01 23:43:06 +02:00
iabdalkader
06c9253644
Rework blob counting
2014-09-01 16:52:14 +02:00
iabdalkader
29202f1f99
Add morphological operations, fix threshold
2014-09-01 16:50:58 +02:00
iabdalkader
526efdac04
Small Optimizations
2014-09-01 16:17:33 +02:00
iabdalkader
ad1daadd69
Add more objects to .isr_vector
2014-09-01 15:41:19 +02:00
iabdalkader
82e46987b1
Remove deinit
2014-09-01 15:40:10 +02:00
iabdalkader
4a39ffc65b
Add module names for debugging
2014-08-31 15:12:11 +02:00
iabdalkader
99657a2207
Fix I2C init/deinit
2014-08-31 14:13:29 +02:00
iabdalkader
b621643763
Opt imlib_integral_image
2014-08-30 19:19:07 +02:00
iabdalkader
19121dec9f
Fix exported functions
2014-08-30 18:35:37 +02:00
iabdalkader
d8c057d935
Optimize blob alloc
2014-08-30 17:31:28 +02:00
iabdalkader
8ab90c57c4
Optimize imlib_threshold
2014-08-29 22:39:58 +02:00
iabdalkader
f500fe28d1
Remove mp_sys_exit
2014-08-29 19:38:04 +02:00
iabdalkader
cb3e021a40
Enable EXTI
2014-08-29 19:37:19 +02:00
iabdalkader
22323eb1a3
Remove dead object files
2014-08-29 19:36:49 +02:00
iabdalkader
78eee3fcc6
Resize FLASH storage
2014-08-29 19:36:32 +02:00
iabdalkader
459ec97aad
Use PKHBT to pack SMUAD operands
2014-08-29 13:21:22 +02:00
iabdalkader
25abc200f9
Add FAST/FREAK detector
...
* Remove SURF code and MP functions
* Add FAST/FREAK keypoint extractor/descriptor
* Add FAST/FREAK Python example
2014-08-27 17:34:58 +02:00
iabdalkader
0aeab28640
Update MP Modules
...
* Update all modules for new API
* Move modules to built-in
2014-08-26 20:32:43 +02:00
iabdalkader
590bd22e2e
Cleanup linker script
2014-08-26 17:30:03 +02:00
iabdalkader
f1d1aa5c67
Cleanup all Makefiles
...
* Add verbose option
* Fix link dependencies
2014-08-26 17:17:59 +02:00
iabdalkader
165ed73659
Export uwTick
2014-08-26 15:47:16 +02:00
iabdalkader
8355ddc338
Enable _FS_RPATH
2014-08-26 15:44:00 +02:00
iabdalkader
d61526a974
Add atan2, log2 and log
2014-08-26 12:09:51 +02:00
iabdalkader
82efa9042d
Throw Exception When malloc Fails
2014-08-25 20:55:52 +02:00
iabdalkader
7038cb25c6
Export gc_collect and random
2014-08-25 14:37:17 +02:00
iabdalkader
bf3f6633ea
Use SIMD in Alpha Blend
2014-08-25 14:36:36 +02:00
iabdalkader
1117c49ff9
Use LOW GPIO Speed
2014-08-25 14:34:01 +02:00
iabdalkader
e13e902d80
Add 1 to max temp scale
2014-08-25 14:33:44 +02:00
iabdalkader
9572faf78f
Add scaled function
...
* Returns new scaled image
2014-08-25 14:32:31 +02:00
iabdalkader
45c3a5d3ae
Use DMA for SPI transfers
2014-08-25 14:32:16 +02:00
iabdalkader
9752af11df
WFI When sleeping
2014-08-25 14:27:10 +02:00
iabdalkader
e7de5bc4f1
Disable FE interrupt in direct mode
2014-08-25 14:25:51 +02:00
iabdalkader
cc09ad155e
Use SDRAM for FB base
2014-08-23 10:47:42 +02:00
iabdalkader
e21794b4cb
Reset DMA stream before re-init
2014-08-23 10:47:01 +02:00
iabdalkader
777fafc8ef
Fix ld script
2014-08-21 12:30:09 +02:00
iabdalkader
5d5f801051
Add USR_SPI defs
2014-08-20 22:14:30 +02:00
iabdalkader
9e0136dbc8
Add proper fb locking
2014-08-20 21:17:27 +02:00
iabdalkader
dac7beadc6
Add mutex
2014-08-20 21:10:43 +02:00
iabdalkader
43aa7688a6
Fix RNG
2014-08-19 19:06:27 +02:00
iabdalkader
729fedfe6f
Use new scale function
2014-08-18 12:40:13 +02:00
iabdalkader
f1861a332a
Add scale, blit and blend functions
...
* Add scale, blit, blend and rainbow
* Update imlib header
* Export new functions to MP
2014-08-18 12:36:47 +02:00
iabdalkader
d151388e73
Add SDRAM region
2014-08-18 10:40:50 +02:00
iabdalkader
133f2fccb9
Retry to init before failing
2014-08-18 10:36:32 +02:00
iabdalkader
074557265d
Add rainbow filter
2014-08-18 10:33:46 +02:00
iabdalkader
5722436a63
Add MLX90620 driver
2014-08-18 10:26:32 +02:00
iabdalkader
563ab52eca
Add Soft I2C
2014-08-18 10:21:48 +02:00
iabdalkader
a0e99939ad
Pass Target to CPP
2014-08-18 10:12:03 +02:00
iabdalkader
02999f2432
Rename stm32f407_hal_msp
2014-08-10 19:42:14 +02:00
iabdalkader
12d062d1bc
Enable GPIO and SPI
...
* Fix GPIO/SPI code
* Use buffers in SPI read/write
* Add pin qstrs OMV2
* remove old led files
* Update LCD user examples
2014-08-10 19:39:19 +02:00
iabdalkader
a93cd7fd7a
Use CPP to generate linker scripts
2014-07-31 06:26:19 +02:00
iabdalkader
52da153c0c
Fix sdram init function
2014-07-31 06:19:23 +02:00
iabdalkader
4215697e00
Add checks for OPENMV2
2014-07-31 06:12:53 +02:00
iabdalkader
cb3af4e25a
Fix comment typo
2014-07-31 05:59:04 +02:00
iabdalkader
046d7afa98
Enable GPIOF clock
2014-07-31 05:57:56 +02:00
iabdalkader
4242a753fe
Fix SDRAM test
2014-07-31 05:57:38 +02:00
iabdalkader
991645da8b
Fix F429 PLLs
2014-07-23 08:09:26 +02:00
iabdalkader
ba49bc9c9f
Add SDRAM driver
...
* Add SDRAM driver
* Add SDRAM to linker script
* Add FMC drivers to Makefile
2014-07-23 08:08:29 +02:00
iabdalkader
b67ee0e5f3
Add SD SDIO driver
2014-07-23 08:06:56 +02:00
iabdalkader
92ded74fd9
Add IR LED Support
2014-07-21 03:55:54 +02:00
iabdalkader
381e24d315
Add support for STM32F429
2014-07-17 09:16:04 +02:00
iabdalkader
35fdb04aa9
Enable CCM clock in startup code
2014-07-17 09:13:56 +02:00
iabdalkader
6389cce8b3
Export select
2014-07-14 04:17:11 +02:00
iabdalkader
dfab091f25
Add select
2014-07-14 03:43:21 +02:00
iabdalkader
932398820b
Keep track of socket state
2014-07-14 03:42:29 +02:00
iabdalkader
9b145bd4c7
Fix inet_ntop endianness
2014-07-14 02:56:50 +02:00
iabdalkader
2fd8af0bf5
Disable IRQs around spi calls
...
* Fixes SPI transfer failures.
* Set highest baudrates for SD and CC3K
2014-07-09 04:34:16 +02:00
iabdalkader
78ad46dd34
Add set_quality for JPEG mode
2014-07-09 04:31:39 +02:00
iabdalkader
366171b042
Replace spi_recv with macro
...
* Set baudrate prescaler to 2
2014-07-07 04:59:14 +02:00
iabdalkader
d30c06f55a
Set max Rx/Tx packet size
2014-07-07 03:17:46 +02:00
iabdalkader
945331cace
Fix ucPad
2014-07-07 02:24:43 +02:00
iabdalkader
3681237acf
Split recv packets
2014-07-07 02:04:36 +02:00
iabdalkader
b07cb91357
Add CC patch programmer
2014-07-07 02:03:20 +02:00
iabdalkader
55ae590bcb
Update CC host driver
...
* Update to v1.15
2014-07-07 02:00:25 +02:00
iabdalkader
dcb4f34520
Remove old patch programmer
2014-07-06 23:38:29 +02:00
iabdalkader
84483d1d11
Update MP
2014-07-05 03:50:01 +02:00
iabdalkader
74280e07c6
Update CC3K SPI driver
2014-07-05 03:45:16 +02:00
iabdalkader
2d3abcf2f4
Add wlan and socket python modules
2014-07-05 03:41:43 +02:00