Kaggle克隆github项目+文件操作+Kaggle常见操作问题解决方案——一文搞定,以openpose姿态估计项目为例

文章目录


前言

想跑一些深度学习的项目,但是电脑没有显卡,遂看向云服务器Kaggle,这里可以每周免费使用30h的GPU算力,效果确实不错。

本人之前尝试过google colab,但是

  • 时不时就要你人机验证
  • 连接容易断开
  • 文件操作有些麻烦
  • 还要挂载google drive云盘
  • 还要魔法

用过Kaggle之后,不得不说是真香,它是不需要魔法的。

但是刚上手Kaggle的DPers可能还不是很熟悉一些基本命令操作,那么这篇文章就总结了一些常见操作,常见问题,希望对你有所帮助。


一、Kaggle克隆仓库

1、克隆项目

一般在kaggle的notebook里面输入控制台类的代码,前面要加上!当然也有特例,我们后面再说

python 复制代码
! git init
! git clone https://github.com/Hzzone/pytorch-openpose.git

2、查看目录

克隆下来的项目,放在了output下,目录为kaggle/working

注意kaggle/working也是我们默认的工作目录,你可以输入下述代码来验证

python 复制代码
import os
os.getcwd()

二、安装依赖

python 复制代码
! pip install -r /kaggle/working/pytorch-openpose/requirements.txt

这里要输入requirements.txt的完整路径,可以在右侧直接复制

三、文件的上传、复制、转移操作

github上这个姿态估计的项目需要权重文件,但是仓库里没有直接放进去,通过网盘给到了.pth权重文件。那么现在我们应该如何将电脑中的.pth文件上传到工作目录里呢

1.上传.pth文件到input目录

比较简单,点击upload->New Dataset->选择本地文件直接上传,

一个项目可以包含多个datasets,我这里新建了2个,并分别上传了一个文件,下面是目录结构:

2、将权重文件从input目录转移到工作目录

将权重文件从input目录转移到output下的kaggle/working工作目录

python 复制代码
# import module we'll need to import our custom module
from shutil import copyfile
 
copyfile(src = "/kaggle/input/hand-pose-model-pth/hand_pose_model.pth", dst = "/kaggle/working/pytorch-openpose/model/hand_pose_model.pth")
copyfile(src = "/kaggle/input/hand-pose-model-pth/body_pose_model.pth", dst = "/kaggle/working/pytorch-openpose/model/body_pose_model.pth")

注意,目标目录下的.pth文件不用提前建立,它会自动生成


三、修改工作目录里的文件内容

按理说,我现在直接可以输入! python /kaggle/working/pytorch-openpose/demo_camera.py

进行demo测试了,但是会报错找不到权重文件,因为人家项目里写的是相对路径,但是说实话,相对路径在kaggle的notebook执行的时候,会识别不出来

所以最保险的做法:
全部换成绝对路径

这时要修改demo_camera.py的文件内容,如何修改呢?

1、修改demo_camera.py内容

现在的工作路径是

我们cd 到demo_camera.py文件所在文件夹下

在本地修改demo_camera.py,修改为绝对路径

将这个文件里所有内容复制到%%writefile demo_camera.py下面,什么意思?就是相当于把demo_camera.py的内容进行了覆盖。

python 复制代码
%%writefile demo_camera.py
import cv2
import matplotlib.pyplot as plt
import copy
import numpy as np
import torch

from src import model
from src import util
from src.body import Body
from src.hand import Hand

body_estimation = Body('/kaggle/working/pytorch-openpose/model/body_pose_model.pth')
hand_estimation = Hand('/kaggle/working/pytorch-openpose/model/hand_pose_model.pth')

print(f"Torch device: {torch.cuda.get_device_name()}")

cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
while True:
    ret, oriImg = cap.read()
    candidate, subset = body_estimation(oriImg)
    canvas = copy.deepcopy(oriImg)
    canvas = util.draw_bodypose(canvas, candidate, subset)

    # detect hand
    hands_list = util.handDetect(candidate, subset, oriImg)

    all_hand_peaks = []
    for x, y, w, is_left in hands_list:
        peaks = hand_estimation(oriImg[y:y+w, x:x+w, :])
        peaks[:, 0] = np.where(peaks[:, 0]==0, peaks[:, 0], peaks[:, 0]+x)
        peaks[:, 1] = np.where(peaks[:, 1]==0, peaks[:, 1], peaks[:, 1]+y)
        all_hand_peaks.append(peaks)

    canvas = util.draw_handpose(canvas, all_hand_peaks)

    cv2.imshow('demo', canvas)#一个窗口用以显示原视频
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

四、运行!

输入

python 复制代码
! python /kaggle/working/pytorch-openpose/demo_camera.py

当然,你可能遇到其他代码上的bug,这就不是kaggle平台的问题啦
这就需要你擦亮你的眼睛认认真真debug啦

相关推荐
穆梓兰煊2 小时前
pgvector 0.8 评测:过滤向量检索的召回修复与边界
github
诚小纯3 小时前
qwen-deep-research 接入实录:两阶段调用、SSE 解析、报告结构与 35 处不可追溯的引用
人工智能·github
用户9948438810703 小时前
开源了一个把老 PHP 站点自动升级到 PHP 8.5 的工具(应对 PHP2Shell 漏洞)
github
用户7273744138843 小时前
用 sha256 校验 Windows 下载文件:从 EZA Modern LS 说起
github
miofly3 小时前
Gemini 4 Argon发布,机器人ERQA推理得分87%但缺可比基准
开源·github
Apageoflove4 小时前
把 ComfyUI 改造成无人值守视频产线:状态机、顺序锁与 ComfyUI 插件工程实践
人工智能·github
CoovallyAIHub6 小时前
Anthropic 昨晚发布 Claude Duet:AI 第一次主动找你干活
github·agent·设计
逛逛GitHub6 小时前
又盘点了 4 个稀奇古怪的 GitHub 项目,第一个很抽象。
github
m4Rk_9 小时前
【论文阅读】Agent记忆机制(106):COUNTERMEM——用可执行世界模型验证“如果当时换个动作”的反事实记忆
论文阅读·人工智能·学习·开源·github
十方空烬9 小时前
开源雷达 · 2026-10-21:技能开始像软件包一样被治理
开源·github