C'est Domo. Je suis désolé.
Je souhaite créer un système simple à l'aide de l'API Computer Vision, qui est l'un des services cognitifs Azure, et du SDK de stockage Microsoft Azure pour Java, qui est l'un des SDK Java pour Azure.
Agenda ――Ce que j'ai fait cette fois
Cette fois, j'ai créé un système de téléchargement de fichiers simple. Bref, je l'ai fait avec la première chose à essayer, donc je n'ai pas réussi.
Fonction (1): télécharger un fichier à partir de l'écran et l'afficher à l'écran Fonction (2): les fichiers téléchargés créent automatiquement des images miniatures et les enregistrent en même temps
La base du système est Spring Boot, et l'affichage html et l'échange de données de formulaire sont Thymeleaf. J'ai utilisé des tutoriels /2.1/usingthymeleaf_ja.html # introduction à thymeleaf). Utilisez le SDK Azure dans Spring Boot pour interagir avec le stockage.
Cliquez ici pour l'image complète. Merci d'utiliser le modèle BootStrap.
Lorsque vous téléchargez un fichier à partir de la partie de téléchargement de fichiers sur le côté gauche
Plus de fichiers seront affichés
Cliquez pour voir l'image originale
Cette fois, j'ai utilisé l 'API Computer Vision pour traiter l'image miniature. L'API Computer Vision était à l'origine une API permettant de distinguer les visages et les expressions faciales des gens, ainsi que d'analyser et de classer ce qui se trouve dans l'image, mais en tant que sous-produit de cette fonction, une fonction appelée "créer une belle image miniature" Cela a aussi.
Ce n'est pas grave si vous pouvez considérer le «bon sentiment» comme «facile à comprendre ce qu'il y a dans l'image». Si le sujet est décalé vers la droite, si vous découpez l'image sans y penser, vous vous retrouverez avec une image miniature dont vous ne savez pas vraiment ce qu'est l'image. L'API Computer Vision analyse la position du sujet, rogne la zone autour du sujet à la taille spécifiée et crée une image miniature.
Par exemple, cette photo
Si vous faites une vignette découpée en haut à gauche sans penser à rien, cela ressemblera à ↓ et vous vous retrouverez avec une vignette dont vous ne savez pas ce qu'est l'image.
Si vous demandez à Computer Vision de l'analyser et de créer une vignette, elle aura l'air "bien" ↓
Si vous souhaitez essayer diverses choses avec vos propres photos, il existe une page de démonstration, alors essayez-la. Si vous souhaitez voir d'autres frais et d'autres fonctions, veuillez vous référer à ici.
Cognitive Services fonctionne en accédant directement à l'API.
Azure Storage est un service de stockage de fichiers. Les données peuvent être enregistrées sous diverses formes telles que BLOB / fichier / file d'attente / table. Dans ce système, un conteneur (répertoire) est créé dans ce stockage, et l'image d'origine et l'image miniature sont enregistrées en tant que BLOB.
Cette fois, j'ai utilisé l'un des SDK, Microsoft Azure Storage SDK for Java. Il existe divers autres SDK Java pour Azure pour chaque service, assurez-vous donc de choisir le SDK pour le service que vous souhaitez utiliser. Le SDK pour Java est disponible dans le référentiel Maven (http://search.maven.org/#search%7Cga%7C3%7CAzure).
Ce n'est pas grave si vous ajoutez une dépendance avec Gradle.
dependencies {
・ ・ ・ ・ ・ ・
compile 'com.microsoft.azure:azure-storage:4.0.0'
・ ・ ・
}
Veuillez consulter ici pour un exemple de son utilisation. D'autres supports liés à Java sont résumés à ici.
Il y a une limite supérieure sur la taille de l'image qui peut être utilisée avec Computer Vision, mais cette fois, il n'y a pas de processus d'ajustement ou de vérification de la taille de l'image ... Ainsi, le téléchargement d'une image avec une taille de fichier supérieure à la limite supérieure est une erreur système. Arrivera ... Je voudrais l'améliorer plus tard. .. ..
En ce qui concerne le SDK Java, je ne savais pas lequel utiliser car les informations étaient rares au début, et je regardais le référentiel Maven, mais une fois que j'ai trouvé celui que je cherchais, je viens de définir les dépendances. , J'ai pu commencer à l'utiliser sans trop de problèmes. J'ai pu télécharger des fichiers et obtenir une liste en douceur.
Je pensais que je ne devrais pas le faire page de démonstration de l'API de vignettes de Computer Vision. La réponse étant binaire, elle sera renvoyée avec des caractères déformés. C'était aussi dans Java Code Sample, mais apparemment ʻEntityUtils.toString (entité) `est fait à la toute fin. C'est comme. Si vous convertissez les données d'image en une chaîne de caractères, ce serait le cas. Puisqu'il s'agit d'une page de démonstration de l'API, j'aimerais que vous voyiez une image dans la réponse.
En passant, pour utiliser l'exemple de code Java sur le document tel quel, il est nécessaire de getContent ()
l'entité (données d'image acquises). Cela ressemble à ceci ..
Enfin, j'ai donné le code que j'ai créé cette fois à GitHub. Pour être honnête, ça devient désordonné, alors j'aimerais faire quelques corrections et README.
Puisqu'il y a encore peu d'informations liées à Java dans le stockage Azure et dans Computer Vision, j'ai pensé qu'il serait bon que le seuil soit abaissé s'il était encore amélioré. De plus, la situation actuelle est que tous les services Azure ne peuvent pas être utilisés à partir de Java, et il arrive souvent que Java (et Python) ne puisse pas être utilisé avec le service que vous souhaitez utiliser, je voudrais donc voir plus de zones pouvant être utilisées.
C'était tout.
Recommended Posts