Cette API permet d'utiliser une technologie du machine learning qui est le transfert de style. Elle utilise Tensorflow Lite ainsi qu'un modèle adapté pour une utilisation sur environnement embarqué.
Cette API utilise les modèles de transfert de style publiés par Google.
Afin que l'API fonctionne correctement, il suffit d'installer les deux dépendances suivantes : TensorFlow et Flask.
$ pip install Tensorflow
$ pip install Flask
Et de la lancer en utilisant python (3.7)
$ python api.py
L'API dispose de trois routes pour le moment :
-
GET :
- / : Renvoie des informations relatives à l'API
- /example : Permet d'avoir un exemple de ce que peux renvoyer l'API
-
POST :
- /model/<modelName> : A utiliser avec une image dans un attribut image, renvoit l'image envoyée avec le style donnée dans le paramètre <modelName>
Exemples d'utilisation :
# Renvoie le résultat de l'exemple
$ curl -o example.jpg http://localhost:5000/example
# Renvoie le fichier 'lance.jpg' avec le style 'sphere' dans le fichier 'output.jpg'
$ curl --request POST 'http://127.0.0.1:5000/model/udnie' --form 'file=@/home/bnicol/Pictures/lance.jpg' --output 'output.jpg'
L'API est constiuée du dossier racine contenant les fichiers nécessaires au fonctionnement de celle-ci et de trois sous-dossiers
- styles : contenant les différents styles disponibles
- upload : ici sont sauvegardées les images envoyées par le POST avant le traitement
- save : ici sont sauvegardées les images après le transfert de style
Nom du style (<modelName>) | Tableau original |
---|---|
udnie | Udnie, par Francis Picabia |
scream | Le cri, par Edvard Munch |
sphere | Hand with Reflecting Sphere, par M.C. Escher |