inference method

Future<void> inference(
  1. {required CameraImage cameraImage}
)

Implementation

Future<void> inference({
  /* camera Controllerから渡される画像 */
  required CameraImage cameraImage,
}) async {
  try {
    // CameraImageをImageに変換
    final image = await _convertCameraImageSerivce.exec(cameraImage);

    // 骨格推定処理を実行
    final person =
        await _poseEstimationService.then((value) => value.exec(image));

    if (person == null) {
      // FIXME: エラーハンドリング
      throw Exception('Person is null');
    }

    // FIXME: 仮で閾値を設定
    final threshold = ExerciseType.siseStep.threshold;

    final evaluatePose =
        await _evaluatePoseService.then((value) => value.exec(
              person,
              ReceivePort(),
              threshold,
            ));

    if (mounted) {
      state = state.copyWith(
          inferenceResult: InferenceResult(
        cameraImage: cameraImage,
        person: person,
        evaluatePose: evaluatePose,
      ));
    }
  } catch (e) {
    if (kDebugMode) {
      print('runInference error: $e');
    }
  }
}