摔倒检测-完全用ChatGPT开发,分享如何正确地向ChatGPT提问
你在学习科技周边相关的知识吗?本文《摔倒检测-完全用ChatGPT开发,分享如何正确地向ChatGPT提问》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!
哈喽,大家好。
之前给大家分享过摔倒识别、打架识别,今天以摔倒识别为例,我们看看能不能完全交给ChatGPT来做。
让ChatGPT来做这件事,最核心的是如何向ChatGPT提问,把问题一股脑的直接丢给ChatGPT,如:用 Python 写个摔倒检测代码 是不可取的, 而是要像挤牙膏一样,一点一点引导ChatGPT得到准确的答案,从而才能真正让ChatGPT提高我们解决问题的效率。
今天分享的摔倒识别案例,与ChatGPT对话的思路清晰,代码可用度高,按照GPT返回的结果完全可以开发一个摔倒识别的项目了,并且还有一些延伸的话题,如:毕设的改进点。
下面开始正式的分享。
1. 角色设定
向ChatGPT提问首先要给他一个角色设定,在算法领域这叫prompt,有了进入了角色,才能更好地回答问题。所以,我提问的第一句是:
假如你是一名AI工程师,我想识别视频中是否有摔倒行为,有哪些办法
没必要刚上来就让他直接写代码,先问问他有哪些办法或者思路。
我们看看ChatGPT的回答
给出了3个方案,有传统的图像方法,也有深度学习方法。
2. 思路引导
我们当然是对深度学习感兴趣了,所以继续询问关于深度学习的方法
使用深度学习的方法有哪些
ChatGPT回答
从卷积神经网络到卷积循环神经网络说了个遍。
看起来循环神经网络 RNN更简单、靠谱,接下来我的提问是
我需要 循环神经网络 (RNN) 的方法
ChatGPT回答
给出了非常详细的、实操性非常强的步骤,我简单归类一下,大致是两步:
第一步,对视频预处理,用卷积神经网络(如:ResNet)提取视频动作特征(类似 wordembedding) 第二步,用动作特征作为 lstm 模型的输入,训练 lstm 循环神经网络,对动作特征分类,从而识别出摔倒行为
3. 写代码
到目前,ChatGPT 提供给我们的,解决问题的思路非常清晰,并且可执行性非常强。
所以,这时候我们可以让ChatGPT写代码了。
按照我上面划分的步骤,我让他一次性把第一步代码写出来,所以,我的提问是:
写一下视频预处理的代码,并用 pytorch resnet提取视频特征
ChatGPT的回答
好的,下面是通过 Pytorch 的 ResNet 提取视频特征的代码,以及视频预处理的示例代码: 视频预处理: import cv2 import numpy as np def preprocess_video(video_path, n_frames=16, resize=(224, 224)): # 读取视频 cap = cv2.VideoCapture(video_path) frames = [] while True: ret, frame = cap.read() if not ret: break # 强制转换为 RGB frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 图像缩放 frame = cv2.resize(frame, resize) # 图像增强等操作 # ... frames.append(frame) cap.release() # 取固定帧数 n_frames,超过后从中间开始截取 n_frames = min(len(frames), n_frames) start = (len(frames) - n_frames) // 2 end = start + n_frames # 截取帧数后堆叠成四维数组 frames = np.stack(frames[start:end], axis=0) # 转换为支持 Pytorch 模型的格式 (B, C, T, H, W) frames = np.transpose(frames, (0, 3, 1, 2)) return frames 提取视频特征: import torch import torchvision.models as models def extract_features(frames): # 加载 ResNet 模型 resnet = models.resnet50(pretrained=True) # 去掉最后的全连接层 resnet = torch.nn.Sequential(*list(resnet.children())[:-1]) # 将 ResNet 设置为评估模式 resnet.eval() # 将预处理后的视频序列转化为 Tensor,并调整为指定的数据类型和范围 frames = torch.from_numpy(frames).float() / 255.0 # 减去 ImageNet 数据集的均值和标准差 normalize = torch.nn.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] ) frames = normalize(frames) # 前向预测,输出 2048 维特征向量 with torch.no_grad(): features = resnet(frames) return features.reshape(-1, 2048) 在上面这两块代码中,preprocess_video() 函数将读取视频,并将其转换为指定大小的图像帧,返回处理后的数据;extract_features() 函数将接受上一步处理后的数据,并将其转化为 Pytorch 的 Tensor,使用训练好的 ResNet 模型对每一帧图像进行特征提取,并返回一个形状为 (B, 2048) 的 Tensor,其中 B 为帧数。
图片太长了,为了大家能更好的感受ChatGPT的回答,我直接把代码文本贴出来了。
定义了两个独立函数,分别完成了第一步中的两小步内容。
代码没有问题,先调用preprocess_video函数对视频预处理,再调用 extract_features卷积操作,就可以将一个向量embedding成一个2048维的向量。
第二步,我拆分成了两小步,先搭建lstm模型,再训练
基于上面产出的结果,用 pytorch lstm搭建视频分类模型
ChatGPT的回答
写一下模型训练的代码
ChatGPT的回答
好的,下面是使用 Pytorch 训练视频分类模型的代码: import torch import torch.nn as nn import torch.optim as optim # 训练函数 def train(model, criterion, optimizer, dataloader, num_epochs=10): device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device)# 将模型移动到 GPU 或 CPU 上 for epoch in range(num_epochs): running_loss = 0.0 correct_predictions = 0 total_predictions = 0 for inputs, labels in dataloader: inputs = inputs.to(device) labels = labels.to(device) optimizer.zero_grad() with torch.set_grad_enabled(True): outputs = model(inputs) _, preds = torch.max(outputs, 1) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() * inputs.size(0) correct_predictions += torch.sum(preds == labels.data) total_predictions += labels.size(0) epoch_loss = running_loss / len(dataloader.dataset) epoch_acc = correct_predictions.double() / total_predictions print("Epoch {}: Loss {:.4f} Acc: {:.4f}".format(epoch + 1, epoch_loss, epoch_acc)) # 定义超参数 BATCH_SIZE = 4 NUM_EPOCHS = 20 # 定义数据集,假设已经准备好了训练数据集和测试数据集 train_dataset = ... test_dataset = ... # 定义数据加载器 train_dataloader = torch.utils.data.DataLoader( train_dataset, batch_size=BATCH_SIZE, shuffle=True ) test_dataloader = torch.utils.data.DataLoader( test_dataset, batch_size=BATCH_SIZE, shuffle=False ) # 定义模型 input_size = 2048 hidden_size = 512 num_layers = 1 num_classes = 2 model = VideoLSTM(input_size, hidden_size, num_layers, num_classes) # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters()) # 训练模型 train(model, criterion, optimizer, train_dataloader, num_epochs=NUM_EPOCHS) 在代码中,首先定义了模型的超参数,如 BATCH_SIZE 和 NUM_EPOCHS。接着定义了训练数据集和测试数据集,并使用 Pytorch 的 DataLoader 将数据加载为 batch。然后定义了模型、损失函数和优化器。最后调用 train() 函数进行模型训练。 在训练过程中,每个 epoch 循环训练所有的视频帧,计算损失函数,计算准确率,并输出当前 epoch 的平均损失和准确率。训练完成后,可以将模型的参数保存到磁盘上,以便以后使用。
代码的可用性非常高。除了代码串联有一些成本,各个独立模块基本不需要动,开发效率非常高效。
还可以让ChatGPT找一些数据集
还可以让他写一下模型推理的代码
他可以自动帮我们把视频预处理、特征提取和推理三部分都串起来,形成一个完整的项目。
4. 扩展
到这里,我们就完全用ChatGPT把项目做完了。
我们还可以聊一些扩展性的话题,如:
还可以让ChatGPT帮我们想一些能突出学术价值的点
看到这里,说明我的文章对你多少有一丢丢的帮助。不管是否加入星球,我都感谢对大家对我的认可和信任。
今天关于《摔倒检测-完全用ChatGPT开发,分享如何正确地向ChatGPT提问》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

