ai优化6
This commit is contained in:
parent
309c5678c4
commit
6c9f7ffab6
@ -119,7 +119,16 @@ namespace Wpf_AiSportsMicrospace.Common
|
||||
// ---- 右手举手优先 ----
|
||||
int rightHandAction = DetectRightHandRaise(target);
|
||||
if (rightHandAction != (int)WavingAction.None)
|
||||
{
|
||||
ResetWaveCounts();
|
||||
return rightHandAction;
|
||||
}
|
||||
|
||||
if (IsRightHandRaiseIntent(target))
|
||||
{
|
||||
ResetWaveCounts();
|
||||
return (int)WavingAction.None;
|
||||
}
|
||||
|
||||
// ---- 左右挥手累加 ----
|
||||
int leftValue = _leftTracker.Tracking(target);
|
||||
@ -130,19 +139,43 @@ namespace Wpf_AiSportsMicrospace.Common
|
||||
|
||||
if (_leftWaveCount >= WaveThreshold)
|
||||
{
|
||||
_leftWaveCount = 0;
|
||||
ResetWaveCounts();
|
||||
return (int)WavingAction.LeftWave;
|
||||
}
|
||||
|
||||
if (_rightWaveCount >= WaveThreshold)
|
||||
{
|
||||
_rightWaveCount = 0;
|
||||
ResetWaveCounts();
|
||||
return (int)WavingAction.RightWave;
|
||||
}
|
||||
|
||||
return (int)WavingAction.None;
|
||||
}
|
||||
|
||||
private void ResetWaveCounts()
|
||||
{
|
||||
_leftWaveCount = 0;
|
||||
_rightWaveCount = 0;
|
||||
}
|
||||
|
||||
private static bool IsRightHandRaiseIntent(Human human)
|
||||
{
|
||||
var wrist = human.Keypoints.FirstOrDefault(k => k.Name == "right_wrist");
|
||||
var elbow = human.Keypoints.FirstOrDefault(k => k.Name == "right_elbow");
|
||||
var shoulder = human.Keypoints.FirstOrDefault(k => k.Name == "right_shoulder");
|
||||
|
||||
if (wrist == null)
|
||||
return false;
|
||||
|
||||
if (shoulder != null && wrist.Y <= shoulder.Y + 40)
|
||||
return true;
|
||||
|
||||
if (elbow != null && wrist.Y <= elbow.Y - 20)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 优化后的右手举手检测
|
||||
/// </summary>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user