项目基地 知识图谱 硬禾学堂 评测 工具 百科 AI助手 发布项目 登录/ 注册
Funpack第十二期-用深度学习的方法制作对口型(Lip Sync)游戏
Funpack第十二期, 用深度学习的方法制作对口型(Lip Sync)游戏
标签
Arduino
wio terminal
Funpack第十二期
codecraft
james
更新2022-01-05
1406

大家好, 我是james, 一名hacker. 平时喜欢研究一些可编程的小东西.

1 板卡介绍

第十二期funpack活动的板卡是来自seeed的wio terminal. 该板卡搭载的MCU是AT-SAM-D51P19.核心是120MHz的arm cortex-m4f处理器, sram为192KB, flash为512KB, 板载了4MB外部flash.

2 实现功能

在本期的活动中, 我使用了最简单的方法实现了口型动画. 对着wio terminal说话, 它会捕捉发音中的元音, 然后讲元音对应的口型显示在屏幕上, 这样就好像屏幕上的动画形象在说话一样, 是一个有趣玩儿的对口型游戏(Lip Sync).

3 设计思路

wio terminal是seeed主推的一块arduino兼容板卡, 可以使用arduino框架进行编程, 网上有很多资源可以使用, 可以方便快速的进行原型开发.

为了实现对口型游戏, 我挑选了一些深度学习框架, 其中tensorflow-lite和edge-impulse都是可以在tinyml场景下使用的框架, 由于edge-impulse更易用一些, 为了快速制作原型, 我使用edge-impulse. 另外, 由于seeed推荐了他们自己的开发环境, codecraft, 我使用了codecraft作为edge-impulse的前端, 这样就更方便了.

FqTaKHfHev_MYiea03ba-IfSHIdy

经过数据采集, 选择模型, 训练学习, 测试部署等步骤, 完成了模型执行代码的生成, 然后利用TFT_eSPI库实现了将口型图片显示在屏幕上, 最后制作出了一个基于深度学习的对口型游戏.

 

FuWv_FmONOwdwLpKio06A2mz9mq7

4 环境搭建

首先, 训练模型并生成执行代码的步骤直接通过codecraft进行, 不需要搭建任何环境. 其次, 我使用了pio来代替arduino来加速编译过程, 提高灵活性.

其中搭建pio环境主要步骤是:

mkdir my-project
cd my-project
pio project init -b seeed_wio_terminal

由于seeed_wio_terminal的支持包内置了TFT_eSPI, 就不用单独下载安装, 直接用即可.

codecraft使用方法可以参考下面的链接:
https://www.yuque.com/tinkergen-help-en/codecraft?language=en-us

5 软件实现

 

5.1 使用gimp制作xbm图形

FibLU-dWsXBPBlt_EWESLeebji3W

由于我没有使用sd卡, 所以图形必须用c数组的方式编译到程序中, 为了节省空间, 我使用gimp制作了单色图片, 用include的方法直接引入到程序中.

#include "face.xbm"
#include "a.xbm"
#include "i.xbm"
#include "u.xbm"
#include "e.xbm"
#include "o.xbm"
#include "close.xbm"

5.2 推断最大可信度并根据最大可信度显示口型

runClassifier();

if (maxValue < 0.6) {
fa[5]();
} else if (strcmp(maxConfidenceLabel, "a") == 0) {
fa[0]();
} else if (strcmp(maxConfidenceLabel, "i") == 0) {
fa[1]();
} else if (strcmp(maxConfidenceLabel, "u") == 0) {
fa[2]();
} else if (strcmp(maxConfidenceLabel, "e") == 0) {
fa[3]();
} else if (strcmp(maxConfidenceLabel, "o") == 0) {
fa[4]();
} else {
fa[5]();
}

6 硬件实现

本期没有硬件变动.

7 心得体会

  • 图片必须单独生成单个xbm, 本来想把位图都放到一个xbm文件中, 试了下setAddrWindow函数不起作用, 具体原因还需要后续排查.
  • 最开始的时候想把图片放到4m flash中, 用mpy和thonny来管理4m flash中的文件. 需要管理的时候将ardupy的uf2烧录到板子上, 后来发现, 虽然mpy和seeed_fs建立的都是fat文件系统, 以为可以兼容, 发现不行, 可能两者用的文件系统还是有差别, 用mpy存入, 无法用seeed_fs打开, 反之亦然.
  • arduino生态和python优点类似, 就是参考代码或者别人制作好的库, 虽然不成熟, 虽然可能有很多坑, 但是数量还是挺多的, 用来快速实现原型非常方便, 但是如果要制作出性能和质量都很好的作品, 还需要花不少时间认真打磨优化.

8 常见问题

  • codecraft生成的模型执行库存放位置为$HOME/CodecraftAssistant/libraries/ei_project_<编号>, 要将它软连接或者复制到项目文件夹里面的lib子文件夹内.
  • pio提示头文件定义重复如果出现此类问题, 建议排查pio可能会存放library的所有文件夹. pio通过检查#include来确定依赖关系, 有时候推断并不准确或者重复, 需要手动梳理一下, 去掉没有的库.

9 其他说明

图片资源来源:
https://www.youtube.com/c/devonkong
感谢分享.

感谢硬禾学堂和得捷电子,让我接触到了wio terminal开发板,让我能在业余时间参与更多有趣项目的学习,也感谢群的小伙伴提供很多种实现题目功能的思路,感谢各大佬的代码铺垫, 要不然没法快速完成这个小任务, 感谢大家一路的折腾与陪伴,谢谢!

 

附件下载
lip-sync.7z
可编译执行的代码(使用platformio)
firmware.elf
生成的固件
团队介绍
james
团队成员
james
评论
0 / 100
查看更多
猜你喜欢
Funpack第十二期:基于Wio Terminal的盆景养护监测系统基于Wio Terminal平台,arduino开发环境,底层驱动使用集成库。本设计建立一个盆景养护环境监测系统,可以对室内的温湿度,CO2浓度和光照强度进行检测并实时显示。
Dino
620
Funpack第十二期-基于Edge Impulse在Wio Terminal上运行口型识别基于Edge Impulse平台完成口型识别的数据采集、特征提取、模型训练并生成在Arduino上部署的推理库,使用VS Code的PlatformIO进行开发,完成在Wio Terminal开发板上识别口型并显示对应图片的功能。
yorange
1058
Funpack第八期——详细地用机器学习方法做的语音控制LED灯颜色Funpack第八期 Nano 33 BLE Sense 机器学习 tinyml PDM麦克风 傅里叶变换
aramy
1019
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
友情链接
STEP小脚丫 纳芯微电子
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号

聚圣源在哪里起名字东京奏鸣曲多伦多有哪些大学书店起什么名字好听简洁大方于姓男孩起名于泽什么霖男孩起名宝宝起名龙吴字坊臭豆腐矿业公司起名字大全公司起名工具版马来西亚官方语言你是我的荣耀演员表少帅临门张姓宝宝猪年起名公司起名评分网免费测试起名的学问100分杨姓起名字火起名字大全延禧攻略全集百度云iso游戏下载鞋店起名字大全8画的字的起名姓戴女孩起人名杨明生江书记读后感600字苗木基地起什么名字好赘婿宁毅圆房的顺序熊猫视频属虎2020年运势及运程淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化