谷歌MediaPipe KNIFT的打包

如果刚开始接入,环境配置可以看我的另一篇文章 如果你已经配置了环境,出现了一些问题,也可以参考一下。

谷歌官方Mediapipe KNIFT文档写的操作步骤看着很简单,但是我每执行一条命令,都会错误,解决一个错误就要半天甚至两天时间,真的无语。

谷歌Github存放Mediapipe的项目,里面只有facedetection、facemesh、hands这3个例子项目,是可以用Android Studio运行的,打开路径是mediapipe\examples\android\solutions,把根目录下的res文件夹复制到你想打包的module里就行了。

前言

有些童鞋会跟我一样linux小白,命令不会,也没用过linux电脑(ps:其实我几年前看过一点点的linux特别基础的命令,装过Ubuntu玩玩,现在居然现在用上了),其实不用慌,打开“此电脑”(就是win + E快捷键),在地址栏里输入\\wsl$回车,就会进到wsl虚拟机目录了,所以下面有些修改文件命令,文件拷贝都可以在这里弄,是不是很简单咧。其实我是喜欢敲命令的,感觉比鼠标点还快一些,顺便复习。

如果有些命令报 Permission denied的错误,就是你没权限,命令前面加sudo

有些童鞋可能不懂linux的环境,这里要强调一下,谷歌官网操作的bazel命令,一定要在你的mediapipe目录下执行,就是当前目录下必须有WORKSPACE文件的目录下,你问我为什么,因为WORKSPACE文件就是整个项目的配置文件,就跟Android项目根目录下的build.gradle一样。

我之前想看一下是java怎么调用knift里面的so库和模型的,就反编译了谷歌官方demo apk,其实里面的代码很简单,就一个Java文件,反正你是修改不了里面的c/c++源码的,只能看到里面相机申请权限和相机开启加载模型。如果你懒得反编译,可以看看我反编译之后的项目代码文件 ,其实这个很有用,后面你调试模型的时候,直接打新模型替换就好,不用每次跑bazel命令等半天,或者只是修改模型文件名顺序,直接在Android Studio里修改,我真是个小机灵鬼。如果你打apk成功了,也可以不用打aar包,谷歌官网打aar包的操作是有!!问!!题!!,是不会打成功的,你打apk包解压再拷贝也是一样的。

步骤1.打包apk

执行下面两行命令,很重要啊,官网解释了,默认是opencv3,打apk包前要切到opencv4,这两条命令是修改两个配置文件的opencv的版本号,不然打apk包的时候会错误,或者你运行的时候闪退,报so库的错误

sed -i -e 's:3.4.3/opencv-3.4.3:4.0.1/opencv-4.0.1:g' WORKSPACE

再执行

sed -i -e 's:libopencv_java3:libopencv_java4:g' third_party/opencv_android.BUILD

好了,开始执行下面两条命令打包apk了

bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/templatematchingcpu:templatematchingcpu

bazel build -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a mediapipe/examples/android/src/java/com/google/mediapipe/apps/templatematchingcpu:templatematchingcpu

上面打apk包的第二条命令,跟官网有点区别,最末尾那里不能加templatematchingcpu.apk,不然命令报错找不到该文件,因为那个路径下有BUILD文件,谷歌已经帮你配置好了。

成功之后,会显示apk的路径,这样你就可以拿到apk了

看到 红框框里的templatematchingcpu.apk了吧,这就是新打包出来的路径。

上面opencv从3切到4,打完apk之后一定要切回opencv3,不然后面打模型的时候,app运行又报错,运行下面两行命令切回来。

sed -i -e 's:4.0.1/opencv-4.0.1:3.4.3/opencv-3.4.3:g' WORKSPACE

sed -i -e 's:libopencv_java4:libopencv_java3:g' third_party/opencv_android.BUILD

步骤2.安装apk

如果你按谷歌官网那里直接命令安装,可能安装不了,找不到设备,应该是wsl找不到设备,但是windows是可以找到的,上面前言说的打开“此电脑”(就是win + E快捷键),在地址栏里输入\\wsl$回车,进入到wsl的目录可以按windows那样操作。

bazel-bin在windows这里是看不到了里面的子目录和子文件的,所以要用命令把apk复制出来先。

sudo cp mediapipe/examples/android/src/java/com/google/mediapipe/apps/templatematchingcpu/templatematchingcpu.apk ./

就会把apk复制到当前目录下,然后在windows刚才打开的那里的目录,刷新一下就看到了。如果你电脑已经配置了apk环境变量,直接在当前目录下(省得你输入一大串的地址),按住shift键,右键鼠标打开powershell,在powershell里输入命令安装

adb install -r templatematchingcpu.apk

