Hallo. Dieser Artikel ist eine Kopie des Artikels auf meiner Website (https://flat-kids.net/), aber ich dachte, er würde weit verbreitet sein, deshalb habe ich es gewagt, ihn auf Qiita zu veröffentlichen. Ich tat.
Jetzt studiere ich Computer Vision und suche nach Möglichkeiten, diese Technologie konkret einzusetzen. Ich denke, dass die Methode zum Erstellen einer API eine der guten Ideen ist, die als gemeinsames Modul in verschiedenen Umgebungen und Sprachen verwendet werden kann. Natürlich gibt es einige Nachteile. Als ich nach einem Python-Framework suchte, mit dem sich leicht eine API erstellen lässt, habe ich etwas namens FastAPI gefunden. Daher habe ich eine Gesichtserkennungs-API mit FastAPI erstellt. Da dies eine große Sache ist, möchte ich sofort auf Heroku veröffentlichen.
Übrigens, kann es in 5 Minuten erledigt werden (lacht) Timer starten!
FastAPI ist ein modernes, schnelles (Hochleistungs-) Webframework zum Erstellen von APIs in Python 3.6+, das auf Standard-Python-Typ-Hinweisen basiert. Es ist ein sehr einfach zu bedienendes Framework, daher hoffe ich, dass viele Leute es verwenden werden. Die offizielle Website lautet https://fastapi.tiangolo.com/.
Erstellen Sie nach dem Hochladen des Bildes, das Sie erkennen möchten, eine API, die die von JSON erkannte Nummer und die rechteckigen Koordinaten zurückgibt. Wenn Sie anhand des Ergebnisses versuchen, einen Frame auf übliche Weise hinzuzufügen, sieht er folgendermaßen aus.
Bild: http://gahag.net/
Bitte machen Sie im Voraus Folgendes.
--Heroku Benutzer registriert (Free Plan) --Github Benutzer registriert
Ich denke, Sie sollten Folgendes tun, aber diesmal ist es nicht obligatorisch.
Ich möchte die Details des Quellcodes später auf meiner Website schreiben. Der diesmal verwendete Quellcode ist unter Github zu finden. Erstellen Sie Ihr eigenes Github-Remote-Repository und legen Sie die Quelle darin ab.
Die Konfiguration ist wie folgt.
.
├── 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" ist eine trainierte Datei des Kaskadenklassifikators, die Gesichter erkennen kann. Die Logik zur Gesichtserkennung ist in "Detect / Detect_face.py" geschrieben. ".Gitignore" ist das, was Sie mit git nicht verwalten möchten. "Aptfile" ist eine Datei, die zur Verwendung von OpenCV mit Heroku erforderlich ist. Details werden später beschrieben. "Procfile" ist eine Datei, die zum Ausführen von FastAPI auf Heroku erforderlich ist. "Const.py" wird verwendet, weil es einfach ist, CONST zu verwenden. "Main.py" ist die von uvicorn ausgeführte Datei. "Requirements.txt" ist eine Datei, die abhängige Bibliotheken verwaltet. Erforderlich für den Einsatz mit Heruku. "Women.jpg " ist ein Beispielbild.
Nachdem die Quelle fertig ist, können wir die API auf Heroku veröffentlichen. Erstellen Sie zunächst eine neue App.
Gib ihm einen App-Namen.
Wählen Sie die Registerkarte Bereitstellen, stellen Sie eine Verbindung mit Ihrem Github-Konto her und wählen Sie dann das Repository aus, das Sie bereitstellen möchten.
OpenCV installiert das Paket "opencv-contrib-python", aber allein damit erhalte ich einen Importfehler. "ImportError: libSM.so.6: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis" Daher sind "Buildpacks hinzufügen" und "Aptfile-Datei erstellen" erforderlich. Da das Aptfile in den Quellen vorbereitet ist, fügen Sie nur Buildpacks mit Heroku hinzu. Fügen Sie "https://github.com/heroku/heroku-buildpack-apt" in Buildpacks auf der Registerkarte "Einstellungen" hinzu.
Kehren Sie zur Registerkarte Bereitstellen zurück und stellen Sie bereit. Wählen Sie diesmal Manuelle Bereitstellung.
Wenn Deploy Glück hat und erfolgreich ist, klicken Sie oben rechts auf dem Heroku-Bildschirm auf "App öffnen". {“detail”:”Not Found”} Hast du so ein Display bekommen? Es ist ein Fehler! !! Es tut mir leid für diejenigen, die sagen.
Um die von Ihnen erstellte API aufzurufen, können Sie einfach / docs nach der URL hinzufügen.
Sie können es tatsächlich ausprobieren, indem Sie auf "Try it Out" klicken.
Wählen Sie das Bild aus, das Sie erkennen möchten, und führen Sie es aus. Ist das Ergebnis so zurückgekommen?
** (Hinweis) Informationen zur Bildgröße ** Die Bildgröße beträgt 0,2 MB oder weniger. Es kann nicht richtig erkannt werden, wenn die Größe groß ist. Es scheint, dass verschiedene Anpassungen notwendig sind.
Das ist alles. Timer stoppen! War es innerhalb von 5 Minuten? (Lol) Wenn es nicht funktioniert hat, tut es mir wirklich leid: Sweat_smile: Es tut mir leid, dass ich mich nur entschuldigt und es nicht gelöst habe: Sweat_smile :: Sweat_smile: Ich wusste nicht, wie ich FastAPI mit Heroku bereitstellen sollte, also habe ich einen Artikel erstellt. Ich hoffe es hilft jemandem: erröten:
Recommended Posts