アイティ・コネクト株式会社
2018.02.07
Java実装による顔登録について
現在、Sotaのカメラではなく事前に撮影した画像による、顔の登録機能を実装しようとしているのですが、
画像からの顔登録が上手くできません。

具体的には以下のようなコードで、画像からモノクロ画像のbyte配列を生成し、addUserwithErrorCodeを実行しているのですが、NullPointerExceptionが発生してしまいます。
 
  1. FaceDetectLib faceLib = new FaceDetectLib(10000);
  2. // imageFilePathには画像のパスが格納されている。
  3. // 画像(png)ファイルをモノクロ画像のbyte配列に変換する。
  4. byte[] byteImage=imageToBytes(imageToMono(imageFilePath));
  5. FaceDetectResult faceResult = GlobalVariable.faceLib.FaceDetect(byteImage);
  6. // faceResult.facefutureがnullのため、戻り値のfaceUserがnullとなる
  7. FaceDetectLib.FaceUser faceUser = GlobalVariable.robocam.getUser(faceResult);
  8. // addUserwithErrorCodeメソッド内でfaceUser.resultにアクセスしてNullPointerExceptionが発生する
  9. int faceuserAddReturnCode = GlobalVariable.robocam.addUserwithErrorCode(faceUser);

直接的な原因は、変数「faceResult」のフィールドfacefutureがnullであることとは思うのですが、このfacefutureがnullになるパターンまで調査することができませんでした。
FaceDetectメソッドにbyte配列を渡した場合、戻り値のfaceResult.facefutureがnullになるのはどのようなパターンが考えられますでしょうか?

必要であればこちらで実装したファイル(VstoneMagicから実行可能です)を添付することも可能です。

どうかご回答のほど、よろしくお願いいたします。
この質問に回答する
 

Page Top