我给自己写了个坐姿检测软件,治好了我的脖子前倾和驼背

31 阅读3分钟

我给自己写了个坐姿检测软件,治好了我的脖子前倾

事情是这样的。

前阵子去医院拍了个片子,医生说我的颈椎曲度已经有点前伸了。问我是不是天天低着头看电脑。我说是啊,干我们这行的,一天十几个小时盯着屏幕,不低头才怪。

医生说你再这么下去,后面就不是脖子酸的问题了。

回来之后我确实注意了一段时间,但你知道的,写着写着代码,人就不知不觉凑到屏幕前面去了。等反应过来,脖子已经伸出去老远。

买过那种挂在脖子后面的姿势提醒器,也买过脖圈,但是那种东西始终是外物,肌肉没建立起来也只是亡羊补牢,算了,自己动手嘛。

后来我琢磨,既然我天天对着电脑,不如写个软件来盯着我。

花了两天时间,搞了个桌面应用。原理不复杂——调用摄像头,实时检测你的头部姿态。你正常坐着的时候,软件会记下这个基准位置。一旦你开始低头、脖子往前伸、或者歪着头看屏幕,它就会提醒你。

用起来很简单:

  1. 找个摄像头,笔记本自带的也行
  2. 启动软件,正对着坐好
  3. 软件会显示你当前的头部位姿,你根据自己舒服的正常坐姿,调整一下阈值
  4. 完事。之后只要你姿势跑偏,它就会报警

目前支持三种姿势问题的检测:

  • 低头(角度过大)
  • 脖子前倾(头部偏离基准太远)
  • 偏头(左右歪头)

底层用的是Python,调了OpenCV和MediaPipe的人脸关键点检测。准确率还不错,只要光线正常、摄像头角度合适,基本不会误报。

其实写完之后我自己用了一周,发现最大的改变不是被提醒的时候,而是“知道有人在看着我”的那种感觉。有点像开高速的时候开了车道保持,你明知道它不会把你怎么样,但你就是会下意识地好好握着方向盘。

代码我放GitHub上了,开源免费的,有需要的直接拿去用。

GitHub地址:https://gitee.com/jie_huang/sitting-posture-reminder

环境要求:Python 3.12,装了opencv-python和mediapipe就行。

运行命令:(取决于自己的环境)

D:\project\pose_detection\.venv\Scripts\python.exe C:\Users\Admin\Desktop\坐姿提醒\pose_detection_tk.py

MediaPipe的模型文件已经包含,直接运行就好。

注意:mediapipe分为新版和旧版,这里采用的是新版API

另外说一句,这软件不能代替医生的建议。如果你已经腰疼脖子疼了,该去看医生看医生。它只是一个帮你养成习惯的工具。

写完这个之后,我现在写代码时脖子确实没那么往前伸了。不知道是软件的作用,还是因为我花了两周时间写它,心理上觉得不用就亏了。

可能是后者吧。但效果到了就行。

运行截图

提醒截图.jpg

全览截图.jpg

窗口截图.jpg