- 上一篇
- 机器人如何让石油和天然气生产更安全

- 下一篇
- 用魔法打败魔法!一个叫板顶级人类棋手的围棋AI输给了它的同类
-
- 科技周边 · 人工智能 | 5分钟前 | AI大会
- 60款智能机器人将亮相2025AI大会
- 442浏览 收藏
-
- 科技周边 · 人工智能 | 6分钟前 |
- GeminiAPI接入教程与配置方法
- 335浏览 收藏
-
- 科技周边 · 人工智能 | 9分钟前 |
- PerplexityAI解析天文数据,生成宇宙观测报告
- 301浏览 收藏
-
- 科技周边 · 人工智能 | 14分钟前 | 自动化测试 豆包AI
- 豆包AI测试脚本生成全流程详解
- 270浏览 收藏
-
- 科技周边 · 人工智能 | 17分钟前 |
- 豆包AI对话分享与导出方法详解
- 185浏览 收藏
-
- 科技周边 · 人工智能 | 24分钟前 | 数据可视化 分析报告
- 豆包AI生成代码技巧与报告优化方法
- 458浏览 收藏
-
- 科技周边 · 人工智能 | 33分钟前 |
- ClaudeAPI密钥获取与使用方法
- 477浏览 收藏
-
- 科技周边 · 人工智能 | 35分钟前 | 语音翻译 豆包AI
- 豆包AI能实时翻译?跨语言对话实测
- 465浏览 收藏
-
- 科技周边 · 人工智能 | 36分钟前 |
- AIOverviews兼容设备及平台清单
- 301浏览 收藏
-
- 科技周边 · 人工智能 | 39分钟前 | 豆包AI 爬虫代码
- 豆包AI爬虫代码教程详解
- 472浏览 收藏
-
- 科技周边 · 人工智能 | 42分钟前 |
- 小米YU7实测续航649公里
- 151浏览 收藏
-
- 科技周边 · 人工智能 | 45分钟前 | 动态漫画
- ElserAIComics如何生成动态漫画和GIF?
- 492浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 免费AI认证证书
- 科大讯飞AI大学堂推出免费大模型工程师认证,助力您掌握AI技能,提升职场竞争力。体系化学习,实战项目,权威认证,助您成为企业级大模型应用人才。
- 12次使用
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 157次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 188次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 174次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 162次使用
-
- GPT-4王者加冕!读图做题性能炸天,凭自己就能考上斯坦福
- 2023-04-25 501浏览
-
- 单块V100训练模型提速72倍!尤洋团队新成果获AAAI 2023杰出论文奖
- 2023-04-24 501浏览
-
- ChatGPT 真的会接管世界吗?
- 2023-04-13 501浏览
-
- VR的终极形态是「假眼」?Neuralink前联合创始人掏出新产品:科学之眼!
- 2023-04-30 501浏览
-
- 实现实时制造可视性优势有哪些?
- 2023-04-15 501浏览