Das ist Domo. Es tut mir Leid.
Ich möchte ein einfaches System mit der Computer Vision-API, einem der Azure Cognitive Services, und dem Microsoft Azure Storage SDK für Java, einem der Java SDKs für Azure, erstellen.
Agenda »Was ich diesmal gemacht habe
Dieses Mal habe ich ein einfaches Datei-Upload-System erstellt. Wie auch immer, ich habe es mit dem ersten Versuch geschafft, also habe ich es nicht geschafft.
Funktion (1): Laden Sie eine Datei vom Bildschirm hoch und zeigen Sie sie auf dem Bildschirm an Funktion (2): Die hochgeladene Datei erstellt automatisch ein Miniaturbild und speichert es gleichzeitig.
Die Grundlage des Systems ist Spring Boot, und die HTML-Anzeige und der Formulardatenaustausch sind Thymeleaf. Ich habe Tutorials verwendet /2.1/usingthymeleaf_ja.html # Einführung in thymeleaf). Verwenden Sie das Azure SDK in Spring Boot, um mit Storage zu interagieren.
Klicken Sie hier für das fertige Bild. Vielen Dank, dass Sie die BootStrap-Vorlage verwendet haben.
Wenn Sie eine Datei aus dem Datei-Upload-Teil auf der linken Seite hochladen
Weitere Dateien werden angezeigt
Klicken Sie hier, um das Originalbild anzuzeigen
Dieses Mal habe ich Computer Vision API verwendet, um das Miniaturbild zu verarbeiten. Die Computer Vision-API war ursprünglich eine API zum Unterscheiden von Gesichtern und Gesichtsausdrücken von Personen und zum Analysieren und Klassifizieren des Bildes. Als Nebenprodukt dieser Funktion wurde eine Funktion namens "Erstellen eines schönen Miniaturbilds" verwendet. Es hat auch.
Es ist in Ordnung, wenn Sie sich "gutes Gefühl" als "leicht zu verstehen, was auf dem Bild ist" vorstellen können. Wenn das Motiv nach rechts verschoben wird und Sie das Bild zuschneiden, ohne darüber nachzudenken, erhalten Sie ein Miniaturbild, von dem Sie nicht wirklich wissen, was das Bild ist. Die Computer Vision API analysiert die Position des Motivs, schneidet den Bereich um das Motiv auf die angegebene Größe zu und erstellt ein Miniaturbild.
Zum Beispiel dieses Foto
Wenn Sie das Miniaturbild oben links ausschneiden, ohne an etwas zu denken, sieht es wie ↓ aus und Sie erhalten ein Miniaturbild, von dem Sie nicht wissen, was das Bild ist.
Wenn Sie Computer Vision analysieren lassen und ein Miniaturbild erstellen, sieht es "gut" aus ↓
Wenn Sie verschiedene Dinge mit Ihren eigenen Fotos ausprobieren möchten, gibt es eine Demoseite. Probieren Sie es also bitte aus. Wenn Sie andere Gebühren und andere Funktionen sehen möchten, lesen Sie bitte hier.
Cognitive Services funktioniert, indem die API direkt aufgerufen wird.
Azure-Speicher ist ein Dateispeicherdienst. Daten können in verschiedenen Formen wie BLOB / Datei / Warteschlange / Tabelle gespeichert werden. In diesem System wird ein Container (Verzeichnis) in diesem Speicher erstellt und das Originalbild und das Miniaturbild werden als BLOB gespeichert.
Dieses Mal habe ich eines der SDKs verwendet Microsoft Azure Storage SDK für Java. Für jeden Dienst gibt es verschiedene andere Java-SDKs für Azure. Wählen Sie daher unbedingt das SDK für den Dienst aus, den Sie verwenden möchten. Das SDK für Java ist im Maven-Repository verfügbar (http://search.maven.org/#search%7Cga%7C3%7CAzure).
Es ist in Ordnung, wenn Sie eine Abhängigkeit mit Gradle hinzufügen.
dependencies {
・ ・ ・ ・ ・ ・
compile 'com.microsoft.azure:azure-storage:4.0.0'
・ ・ ・
}
Unter hier finden Sie ein Beispiel für die Verwendung. Weitere Java-bezogene Unterstützung finden Sie unter hier.
Es gibt eine Obergrenze für die Bildgröße, die mit Computer Vision verwendet werden kann, aber diesmal gibt es keinen Anpassungs- oder Überprüfungsprozess für die Bildgröße ... Das Hochladen eines Bildes mit einer Dateigröße, die größer als die Obergrenze ist, ist also ein Systemfehler. Wird passieren ... Ich möchte es später verbessern. .. ..
Was das Java SDK angeht, war ich nicht sicher, welches ich verwenden sollte, da die Informationen anfangs knapp waren und ich mir das Maven-Repository ansah, aber als ich gefunden hatte, wonach ich suchte, stellte ich einfach die Abhängigkeiten ein. Ich konnte es ohne große Probleme verwenden. Ich konnte Dateien hochladen und eine Liste reibungslos erhalten.
Ich dachte, ich sollte es nicht tun Computer Vision Thumbnail API-Demoseite. Da die Antwort binär ist, wird sie mit verstümmelten Zeichen zurückgegeben. Es war auch in Java Code Sample, aber anscheinend ist es "EntityUtils.toString". Es ist wie. Wenn Sie die Bilddaten in eine Zeichenfolge konvertieren, ist dies der Fall. Da es sich um eine Demoseite der API handelt, möchte ich, dass Sie in der Antwort ein Bild sehen.
Übrigens ist es erforderlich, die Entität (erfasste Bilddaten) zu "getContent ()", um das Java-Codebeispiel für das Dokument so wie es ist zu verwenden. Es sieht so aus ..
Schließlich gab ich [GitHub] den Code, den ich dieses Mal erstellt hatte (https://github.com/mahya8585/ComputerVisionSandbox). Um ehrlich zu sein, wird es nur unordentlich, deshalb möchte ich noch einige Korrekturen vornehmen und README.
Da sowohl in Azure Storage als auch in Computer Vision immer noch wenig Informationen zu Java vorhanden sind, hielt ich es für gut, wenn der Schwellenwert gesenkt und weiter verbessert würde. Die aktuelle Situation ist auch, dass nicht alle Azure-Dienste von Java aus verwendet werden können, und es ist häufig der Fall, dass Java (und Python) nicht mit dem Dienst verwendet werden können, den Sie verwenden möchten. Daher würde ich gerne mehr verfügbare Bereiche sehen.
Das war alles.
Recommended Posts