好吧,你没有配置adb环境变量,你可以拷贝到u盘或者别的存储介质里啊,你都拿到apk了。

步骤3.打包识别模型

打包模型之前,确保opencv版本一定要切回opencv3,就在上面步骤1那里切回来,不然app运行会出错。

在mediapipe目录下新建my_template文件夹,

mkdir my_template

在打开my_template文件夹

cd my_template

在里面分别新建image和output两个文件夹

mkdir image

mkdir output

目录结构如下

这三个目录文件名,可以不不用按我的来的,你喜欢咋来就咋来,image是目标图片存放地方,output文件是模型输出地方。

把你要识别的图片复制到image图片里,你反正都用windows打开wsl目录结构了,直接把png图片复制进去就行,其实上面的新建目录你也可以按windows操作那样新建。 可以多张图片,图片可以不用很大,我的每张图片100kb左右。

输入下面两行命令(记得切回到mediapipe目录),开始打包pb模型文件,

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/template_matching:template_matching_tflite


bazel-bin/mediapipe/examples/desktop/template_matching/template_matching_tflite --calculator_graph_config_file=mediapipe/graphs/template_matching/index_building.pbtxt --input_side_packets="file_directory=my_template/image,file_suffix=png,output_index_filename=my_template/output/knift_index.pb"

把knift_index.pb文件复制到mediapipe\models目录下覆盖原来旧的,可以用cp命令复制,也可以用windows操作复制。

打开mediapipe\models\knift_labelmap.txt,修改里面的模型名字,必须跟图片名字一样(不带.png),用linux的vim命令修改(可以看看另一篇文章的操作),或者你在上面前言那里已经打开了Android项目代码,到时候放模型的时候,在Android工程里改这个文件也行。名字跟图片名字保持一致,如下图:

然后执行上面步骤2打包新的apk,或者直接把.pb模型文件放进安卓工程里直接替换

注意:1.打包模型前,必须是opencv3,打包apk前是opencv4

2.图片格式是png的,打包模型的第二条命令里指定的是png,不然运行apk报错崩溃

--------------------------------------- 分割线 ----------------------------------

你可能会遇到的问题:

问题1:找不到opencv2问题,No such file or directory #include "opencv2/core/cvdef.h"

 解决办法:我看了安装目录,opencv4里有包含opencv2,但是你总不能把所有opencv2的include前面加opencv4吧,那海量的c文件改到啥时候,想到之前配opencv环境是看其他博客配置的,然后在mediapipe目录下,运行setup_opencv.sh,执行下面命令,自动帮你配置opencv环境,然后就可以打包模型了。

sudo ./setup_opencv.sh

问题2:app运行崩溃报错,Fatal signal 6 (SIGABRT),code -6 (SI_TKILL) in tid 8718 (mediapipe/8718), pid 8545 (latematchingcpu)

 解决办法:就是打包模型之前,按照上面步骤1,切回opencv3

打aar包

打包aar包,如果你按官网的操作步骤,一定打包不了,报错误找不到文件。

其实,你按上面的操作,先替换模型和修改txt文件后,再执行下面这行命令就可以打aar包了。

bazel build -c opt --strip=ALWAYS --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --fat_apk_cpu=arm64-v8a,armeabi-v7a //mediapipe/examples/android/src/java/com/google/mediapipe/apps/templatematchingcpu

打包成功的成功之后,会显示INFO:Found 1 target...那里显示aar包所在的目录,使用上面步骤1的cp命令复制出来就可以了(复制命令的时候,把路径改成aar包的路径,别一点都不改啊)。

-------------------------------------------------以上操作结束-------------------------------------------------

后语

1.如果发现你电脑很卡,打开任务管理器,查看进程,发现Vmmem这个进程吃了很多内存,如果不用wsl了,可以用windows的“命令提示符”或者powershell,以管理员身份运行,

输入wsl --shutdown强行杀掉进程

2.如果打包apk,模型,aar等,一直卡在

Fetching @mave: Resolving and fetching the transitive closure of 29 artifact(s).

这里,解决办法看我的上一篇博客的后续

3.你会发现识别是识别成功了,但是名字对应不上,我也不知道打包模型的时候是根据什么顺序排序的,我反正没找到规律,你已经在上面前言那里拿到Android工程代码,在AS工具里直接在assets目录里那个txt文件调模型文件名的排序就可以了,不用重新打模型包。不然还是你自己用bazel打apk包跑一次。找到排序规律了的童鞋,可以评论区说一下。

4.如果你觉得识别点不够,去官网这里下载 识别keypoints,默认的是200,你可以下载其他的,比如TFLite model for up to 1000 keypoints,然后放到AS工程的assets里替换掉,名字改成knift_float.tflite,我实际测试效果,没多大用,点数高相机预览画面会变卡顿。也可以在wsl的目录mediapipe\examples\android\src\java\com\google\mediapipe\apps\templatematchingcpu里面修改BUILD文件配置。

