CSDN|牛!Python 也能实现图像姿态识别溺水行为了!
【CSDN|牛!Python 也能实现图像姿态识别溺水行为了!】
作者 | 李秋键责编 | Carol封图 | CSDN 下载自视觉中国众所周知随着人工智能智能的发展 , 人工智能的落地项目也在变得越来越多 , 尤其是计算机视觉方面 。
所以今天我们也是做一个计算机视觉方面的训练 , 用python来判断用户溺水行为 , 结合姿态识别和图像识别得到结果 。 其中包括姿态识别和图像分类 。
首先图像分类是根据各自在图像信息中所反映的不同特征 , 把不同类别的目标区分开来的图像处理方法 。 它是利用计算机对图像进行定量分析 , 把图像或图像中的每个像元或区域划归为若干个类别中的某一种 , 以代替人的视觉判读 。
人体姿态是被主要分为基于计算机视角的识别和基于运动捕获技术的识别 。 基于计算机视觉的识别主要通过各种特征信息来对人体姿态动作进行识别, 比如视频图像序列、人体轮廓、多视角等 。
这里整体程序的流程如下:
- 百度姿态识别图片并标注
- CNN网络实现图像分类
- 根据分类结果可视化输出结果
本文插图
实验前的准备首先我们使用的python版本是3.6.5所用到的模块如下:
OpenCV:用来调用姿态识别接口绘制姿态识别结果
Baidu-aip:用来加载人体分析模块实现人体姿态识别
configparser :配置文件模块 读写配置文件
keras:用来训练和调用神经网络模型
素材准备
首先我们准备不同的图片放到一个特定文件夹下 。 图片分为三个类别 , 一个是溺水图片文件夹 , 一个是正常游泳图片文件夹 , 另一个是疑似溺水无法判定的图片文件夹 。 在这里我们把它放到data文件夹下 ,
其中疑似图片文件夹 , 如下图可见:
本文插图
人体姿态识别搭建1、姿态配置文件设定:在这里为了足够的精度和方便调用 , 我们使用百度提供的人体分析接口 。 按照官方的规定设定了配置文件 。 主要就是设定人体各个肢体零件连接配置 。
其对应的代码如下:
def draw_line(self, img): # nose ---> neck cv2.line(img, (int(self.dic['nose']['x']), int(self.dic['nose']['y'])), (int(self.dic['neck']['x']), int(self.dic['neck']['y'])), (0, 255, 0), 2) # neck --> left_shoulder'neck']['x']), int(self.dic['neck']['y'])),'left_shoulder']['x']), int(self.dic['left_shoulder']['y'])), (0, 255, 0), 2) # neck --> right_shoulder'neck']['x']), int(self.dic['neck']['y'])),'right_shoulder']['x']), int(self.dic['right_shoulder']['y'])), (0, 255, 0), 2) # left_shoulder --> left_elbow'left_shoulder']['x']), int(self.dic['left_shoulder']['y'])),'left_elbow']['x']), int(self.dic['left_elbow']['y'])), (0, 255, 0), 2) # left_elbow --> left_wrist'left_elbow']['x']), int(self.dic['left_elbow']['y'])),'left_wrist']['x']), int(self.dic['left_wrist']['y'])), (0, 255, 0), 2) # right_shoulder --> right_elbow'right_shoulder']['x']), int(self.dic['right_shoulder']['y'])),'right_elbow']['x']), int(self.dic['right_elbow']['y'])), (0, 255, 0), 2) # right_elbow --> right_wrist'right_elbow']['x']), int(self.dic['right_elbow']['y'])),'right_wrist']['x']), int(self.dic['right_wrist']['y'])), (0, 255, 0), 2) # neck --> left_hip'neck']['x']), int(self.dic['neck']['y'])),'left_hip']['x']), int(self.dic['left_hip']['y'])), (0, 255, 0), 2) # neck --> right_hip'neck']['x']), int(self.dic['neck']['y'])),'right_hip']['x']), int(self.dic['right_hip']['y'])), (0, 255, 0), 2) # left_hip --> left_knee'left_hip']['x']), int(self.dic['left_hip']['y'])),'left_knee']['x']), int(self.dic['left_knee']['y'])), (0, 255, 0), 2) # right_hip --> right_knee'right_hip']['x']), int(self.dic['right_hip']['y'])),'right_knee']['x']), int(self.dic['right_knee']['y'])), (0, 255, 0), 2) # left_knee --> left_ankle'left_knee']['x']), int(self.dic['left_knee']['y'])),'left_ankle']['x']), int(self.dic['left_ankle']['y'])), (0, 255, 0), 2) # right_knee --> right_ankle'right_knee']['x']), int(self.dic['right_knee']['y'])),'right_ankle']['x']), int(self.dic['right_ankle']['y'])), (0, 255, 0), 2)
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CSDN|由 Apache 说开,中国开源项目已经走向世界!
- 目标检测|数据民工也能移动办公了:目标检测标注App上线,分分钟创建私人数据集
- 行业互联网|“云端”也能种蘑菇?——首都民间友好交流云对话线上举行
- 平板|颜值与实力并行,网上飘数码配件这款平板支架也能玩出高逼格!
- 网上飘数码旗舰店|颜值与实力并行,网上飘数码配件这款平板支架也能玩出高逼格!
- CSDN|软件对于英特尔意味着什么?
- CSDN|中国首家苹果零售店重开业,苹果CEO库克发文揭幕;“携号转网”服务用户破千万;GitHub 完成北极源代码存档|极客头条
- 代码|为了更好的代码:12个Python小窍门
- 智能机器人|快商通智能客服云平台荣获CSDN“AI优秀案例实践奖”
- 中年|多吃鹅肉有什么好处呢,大厨教你一招,在家也能做,不腥也不柴