动作识别代码Python
时间: 2023-11-05 22:12:59 浏览: 194
以下是一个基于Python的简单动作识别代码示例:
```python
import cv2
import numpy as np
from keras.models import load_model
# 加载训练好的模型
model = load_model('path/to/model.h5')
# 定义动作类别
classes = {
0: 'boxing',
1: 'handclapping',
2: 'handwaving',
3: 'jogging',
4: 'running',
5: 'walking'
}
# 读取测试视频
cap = cv2.VideoCapture('path/to/test/video.mp4')
# 设置帧率和计数器
fps = cap.get(cv2.CAP_PROP_FPS)
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
# 初始化变量
prev_class = None
count = 0
# 遍历每帧图像
while True:
ret, frame = cap.read()
if not ret:
break
# 调整图像大小
frame = cv2.resize(frame, (224, 224))
# 归一化像素值
frame = frame / 255.0
# 添加批次维度
frame = np.expand_dims(frame, axis=0)
# 预测当前动作类别
pred = model.predict(frame)
cls = np.argmax(pred)
# 如果预测结果与前一帧相同,则计数器加1
if cls == prev_class:
count += 1
else:
# 否则,如果计数器大于一定阈值,则输出当前动作类别
if count > fps:
print(classes[prev_class])
count = 0
prev_class = cls
# 显示当前帧
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
请注意,此示例仅用于演示目的,实际应用中可能需要进行更多的图像处理和数据增强。同时,也需要根据具体的应用场景进行一些参数调整和模型优化。
阅读全文