/Taishan_Preprocess

For data preprocessing in Taishan PUSH-UP Detection Project

Primary LanguagePython

泰山俯卧撑检测系统说明文档

环境配置

Linux环境下,打开终端,输入以下命令,编译生成.so文件

$ g++ loop.cpp -fPIC -shared -o loop.so

Windows环境下,打开终端,输入以下命令,编译生成.dll文件

$ g++ --share loop.cpp -o loop.dll

对于生成的.so或.dll文件,放在目录下。

找到Project.py 中的loop类,根据当前系统环境选择对应的文件名(默认为windows环境)

# FOR LINUX, command: g++ loop.cpp -fPIC -shared -o loop.so 
# _file = 'loop.so' 
# FOR Windows, command: g++ --share loop.cpp -o loop.dll |
 _file = 'loop.dll'

程序运行

首先需要在final_gui.py中对main函数中的参数进行设置:

dir_pic为图片输入路径,

dir_out_pic为图片输入路径,

默认设定从第N=200张图片开始处理,因为一开始的图片可能存在人仍然未趴下的情况,

是否进行图像镜面翻转

dir_pic = r"D:\taishan_images\2-1"
dir_out_pic = r"D:\taishan_images\output_images"
main(dir_pic, dir_out_pic, 200, True)

预处理部分Preprocess.py总体框架

Preprocess中主要关联了三个类:

Transform

将初始输入的二维深度照片转换为三维点云的数据格式,从而方便通过在三维坐标系上进行分割,筛选出人体所在的位置

Projection

利用上一步晒出的人体点云信息,再投影回一个二维的面上(人的侧面),同时统计二维面上每个像素被投影到的频率,进行降噪处理。

Normalization

考虑到不同人的身体长度各异, 因此在该步骤中做了一个归一化的处理,使得图像尽量在一个统一的尺度上。

Taishan_Preprocess

For data preprocessing in Taishan PUSH-UP Detection Project.

Before running the programme, you should compile the loop.cpp, then genetate loop.so (Linux) or loop.dll (Windows)

Environment

To run in Linux

$ g++ loop.cpp -fPIC -shared -o loop.so

To run in Windows

$ g++ --share loop.cpp -o loop.dll