手势识别我们选用的是MediaPipe库。
MediaPipe是一个跨平台的机器学习框架,用于构建轻量级机器学习管道,例如用于移动设备的实时跟踪、检测、姿势和手势识别。
手势识别的代码位于up_cyzx_demo文件夹下的cyzx_gesture_detect.py文件中。
核心代码如下所示:
# 调用detectNumber函数
resultNumber = detectNumber(hands_landmarks, frame)
if (resultNumber >= 0):
cv2.putText(frame, str(resultNumber), (150, 150), 19, 5, (255, 0, 255), 5, cv2.LINE_AA)
if(resultNumber == 5):
movement.move_forward(256)
elif (resultNumber == 0):
movement.move_backward(256)
else:
movement.stop()
else:
cv2.putText(frame, "NO NUMBER", (150, 150), 20, 1, (0, 0, 255))
movement.stop()
在这段代码中,我们调用了detectNumber函数,该函数用于检测手势中的数字。如果检测到数字,则根据数字的不同执行不同的动作,例如向前移动、向后移动或停止。
关于detectNumber的原理,这里不做赘述,请自行调用。
在实际应用中,您可以根据自己的需求修改detectNumber函数,以实现更多功能。
效果如下: