[开源]用 AI 和摄像头开发一款懒人健身工具,程序员福利 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
kuse2001
V2EX    分享创造

[开源]用 AI 和摄像头开发一款懒人健身工具,程序员福利

  •  
  • /a>
      kuse2001 290 天前 1944 次点击
    这是一个创建于 290 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发缘由

    我做过项目经理,但是很喜欢编程,人比较宅。每天大部分时间都对着电脑屏幕,上网、敲代码,解决 Bug 。由于工作性质和懒,动得比较少。

    随着年龄大了,身体就有了问题。最明显的问题就是痛风。这东西主要和体质有关系。痛的时候就吃乐松,但治标不治本。后来我发现,比较管用的还是得靠运动加上多喝水。

    以前我还挺喜欢骑自行车的,上下班或者强制自己骑车。但自从在家工作后,骑车的机会就少了。结果,不运动,老毛病又来了。

    运动上我也尝试了很多办法。Wii U 跳舞、运动、FIt U ,玩了几次就觉得麻烦,开机慢,还要挥舞着手柄,进去也麻烦,对懒人多一步都是致命的。Switch 健身环也用了,一样,新鲜劲过了就懒得弄了,那个绑腿对懒人也是致命的,懂得都懂。Xbox Kinect 的跳舞和运动游戏也搞了,是方便点,不用拿东西,但总觉得要在客厅专门弄一块地方,懒,如果家人在客厅就更没那么方便。

    很怀念以前骑车运动完那种全身轻松舒畅的感觉,心情也好,晚上睡觉也香。我就开始琢磨,有没有什么办法能让我这种懒人也能坚持运动呢?

    如果只是让我从电脑前站起来扭扭腰、抬抬腿,说实话,没什么意思,坚持不下去。我就想,要是有个什么东西能提醒我、督促我动起来就好了。我得琢磨“最懒的不偷懒方法”。

    所以我就想着开发一个工具,用电脑或者手机的摄像头来检测我的身体动作,然后在屏幕上弄个小人影射我的“跑步”动作,在一个三维场景里跑动。这样我就可以随时打开这个工具动一动。

    游戏里会显示一些步数和卡路里消耗。通过摄像头检测,这些肯定不会很准,但至少能给一个参考,知道自己大概动了多少。对于像我这种懒得动又想稍微监督一下自己的人来说,已经基本可以到我的要求了。

    如果一个人还坚持不下去,还可以找朋友或者在群里互相监督,每天截个图,互相提醒运动,也是不错的方法。

    我的个人感受

    我自己试了之后,发现每天原地慢跑个 2000 步左右,身体会开始发热,算是进入状态了。如果想减肥,可能还得再多动一些。如果只是想活动一下,每天这样几次,每次十几分钟,也差不多够了。

    而且这种原地慢跑对膝盖也比较友好。我自己的膝盖关节不太好。题外话:我深蹲困难,蹲下去就站不起来。有时候去一些没有马桶的厕所就比较尴尬。但是用这个软件“慢跑”,动作很轻柔,力度可以自己掌握,不伤膝盖,还能锻炼身体,提高心肺功能。每天运动多少,完全可以自己看着办。 另外打开这个游戏的时候,还可以一边“跑”,一边听听播客或者刷剧看视频,这样就不会觉得太无聊。我是喜欢听播客。

    软件编写过程

    现在用 AI 编程真是方便。我基本上就是把自己当成产品经理,用大白话跟 AI 描述我的需求,从最开始什么框架都没有,到最后把整个软件做出来,我其实没写多少代码。当然,还是需要一定的软件架构和技术基础,不然遇到问题也很难解决。

    我已经把这个软件开源了,代码都放在网上GitHub - Jamesun921/cam-run: A running game based on webcam, controlling the game character in an infinite scene by detecting user movements.With AI Companion providing real-time movement guidance and personalized feedback. Main technologies: Three.js, MediaPipe Pose 一个基于网络摄像头的跑步游戏,通过检测用户的动作来控制游戏角色在无限场景中奔跑。AI 陪跑功能,提供实时动作指导和个性化反馈。主要技术:Three.js ,MediaPipe Pose,欢迎 star 。如果担心开摄像头有隐私问题的小伙伴,可以自己看看代码。纯前端的,自己部署也很方便。

    一直对着屏幕“跑步”可能会有点枯燥,特别是对于不那么有意志力的人来说。所以我还加了一个 AI 陪跑的功能。会随机说一些鼓励的话,或者讲一些幽默的段子,增加点乐趣。让 AI 写段子的好处就是,你永远不知道它接下来会说什么。智能体的同在感目前可能还不强,段子也还比较老外,后面看看怎么改进。AI 提示语我保留了中英文对照,还能顺便学学英文(人懒,没办法)。AI 的 API 是直接调用的,借用了某大拿的开源库里的内容,致敬下。

    这个游戏电脑手机平板都支持,可以给家人朋友收藏运动。对性能还是有点要求的,稍微新点的设备应该都行,可能还没有优化好,手机和平板的效果会差点,有能人也可以给予指点。

    这个 Webcam Runner ,就是想用一个最简单、方便的方法,帮助像我一样比较宅、比较懒、又想能动起来、储蓄点健康的人。希望这个小工具能对大家有用。

    Webcam Runner 游戏截图

    原地慢跑也是有些讲究的,具体大家可以去搜索。也可以参考文章 : 原地慢跑:居家高效燃脂的“隐形运动”

    7 条回复    2025-03-19 19:22:50 +08:00
    7gugu
        1
    7gugu  
       290 天前   1
    感觉好好玩
    wyntalgeer
        2
    wyntalgeer  
       290 天前
    @7gugu 是好玩,但是运动不减肥,甚至还会增肥。
    YLGG
        3
    YLGG  
       290 天前
    这个可以额
    bestmos
        4
    bestmos  
       290 天前
    @wyntalgeer #2 增的是重,不是脂肪
    kuse2001
        5
    kuse2001  
    OP
       289 天前 via Android
    @wyntalgeer 长期运动的人,停下来确实会体重增长。不过如果经常有些小运动的,还可以保持
    midpoint
        6
    midpoint  
       286 天前
    加个动态的城市(街道、景点……)背景,像在城市或景点漫步,会不会感觉不错呢?
    kuse2001
        7
    kuse2001  
    OP
       285 天前
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     904 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 19:39 PVG 03:39 LAX 11:39 JFK 14:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86