1

Итак, я пытаюсь использовать SDK AWSRekognition для обнаружения лиц и меток на изображениях. Однако у Amazon нет документации о том, как интегрировать свой SDK с iOS. У них есть ссылки, которые показывают, как работать с Rekognition (Руководство для разработчиков) с примерами только на Java и очень ограниченными.Как использовать распознавание AWS для обнаружения меток и лиц изображений в Swift 3

Amazon Rekognition Developer Guide

Если вы нажмете на их «IOS документации», это приведет вас к общей странице документации IOS, без признаков Rekognition в любой секции.

AWS iOS Developer Guide

Я хотел бы знать, если кто-нибудь знает, как интегрировать AWS Rekognition в Swift 3. Как инициализировать его и сделать запрос с изображением, получив ответ с метками.

Я уже загрузил AWSRekognition.framework и AWSCore.framework и добавил их в свой проект. Также я импортировал оба из них в моем AppDelegate.swift и инициализировал свои учетные данные AWS.

let credentialsProvider = AWSCognitoCredentialsProvider(
     regionType: AWSRegionType.usEast1, 
     identityPoolId: "us-east-1_myPoolID") 
let configuration = AWSServiceConfiguration(
     region: AWSRegionType.usEast1, 
     credentialsProvider: credentialsProvider) 
AWSServiceManager.default().defaultServiceConfiguration = configuration 

Также я пытался инициализировать Rekognition и построить запрос:

do { 

    let rekognitionClient:AWSRekognition = AWSRekognition(forKey: "Maybe a Key from AWS?") 

    let request: AWSRekognitionDetectLabelsRequest = try AWSRekognitionDetectLabelsRequest(dictionary: ["image": UIImage(named:"TestImage")!, "maxLabels":3, "minConfidence":90], error: (print("error"))) 
    rekognitionClient.detectLabels(request) { (response:AWSRekognitionDetectLabelsResponse?, error:Error?) in 
     if error == nil { 
      print(response!) 
     } 
    } 

} catch { 
    print("Error") 
} 

Спасибо большое!

+0

try 'let rekognitionClient: AWSRecognition = AWSRekognition.default()' – Karthik

ответ

3

Документация в Интернете для SDK Rekognition отсутствует, но комментарии в SDK-коде были для меня полезными. Если вы удерживаете Cmd, нажав на ключевое слово в Xcode, вы должны будете найти всю необходимую информацию в комментариях.

Из этого вы можете видеть, что ключ имеет в виду ранее зарегистрированного клиента, который вы можете сделать с registerRekognitionWithConfiguration, но вы можете пропустить все, что при использовании по умолчанию, как указано Karthik:

let rekognitionClient = AWSRekognition.defaultRekognition() 

Я был работа с распознаванием лица, так что я не использовал AWSRekognitionDetectLabelsRequest в моем собственном коде, но я думаю, где вы можете идти не так, что image свойства AWSRekognitionDetectLabelsRequest должно быть AWSRekognitionImage и не UIImage, как вы проходите. вы можете позвонить UIImageJPEGRepresentation для получения необработанных байтов из UIImage.

let sourceImage = UIImage(named: "TestImage") 

let image = AWSRekognitionImage() 
image!.bytes = UIImageJPEGRepresentation(sourceImage!, 0.7) 

guard let request = AWSRekognitionDetectLabelsRequest() else { 
    puts("Unable to initialize AWSRekognitionDetectLabelsRequest.") 
    return 
} 

request.image = image 
request.maxLabels = 3 
request.minConfidence = 90 

Также необходимо отладить отладку, если вы так же настроили свойства запроса.

+0

Ну! Это сработало, спасибо! –

+0

У вас есть своя демонстрационная версия для AWS Rekognition? –

-1
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.EUWest1, 
                  identityPoolId:"please enter pool id") 
    let configuration = AWSServiceConfiguration(region:.EUWest1, credentialsProvider:credentialsProvider) 
    AWSServiceManager.default().defaultServiceConfiguration = configuration 
    let rekognitionClient = AWSRekognition.default() 
    let image = AWSRekognitionImage() 
    image!.bytes = UIImageJPEGRepresentation(sourceImages, 0.7) 
    guard let request = AWSRekognitionDetectLabelsRequest() 
     else { 
      puts("Unable to initialize AWSRekognitionDetectLabelsRequest.") 
      return 
    } 
    request.image = image 
    request.maxLabels = 5 
    request.minConfidence = 90 

    rekognitionClient.detectLabels(request) { (response:AWSRekognitionDetectLabelsResponse?, error:Error?) in 
     if error == nil { 
      print("response ",response) 



     } 
    } 

} 
Смежные вопросы