当前位置: 首页 > 工具软件 > Turi Create > 使用案例 >

turicreate 视频_【AR+AI】使用深度学习Turi Create识别手势

颜杰
2023-12-01

AR应用中有个交互方式是:用户在摄像头前方摆出数字1-9的手指,应用根据不同数字显示不同的AR内容。

Turi Create是苹果的深度学习工具,可以实现判断手指是什么数字,并导出模型给iOS应用使用。

准备工作

将搜集的数字1-9的手指形状图片按文件夹1-9分类好

Turi Create使用

import turicreate as tc

# 读取图片文件夹Images

data = tc.image_analysis.load_images('Images', with_path=True)

# 设置分类标签,文件夹1的label为数字1,文件夹2的label为数字2

data['label'] = data['path'].apply(lambda path: '1' if '/1' in path else '2' \

if '/2' in path else '3' \

if '/3' in path else '4' \

if '/4' in path else '5' \

if '/5' in path else '6' \

if '/6' in path else '7' \

if '/7' in path else '8' \

if '/8' in path else '9')

# 分成训练数据、测试数据,比例8:2

train_data, test_data = data.random_split(0.8)

# 训练

model = tc.image_classifier.create(train_data, target='label')

# 预测

predictions = model.predict(test_data)

# 评估

metrics = model.evaluate(test_data)

# 保存

model.save('mymodel.model')

# 导出

model.export_coreml('mymodel.mlmodel')

这句代码执行比较慢,先从官方网站下载机器学习模型ResNet50,文件大小97.8MB,然后开始训练

model = tc.image_classifier.create(train_data, target='label')

可以换成机器学习模型squeezenet_v1.1,文件大小4.7MB

model = tc.image_classifier.create(train_data, target='label', model='squeezenet_v1.1')

resnet-50和squeezenet_v1.1的区别:

resnet-50:预测准确率高,但导出的模型文件大,模型文件需包含在应用中,使应用大小增加。

squeezenet_v1.1:预测准确率低,但导出的模型文件非常小,适合对准确率要求不高的场景。

 类似资料: