Un des services cognitifs de Microsoft Azure, il lit les émotions des visages des gens, comme les photos. Pour plus d'informations, cliquez ici (https://azure.microsoft.com/ja-jp/services/cognitive-services/emotion/) Depuis le 24 juin 2017, vous pouvez l'utiliser gratuitement dans une certaine mesure.
Il n'y a pas de raison particulière. Il existe officiellement un exemple d'implémentation en Java, mais comme il n'y en avait qu'un seul qui envoie l'URL avec l'image, j'ai essayé l'implémentation de la méthode d'envoi direct de l'image.
Java:1.8.0_131 Emotion Api : 1.0
Enregistrez un abonnement. Site officiel Vous pouvez vous inscrire en appuyant sur Créer à partir de la balise "Version d'essai", et une clé à 32 chiffres sera émise. Alors enregistrez-le.
Ajoutez ce qui suit:
pom.xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
Presque identique à la source de l'échantillon, mais implémentée comme suit. L'argument de la méthode est un tableau d'octets du fichier image. Le résultat est renvoyé à l'appelant en tant que JSON.
EmotionApiClient.java
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
public class EmotionApiClient {
private final String KEY = "Clé à 32 chiffres émise ci-dessus";
String postApi(byte[] image) {
HttpClient httpClient = HttpClientBuilder.create().build();
try
{
URIBuilder uriBuilder = new URIBuilder("https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize");
URI uri = uriBuilder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Content-Type", "application/octet-stream");
request.setHeader("Ocp-Apim-Subscription-Key", KEY);
ByteArrayEntity reqEntity = new ByteArrayEntity(image);
request.setEntity(reqEntity);
HttpResponse response = httpClient.execute(request);
//Vous devriez vérifier le statut.
HttpEntity entity = response.getEntity();
if (entity != null)
{
return EntityUtils.toString(entity);
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return "";
}
}
C'était plus facile que je ne l'imaginais à mettre en œuvre. Je voudrais essayer de voir à quel point il peut être reconnu dans les endroits lumineux et sombres.
Recommended Posts