How to deal FOMO with HSV image?

We built a FOMO to grayscale 96x96 images to ESP32-EYE (in truth, ESP32S3), through Arduino Deployment.
But, neither Grayscale, nor RGB, we need to handle HSV image, as an input layer.
Could you explain where is the point to aply our changes, if it’s possible?
Would be the “snapshot_buf” variable the target?
Any clue is wellcome!
Thank you!

1 Like

Hi @FlavioSouza

You are correct the snapshot buff is where you would change that.

  1. Convert to HSV: You need to add a function to convert the captured image from RGB to HSV. This function isn’t standard in the ESP-IDF or Edge Impulse SDK, so you would need to write it yourself or use a third-party library. (not sure where to look for that)
  2. Modify snapshot_buf Buffer: After conversion, store your HSV image data in the image buffer, which is then used for processing or inference.
  3. Model Compatibility: If your model was trained with RGB or grayscale images, you might need to retrain it with HSV images. Although from checking with @mateusz that may not be nessesary @AIWintermuteAI @matkelcey may be able to confirm if HSV retraining is needed or even possible.

Best

Eoin

Thank @Eoin !
Excelent tips! Regarding to 3rd, indeed, the model need to be retrained to HSV.

Regards.

since HSV and RGB are 1:1 you don’t have to retrain; you can just write an adapter to convert the captured HSV images to the RGB model input.

for inference it’s as you say @Eoin , there’s some firmware changes to make to do this mapping

for training, if you want to run in studio, you’ll need to first convert the images from HSV to RGB before upload before they can handled in the UI.

the conversion is pretty light weight; e.g. Pil.Image.open(filename).convert(mode='RGB') and you could use this.

but actually rolling your own it’s terrible in this case since

mat

1 Like