Ideas about super resolution image generation using EdgeImpluse

Hello everyone,

Do you have any ideas about super resolution images generation with the support of EdgeImpulse platform and what is the proper hardware device that can handle this task?

Thanks for your support

Hi @Hilal - image super-resolution is an interesting field! I can see a lot of useful applications for it.

I’ll admit I don’t know too much about the types of model architectures and techniques used for deep learning approaches to SR. That said, with my current knowledge, my understanding is that Edge Impulse is not the best solution for this task.

In order to do SR, you need to provide a high resolution image to the model as a reference for the loss calculation during training. The Edge Impulse platform has not been developed to handle this. Thus far on the image front, we have focused on standard labels for image classification tasks and bounding boxes for object detection tasks.

Thank you, Brian. You are right about EdgeImpulse focus. However, I was thinking if there is a pre-processing block that can enhance image quality especially when using low resolution camera to improve classification results or improve object detection performance metric

Oh, well that’s a different story! Thanks for clarifying, @Hilal.

Edge Impulse has the concept of processing blocks. These blocks represent processing tasks that will occur on device before passing the generated features to your model (in a learning block).

At the moment we do not have a pre-built block that performs image super-resolution processing. However, you can create custom processing blocks, which are very flexible containers around your code, in any programming language, that can be included in your ML pipeline. The caveat here is that we cannot (yet!) automatically generate the corresponding C++ code to run on device. This code must be implemented in our SDK by you (we provide the method stub for you).

As you already brought up, something to keep in mind is the amount of resources required to run your processing on device, and ensuring your hardware is capable enough. This will really depend on what algorithm you implement.