人脸手势识别-261009
更新-261008 | 发布-260928
✳️ 目录
简介
实验内容
本次实验将使用 Jetson 开发板体验 3 个视觉功能:
- 76285 实验1-3:面部检测
- 76286 实验1-4:人脸检测
- 76287 实验1-5:手势识别
原理和代码解读,可参考 CG 平台相关说明。
开发板
使用带机械臂的 Jetson 开发板。和常见的台式机很相似:
- 主机。有个小小机箱,内部是英伟达开发板(Nvidia Jetson)。
- 屏幕。支持 HDMI 接口的屏幕,都可以通过 HDMI 线连接到 Jetson 开发板。
- 鼠标和键盘。常见的鼠标和键盘,通过 USB 连接 Jetson 开发板。
- 操作系统。Ubuntu,Linux 的发行版的一种。(常见操作系统有: Windows、MacOS、Linux,等)
- 机械臂。由 Jetson 开发板控制的一个外部设备。🚫 本次实验不使用。
相关信息
Jetson 开发板的默认账号密码如下:
- 账号:jetson / 密码:yahboom
相关指南
相关操作指南如下,供按需参考:
1-上电开机
Jetson 开发板(带机械臂的):
- 配有 1 个电源,一端连 Jetson 开发板,另一端插头插在桌子下面的插座上。
- 桌子下面有个带开关的的立方体插座。按下开关,电源指示灯亮,即表明接通电源。
- 稍等片刻可完成启动。机械臂站立起来,且屏幕显示 Ubuntu 的主界面,就启动完成。
2-连外网
创建实验用的 Python 虚拟环境,需要开发板能访问互联网(外网)。
Jetson 开发板(带机械臂的):
- 大多已经插网线了
- 可打开左侧 Dock 栏的 FireFox 浏览器,输入
www.baidu.com。如可以访问百度,则表示已连外网。
3-创建环境
在虚拟环境中开展实验,可做到和开发板的其他项目互不影响。
-
用 conda 创建 Python 3.9 的虚拟环境:
conda create -n fgh1009 python=3.9(1)在虚拟环境中开展实验,可做到和开发板的其他项目互不影响。
(2)fgh1009 是虚拟环境的名字的样例。 -
激活刚创建的虚拟环境:
conda activate fgh1009 -
在虚拟环境中安装相关包:
pip3 install mediapipe==0.10.9 opencv-python==4.12.0.88 numpy==2.0.2和 CG 平台上要求的 Python 版本不一致(本文-3.9,CG-3.8),相关包的版本也不完全一样。可尝试参考本文的版本。
✅ 至此 Python 环境准备已完成。如何安装,查看、进入/退出、删除虚拟环境,请参考 Conda指南↗。
✴️ 虚拟环境创建一次即可。不必每次反复创建。
4-下载解压样例代码
将本次实验使用的样例代码,下载解压到 Jetson 开发板上。
-
下载 zip 压缩包
样例代码下载链接如下:
- 76285. 实验1-3:面部检测 - face_mesh1009.zip
- 76286. 实验1-4:人脸检测 - haar_detection1009.zip
- 76287. 实验1-5:手势识别 - gesture_recognizer1009.zip
样例代码也可从 CG 平台相关链接下载。CG 平台下载的 zip 包的名字是一长串数据字符,可从文件的时间确认哪个是哪个。
-
创建实验目录
mkdir ~/fgh1009 -
zip 包移到实验目录
mv ~/Downloads/face_mesh1009.zip ~/fgh1009 && mv ~/Downloads/haar_detection1009.zip ~/fgh1009 && mv ~/Downloads/gesture_recognizer1009.zip ~/fgh1009在 Jetson 开发板上通过 Firefox 浏览器下载,默认存放在用户家目录(HOME目录)的 Downloads 子目录下(即 ~/Downloads,~ 表示 HOME 目录。HOME 目录的绝对路径可执行
echo $HOME得到)。按 CG 平台手册建议,先新建子目录,再将样例代码从 Downloads 子目录移动到新建子目录。 -
进入实验目录
cd ~/fgh1009 -
解压缩
unzip face_mesh1009.zip && unzip haar_detection1009.zip && unzip gesture_recognizer1009.zip解压缩后,会生成 3 个子目录:face_mesh, gesture_recognizer,haar_detection
5-连接USB摄像头
Jetson 开发板(带机械臂的):
- 再把桌子上的单目摄像头的 USB 连接线,插入实验箱的 USB 扩展坞中。也可以直接插在 Jetson 开发板上。
- 在 Jetson 开发板启动 终端 Terminal App,在终端中执行
cheese命令,可在弹出的窗口中看到图像,即表明摄像头能正常工作。
6-体验视觉功能
在 Jetson 开发板上启动 终端 Terminal App,并激活本实验所需的 Python 虚拟环境。然后可体验以下视觉功能:面部检测,人脸检测,手势识别。
面部检测
-
确保已激活本次实验所需 Python 虚拟环境
-
启动程序
进入目录:
cd ~/fgh1009/face_mesh执行程序:
python3 main.py程序启动后会自动打开摄像头,实时检测画面中的人脸,并在窗口中显示检测结果。窗口被分为左右两部分:
- 左侧窗口: 原始的摄像头画面(已做镜像翻转),并叠加了检测到的人脸轮廓线(绿色线条)和所有468个关键点(红色微小圆点)。左上角实时显示帧率(FPS)。
- 右侧窗口: 在纯黑背景上只显示人脸网格和关键点,可以更清晰地观察细节。
- 按 q 键(或 ctrl + c)退出程序。
更多信息请参考 CG 平台之“76285 实验1-3:面部检测”。
✳️ 说明:
1、样例程序,默认使用老师下发给每个同学的“ 2K USB Camera”
2、也可以执行 python3 main.py /dev/video0 指定摄像头。
3、指定摄像头时,通常是 /dev/video0 或者 /dev/video2 等。可执行 ls -l /dev/video* 命令获得当前有哪些摄像头。
4、弹出的图形窗口上有一排按钮,可尝试操作下。
5、图形窗口为当前窗口时,快捷键(比如按 q 退出)才有效。
6、上述1-5条,适用于“人脸检测”“面部检测”“手势识别”。
人脸检测
-
确保已激活本次实验所需 Python 虚拟环境
-
启动程序
进入目录:
cd ~/fgh1009/haar_detection执行程序:
python3 main.py程序启动后会自动打开摄像头,并进入默认的“人脸检测”模式。你可以通过键盘进行交互:
- 按 f 键: 在三种模式间循环切换:face (仅人脸检测),eye (仅眼睛检测),face_eye (同时检测人脸和眼睛)。
- 按 q 键(或 ctrl + c)退出程序。
窗口中会实时显示检测结果:
- 人脸: 会被一个带有装饰性边角的紫色矩形框标出。
- 眼睛: 会被一个红色的圆形框標出。
- 左上角: 实时显示当前的FPS(帧率)和检测模式(Mode)。
更多信息请参考 CG 平台之“76286 实验1-4:人脸检测”。
手势识别
-
确保已激活本次实验所需 Python 虚拟环境
-
启动程序
进入目录:
cd ~/fgh1009/gesture_recognizer执行程序:
python3 main.py程序启动后会自动打开摄像头,实时检测画面中的单只手并识别其手势。窗口被分为左右两部分:
- 左侧窗口: 原始的摄像头画面(已做镜像翻转),并叠加了检测到的手部骨架(绿色线条)和关键点(红色圆点)。左上角会实时显示识别出的手势名称(如 “Five”, “OK”, “Thumb_up”),右上角显示FPS(帧率)。
- 右侧窗口: 在纯黑背景上只显示手部骨架,方便观察。
- 按 q 键(或 ctrl + c)退出程序。
更多信息请参考 CG 平台之“76287 实验1-5:手势识别”。
关机断电复位离开
实验结束后,请完成以下事项,再离开实验课。
-
关机断电
开发板要先关机、再断电。🚫 严谨开机状态直接断电!
- 点击屏幕右上角 电源标志 → power off → power off
- 观察开发板的散热风扇。风扇停止后,表示已关机。
- Jetson开发板(带机械臂):桌子下面有个带开关的的立方体插座。按下开关,电源指示灯熄灭,即表明断开电源。
- Jetson开发板(带机械臂):将机械臂推倒在白色电源盒上,即可。
-
归还实验器材,给实验室老师
Jetson开发板(带机械臂)
- USB摄像头(每组1个)
- 借用的其他器材
-
椅子复位
- 每个桌子,配套 6 个椅子。请将椅子推到桌子下面。
-
带齐随身物品
✅ 上述事项完成后,可离开实验室。
THE END