news 2026/11/2 1:54:52

复现基于 PyTorch 的中文孤立手语词识别项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
复现基于 PyTorch 的中文孤立手语词识别项目

项目地址:GitHub - harveyfly/SignLanguageRecognition: 中文孤立手语词识别;Bi-LSTM;SLR;500-CSL · GitHub

项目介绍

把一段手语视频的骨骼序列抽成固定长度的 24 维帧特征,用 2 层双向 LSTM 编码时序,取最后时刻的 2048 维表示做 50 类分类,输出对应的中文词。

它是基于骨骼点的孤立手语词分类,不是 RGB 视频端到端识别,也不是连续手语翻译。

我的服务器:RTX4090

建议先看完整篇文章再复现,避免出现问题三的情况

一、获取项目

服务器git clone或windows下载后上传服务器

二、搭建环境

1. 创建新虚拟环境(python 3.7)并进入环境

conda create -n slr_isolated python=3.7 conda activate slr_isolated

2.装依赖

pip install -r requirements.txt

三、准备数据集

1. 拿数据

下载xf500_body_depth_mat.zip(作者备份)→ 解压到data/SLR_dataset/xf500_body_depth_mat/(或官方 txt + MATLAB 转 mat)

2. 预处理

python data_preprocess.py

生成data/SLR_dataset/processed/SLR_S45_E95_K24_body_{data,label}.npy

四、训练

python train.py

保存model/SLR/blstm_output50_input24x24.pkl,日志在log/

遇到问题一 :Pillow 版本与 torchvision 版本不兼容

原因:我环境中的 Pillow 版本是 7.0 或更高,而它从 7.0.0 开始移除了PILLOW_VERSION常量,但我安装的 torchvision 版本较旧,代码里仍然在导入这个已被删除的常量。

解决:降Pillow版本(安装7.0以下版本)

pip install "pillow<7"

遇到问题二:找不到文件

原因:运行data_preprocess.py会生成 K36 的 npy,但训练配置去找 K24

解决:修改data_preprocess.py关键帧数量为24并重新运行

问题三:PyTorch 环境与 RTX 4090不兼容

禁用cuCNN后出现

原因:cublasSgemm是 cuBLAS 库执行矩阵乘法的函数。在 LSTM 的运算中,输入数据需要与权重矩阵相乘,这一步正是由 cuBLAS 完成的。你的 RTX 4090 是 Ada Lovelace 架构(计算能力 sm_89),而 Python 3.7 能安装的旧版 PyTorch 官方预编译包通常只包含到 sm_86 或更低的 CUDA 内核。虽然 NVIDIA 的规则允许高版本架构“向上兼容”运行低版本内核,但在 cuBLAS 的某些特定操作中,这种兼容并不总是可靠,尤其是在复杂的 RNN 计算路径上。

解决:换环境和依赖

conda create -n slr_slr_isolated_new python=3.10 -y conda activate slr_slr_isolated_new pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 pip install numpy matplotlib scipy scikit-learn Flask

训练成功日志

五、测试

python test.py

终端输出Test accuracy

六、结果

1. 训练过程复现与曲线分析

跑通train.py,得到完整的训练/验证损失记录。训练使用2层 BiLSTM(隐层1024),Adam优化器,学习率初始0.001,共20个 epoch,初始学习率0.001,在第11轮和第16轮分别衰减为原来的1/10。观察训练loss与验证loss的走势,并标出了best valid epoch(验证损失最低的轮次),确认模型收敛正常、未出现明显过拟合。

2. 测试结果与指标分析

跑通test.py,测试集准确率92.8%。

混淆矩阵:对角线呈现深色高值聚集,绝大部分错误高度集中于极少数特定词对之间(如Class 20与28、Class 6与7 互相误判),说明模型整体分类边界清晰。

每类强弱项:表现呈现出“强者极强、弱者极少”的分布,有7个类别达到 F1=1.0的完美识别,而最弱的3个类别(Class 20、28、6)因骨骼特征高度相似导致F1跌至0.63-0.68,是后续优化的核心目标。

样例与错误分析:正确/错误样本、top-5概率

在当前的24维骨架特征空间里,“富强”和“安静”的手臂相对坐标轨迹可能极其相似;同样,“稳定”和“禁止”的骨骼姿态也高度重合。模型虽然“看得很准”(自信),但“学偏了”(特征区分度不够)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 1:53:57

小白程序员必看:彻底搞懂RAG与Agent的区别,面试不再卡壳!

RAG与Agent并非绑定关系&#xff0c;多数Agent会内置RAG模块但非必需。RAG用于向大模型补充外部知识&#xff0c;解决模型知识局限&#xff1b;Agent则具备规划、调用工具、多步执行、反思能力&#xff0c;解决复杂任务执行。标准RAG属于固定流程的Workflow&#xff0c;Agent是…

作者头像 李华
网站建设 2026/11/2 1:53:57

C++程序员必看:从小白到掌握大模型推理引擎,收藏这篇高薪转型指南!

本文揭示了AI Infra岗位的核心并非仅会写CUDA Kernel&#xff0c;而是构建高性能、低延迟、高并发的推理服务。文章详细阐述了C在推理引擎中的关键作用&#xff0c;以及内存管理、高并发与异步调度、CPU性能优化等方面的核心技术点&#xff0c;并提供了从基础到实战的学习路线&…

作者头像 李华
网站建设 2026/11/2 1:53:34

视频孪生公司怎么选?三类架构差异、真实案例与选型思路

“视频孪生公司有哪些&#xff1f;”这个问题&#xff0c;我这两年至少被问过二十次。提问的人有设计院的工程师&#xff0c;有园区运营负责人&#xff0c;也有刚接手信息化工作的甲方。先把能查到的信息摆出来&#xff1a;国内这条赛道上活跃的玩家大致分三类——全栈交付型、…

作者头像 李华
网站建设 2026/11/2 1:53:19

Python函数入门避坑指南!小白必学3种实用函数,抄模板就能写

这是关于函数入门的学习内容, 适合零基础的小白, 提供了三种模板, 只要照着抄一遍就会发现很快就学会。学函数的小白&#xff0c;90%都会陷入两个误区&#xff1a;要么就是把def的语法给死记硬背下来, 可是等于是背完了这回事之后, 还是照样不会去写。要么只会复制别人的函数&a…

作者头像 李华
网站建设 2026/11/2 1:52:50

llms.txt 到底该写什么

它是什么 放在域名根目录的一个纯文本文件&#xff0c;路径固定&#xff1a;https://example.com/llms.txt&#xff0c;用 Markdown 格式写。 作用只有一个&#xff1a;告诉大模型的抓取方&#xff0c;这个站是干什么的、核心内容在哪里。 它不是标准&#xff0c;W3C 没有它&am…

作者头像 李华