Ich habe es kürzlich benutzt, also werde ich ein wenig schreiben. Da dies mein erster Beitrag ist, kann es viele Fehler und fehlende Teile geben. Ich würde es begrüßen, wenn Sie mir freundlicherweise beibringen könnten: girl_tone1:
Azure Face hatte einen starken Eindruck von Gesichtserkennung Ich fand es interessant, Emotionen erkennen zu können, also benutzte ich es zur Erkennung von Emotionen.
Was Sie tun können: Gesichtsüberprüfung, Gesichtserkennung, Emotionserkennung Es scheint, dass es andere Möglichkeiten gibt, nach ähnlichen Gesichtern zu suchen und nach demselben Gesicht zu gruppieren. In diesem Artikel verwenden wir Gesichtserkennung und Emotionserkennung.
Sie können es verwenden, indem Sie Folgendes schreiben: ok_woman_tone1:
KEY = 'your_key'
ENDPOINT = 'your_endpoint'
face_client = FaceClient(ENDPOINT, CognitiveServicesCredentials(KEY))
params = ['age','emotion']
result = face_client.face.detect_with_stream(
image
, return_face_id=True
, return_face_landmarks=False
, return_face_attributes=params
)
Grundsätzlich habe ich nur return_face_attributes von False mit der Standardeinstellung geändert. Bild: Diesmal wird ein Bildstrom übergeben return_face_id: Wenn True festgelegt ist, wird faceID zurückgegeben. return_face_landmarks: Wenn auf True gesetzt, wird es zurückgegeben. Gesicht Wahrzeichen return_face_attributes Gibt die im Parameter übergebenen Attributinformationen zurück.
Dieses Mal habe ich Alter und Emotionen an return_face_attributes weitergegeben Es gibt das Alter und die Gefühle des Ziels zurück.
Ich möchte in der Lage sein, ein Bild durch Drücken einer Taste auf der Kamera aufzunehmen → Emotionserkennung → Ergebnis anzeigen…: upside_down: Ich werde es mit Kivy machen.
[Emotion.py]
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<MainWidget>:
""")
class MainWidget(BoxLayout):
pass
class EmotionApp(App):
title = "E.A."
def build(self):
return MainWidget()
if __name__ == "__main__":
EmotionApp().run()
Bildschirm ↓
Schwarz
[Emotion.py]
(Abkürzung)
Builder.load_string("""
<MainWidget>:
orientation: 'vertical'
Camera:
id: camera
resolution: (640, 480)
play: True
Button:
text: 'Capture'
size_hint_y: None
height: '48dp'
on_press: root.capture()
""")
class MainWidget(BoxLayout):
def capture(self):
print('captured!')
(Abkürzung)
↓ Bildschirm (Da es sehr grob verarbeitet wurde, so dass Gesicht und Hintergrund nicht reflektiert werden, dient es nur als Referenz ...)
[Emotion.py]
KEY = 'your_key'
ENDPOINT = 'your_endpoint'
face_client = FaceClient(ENDPOINT, CognitiveServicesCredentials(KEY))
(Abkürzung)
def capture(self):
texture = self.ids['camera'].texture
nparr = np.fromstring(texture.pixels, dtype=np.uint8)
reshaped = np.reshape(nparr, (480,640,4))
ret,buf = cv2.imencode('.jpg', reshaped)
stream = io.BytesIO(buf)
params = ['age','emotion','hair']
result = face_client.face.detect_with_stream(
stream
, return_face_id=True
, return_face_landmarks=False
, return_face_attributes=params
)
(Abkürzung)
[Emotion.py]
(Abkürzung)
Layout = BoxLayout(orientation='vertical')
faceatts = result[0].face_attributes
Layout.add_widget(Label(text=("age: "+ str(int(faceatts.age)))))
Layout.add_widget(Label(text="emotion: "))
Layout.add_widget(Label(text="anger: " + str(faceatts.emotion.anger)))
Layout.add_widget(Label(text="contempt: " + str(faceatts.emotion.contempt)))
Layout.add_widget(Label(text="disgust: " + str(faceatts.emotion.disgust)))
Layout.add_widget(Label(text="fear: " + str(faceatts.emotion.fear)))
Layout.add_widget(Label(text="happiness: " + str(faceatts.emotion.happiness)))
Layout.add_widget(Label(text="neutral: " + str(faceatts.emotion.neutral)))
Layout.add_widget( Label(text="sadness: " + str(faceatts.emotion.sadness)))
Layout.add_widget(Label(text="surprise: " + str(faceatts.emotion.surprise)))
popupWindow = Popup(title="Results", content=Layout, size_hint=(None,None),size=(400,400))
popupWindow.open()
(Abkürzung)
Ich werde es versuchen. Drück den Knopf! Oh ~ Ich konnte sagen, dass ich richtig lachte! Ich werde jünger ... (lacht): entspannt: Schließlich wollte ich mich ein bisschen mehr an das Aussehen halten und lernen, wie es funktioniert: Roboter: Danke fürs Lesen!
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
import cv2
import numpy as np
import io
from azure.cognitiveservices.vision.face import FaceClient
from msrest.authentication import CognitiveServicesCredentials
from kivy.uix.label import Label
from kivy.uix.popup import Popup
KEY = 'your_key'
ENDPOINT = 'your_end_point'
face_client = FaceClient(ENDPOINT, CognitiveServicesCredentials(KEY))
Builder.load_string("""
<MainWidget>:
orientation: 'vertical'
Camera:
id: camera
resolution: (640, 480)
play: True
Button:
text: 'Capture'
size_hint_y: None
height: '48dp'
on_press: root.capture()
""")
class MainWidget(BoxLayout):
def capture(self):
texture = self.ids['camera'].texture
nparr = np.fromstring(texture.pixels, dtype=np.uint8)
reshaped = np.reshape(nparr, (480,640,4))
ret,buf = cv2.imencode('.jpg', reshaped)
stream = io.BytesIO(buf)
params = ['age','emotion']
result = face_client.face.detect_with_stream(
stream
, return_face_id=True
, return_face_landmarks=False
, return_face_attributes=params
)
Layout = BoxLayout(orientation='vertical')
faceatts = result[0].face_attributes
Layout.add_widget(Label(text=("age: "+ str(int(faceatts.age)))))
Layout.add_widget(Label(text="emotion: "))
Layout.add_widget(Label(text="anger: " + str(faceatts.emotion.anger)))
Layout.add_widget(Label(text="contempt: " + str(faceatts.emotion.contempt)))
Layout.add_widget(Label(text="disgust: " + str(faceatts.emotion.disgust)))
Layout.add_widget(Label(text="fear: " + str(faceatts.emotion.fear)))
Layout.add_widget(Label(text="happiness: " + str(faceatts.emotion.happiness)))
Layout.add_widget(Label(text="neutral: " + str(faceatts.emotion.neutral)))
Layout.add_widget( Label(text="sadness: " + str(faceatts.emotion.sadness)))
Layout.add_widget(Label(text="surprise: " + str(faceatts.emotion.surprise)))
popupWindow = Popup(title="Results", content=Layout, size_hint=(None,None),size=(400,400))
popupWindow.open()
class EmotionApp(App):
title = "E.A."
def build(self):
return MainWidget()
if __name__ == "__main__":
EmotionApp().run()
Recommended Posts