Проблема с Pos eNet Оценка в "Tflite.runPoseNetOnFrame" на флаттер - PullRequest
0 голосов
/ 15 января 2020

В моем приложении Flutter я пытаюсь оценить позу. Для этого я использую tlite Pos eNet оценка. Однако оценка распознавания очень низкая, как 0,02 для другого носа. Как я могу увеличить оценку за хорошую оценку? Мой код ниже:

class _CameraState extends State<Camera> {
      CameraController controller;
      bool isDetecting = false;

      @override
      void initState() {
        super.initState();

        if (widget.cameras == null || widget.cameras.length < 1) {
          print('No camera is found');
        } else {
          controller = new CameraController(
            widget.cameras[1],
            ResolutionPreset.medium,
          );
          controller.initialize().then((_) async {
            if (!mounted) {
              return;
            }
            setState(() {});
            controller.startImageStream((CameraImage img) {
              if (!isDetecting) {
                isDetecting = true;
                if (widget.model == posenet) {
                  Tflite.runPoseNetOnFrame(
                    bytesList: img.planes.map((plane) {
                      return plane.bytes;
                    }).toList(),
                    imageHeight: 720,
                    imageWidth: 480,
                    numResults: 2,
                    threshold: 0.0,
                  ).then((recognitions) {
                    widget.setRecognitions(recognitions, img.height, img.width);
                    isDetecting = false;
                  });
                }
              }
            });
          });
        }
      }

      @override
      void dispose() {
        controller?.dispose();
        super.dispose();
      }

      @override
      Widget build(BuildContext context) {
        if (controller == null || !controller.value.isInitialized) {
          return Container();
        }

        var tmp = MediaQuery.of(context).size;
        var screenH = math.max(tmp.height, tmp.width);
        var screenW = math.min(tmp.height, tmp.width);
        tmp = controller.value.previewSize;
        var previewH = math.max(tmp.height, tmp.width);
        var previewW = math.min(tmp.height, tmp.width);
        var screenRatio = screenH / screenW;
        var previewRatio = previewH / previewW;

        return OverflowBox(
          maxHeight:
              screenRatio > previewRatio ? screenH : screenW / previewW * previewH,
          maxWidth:
              screenRatio > previewRatio ? screenH / previewH * previewW : screenW,
          child: CameraPreview(controller),
        );
      }
    }

Варианты инструментов, которые я использую, следующие:

  • камера: ^ 0.5.7 + 3
  • tflite: 1.0 .4
...