Sono disponibili altri esempi di AWS SDK nel repository AWS Doc SDK Examples.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempi per Amazon Rekognition con SDK per Kotlin
I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando l' AWS SDK per Kotlin con Amazon Rekognition.
Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.
Scenari: esempi di codice che mostrano come eseguire un’attività specifica chiamando più funzioni all’interno dello stesso servizio o combinate con altri Servizi AWS.
Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.
Azioni
L’esempio di codice seguente mostra come utilizzare CompareFaces.
Per ulteriori informazioni, consulta Confronto dei volti nelle immagini.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun compareTwoFaces( similarityThresholdVal: Float, sourceImageVal: String, targetImageVal: String, ) { val sourceBytes = (File(sourceImageVal).readBytes()) val targetBytes = (File(targetImageVal).readBytes()) // Create an Image object for the source image. val souImage = Image { bytes = sourceBytes } val tarImage = Image { bytes = targetBytes } val facesRequest = CompareFacesRequest { sourceImage = souImage targetImage = tarImage similarityThreshold = similarityThresholdVal } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val compareFacesResult = rekClient.compareFaces(facesRequest) val faceDetails = compareFacesResult.faceMatches if (faceDetails != null) { for (match: CompareFacesMatch in faceDetails) { val face = match.face val position = face?.boundingBox if (position != null) { println("Face at ${position.left} ${position.top} matches with ${face.confidence} % confidence.") } } } val uncompared = compareFacesResult.unmatchedFaces if (uncompared != null) { println("There was ${uncompared.size} face(s) that did not match") } println("Source image rotation: ${compareFacesResult.sourceImageOrientationCorrection}") println("target image rotation: ${compareFacesResult.targetImageOrientationCorrection}") } }-
Per i dettagli sull'API, consulta CompareFaces
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare CreateCollection.
Per ulteriori informazioni, consulta Creazione di una raccolta.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun createMyCollection(collectionIdVal: String) { val request = CreateCollectionRequest { collectionId = collectionIdVal } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.createCollection(request) println("Collection ARN is ${response.collectionArn}") println("Status code is ${response.statusCode}") } }-
Per i dettagli sull'API, consulta CreateCollection
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DeleteCollection.
Per ulteriori informazioni, consulta Eliminazione di una raccolta.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun deleteMyCollection(collectionIdVal: String) { val request = DeleteCollectionRequest { collectionId = collectionIdVal } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.deleteCollection(request) println("The collectionId status is ${response.statusCode}") } }-
Per i dettagli sull'API, consulta DeleteCollection
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DeleteFaces.
Per ulteriori informazioni, consulta Eliminazione dei volti da una raccolta.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun deleteFacesCollection( collectionIdVal: String?, faceIdVal: String, ) { val deleteFacesRequest = DeleteFacesRequest { collectionId = collectionIdVal faceIds = listOf(faceIdVal) } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> rekClient.deleteFaces(deleteFacesRequest) println("$faceIdVal was deleted from the collection") } }-
Per i dettagli sull'API, consulta DeleteFaces
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DescribeCollection.
Per ulteriori informazioni, consulta Descrizione di una raccolta.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun describeColl(collectionName: String) { val request = DescribeCollectionRequest { collectionId = collectionName } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.describeCollection(request) println("The collection Arn is ${response.collectionArn}") println("The collection contains this many faces ${response.faceCount}") } }-
Per i dettagli sull'API, consulta DescribeCollection
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DetectFaces.
Per ulteriori informazioni, consulta Rilevamento dei volti in un’immagine.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun detectFacesinImage(sourceImage: String?) { val souImage = Image { bytes = (File(sourceImage).readBytes()) } val request = DetectFacesRequest { attributes = listOf(Attribute.All) image = souImage } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.detectFaces(request) response.faceDetails?.forEach { face -> val ageRange = face.ageRange println("The detected face is estimated to be between ${ageRange?.low} and ${ageRange?.high} years old.") println("There is a smile ${face.smile?.value}") } } }-
Per i dettagli sull'API, consulta DetectFaces
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DetectLabels.
Per ulteriori informazioni, consulta Rilevamento delle etichette in un’immagine.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun detectImageLabels(sourceImage: String) { val souImage = Image { bytes = (File(sourceImage).readBytes()) } val request = DetectLabelsRequest { image = souImage maxLabels = 10 } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.detectLabels(request) response.labels?.forEach { label -> println("${label.name} : ${label.confidence}") } } }-
Per i dettagli sull'API, consulta DetectLabels
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DetectModerationLabels.
Per ulteriori informazioni, consulta Rilevamento di immagini non appropriate.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun detectModLabels(sourceImage: String) { val myImage = Image { this.bytes = (File(sourceImage).readBytes()) } val request = DetectModerationLabelsRequest { image = myImage minConfidence = 60f } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.detectModerationLabels(request) response.moderationLabels?.forEach { label -> println("Label: ${label.name} - Confidence: ${label.confidence} % Parent: ${label.parentName}") } } }-
Per i dettagli sull'API, consulta DetectModerationLabels
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare DetectText.
Per ulteriori informazioni, consulta Rilevamento del testo in un’immagine.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun detectTextLabels(sourceImage: String?) { val souImage = Image { bytes = (File(sourceImage).readBytes()) } val request = DetectTextRequest { image = souImage } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.detectText(request) response.textDetections?.forEach { text -> println("Detected: ${text.detectedText}") println("Confidence: ${text.confidence}") println("Id: ${text.id}") println("Parent Id: ${text.parentId}") println("Type: ${text.type}") } } }-
Per i dettagli sull'API, consulta DetectText
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare IndexFaces.
Per ulteriori informazioni, consulta Indicizzazione dei volti in una raccolta.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun addToCollection( collectionIdVal: String?, sourceImage: String, ) { val souImage = Image { bytes = (File(sourceImage).readBytes()) } val request = IndexFacesRequest { collectionId = collectionIdVal image = souImage maxFaces = 1 qualityFilter = QualityFilter.Auto detectionAttributes = listOf(Attribute.Default) } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val facesResponse = rekClient.indexFaces(request) // Display the results. println("Results for the image") println("\n Faces indexed:") facesResponse.faceRecords?.forEach { faceRecord -> println("Face ID: ${faceRecord.face?.faceId}") println("Location: ${faceRecord.faceDetail?.boundingBox}") } println("Faces not indexed:") facesResponse.unindexedFaces?.forEach { unindexedFace -> println("Location: ${unindexedFace.faceDetail?.boundingBox}") println("Reasons:") unindexedFace.reasons?.forEach { reason -> println("Reason: $reason") } } } }-
Per i dettagli sull'API, consulta IndexFaces
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare ListCollections.
Per ulteriori informazioni, consulta Creazione dell’elenco delle raccolte.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun listAllCollections() { val request = ListCollectionsRequest { maxResults = 10 } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.listCollections(request) response.collectionIds?.forEach { resultId -> println(resultId) } } }-
Per i dettagli sull'API, consulta ListCollections
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare ListFaces.
Per ulteriori informazioni, consulta Creazione dell’elenco dei volti in una raccolta.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun listFacesCollection(collectionIdVal: String?) { val request = ListFacesRequest { collectionId = collectionIdVal maxResults = 10 } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.listFaces(request) response.faces?.forEach { face -> println("Confidence level there is a face: ${face.confidence}") println("The face Id value is ${face.faceId}") } } }-
Per i dettagli sull'API, consulta ListFaces
il riferimento alle API AWS SDK for Kotlin.
-
L’esempio di codice seguente mostra come utilizzare RecognizeCelebrities.
Per ulteriori informazioni, consulta Riconoscimento delle celebrità in un’immagine.
- SDK per Kotlin
-
Nota
C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. suspend fun recognizeAllCelebrities(sourceImage: String?) { val souImage = Image { bytes = (File(sourceImage).readBytes()) } val request = RecognizeCelebritiesRequest { image = souImage } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val response = rekClient.recognizeCelebrities(request) response.celebrityFaces?.forEach { celebrity -> println("Celebrity recognized: ${celebrity.name}") println("Celebrity ID:${celebrity.id}") println("Further information (if available):") celebrity.urls?.forEach { url -> println(url) } } println("${response.unrecognizedFaces?.size} face(s) were unrecognized.") } }-
Per i dettagli sull'API, consulta RecognizeCelebrities
il riferimento alle API AWS SDK for Kotlin.
-
Scenari
L’esempio di codice seguente mostra come creare un’applicazione serverless che consente agli utenti di gestire le foto mediante etichette.
- SDK per Kotlin
-
Mostra come sviluppare un’applicazione per la gestione delle risorse fotografiche che rileva le etichette nelle immagini utilizzando Amazon Rekognition e le archivia per recuperarle in seguito.
Per il codice sorgente completo e le istruzioni su come configurare ed eseguire, guarda l'esempio completo su. GitHub
Per approfondire l’origine di questo esempio, consulta il post su AWS Community
. Servizi utilizzati in questo esempio
Gateway API
DynamoDB
Lambda
Amazon Rekognition
Simple Storage Service (Amazon S3)
Amazon SNS
L’esempio di codice seguente mostra come:
Avvia i processi di Amazon Rekognition per rilevare elementi come persone, oggetti e testo nei video.
Controlla lo stato del processo fino al suo termine.
Crea un output con l’elenco degli elementi rilevati da ciascun processo.
- SDK per Kotlin
-
Nota
C'è altro su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS
. Rileva i volti in un video archiviato in un bucket Amazon S3.
suspend fun startFaceDetection( channelVal: NotificationChannel?, bucketVal: String, videoVal: String, ) { val s3Obj = S3Object { bucket = bucketVal name = videoVal } val vidOb = Video { s3Object = s3Obj } val request = StartFaceDetectionRequest { jobTag = "Faces" faceAttributes = FaceAttributes.All notificationChannel = channelVal video = vidOb } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val startLabelDetectionResult = rekClient.startFaceDetection(request) startJobId = startLabelDetectionResult.jobId.toString() } } suspend fun getFaceResults() { var finished = false var status: String var yy = 0 RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> var response: GetFaceDetectionResponse? = null val recognitionRequest = GetFaceDetectionRequest { jobId = startJobId maxResults = 10 } // Wait until the job succeeds. while (!finished) { response = rekClient.getFaceDetection(recognitionRequest) status = response.jobStatus.toString() if (status.compareTo("Succeeded") == 0) { finished = true } else { println("$yy status is: $status") delay(1000) } yy++ } // Proceed when the job is done - otherwise VideoMetadata is null. val videoMetaData = response?.videoMetadata println("Format: ${videoMetaData?.format}") println("Codec: ${videoMetaData?.codec}") println("Duration: ${videoMetaData?.durationMillis}") println("FrameRate: ${videoMetaData?.frameRate}") // Show face information. response?.faces?.forEach { face -> println("Age: ${face.face?.ageRange}") println("Face: ${face.face?.beard}") println("Eye glasses: ${face?.face?.eyeglasses}") println("Mustache: ${face.face?.mustache}") println("Smile: ${face.face?.smile}") } } }Rileva contenuti non appropriati o offensivi in un video archiviato in un bucket Amazon S3.
suspend fun startModerationDetection( channel: NotificationChannel?, bucketVal: String?, videoVal: String?, ) { val s3Obj = S3Object { bucket = bucketVal name = videoVal } val vidOb = Video { s3Object = s3Obj } val request = StartContentModerationRequest { jobTag = "Moderation" notificationChannel = channel video = vidOb } RekognitionClient.fromEnvironment { region = "us-east-1" }.use { rekClient -> val startModDetectionResult = rekClient.startContentModeration(request) startJobId = startModDetectionResult.jobId.toString() } } suspend fun getModResults() { var finished = false var status: String var yy = 0 RekognitionClient { region = "us-east-1" }.use { rekClient -> var modDetectionResponse: GetContentModerationResponse? = null val modRequest = GetContentModerationRequest { jobId = startJobId maxResults = 10 } // Wait until the job succeeds. while (!finished) { modDetectionResponse = rekClient.getContentModeration(modRequest) status = modDetectionResponse.jobStatus.toString() if (status.compareTo("Succeeded") == 0) { finished = true } else { println("$yy status is: $status") delay(1000) } yy++ } // Proceed when the job is done - otherwise VideoMetadata is null. val videoMetaData = modDetectionResponse?.videoMetadata println("Format: ${videoMetaData?.format}") println("Codec: ${videoMetaData?.codec}") println("Duration: ${videoMetaData?.durationMillis}") println("FrameRate: ${videoMetaData?.frameRate}") modDetectionResponse?.moderationLabels?.forEach { mod -> val seconds: Long = mod.timestamp / 1000 print("Mod label: $seconds ") println(mod.moderationLabel) } } }-
Per informazioni dettagliate sull’API, consulta i seguenti argomenti nella documentazione di riferimento dell’API AWS SDK per Kotlin.
-
L’esempio di codice seguente mostra come creare un’applicazione che utilizza Amazon Rekognition per rilevare oggetti in base a una categoria nelle immagini.
- SDK per Kotlin
-
Mostra come utilizzare l’API Kotlin di Amazon Rekognition per creare un’applicazione che utilizza Amazon Rekognition per identificare gli oggetti in base a una categoria nelle immagini situate in un bucket Amazon Simple Storage Service (Amazon S3). L’applicazione invia all’amministratore una notifica e-mail sui risultati tramite Amazon Simple Email Service (Amazon SES).
Per il codice sorgente completo e le istruzioni su come configurare ed eseguire, guarda l'esempio completo su GitHub
. Servizi utilizzati in questo esempio
Amazon Rekognition
Simple Storage Service (Amazon S3)
Amazon SES