AI手部识别
-
说明
你可以使用以下AI积木自动地通过电脑的前置摄像头识别用户的手部:
这个积木将接受3个输入参数:-
输出表格:第一个输入让你可以选择一个表格,用于保存这个积木的输出。注意,当你把这个积木添加到代码编辑器时,将会自动创建一个新表格,如果需要,你可以更改表格的名称。请查阅下文,了解将写入到该表格的数据的有关信息。
-
调试:如果该输入设为“是的”,那么手部轮廓将会像下图那样绘画在摄像头图像之上。注意,总共21个点将得到识别:手腕,然后5根手指每根4个点。这些点在左手将绘画为红点,右手为蓝点。
- 显示图像:如果该输入设为“是的”,那么来自摄像头的图像将在舞台上显示为背景。 如果该输入设为“不”,那么将不会显示图像,这将让程序运行得更快。如果你的程序只需要使用输出表格中的数据,那么你可以选择不显示图像。
输出表格
当在摄像头图像中检测不到手部时,输出表格将为空。它包含以下7列。
当检测到一只手时,将有47行数据填充到表格内。如果检测到2只手,另外47行数据将添加到下方,共有94行。
对于每一只手,都有3种类型的数据,每一种类型均使用不同的列子集:
手指姿势
对于每一只手,前5行包含了每一只手指的曲度和方向。 对于大部分简单的用例,这5行包含了足够的信息。
只有4列数据填充到了这5行:- 手:这一列将告诉你这是左手还是右手。
- 部位:这一列将告诉你该行描述的是哪一根手指。
- 曲度:这是手指弯曲的角度。它应该是一个介于0和180之间的数字。例如,对于食指,当它伸直时,曲度为180度。随着你的手指不断弯曲,该角度将减小至大约40度。
- 方向:这是手指指向的方向。它使用和运动积木“面相…方向”相同的方向系统。例如,当手指指向上方时,方向约为0度。当手指指向右方时,方向约为90度。对于左边方向,则约为-90度。对于向下的方向,则约为180或-180度。当然,实际的方向值不一定精确,因为你的程序需要检查该值是否位于一个范围之内。例如,如果方向大于-30或小于30,那么你可以把它看成是指向上方。
舞台上的二维手指位置
在手指姿势的5行数据下方,有21行的数据描述21个点的X位置和Y位置。填充数据的4列为:
- 手:这一列将告诉你这是左手还是右手。
- 部位:这一列告诉你这一行描述的是21个点中的哪一个。第一行是“手腕”点,然后5根手指中的每一根都有4行数据。例如,对于拇指,从下到上的4点为“拇指1”、“拇指2”、“拇指3”以及“拇指4”。
- X和Y:这些数值使用和角色相同的位置系统,即舞台的中心为X = 0,Y = 0。例如,在下图中,手腕位于舞台底部的中央位置,因此其X位置约为0,其Y位置约为-180。
舞台上的三维手指位置
在21行的二维手指位置数据下方,有另外21行的数据描述同样的21个点的三维位置。填充数据的5列为:
- 手:这一列将告诉你这是左手还是右手。
- 部位:这一列告诉你这一行描述的是21个点中的哪一个。
- X/Y/Z:这些数值使用三维位置系统。如果你用一个小盒子来表示每一个点,那么当你向前伸手时,这些盒子将形成面向前方(和你的真实手部相同的方向)的三维手部:
你可以打开以下链接,尝试运行演示项目:https://play.creaticode.com/projects/ef0d19a26944613ac1805db7
-
-