深度有趣 | 12 一起来动动手

这篇博客介绍如何利用TensorFlow实现一个手部实时检测器,通过迁移学习使用预训练模型Inception-v3,处理Egohands数据集,进行数据整理、训练集与测试集划分,创建TFRecord文件,并进行模型训练。最后展示了如何应用模型进行手部实时检测。
摘要由CSDN通过智能技术生成

简介

用TensorFlow实现一个手部实时检测器

和Inception-v3通过迁移学习实现定制的图片分类任务类似

在上节课内容的基础上,添加手部标注数据,并使用预训练好的模型完成迁移学习

数据

手部检测数据来自于

http://vision.soic.indiana.edu/projects/egohands/

图片使用Google Class拍摄,egohands_data.zip是一个压缩包,里面共有48个文件夹,分别对应48个不同场景(室内、室外、下棋等)中共计4800张标注图片,标注即全部的手部轮廓点

Egohands数据集示例

不过我们不需要手动解压这个压缩包,而是使用代码去完成数据的解压和整理工作

egohands_dataset_clean.py依次完成以下几项工作

  • 如果当前目录下没有egohands_data.zip则下载,即调用download_egohands_dataset()
  • 否则解压egohands_data.zip并得到egohands文件夹,并对其中的图片数据执行rename_files()
  • rename_files()会将所有的图片重命名,加上其父文件夹的名称,避免图片名重复,并调用generate_csv_files()
  • generate_csv_files()读取每个场景下的图片,调用get_bbox_visualize(),根据标注文件polygons.mat绘制手部轮廓和Anchor Box并显示,同时将图片标注转换并存储为csv文件,全部处理完后,再调用split_data_test_eval_train()
  • split_data_test_eval_train()完成训练集和测试集的分割,在images文件夹中新建traintest两个文件夹,分别存放对应的图片和csv标注
  • 完成以上工作后,便可以手动删除一开始解压得到的egohands文件夹

也就是从egohands_data.zip得到images文件夹,在我的笔记本上共花费6分钟左右

接下来调用generate_tfrecord.py,将训练集和测试集整理成TFRecord文件

由于这里只需要检测手部,因此物体类别只有一种即hand,如果需要定制其他物体检测任务,修改以下代码即可

def class_text_to_int(row_label):
    if row_label == 'hand':
        return 1
    else:
        None

运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值