MediaPipe Face Mesh移植到k230问题

Viewed 182

目前进度
目前我是成功的将自己的训练集用yolo训练并根据嘉楠官方教程成功部署到了k230上,用的是canmv。

目标
下来我想我想将MediaPipe Face Mesh移植到k230上实现人脸检测和人脸测距和人脸姿态的判断。
但是MediaPipe Face Mesh算法不光是一个模型还有其他的算法,比如他是先通过人脸检测到人脸,再对人脸进行关键点检测

1.用上一帧的人脸关键点检测结果预测下一帧的关键点,这样之后就不用调用人脸检测,直接调用关键点检测就可以了
2.对关键点进行了滤波算法,这样减少关键点的抖动。

我理解的是我训练好的模型成kmodel后,在k230上调用模型,后还需要额外实现1,2两点的算法在k230上;

那么我的问题是:
1.我了解到k230开发是有通过canmv开发和sdk开发,用sdk开发的话,是不是就是用opencv和电脑上操控摄像头写算法的流程是一样的?还是还要额外的操作,我在电脑上能运行的代码是不是只需简单修改一下可以直接到k230上运行?
2.用micropython我看官方的库只是说名函数接口以及如何调用,有些函数库我看不到,如果我用sdk来开发的话是全部都开源的吗?
3.我像实现上述功能的话是用那种开发方法好用sdk还是canmv?因为我感觉这算法实现灵活度和自定义度比较高,我看了micropython的官方代码,好像都只是对模型预处理,运行,后处理这几个步骤,而且如果我移植MediaPipe Face Mesh的话他关键点还有个深度坐标,不知道用micropython能不能实现自定义高的步骤
4.我这个MediaPipe Face Mesh移植到k230的想法可不可行?

最后
感谢大佬们的回答,您的回答使我感觉不再孤独

1 Answers
  1. 不一样,再RT-smart上使用SDK开发调用摄像头需要使用k230_sdk支持的api,而不是使用opencv调用。所以电脑端的代码无法直接在RT-smart上直接修改使用。
  2. 暴露出来的API是MicroPython固件下支持的所有API,SDK的接口相比MicroPython更底层,灵活性更高,但是开发难度也更大。
  3. 如果microPython比较熟悉,建议用micropython开发,但是micropython后处理较慢,而且ulab做后处理较为复杂,有些操作可能不支持。SDK下使用C++做后处理,支持的操作更加广泛。相比来说,SDK开发更能满足条件。如果cpp代码能力可以,推荐使用sdk开发。
  4. 整体可行,但要脱离MediaPipe框架,先进性kmodel转换,然后自己写前后处理实现。

太感谢大佬了,看来我这个想法任重道远啊