资料介绍
描述
该项目背后的想法是创建一个能够根据手指手势驱动执行器的设备。
该项目专门用于识别 raspberry-pi 相机拍摄的手部流图像。
用于训练模型的图像数据集是临时创建的,图像仅从 Raspberry 相机(而非其他设备)拍摄,具有中性背景。
该模型基于Inception v3模型的迁移学习,为处理项目需求而定制。最后一层从Inception v3模型中删除,并添加了几层以使用新数据集进行自定义,并仅提供四种情况的输出。
该模型使用先前在桌面(32 Gb ram + GPU)上收集和预分类的图像进行训练。一旦模型经过训练和测试,它就会被导出到 Raspberry Pi。
创建数据集
该项目的目的是确定我手指的位置。
因此,它创建了一个图像数据集,其中手指在四个不同的位置{'无'、'一根手指'、'多于一根手指'、'手闭合'}。
手的位置总是颠倒的。
创建模型
使用的模型基于称为迁移学习的技术。从已经完全训练的预先存在的模型(Inception v3 模型)中删除了最后几层,并添加了额外的几个新层。
在代码下方自定义添加到模型的层。
last_layer = pre_trained_model.get_layer('mixed7')
last_output = last_layer.output
#creating a model using the previous model without the last few layers
x = layers.Flatten()(last_output)
# Add a fully connected layer with 100 hidden units and ReLU activation
x = layers.Dense(100, activation='relu')(x)
# Add a dropout rate of 0.2
x = layers.Dropout(0.2)(x)
# Add a final sigmoid layer for the classification of the 4 status
x = layers.Dense(4, activation='softmax')(x)
model = Model( pre_trained_model.input, x)
训练模型
训练仅基于图像的数据集,并添加了一些可变性以强制模型进行泛化。这种可变性或多样性(称为数据增强)允许人为地增加训练示例的数量并提高分类的质量。
training_datagen = ImageDataGenerator(
rescale = 1./255,
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
该模型仅拟合了 20 个 epoch,足以拟合模型并避免过度拟合。
history = model.fit(
train_generator,
validation_data = validation_generator,
steps_per_epoch = 5,
epochs = 20,
validation_steps = 5,
verbose = 2)
该模型的准确性非常好,特别是对于验证数据集(由没有可变性(数据增强)的真实图像组成)。
一旦模型足够好,它就会被保存并导出。
model.save("C:\\gits_folders\\Tensorflow_Lite_embeded\\raspbery\\enzo_02")
到目前为止描述的所有步骤都在 Jupiter notebook 上,可在下面的链接中找到:
将模型部署到 Raspberry PI
模型训练和测试由一个相当强大的桌面执行。完成这些步骤后,必须将最终结果移至 Raspberry PI。
Raspberry PI 应该仅执行从 Raspberry PI 相机拍摄的图像流中进行的推断(计算量如此之大,比训练密集得多)。
export_dir = "C:\\gits_folders\\Tensorflow_Lite_embeded\\raspbery\\enzo_02"
loaded = tf.saved_model.load(export_dir)
converter = tf.lite.TFLiteConverter.from_saved_model(export_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
tflite_model_file = 'enzo02_converted_model.tflite'
with open(tflite_model_file, "wb") as f:
f.write(tflite_model)
在代码之后,模型保存在一个文件(“enzo_02”)中,该文件可以轻松地从桌面复制到 Raspberry PI 文件系统。然后,它可以被运行在 Raspberry PI 上的 python 脚本读取。
from tflite_runtime.interpreter import Interpreter
....
interpreter = Interpreter(args.model)
interpreter.allocate_tensors()
_, height, width, _ = interpreter.get_input_details()[0]['shape']
完整的脚本可在链接中找到:
下面是一个如何午餐脚本的示例:
python3 classify_picamera_servo.py --model ./enzo01_converted_model.tflite --labels ./labels
电路概述
电路非常简单。带有摄像头的树莓派 4 是核心组件。他们收集视频流并使用部署的模型执行推理。然后,根据推理结果,一个信号被发送到 PCA9685,PCA9685 相应地操作 3 个伺服系统。
用于操作 3 个伺服系统的 PCA9685 工作负载由 9v 的外部电池支持。
建立旗帜
这 3 个标志是使用 Polymorph 材料创建的。Polymorph 是一种特殊类型的塑料,其熔化温度约为 60˚C,用沸水加热即可成型为任何形状。一旦冷却,它就会变成一种非常坚韧的类似尼龙的聚合物。由于它是一种热塑性塑料,Polymorph 可以多次重新加热和热成型。
它的使用非常简单,您只需将一些多晶型物放入一杯水中,在微波炉中加热几分钟(直到多晶型物变得透明)。
然后将其从水中取出并开始将其塑造成所需的形状。
在这个项目中,多形体被赋予了标志形状并添加了一个伺服臂(对于 3 个标志中的每一个)。冷却后,他们创建了一个独特的结构,其中插入了服务器臂。因此,很容易将它们连接到伺服系统。
我们通过添加彩色多形体来区分旗帜,因此每个旗帜都有不同的颜色。
3D 打印外壳和最终建筑
最终的建筑非常简单,使用附件部分的 .stl 文件 3D 打印伺服支架和 Raspberry PI/相机支架。将每个标志连接到一个伺服器,并将伺服器插入其支架。
然后,将 Raspberry Pi 及其摄像头插入外壳中。
- 手势识别功能开源案例 2次下载
- 使用TensorFlow对自平衡机器人进行手势控制 0次下载
- 基于Kinect传感器的动态手势识别方法 18次下载
- 基于DSSD网络的静态手势实时识别方法 11次下载
- 改进的多尺度深度网络手势识别模型 8次下载
- 基于自适应多分类器融合的手势识别方法 10次下载
- 手势识别,计算机是怎么实现的呢?资料下载 5次下载
- 面向机器智能TensorFlow实践电子版下载 0次下载
- 基于三维密集卷积网络的多模态手势识别方法 8次下载
- 手势识别系统的程序和资料说明 12次下载
- 如何使用光流计算和DTW算法进行动态手势识别研究与实现论文 16次下载
- 支持向量机的手势识别 1次下载
- 基于加锁机制的静态手势识别运动中的手势 0次下载
- 基于肌点信号的识别手势系统 7次下载
- 基于Kinect和变形雅可比_傅里叶矩的手势识别_刘亚瑞 0次下载
- 基于树莓派的TensorFlow对象检测系统设计方案 1231次阅读
- 智慧病房手势识别解决方案 1743次阅读
- 基于视觉的手势识别系统的设计与研究 3978次阅读
- TensorFlow通过优化的开源SYCL™库获得对PowerVR GPU的原生支持 1214次阅读
- TensorFlow的30个主要功能总结 2w次阅读
- TensorFlow安装手册之如何利用pip安装 TensorFlow 1.2w次阅读
- 三个维度来详细介绍手势识别在汽车行业的应用现状 1.7w次阅读
- TensorFlow都有哪些功能,大家是否都全部了解呢? 2.1w次阅读
- TensorFlow是什么?如何启动并运行TensorFlow? 1.6w次阅读
- TensorFlow发表推文正式发布TensorFlow v1.9 2870次阅读
- TensorFlow的框架结构解析 6874次阅读
- 用TensorFlow制作一个图像识别工具的构建步骤解析 1.8w次阅读
- 基于电场感应原理的3D手势识别技术,你会玩吗? 5404次阅读
- DIY一个树莓派扩展板 7124次阅读
- 欧姆龙开发出可识别手部动作的“手势识别技术” 1890次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多