5.如果你想修改pb和txt这两个文件名字,可以在mediapipe\examples\android\src\java\com\google\mediapipe\apps\templatematchingcpu的BULD文件里修改引用,再打包。我是为了快点跑成功,没有修改名字,所以要改名字的话,你可以自己摸索改一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MedMediMediapiMediapipeMediapipe CMediapipe C是Mediapipe C是GoogleMediapipe C是Google推Mediapipe C是Google推出Mediapipe C是Google推出的Mediapipe C是Google推出的一Mediapipe C是Google推出的一种Mediapipe C是Google推出的一种开Mediapipe C是Google推出的一种开源Mediapipe C是Google推出的一种开源软Mediapipe C是Google推出的一种开源软件Mediapipe C是Google推出的一种开源软件库Mediapipe C是Google推出的一种开源软件库,Mediapipe C是Google推出的一种开源软件库,用Mediapipe C是Google推出的一种开源软件库,用于Mediapipe C是Google推出的一种开源软件库,用于处理Mediapipe C是Google推出的一种开源软件库,用于处理视Mediapipe C是Google推出的一种开源软件库,用于处理视觉Mediapipe C是Google推出的一种开源软件库,用于处理视觉和Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。MedMediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。MediMediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。MediapiMediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。MediapipeMediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe CMediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和设Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和设备Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和设备上Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和设备上运Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和设备上运行Mediapipe C是Google推出的一种开源软件库,用于处理视觉和音频信号。它提供了一些预训练的机器学习模型和工具,使开发人员可以更轻松地构建基于计算机视觉、人类姿势估计、手势识别和语音识别等技术的应用程序。Mediapipe C支持多种编程语言,并且可以在各种平台和设备上运行。 ### 回答2: Mediapipe C是一个开源的跨平台计算视觉流水线框架,旨在提供一种灵活且高效的方式,用于处理影像和视频数据的处理和分析。该框架由谷歌开发,并于2019年起开源。 Mediapipe C使用C++编写,是一个功能强大的库,可以用于构建各种计算视觉的应用程序。它提供了一系列预先构建的视频处理和计算机视觉算法模块,如人脸识别、手势识别、姿势估计、物体跟踪等。通过使用这些模块,开发人员可以轻松地实现各种视觉任务,并在项目中快速搭建出一条完整的视觉处理流水线。 该框架具有很高的扩展性和灵活性,可以适应不同的平台和应用场景。它可以在多个操作系统(如Linux、Windows、macOS)上运行,并且支持不同的编程语言接口,例如C++、Python等。这使得开发人员可以根据自己的需要选择最适合的编程环境和目标平台。 在使用Mediapipe C进行开发时,开发人员可以通过定义输入源、选择和连接不同的计算模块,以及配置相应的参数,构建一条自定义的视觉处理流水线。该框架提供了丰富的接口和工具,用于数据的输入和输出、模块的配置和管理,以及流程的控制和监测。开发人员可以根据具体需求将各种模块按照不同的方式组合在一起,形成一条完整的处理流,并通过Mediapipe C框架提供的接口进行调用和使用。 总之,Mediapipe C是一个功能强大且灵活的计算视觉流水线框架,可以帮助开发人员快速搭建和实现各种视觉处理任务。它不仅提供了丰富的预构建算法模块,还可以根据需求进行扩展和定制。无论是在移动设备、摄像头、机器人等各种应用中,Mediapipe C都可以发挥重要的作用。 ### 回答3: Mediapipe是Google开发的一个跨平台、轻量级、用于构建多种实时应用程序的开源框架。它提供了大量预先实现的机器学习模型和处理算法,用于处理图像、视频、音频和其他传感器数据。 通过Mediapipe,开发人员可以轻松构建应用程序,例如人脸检测、姿势估计、手势识别、实时背景模糊等。它提供了一种简单且高效的方式来处理实时数据流,并可以在多个平台上运行,括移动设备、桌面和服务器。 Mediapipe的核心是图形处理系统,它允许用户定义数据处理和传输的图形流水线。开发人员可以创建自定义的处理模块,将它们连接在一起以实现特定的功能。这种图形流水线的灵活性使得用户能够根据自己的需求自定义数据流处理的方式,并且可以轻松地添加新的处理模块。 此外,Mediapipe还提供了基于GPU和CPU的高性能实现,以保证处理速度和效率。它还支持多线程处理,可以并行处理多个数据流,提高整体处理性能。 总之,Mediapipe是一个功能强大、易于使用的开源框架,可以帮助开发人员快速构建多种实时应用程序。它的灵活性和高性能使得它成为处理实时数据流的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值