こんにちは、私は、現在UnityでAWS サービスを使って画像認識した
情報を取得しようとしています。
S3へPOSTするのをトリガーにRekognitionで
解析した結果をS3へログで保存し、
UnityでそのJsonファイルを読み込むまで、できていますが、
読み込んだJson形式の仕様の影響か、
欲しい値が抽出できません。
S3からJsonファイルを取得し、欲しい値を抽出して、表示しようとしている部分のプログラム
C#
1 public void GetObject(string filename) 2 { 3 FileName = filename; 4 5 Client.GetObjectAsync(S3BucketName, FileName, (responseObj) => 6 { 7 string data = null; 8 var response = responseObj.Response; 9 if (response.ResponseStream != null) 10 { 11 using (StreamReader reader = new StreamReader(response.ResponseStream)) 12 { 13 data = reader.ReadToEnd(); 14 } 15 16 JSONObject json = new JSONObject(data); 17 18 JSONObject facedetail = json.GetField("FaceDetails");//ここがNULLでエラーになります 19 JSONObject faceinfo = facedetail.GetField("Smile"); 20 21 Debug.Log(faceinfo.GetField("vlaue").str); 22 Debug.Log(faceinfo.GetField("Confidence").str); 23 24 //FaceData facedata = JsonUtility.FromJson<FaceData>(json); 25 //Debug.Log(facedata.Smile); 26 27 //string smile; 28 //var jsonData = Json.Deserialize(json) as Dictionary<string, object>;//一層目 29 //Debug.Log(jsonData); 30 //var FaceDetails =jsonData["FaceDetails"] as Dictionary<string, object>; 31 // Debug.Log(FaceDetails); 32 //smile = (string)FaceDetails["Smile"]; 33 //Debug.Log(smile); 34 35 } 36 else 37 { 38 Debug.Log("miss"); 39 } 40 }); 41 }
試したこと
上記の様に、JSONObject、また、コメントアウト部分の様に、JsonUtility、MiniJSONなど試しましたが、うまく取得できませんでした。。
取得Jsonファイル中身
https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/faces.html
上記URLのDetectFaces API コールのレスポンスが中身になります。試しに抽出しようとしているのが「FaceDetails」中身の「Smile」のvalue,Confidenceです。
どなたか、上記のJson形式でも抽出できる方法がお分かりになられる方、ご教授よろしくお願いいたします。
別のアプローチなどで解決できそうな場合も教えていただければ幸いです。(うっすら考えているのがLamda上のPythonコードで書き換えてしまうなど)
どうぞよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/27 03:08