-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is it possible to use a better resolution than QQVGA? #75
Comments
Hi @senceryucel, Glad to hear that works out. It is possible to use a higher resolution, but it may require some change in the memory allocation of openmv (i.e., the new patch https://github.com/mit-han-lab/tinyengine/pull/74/files) for the framebuffer and increases the memory footprint of TinyEngine. I would recommend changing the following resolution configurations, regenerating the code using tinyengine/examples/detection_fpn.py Line 28 in d412e11
If you encounter some insufficient memory issue during compiling openmv, reducing the framebuffer in |
Hi @meenchen I've tried to change some stuff but in the end, I always get the memory overflowed error:
I am not sure which line do I need to change in As far as I understood, I am supposed to change the corresponding board config parts in the new patch file which you have written for OpenMV H7 Plus. So, I need to change one of these below lines:
But none of the changes I have made positively effected the result. I am having the same memory overflowing. Can you provide some further help if possible? Thanks a lot. |
Hi @senceryucel, Look like the memory overflowed by a lot (~600KB). I am not sure we can fit it into the board (only 1MB SRAM in total). Can you share the resolution you use? |
Hi @meenchen I have tried it for 2 different resolutions. First, it was VGA (640x480). It threw the overflow with more than 600kBs, then I changed the resolution to QVGA (480x320). The outputs belong to the QVGA configs. |
Hi @senceryucel, I don't think the board is able to fit these 2 resolutions, at least not with the current memory scheduler of TinyEngine. Since our memory scheduler is completely decoupled with the framebuffer of the openmv firmware, it means we need to maintain two input images at the same time. This can easily cause memory overflow for such high resolution. |
Hi, @meenchen Thanks for your reply. I could not understand why do we need to maintain two input images at the same time. Memory overflow for 640x480 resolution was approximately 610kB, where it was 595kB for 480x320. There is a huge difference between these 2 resolutions, but the memory overflow difference is too small. This made me think that if we can handle maintaining 2 inputs problem and achieve to handle only one at the same time, the memory usage will probably cut to the half of what it is right now. Hence we won't have any overflows (since the overflow is 600kB and the memory is 1MB, if we can make it to maintain 1 input instead of 2, the memory usage will be something like 800kB which will not produce any overflow). Am I correct? Your engine is like a treasure for me but I have to make it runnable on higher resolutions, at least for VGA. I hope there exists a way to do so. Thank you so much for all you have done so far and in advance. |
Hey, @meenchen
Like you have written in the person_detection_demo script,
we made our inference on QQVGA (160x128):
(since we use the frame buffer instead of an LCD). It worked very nice. However, I tried to test it with higher resolutions but there did not occur any detection. I was wondering if it is possible to have a higher resolution with using this engine. Thanks a lot in advance.
The text was updated successfully, but these errors were encountered: