목차
1. 角色设定
2. 思路引导
3. 写代码
4. 扩展
기술 주변기기 일체 포함 넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

Apr 07, 2023 pm 03:06 PM
chatgpt 개발하다 가을 인식

哈喽,大家好。

之前给大家分享过摔倒识别、打架识别,今天以摔倒识别为例,我们看看能不能完全交给ChatGPT来做。

让ChatGPT来做这件事,最核心的是如何向ChatGPT提问,把问题一股脑的直接丢给ChatGPT,如:用 Python 写个摔倒检测代码 是不可取的, 而是要像挤牙膏一样,一点一点引导ChatGPT得到准确的答案,从而才能真正让ChatGPT提高我们解决问题的效率。

今天分享的摔倒识别案例,与ChatGPT对话的思路清晰,代码可用度高,按照GPT返回的结果完全可以开发一个摔倒识别的项目了,并且还有一些延伸的话题,如:毕设的改进点。

下面开始正式的分享。

1. 角色设定

向ChatGPT提问首先要给他一个角色设定,在算法领域这叫prompt,有了进入了角色,才能更好地回答问题。所以,我提问的第一句是:

假如你是一名AI工程师,我想识别视频中是否有摔倒行为,有哪些办法

没必要刚上来就让他直接写代码,先问问他有哪些办法或者思路。

我们看看ChatGPT的回答

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

给出了3个方案,有传统的图像方法,也有深度学习方法。

2. 思路引导

我们当然是对深度学习感兴趣了,所以继续询问关于深度学习的方法

使用深度学习的方法有哪些

ChatGPT回答

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

从卷积神经网络到卷积循环神经网络说了个遍。

看起来循环神经网络 RNN更简单、靠谱,接下来我的提问是

我需要 循环神经网络 (RNN) 的方法

ChatGPT回答

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 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로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.太长了,为了大家能更好的感受ChatGPT的回答,我直接把代码文本贴出来了。

定义了两个独立函数,分别完成了第一步中的两小步内容。

代码没有问题,先调用preprocess_video函数对视频预处理,再调用 extract_features卷积操作,就可以将一个向量embedding成一个2048维的向量。

第二步,我拆分成了两小步,先搭建lstm模型,再训练

基于上面产出的结果,用 pytorch lstm搭建视频分类模型

ChatGPT的回答

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 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找一些数据集

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

还可以让他写一下模型推理的代码

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

他可以自动帮我们把视频预处理、特征提取和推理三部分都串起来,形成一个完整的项目。

4. 扩展

到这里,我们就完全用ChatGPT把项目做完了。

我们还可以聊一些扩展性的话题,如:

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

ChatGPT에 학문적 가치를 강조할 수 있는 몇 가지 사항을 생각하는 데 도움을 줄 수도 있습니다.

넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.

이를 보면 제 기사가 어느 정도 도움이 된다는 뜻입니다. 제가 플래닛에 가입하든 안 하든 저를 믿고 믿어주시는 모든 분들께 감사드립니다.

위 내용은 넘어짐 감지 - 완전히 ChatGPT로 개발되었으며 ChatGPT에 올바르게 질문하는 방법을 공유합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

이제 ChatGPT를 사용하면 무료 사용자가 일일 한도가 있는 DALL-E 3를 사용하여 이미지를 생성할 수 있습니다. 이제 ChatGPT를 사용하면 무료 사용자가 일일 한도가 있는 DALL-E 3를 사용하여 이미지를 생성할 수 있습니다. Aug 09, 2024 pm 09:37 PM

DALL-E 3는 이전 모델보다 대폭 개선된 모델로 2023년 9월 공식 출시되었습니다. 복잡한 디테일의 이미지를 생성할 수 있는 현재까지 최고의 AI 이미지 생성기 중 하나로 간주됩니다. 그러나 출시 당시에는 제외되었습니다.

권장되는 AI 지원 프로그래밍 도구 4가지 권장되는 AI 지원 프로그래밍 도구 4가지 Apr 22, 2024 pm 05:34 PM

이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

휴대폰에 chatgpt를 설치하는 방법 휴대폰에 chatgpt를 설치하는 방법 Mar 05, 2024 pm 02:31 PM

설치 단계: 1. ChatGTP 공식 웹사이트 또는 모바일 스토어에서 ChatGTP 소프트웨어를 다운로드합니다. 2. 이를 연 후 설정 인터페이스에서 언어를 중국어로 선택합니다. 3. 게임 인터페이스에서 인간-기계 게임을 선택하고 설정합니다. 4. 시작한 후 채팅 창에 명령을 입력하여 소프트웨어와 상호 작용합니다.

최고의 AI 프로그래머는 누구일까요? Devin, Tongyi Lingma 및 SWE 에이전트의 잠재력을 살펴보세요. 최고의 AI 프로그래머는 누구일까요? Devin, Tongyi Lingma 및 SWE 에이전트의 잠재력을 살펴보세요. Apr 07, 2024 am 09:10 AM

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 알아보세요. Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 알아보세요. Mar 28, 2024 pm 10:00 PM

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

chatgpt를 중국에서 사용할 수 있나요? chatgpt를 중국에서 사용할 수 있나요? Mar 05, 2024 pm 03:05 PM

chatgpt는 중국에서는 사용할 수 있지만 등록할 수 없으며, 홍콩, 마카오에서는 등록을 원하는 경우 외국 휴대폰 번호를 사용하여 등록할 수 있습니다. 등록 과정에서 네트워크 환경을 전환해야 합니다. 외국 IP로.

Android 개발에 가장 적합한 Linux 배포판은 무엇입니까? Android 개발에 가장 적합한 Linux 배포판은 무엇입니까? Mar 14, 2024 pm 12:30 PM

Android 개발은 바쁘고 흥미로운 작업이며, 개발에 적합한 Linux 배포판을 선택하는 것이 특히 중요합니다. 많은 Linux 배포판 중에서 Android 개발에 가장 적합한 배포판은 무엇입니까? 이 기사에서는 이 문제를 여러 측면에서 살펴보고 구체적인 코드 예제를 제공합니다. 먼저 현재 인기 있는 여러 Linux 배포판(Ubuntu, Fedora, Debian, CentOS 등)을 살펴보겠습니다. 이들은 모두 고유한 장점과 특징을 가지고 있습니다.

VSCode 이해: 이 도구는 어떤 용도로 사용됩니까? VSCode 이해: 이 도구는 어떤 용도로 사용됩니까? Mar 25, 2024 pm 03:06 PM

"VSCode 이해: 이 도구는 어떤 용도로 사용됩니까?" 》프로그래머로서 초보자이든 숙련된 개발자이든 코드 편집 도구를 사용하지 않으면 할 수 없습니다. 많은 편집 도구 중에서 Visual Studio Code(약칭 VSCode)는 가볍고 강력한 오픈 소스 코드 편집기로 개발자들 사이에서 매우 인기가 높습니다. 그렇다면 VSCode는 정확히 어떤 용도로 사용되나요? 이 기사에서는 VSCode의 기능과 사용법을 자세히 살펴보고 독자에게 도움이 되는 구체적인 코드 예제를 제공합니다.

See all articles