簡體   English   中英

Android實時跟蹤期間的計數問題

[英]Counting issues during real-time tracking on Android

我正在使用 ML KIT 制作應用程序。 我目前正在做深蹲時進行計數。 問題是當它下降到某個角度時它會計數,但因為它是實時跟蹤,它會計數多次而不是一次。 換句話說,實際上當我做一個深蹲時,計數遠不止於此。 所以我嘗試使用計時器處理程序解決問題。 但我失敗了。 這是我的代碼我該怎么辦?

     //going down
      if((rightKneeAngle<=90 && leftKneeAngle<=90) || (rightHipAngle<=135 && leftHipAngle<=135)){
        //Timer setting
        mTimer.schedule(new CustomTimer(), 2000);

    Log.d("PoseGraphic.class", "goingdown"+"rightKneeAngle : " + rightKneeAngle+ " leftKneeAngle : " + leftKneeAngle);
    Log.d("PoseGraphic.class","leftHip"+leftHipAngle+"RighHip"+rightHipAngle);
    Log.d("PoseGraphic.class", "cnt: " + cnt);


    //going up
    if((rightKneeAngle>170 && leftKneeAngle>90)|| (rightHipAngle>135 && leftHipAngle>135)){
      Log.d("PoseGraphic.class", "going up"+"rightKneeAngle : " + rightKneeAngle+ " leftKneeAngle : " + leftKneeAngle);
      Log.d("PoseGraphic.class","leftHip"+leftHipAngle+"RightHip"+rightHipAngle);

      if(cnt==12) {
        canvas.drawText("complete!", x, y, textPaint);
        //ExerciseCount.cnt = 0;
        cnt=0;
      }

    }

  }

//  TIMER handler class

    class CustomTimer extends TimerTask 
    @Override
    public void run() {
      cnt++;
    }

如果沒有看到更多代碼,我無法完全理解你是如何做到的。

An suggestion would be: Instead of +1 to the count when the pose is in squat_down state, record the entering of that state with a boolean and +1 to the count only once the user exit squat_down and enter squat_up state. 然后重置 state boolean。 通過這樣做,您只會在用戶完成從下蹲到上的整個周期時 +1。

實際上,ML Kit 剛剛推出了一個用於深蹲和俯卧撐分類和重復計數的示例。 這是您可以嘗試的應用程序 如果你想對其他一些姿勢進行分類,這里有一些指南和一個 Colab

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM