Bonjour. Cet article est une copie de celui de mon site (https://flat-kids.net/), mais je pensais qu'il serait largement utilisé, j'ai donc osé le poster sur Qiita. J'ai fait.
Maintenant, j'étudie la vision par ordinateur et j'explore comment utiliser cette technologie concrètement. Je pense que la méthode de création d'une API est l'une des bonnes idées qui peut être utilisée comme module commun dans divers environnements et langages. Bien sûr, il y a quelques inconvénients. Quand je cherchais un framework Python qui pourrait facilement créer une API, j'ai trouvé quelque chose appelé FastAPI, donc j'ai créé une API de détection de visage en utilisant FastAPI, et comme c'est un gros problème, j'aimerais sortir immédiatement sur Heroku.
Au fait, peut-on le faire en 5 minutes (rires) Timer start!
FastAPI est un framework Web moderne et rapide (hautes performances) pour la création d'API en Python 3.6+ basées sur des indices de type Python standard. C'est un framework très facile à utiliser, donc j'espère que beaucoup de gens l'utiliseront. Le site web officiel est https://fastapi.tiangolo.com/.
Après avoir téléchargé l'image dont vous souhaitez détecter le visage, créez une API qui renvoie le nombre détecté par JSON et les coordonnées rectangulaires. En utilisant le résultat, si vous essayez d'ajouter un cadre de manière courante, il ressemblera à ceci.
Image: http://gahag.net/
Veuillez faire ce qui suit à l'avance.
Je pense que vous devriez faire ce qui suit, mais cette fois ce n'est pas obligatoire.
Je souhaiterais écrire les détails du code source sur mon site plus tard. Le code source utilisé cette fois-ci se trouve sur Github. Créez votre propre référentiel distant Github et mettez-y la source.
La configuration est la suivante.
.
├── cascades
│ └── haarcascade_frontalface_default.xml
├── detect
│ └── detect_face.py
├── .gitignore
├── Aptfile
├── Procfile
├── const.py
├── main.py
├── requirements.txt
└── women.jpg
"Cascades / haarcascade_frontalface_default.xml" est un fichier entraîné du classificateur en cascade capable de détecter les visages. La logique de détection de visage est écrite dans "detect / detect_face.py". ".Gitignore" est ce que vous ne voulez pas gérer avec git. "Aptfile" est un fichier requis pour utiliser OpenCV avec Heroku. Les détails seront décrits plus tard. «Procfile» est un fichier requis pour exécuter FastAPI sur Heroku. "Const.py" est utilisé car il est facile d'utiliser CONST. "Main.py" est le fichier exécuté par uvicorn. "Requirements.txt" est un fichier qui gère les bibliothèques dépendantes. Requis pour se déployer avec Heruku. "Women.jpg " est un exemple d'image.
Maintenant que la source est prête, nous sommes prêts à publier l'API sur Heroku. Tout d'abord, créez une nouvelle application.
Donnez-lui un nom d'application.
Sélectionnez l'onglet Déployer, connectez-vous avec votre compte Github, puis sélectionnez le référentiel que vous souhaitez déployer.
OpenCV a le package "opencv-contrib-python" installé, mais avec cela seul, j'obtiens une erreur d'importation. "ImportError: libSM.so.6: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type" Par conséquent, "Ajouter des buildpacks" et "Créer un fichier Aptfile" sont requis. Puisque l'Aptfile est préparé dans l'ensemble des sources, ajoutez uniquement des buildpacks avec Heroku. Ajoutez «https://github.com/heroku/heroku-buildpack-apt» dans Buildpacks sur l'onglet Paramètres.
Revenez à l'onglet Déployer et Déployer. Cette fois, sélectionnez Déploiement manuel.
Si le déploiement est chanceux et réussi, appuyez sur "Ouvrir l'application" en haut à droite de l'écran Heroku. {“detail”:”Not Found”} Avez-vous eu un affichage comme celui-ci? C'est une erreur! !! Je suis désolé pour ceux qui disent.
Pour appeler l'API que vous avez créée, il est facile d'ajouter / docs après l'URL.
Vous pouvez réellement l'essayer en appuyant sur "Try it Out".
Sélectionnez l'image dont vous souhaitez détecter le visage et exécutez. Le résultat est-il revenu comme ça?
** (Remarque) À propos de la taille de l'image ** La taille de l'image est de 0,2 Mo ou moins. Il ne peut pas être détecté correctement lorsque la taille est grande. Il semble que divers ajustements soient nécessaires.
C'est tout. Arrêt de la minuterie! Était-ce dans les 5 minutes? (Lol) Si cela n'a pas fonctionné, je suis vraiment désolé: sweat_smile: Je suis désolé, je viens de m'excuser et je ne l'ai pas résolu: sweat_smile :: sweat_smile: Je ne savais pas comment déployer FastAPI avec Heroku, j'ai donc créé un article. J'espère que cela aide quelqu'un: rougissez:
Recommended Posts