1

イメージの顔やラベルを検出するためにAWSRecognition SDKを使用しようとしています。しかしAmazonにはSDKをiOSに統合する方法に関するドキュメントはありません。彼らにはRekognition(Developer Guide)の使い方を示すリンクがあり、Javaの例だけで非常に限られています。AWS Rekognitionを使用してSwiftでイメージラベルと顔を検出する方法3

Amazon Rekognition Developer Guide

あなたが彼らの「IOSマニュアル」をクリックすると、それがどのセクションでRekognitionの兆候で、一般的なIOSのマニュアルページが表示されます。

AWS iOS Developer Guide

私は誰がスウィフト3でAWS Rekognitionを統合する方法を知っているかどうかを知りたいと思いました。それを初期化し、イメージで要求を出し、ラベルで応答を受け取る方法。

すでにAWSRekognition.frameworkAWSCore.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

Rekognition iOS SDKのWeb上のドキュメントは不足していますが、SDKコードのコメントは私には非常に役立ちました。 Cmdを保持していて、Xcodeのキーワードをクリックすると、コメントに必要なすべての情報を見つけることができます。このことから

キーはあなたがregisterRekognitionWithConfigurationで行うことができます以前に登録されたクライアントを参照していることを確認することができますが、カルティクが述べたように、デフォルトを使用して、すべてのことをスキップすることができます

let rekognitionClient = AWSRekognition.defaultRekognition() 

私がされています私は自分のコードでAWSRekognitionDetectLabelsRequestを使用していませんでしたが、あなたが間違っている可能性があると思うのは、プロパティが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認知のための迅速なデモがありますか? –

-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) 



     } 
    } 

} 
関連する問題