FastCV使用手册

本文介绍了FastCV,一款由高通发布的快速计算机视觉库,专为自家芯片优化。文章详细讲述了FastCV的平台支持、API分类、Demo构建及使用实例,重点解析了边缘检测和角点检测。虽然FastCV是闭源且仅限特定平台,但其便利性和速度提升值得开发者关注。
摘要由CSDN通过智能技术生成

一、什么是FastCV

FastCV是高通免费发布的计算机视觉库,类似一个小一点的OpenCV库。FastCV 最大的特点就是快,这是因为高通公司针对自己的芯片做了特别的优化的缘故。缺点也特别明显,就是 FastCV 是闭源的,只提供 API,并不提供源码,而且只能运行在高通的芯片上。
目前支持的平台:

  1. Android 32 bit and 64 bit library
  2. IA-32 (x86) Win32 and MS Visual C++ 2010, 2012, and 2013
  3. IA-32 (x86) Win64 and MS Visual C++ 2012, and 2013
  4. Linux Embedded 32 bit (‘softfp’ and ‘hard’) and 64 bit library

二、FastCV API

FastCV官网提供了多种功能的API详见
https://developer.qualcomm.com/docs/fastcv/api/index.html
其中API分为如下几类:

  1. 向量和矩阵计算
  2. 图像处理(中值滤波,高斯滤波,转灰度图,二值图,传统边缘检测细化算法)
  3. 图像转换(scale,上下采样等)色彩格式转换
  4. 特征检测
  5. 物体运动跟踪检测

三、构建FastCV demo

首先在 FastCV 的官网上注册并下载 FastCV SDK
https://developer.qualcomm.com/software/fastcv-sdk
在这里插入图片描述
下载sdk后执行文件,执行安装。安装后的文件目录为
在这里插入图片描述

  1. inc目录是fastcv库的.h头文件
  2. lib中包括Android的64位32位.a静态库和vs2010 2012 2013的.lib库文件
  3. samples中包含三个fastcv的resources,分别是角点检测、加载jpeg图像和算法的合集

构建一个Android studio工程时
ndk_version:ndk16
cmake:cmke3.6.4
build.gradle:3.0.1
android-api:25
gradle:gradle-4.1-all

接下来以sample中最为复杂的fastcvDemo为例进行构建
在这里插入图片描述
在这里插入图片描述
将如上的manifest文件和jni、res、src文件夹替换构建好的Android工程,并将其中的包名还有cpp、.h文件中的函数名称替换成自己的包名
最后,因为高通官网上给出的sdk中c++编译使用的是.mk文件,兼容性过低,我们将所有的编译脚本更新为CmakeLists.txt
这里要感谢一位大佬已将将demo上传到github
https://github.com/dongxiawu/FastcvDemo
亲测可用,只要你不改变gradle和tool的版本,就是人家的什么环境你都不要动。

四、FastCVDemo解读

fastcv并没有提供源码,但是封装的函数很多,我们从demo出发,以canny边缘检测算法为例,研究fastcv从app层调用到底层实现。
在这里插入图片描述
首先在调用时选择filter的类型为CannyFilter,通过jni在底层将滤镜设置为canny
在这里插入图片描述
设置完成后,buffer的获取是在Camera的回调中进行更新
在这里插入图片描述
在这里插入图片描述
在update的jni中调用updateFilter,在这里通过一开始设置的Filter的类型,选择不同的滤镜case访问fastcv的库函数fcvFilterCanny3x3u8,在这里也可以看出,不同的算法的调用,比如上面调用的高斯滤波。
在这里插入图片描述
算法执行完成后,要通过render进行渲染在上面的update Jni中,先进行上图的updateFilter,再进行如下图所示的操作,该操作将yuv420数据转为RGB565
在这里插入图片描述
以上只是将数据转为合法数据,具体的渲染过程也是在camera的回调中,如上图,在update执行结束后调用requestRender进行渲染
在这里插入图片描述
最后来看一下边缘检测的效果
在这里插入图片描述
角点检测的算法效果
(上一篇博客有)

五、总结

fastcv的使用总体来说很方便,官网声明其速度可以比同条件下的opencv快10%-15%。但是我们并没有测试数据,后续有待测试。总体使用很方便(就一个静态库)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值