# Sign-language-recognition **Repository Path**: ninjazgit/Sign-language-recognition ## Basic Information - **Project Name**: Sign-language-recognition - **Description**: 基于TSN网络模型的手语识别系统 - **Primary Language**: Python - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 0 - **Created**: 2020-08-28 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于TSN网络模型的手语识别系统 ## Author:CRS Club,Wizard ## 直接使用方法 ### 转化测试集数据 ```shell pip install wget python GetTestdata.py ``` ### 预测该视频代表的手语信息 ```shell python freeze_infer.py ``` ## 数据集的结构 ### label.npy的结构 ```python import numpy as np label = np.load('label.npy', allow_pickle=True) print(label) ``` 说明:label.npy的结构为一个字典,key为视频对应的标签,如'please'、'walk'等,而value为int值用以区分不同类。 ### **pkl的结构** ```python import pickle f = open('dataset/train/come1.pkl', 'rb') pkl_file = pickle.load(f) f.close() ``` 说明:pkl的结构为:(文件名,该文件对应标签的int值,[视频帧1的地址,视频帧2的地址,视频帧3的地址.....]) ## **自制数据集** Tips:自制数据集,请解压自制数据集后运行一次GetDataset.py,不然会生成重复的文件QAQ 1.先建立一个文件夹叫dataset 2.在dataset文件夹里再建立文件夹对应着手语的label 3.运行GetDataset.py ## 开始TSN网络模型训练 ### 训练 ```python python train.py --model_name TSN \ --epoch 60 \ --save_dir 'checkpoints_models' \ --use_gpu True \ #看你有没有GPU,有的话先设置下CUDA的变量哦,没有就改成False --pretrain data/ResNet50_pretrained ``` ### 固化模型 ```shell python freeze.py --weights 'checkpoints_models' ``` ### 预测 ```shell python infer.py --weights 'checkpoints_models' --use_gpu True --save_dir 'infer' ``` ### 制作片段 ```python # 制作片段,用作特征以区分不同动作 import os from moviepy.video.io.VideoFileClip import VideoFileClip def clip_video(source_file, target_file, start_time, stop_time): source_video = VideoFileClip(source_file) video = source_video.subclip(int(start_time), int(stop_time)) # 执行剪切操作 video.write_videofile(target_file) time = 1 for i in range(5): clip_video('test/test/test.mp4', 'test/test/test_'+str(i)+'.mp4', i * time, (i + 1) * time) ``` ### 运行 ```shell python infer_video.py ``` #### 鸣谢: 潘凯昕(不回我消息使我有了更多的时间去完成项目QAQ) 张睿哲(和上面那人一样QAQ) 感谢 BENEW.club为本次项目提供的网络支持 感谢微软云Azure(非中国区世纪互联)提供的服务器 有问题提交iss #### 最后求Star,求Star,求Star,重要的事情说三遍