利用PaddleDetection识别手势

        众所周知,用深度学习的方式进行目标识别需要先训练再预测。手势识别也不例外。既然是训练,数据集就是必不可少的!这里采用了两个数据集如下。

这两个数据集都是从飞浆aistudio中搜索到的,。handpose_x_gesture_v1用来做训练用;hand_gesture_dataset在预测时可以从中选择图片,以验证模型。

        接下来需要对训练数据集做一些预处理。我们需要将数据集变成VOC或者COCO格式,这里选择VOC格式。处理之后的数据集如下图所示。

 其中label_list中是要识别的目标种类的名称,如下。

这里只先训练“1”手势和“3”手势,所以其中只填写one和three就行。另外注意这里的所有文本文档的换行符需要是Unix(LF)。

        train文本文档用来指明哪些图片用来做训练的,如下图所示。

 每一行的左边是图片路径,右边是与其对应的xml脚本路径。xml脚本中指明了预期对应的图片是属于哪一类,比如“one”或者“three”,以及图片中手势的坐标位置和大小。

        valid文本文档的格式和train一样,只不过它用来指明那些图片用来在训练过程中做验证用的。

        我这里是将80%的图片用来训练,20%的图片用来在训练过程中做验证。

        以上train和valid文档的生成和图片的划分是通过写python代码实现的。

        上图中的xml文件是通过labelimg生成的。它可以通过pip进行安装。生成的xml文件统一存在annotations文件夹中。

        接下来就可以进行训练了。这里利用百度飞浆赠送的算力卡进行训练。也就是在飞浆页面中创建项目,如下图。

        项目类型为notepad

         接下来选择经典款就可以。

         通过这种方式,只要每天运行项目就可以获得算力卡,这些算力卡足够我们训练手势识别了。

        进入项目后,我们首先需要安装paddledet,因为默认是不带的,所有我们需要自己安装。

        将下载好的PaddleDetection(可以在gitee下载)传到服务器中解压,然后按照安装说明安装即可。

        安装完成后, 将我们刚刚制作好的数据集打包上传。

        这里我们选择ppyolo_r50vd_dcn_voc.yml作为训练脚本。我们可以更改其中的snapshot_epoch和epoch。

 epoch是训练轮数,snapshot_epoch是隔几次保存一次训练结果。

        然后打开ppyolo_reader.yml文件,将target_size修改为训练完成后做预测的图片的真实大小尺寸。

依据是在FAQ中如下描述。

         保存后再打开voc.yml,更改如下。

         保存后就可以输入如下命令训练了。

python tools/train.py -c configs/ppyolo/ppyolo_r50vd_dcn_voc.yml --eval -o use_gpu=true

        训练完成后将我们用来做测试的图片上传到服务器,输入如下命令进行预测。

python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_voc.yml -o use_gpu=true --infer_img=../demo_img/0062.png

        效果如下。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值