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 di Amazon Rekognition con SDK per Kotlin
Gli esempi di codice seguenti mostrano come eseguire azioni e implementare scenari comuni utilizzando l' AWS SDK per Kotlin con Amazon Rekognition.
Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.
Gli scenari sono esempi di codice che mostrano come eseguire un'attività specifica richiamando più funzioni all'interno dello stesso servizio o combinate con altri Servizi AWS.
Ogni esempio include un collegamento al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.
Azioni
Il codice di esempio seguente mostra come utilizzareCompareFaces
.
Per ulteriori informazioni, consulta Confronto dei volti nelle immagini.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, CompareFaces
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareCreateCollection
.
Per ulteriori informazioni, consulta Creazione di una raccolta.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, CreateCollection
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDeleteCollection
.
Per ulteriori informazioni, consulta Eliminazione di una raccolta.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { region = "us-east-1" }.use { rekClient -> val response = rekClient.deleteCollection(request) println("The collectionId status is ${response.statusCode}") } }
-
Per i dettagli sull'API, DeleteCollection
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDeleteFaces
.
Per ulteriori informazioni, consulta Eliminazione dei volti da una raccolta.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { region = "us-east-1" }.use { rekClient -> rekClient.deleteFaces(deleteFacesRequest) println("$faceIdVal was deleted from the collection") } }
-
Per i dettagli sull'API, DeleteFaces
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDescribeCollection
.
Per ulteriori informazioni, consulta Descrizione di una raccolta.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, DescribeCollection
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDetectFaces
.
Per ulteriori informazioni, consulta Rilevamento dei volti in un'immagine.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, DetectFaces
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDetectLabels
.
Per ulteriori informazioni, consulta Rilevamento delle etichette in un'immagine.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, DetectLabels
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDetectModerationLabels
.
Per ulteriori informazioni, consulta Rilevamento di immagini non appropriate.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, DetectModerationLabels
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareDetectText
.
Per ulteriori informazioni, consulta Rilevamento del testo in un'immagine.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, DetectText
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareIndexFaces
.
Per ulteriori informazioni, consulta Indicizzazione dei volti in una raccolta.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, IndexFaces
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareListCollections
.
Per ulteriori informazioni, consulta Creazione dell'elenco delle raccolte.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { region = "us-east-1" }.use { rekClient -> val response = rekClient.listCollections(request) response.collectionIds?.forEach { resultId -> println(resultId) } } }
-
Per i dettagli sull'API, ListCollections
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareListFaces
.
Per ulteriori informazioni, consulta Creazione dell'elenco dei volti in una raccolta.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, ListFaces
consulta AWS SDK for Kotlin API reference.
-
Il codice di esempio seguente mostra come utilizzareRecognizeCelebrities
.
Per ulteriori informazioni, consulta Riconoscimento delle celebrità in un'immagine.
- SDK per Kotlin
-
Nota
C'è altro da fare 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 { 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, RecognizeCelebrities
consulta AWS SDK for Kotlin API reference.
-
Scenari
Nell'esempio di codice seguente viene illustrato 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, consulta l'esempio completo su GitHub
. Per approfondire l'origine di questo esempio, consulta il post su AWS Community
. Servizi utilizzati in questo esempio
API Gateway
DynamoDB
Lambda
Amazon Rekognition
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 { 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 { 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 { 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 delle API SDK AWS 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, vedi l'esempio completo su GitHub
. Servizi utilizzati in questo esempio
Amazon Rekognition
Amazon S3
Amazon SES