Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Image Processing in STM32 Microcontroller

Status
Not open for further replies.

chandlerbing65nm

Member level 5
Joined
Apr 5, 2018
Messages
80
Helped
0
Reputation
0
Reaction score
1
Trophy points
8
Activity points
709
Hi everyone,

I have a project about classifying satellite images (SUN, SPACE and EARTH) depending on what the satellite camera captured.
I want to ask if it will be possible to implement image processing techniques in an STM32 Microcontroller since it be the MCU that I'll be using inside the satellite.

I'm only new to MCU's and been studying for this project.

Basically, the purpose is to detect if the camera captured the EARTH surface or not so that the other captured images (SUN and SPACE) will be automatically deleted by the MCU.

Been searching in the internet and so far, I haven't seen one project related or close to this.

Hope someone who is expert can answer. Thanks!
 

Hi,

for sure image processing is possible. I'd say "any" digtal processing is possible.
But image processing is a wide range. It may be just black/white, it may be gray scale (brightness modification)...up to 3D high color high resolution real time applications.

While non real time brightness control is no problem, even for much slower microcontrollers....
3D real time processing may be problematic.

Klaus
 

Which STM32 device are you talking about? They vary greatly in their memory size, speed, and other characteristics.
How fast do you need to make the determination?
Also what other activities is the MCU undertaking at the same time (such as running the satellite)?
Is the determination just (say) 'super bright = Sun; super dark = space; anything in between is earth' or is there some other characteristic(s) that you need to use (colour, density of light areas to tell the night-side from 'space'....)
Susan
 

Which STM32 device are you talking about? They vary greatly in their memory size, speed, and other characteristics.
How fast do you need to make the determination?
Also what other activities is the MCU undertaking at the same time (such as running the satellite)?
Is the determination just (say) 'super bright = Sun; super dark = space; anything in between is earth' or is there some other characteristic(s) that you need to use (colour, density of light areas to tell the night-side from 'space'....)
Susan
I will be using the stm32f407 which have the dsp/ipcv capability. It's job is solely on the image classification of images. MCU of the camera is separate. Also, the satellite is sun-synchronous so it will only capture the day time of the earth which I assume it will be easier to take out the outliers(sun and space) images.
 

I will be using the stm32f407 which have the dsp/ipcv capability. It's job is solely on the image classification of images. MCU of the camera is separate. Also, the satellite is sun-synchronous so it will only capture the day time of the earth which I assume it will be easier to take out the outliers(sun and space) images.
Hello,
I am afraid that on STM32F4 MCU it will be difficult to run image processing program. The best open-source library for image processing is "OpenCV (made by Intel). STM32F4 series MCUs have to little resources (Flash, RAM, no MPU etc.) to run "OpenCV". It is possible to run "OpenCV" (statically linked) on STM32F7 series of MCU (enough Flash and RAM), but it not have good performance. See these links:

http://medium.com/@deryugin.denis/how-to-run-opencv-on-stm32-mcu-b581f42b0766
http://github.com/embox/embox/wiki/OpenCV-on-STM32

It would be much better to run image processing application on MCU fast enough to run Linux OS for example STM32MP1 series. Such board can run Linux OS with good performance:
http://pl.mouser.com/ProductDetail/STMicroelectronics/STM32MP157C-DK2?qs=9r4v7xj2LnnSrQDGcA2diw==

The STM32MP157 MPU has three cores: one STM32F4 Cortex-M4 core (for realtime task) and two Cortex-A7 cores (with clock up to 650MHz). The board has also 4 GB DDR3 memory. The second question is image classification - it can be achived by AI technology (ANNs) in simple way. On STM32XX you can use ANNs using STM32Cube.AI

See links:

http://www.st.com/content/st_com/en/stm32-ann.html
http://www.emcu.eu/stm32-neural-networks-ai-machine-learning-predictive-maintenance/

Using these tools one is able to run "Micro Tensor-Flow" and use models created using "Keras" framework (Python based framework for ANNs and "deep learning" - most popular on The World):
http://keras.io/

Regards
 
Hello,
I am afraid that on STM32F4 MCU it will be difficult to run image processing program. The best open-source library for image processing is "OpenCV (made by Intel). STM32F4 series MCUs have to little resources (Flash, RAM, no MPU etc.) to run "OpenCV". It is possible to run "OpenCV" (statically linked) on STM32F7 series of MCU (enough Flash and RAM), but it not have good performance. See these links:

http://medium.com/@deryugin.denis/how-to-run-opencv-on-stm32-mcu-b581f42b0766
http://github.com/embox/embox/wiki/OpenCV-on-STM32

It would be much better to run image processing application on MCU fast enough to run Linux OS for example STM32MP1 series. Such board can run Linux OS with good performance:
http://pl.mouser.com/ProductDetail/STMicroelectronics/STM32MP157C-DK2?qs=9r4v7xj2LnnSrQDGcA2diw==

The STM32MP157 MPU has three cores: one STM32F4 Cortex-M4 core (for realtime task) and two Cortex-A7 cores (with clock up to 650MHz). The board has also 4 GB DDR3 memory. The second question is image classification - it can be achived by AI technology (ANNs) in simple way. On STM32XX you can use ANNs using STM32Cube.AI

See links:

http://www.st.com/content/st_com/en/stm32-ann.html
http://www.emcu.eu/stm32-neural-networks-ai-machine-learning-predictive-maintenance/

Using these tools one is able to run "Micro Tensor-Flow" and use models created using "Keras" framework (Python based framework for ANNs and "deep learning" - most popular on The World):
http://keras.io/

Regards

This is Gold! Thank you!
 
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top