测试场景:
测试对象:
测试算法:根据手势识别系统流程分析,目前手势算法主要包括三部分:静态手势、动态手势、手势识别
测试方案---准确性测试(帧率不同采用差值法保证两者一致)
OpenCV库对两个视频流进行帧率调整和帧间插值处理的Python脚本
1. 导入OpenCV库
2. 读取两个视频流
3. 获取两个视频的帧率
4. 确定帧目标:选择两个视频帧率中的较小值作为目标帧率,确保输出的视频不会比任何输入视频的帧率更快
5. 打开视频写入器:配置一个视频写入器,用于将处理后的视频写入到output_video.mp4文件中
6. 读取视频帧并进行插值处理:无限循环,用于逐帧读取两个视频,并对每一帧进行插值处理。如果任何一个视频到达了结尾,循环就会终止
7. 插值处理:对于每一对帧,代码首先调整低帧率视频的尺寸以匹配高帧率视频的尺寸。然后,使用cv2.addWeighted方法对这两帧进行加权平均,实现帧间插值
8. 写入输出视频:处理后的帧被写入到输出视频中
9. 释放资源:在脚本结束时,所有的视频流和写入器资源都被释放,并且关闭了所有OpenCV窗口
测试方案---准确性测试(光流计算)
1. 数据采集: 让两个手势算法的摄像头同时拍摄手的动作过程。确保两个摄像头的设置相同,包括帧率、分辨率等
2. 视频序列获取: 将两个摄像头拍摄到的视频序列保存下来
3. 预处理:对视频序列进行预处理,如图像裁剪、大小调整等,以确保两个视频的图像属性一致
4. 光流计算:使用光流法在两个视频序列中计算光流向量。可以选择全局光流计算,也可以在感兴趣的区域内进行局部光流计算,具体取决于需求
5. 相似度计算: 计算两个视频序列中的光流向量相似度。可以使用一些相似度度量方法,如欧氏距离、余弦相似度等
6. 结果分析: 分析相似度的结果,比较两个手势算法的性能。如果两个视频序列的光流向量相似度较高,说明两个算法在光流特征上表现一致;如果相似度较低,说明它们在手势的光流表达上存在差异
使用OpenCV库进行两个图像之间的特征匹配和透视变换
并将结果存储在image_A_registered变量中
12. 显示原始图像和矫正后的图像
基于OpenCV库来检测手部的运动轨迹
1. 使用Farneback方法计算光流场。此方法提供稠密(像素到像素)的运动估计。用于控制算法的精度和计算复杂度的超参数),通过计算连续帧之间的像素运动来检测运动
2. 打开一个视频文件,读取每一帧,将每一帧转换为灰度图,计算该帧与前一帧之间的光流场
3. 计算HSV颜色空间中的光流角度和幅度。角度被转换为度数,用于设置HSV空间中的色调(Hue)
4. 幅度被归一化并设置为饱和度(Saturation)
5. 使用cv2.cvtColor将HSV图像转换为BGR格式,并显示处理过程,释放视频文件并关闭所有OpenCV窗口
思考:如何保证采集的真实视频和摄像头识别的视频位置一致?如何精确到毫米级别?数据如何对比?
摄像头的角度、范围、参数不同,出来的结果会有很大的误差
双目相机参数无法获取
模型无法获取到3D坐标
RGB图片对齐后计算光流
标定关节点坐标
计算光流
conda create -n 3dgesture python=3.8
conda activate 3dgesture
pip install torch
1. import torch时报错ModuleNotFoundError: No module named 'torch'
在成功安装完pytorch后打开pycharm时import torch时会报错“ModuleNotFoundError: No module named 'torch'
一、打开文件的setting选项
二、找到python interpreter选项,点击Add Interpreter
三、如图所示添加编译器 点击add 选择Conda Environment 选择Python=3.8
四、一直点OK,完成配置。重启pycharm再运行import torch
2. AttributeError:module 'cv2.cv2' has no attribute 'DualTVL1OpticalFlow_create' 解决
搜索该问题后,很多解决答案是:
pip install opencv-python
pip install opencv-contrib-python
但是我的问题还是没解决,原因是默认安装的版本太高,太高反而不支持cv中的函数,因此操作如下:
第一步:卸载
pip uninstall opencv-python
pip uninstall opencv-contrib-python
第二步:按指定版本重新安装
pip install opencv_python==3.4.2.17
pip install opencv-contrib-python==3.4.2.17