I’m exploring ways to perform Image Quality Assessment (IQA) in Elixir and came across NIMA as a potential solution. However, I couldn’t find a plug-and-play model on Hugging Face that I could directly integrate.
After researching alternatives, I found BRISQUE and considered fine-tuning a general model like “google/vit-base-patch16-224” for this task. My main challenge is understanding how feasible it is to implement this entirely within Elixir. I want to serve the model from my elixir app, but my knowledge is limited when it comes to training models from scratch or deep knowledge about deep learning and machine learning methods in general.
Ideally, I’d love a solution similar to Livebook examples—something I can easily load and use. Does anyone have guidance on how to approach this? Any recommended models, libraries, or workflows that would fit within the Elixir ecosystem?
Any insights or suggestions would be greatly appreciated!
Yes! It serves as a reference point. I even found them on Hugging Face, but they weren’t compatible with Bumblebee, so I had to discard them. However, I experimented in a sandbox environment that uses the same library and it was exactly what I need. Unfortunately, I had no luck porting it to Elixir
Using pythonx may be a viable approach for using the BRISQUE Python library from Elixir to start with. Looking at the requirements and readme, a little, indicates that it relies on OpenCV. In Nx, OpenCV is evision. The BRISQUE output is a floating point number. I don’t believe we have any examples of outputting a floating point number from a vision neural network model. If you want a classification answer, you would need to choose at what score is the cutoff for your labels from the BISQUE score.
If you can use just the score result, an Elixir translation of the Python code using eVision may be a more practical approach.