精华内容
下载资源
问答
  • FastCV

    2012-02-26 23:32:26
    http://www.qualcomm.com/media/blog/2011/10/25/introducing-fastcv-computer-vision-technology-tuned-mobile https://developer.qualcomm.com/develop/mobile-technologies/computer-vision-fastcv
    展开全文
  • FastCV 笔记

    2020-10-27 10:15:06
    高通发布的FastCV是一个针对移动平台的计算机视觉库,如今的版本支持运行在windows、Mac和Linux等大部分平台,并对于高通自家的Snapdragon做了特别优化的。FastCV提了为移动设备优化的计算机视觉(CV)库,包括移动...

    高通发布的FastCV是一个针对移动平台的计算机视觉库,如今的版本支持运行在windows、Mac和Linux等大部分平台,并对于高通自家的Snapdragon做了特别优化的。FastCV提了为移动设备优化的计算机视觉(CV)库,包括移动设备广泛使用的视觉处理函数和大众市场手机。中间件开发人员可以使用FastCV构建框架开发人员所需要的计算机视觉用用,高通的AR(增强现实)SDK就是一个采用了FastCV的很好的例子。CV应用的开发者们在开发他们的应用时可以直接使用FastCV函数。

    待续,整理一个android工程,在低端手机平台,gpu效果表现其实很差的。

    Android Studio 4.0 实现 图片叠加

    本想用于分割的掩码与原图叠加,测试一下 FastCV 的 fcvAddWeightedu8。
    我们先看 fastcv.h 头文件描述:

    //---------------------------------------------------------------------------
    /// @brief
    ///   Calculate the weighted sum of two uint8_t type matrices
    ///
    /// @details
    ///   Specifically, when 0 <= alpha <= 1 and beta = 1-alpha, the function accumulates a weighted value from
    ///   an input image to an output image
    ///   \n\b NOTE: alpha and beta should be within the range of (-128.0, 127.996) and have up to three digits decimal precision
    ///
    /// @param src1
    ///   First source matrix.
    ///   \n\b NOTE: array should be 128-bit aligned
    ///
    /// @param width
    ///   Width of the source matrix.
    ///
    /// @param height
    ///   Height of the source matrix.
    ///
    /// @param src1Stride
    ///   Stride is the number of bytes between column 0 of row 1 and
    ///   column 0 of row 2 in data memory. If left at 0 src1Stride is default to width.
    ///   \n\b WARNING: should be multiple of 8
    ///
    /// @param src2
    ///   Second source matrix.
    ///   \n\b NOTE: array should be 128-bit aligned
    ///
    /// @param src2Stride
    ///   Stride is the number of bytes between column 0 of row 1 and
    ///   column 0 of row 2 in data memory. If left at 0 src2Stride is default to width.
    ///   \n\b WARNING: should be multiple of 8
    ///
    /// @param alpha
    ///   The weight value applied to src1 matrix, provided by float32_t type
    ///
    /// @param beta
    ///   The weight value applied to src2 matrix, provided by float32_t type
    ///
    /// @param dst
    ///   the result matrix (uint8_t type).
    ///   \n\b NOTE: array should be 128-bit aligned
    ///
    /// @param dstStride
    ///   Stride is the number of bytes between column 0 of row 1 and
    ///   column 0 of row 2 in data memory. If left at 0 dstStride is default to width.
    ///   \n\b WARNING: should be multiple of 8
    ///
    /// @return
    ///   FASTCV_SUCCESS upon success,
    ///   other values upon failure.
    ///
    /// @ingroup math_vector
    //---------------------------------------------------------------------------
    
    FASTCV_API fcvStatus
    fcvAddWeightedu8(const uint8_t *           src1,
                     uint32_t                  srcWidth,
                     uint32_t                  srcHeight,
                     uint32_t                  src1Stride,
                     const uint8_t *__restrict src2,
                     uint32_t                  src2Stride,
                     float32_t                 alpha,
                     float32_t                 beta,
                     uint8_t *                 dst,
                     uint32_t                  dstStride);
    
    

    然后使用JNI实现了下面的代码:

    void addWeight(uint8_t *pSrc1, uint8_t *pSrc2, uint32_t w, uint32_t h, uint8_t *pDst) {
    
    
        fcvStatus resule = fcvAddWeightedu8(pSrc1, w, h, w, pSrc2, w, 0.5, 0.5, pDst, w );
    
        DPRINTF("fcvAddWeightedu8 -- %d\n", resule);
    
    }
    
      case HAS_REF_FRAME:
       
            addWeight( imgDiffState.referenceImgBuf, pJimgData, w, h, pDiffData );
    
            if (fpOutput)
            {
               writeOutput(fpOutput, pJimgData, w, h);
               fclose(fpOutput);
               fpOutput = NULL;
            }
    
            pPreviewData = pDiffData;
     
         break;
    

    上层的 java 显示,效果如图:
    在这里插入图片描述

    展开全文
  • FastCVFastCV实例1

    千次阅读 2016-04-20 23:48:41
    在上一篇《FastCV环境搭建》中已经描述了如何搭建FastCV及其导入FastCV SDK自带的demo,这篇文章将讲述如何自己创建一个FastCV项目。1、创建一个新的安卓工程 fastCVTest。2、在工程目录下新建jni文件夹,把fastcv.h...

    在上一篇《FastCV环境搭建》中已经描述了如何搭建FastCV及其导入FastCV SDK自带的demo,这篇文章将讲述如何自己创建一个FastCV项目。

    1、创建一个新的安卓工程 fastCVTest。

    2、在工程目录下新建jni文件夹,把fastcv.h及libfastcv.a拷贝到jni文件夹下,并且在文件夹下创建android.mk application.mk image.cpp 文件,编辑以下内容:

    application.mk

    APP_ABI := armeabi-v7a
    APP_STL := gnustl_static
    APP_CPPFLAGS := -frtti -fexceptions  

    android.mk

    # 在编译源文件前先编译出libfastcv.so 库
    include $(CLEAR_VARS)
    LOCAL_MODULE := fastcv
    LOCAL_SRC_FILES := libfastcv.a
    include $(PREBUILT_STATIC_LIBRARY)
    
    #编译libfastCVTest.so
    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := fastCVTest
    
    LOCAL_CPPFLAGS := -frtti -fexceptions
    LOCAL_LDLIBS += -llog -lz
    
    #引用libfastcv.so
    LOCAL_STATIC_LIBRARIES := fastcv
    
    LOCAL_SRC_FILES := image.cpp
    include $(BUILD_SHARED_LIBRARY)

    image.cpp

    #include "fastcv.h"
    #include "jni.h"
    #include <android/log.h>
    #ifndef LOG_TAG
    #define LOG_TAG "FASTCV"
    #endif
    
    #define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
    #ifdef __cplusplus
    extern "C" {
    #endif /* __cplusplus */
    
    void Java_com_example_fastcvtest_MainActivity_test(JNIEnv* env,jobject thiz){
    
           char sVersion[32];
           fcvGetVersion(sVersion, 32);
           LOGD("FastCV version %s", sVersion);
    }
    #ifdef  __cplusplus
    }
    #endif
    
    

    在MainActivity.java中添加:

    static{
        System.loadLibrary("fastCVTest");
    }
    native void test();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        test();
    }

    3、设置自动编译,具体参照上一篇文章中的操作。

    4、运行即可看到相关的log。
    这里写图片描述

    该工程项目源码:

    展开全文
  • FastCV使用手册

    2021-01-15 19:48:56
    FastCV使用手册 一、什么是FastCV FastCV是高通免费发布的计算机视觉库,类似一个小一点的OpenCV库。FastCV 最大的特点就是快,这是因为高通公司针对自己的芯片做了特别的优化的缘故。缺点也特别明显,就是 FastCV ...

    一、什么是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%。但是我们并没有测试数据,后续有待测试。总体使用很方便(就一个静态库)。

    展开全文
  • FastCV简介(2)

    2021-07-29 11:02:05
    FastCV简介(2)安装 FastCV SDK 安装 FastCV SDK 下载 FastCV SDK 通过 Qualcomm Devloper Network 站点上的 Qualcomm Computer Vision (FastCV) 门户分发。请按照以下说明访问安装程序。 注意:虽然我们为下面列出...
  • FastCV简介(1)

    2021-07-29 09:56:23
    FastCV简介(1)入门指南什么是 FastCV?概览设置开发者环境 入门指南 什么是 FastCVFastCV 是 Qualcomm 发布的计算机视觉库。该库面向对编写在移动设备上运行的 CV 应用程序感兴趣的非常复杂的计算机视觉 (CV) ...
  • FastCV SDK详解

    千次阅读 2015-12-14 15:27:37
    Hexagon SDK之FastCV详解  高通发布的FastCV是一个针对移动平台的计算机视觉库,如今的版本支持运行在windows、Mac和Linux等大部分平台,并对于高通自家的Snapdragon做了特别优化的。FastCV提了为移动设备优化的...
  • fastcv-installer-linuxembedded-1-7-1 高通安卓 Linux fastcv 安装包
  • FastCV是高通为提高在ARM芯片乃至晓龙芯片的图像处理算法效率,专门定制的一个CV库。网上有人专门对比过和opencv大部分算法的处理时间,接近十倍于opencv的速度。所以很值得尝试把原来OpenCV的接口改用FastCV来实现...
  • 要在手机上使用图像处理,OPENCV跑的有点慢,听说fastcv对ARM进行了专门的优化,因此着手改用fastcv来进行部分函数替换。第一步搭建环境搞了好久。 fastcv官网上是使用Eclipse作为开发环境,无奈Eclipse用的越来越...
  • FastCV Computer Vision SDK

    千次阅读 2017-04-23 23:26:57
    What is FastCV? FastCV is a computer vision library being released by Qualcomm. The library is targeted toward very sophisticated Computer Vision (CV) application developers who are interested in w
  • Fastcv——机器学习SVM初识

    千次阅读 2016-09-19 13:03:46
    SVM是一种常用的机器学习算法,在人工智能、模式识别、图像识别等领域有着非常广泛的应用,本节将结合FastCV库提供的fcvSVMPredict2Classf32机器学习函数API,对SVM原理及用法进行介绍,为后续大家在使用FastCV进行...
  • FastCV主要接口分析之二

    千次阅读 2016-02-17 10:58:07
    FastCV主要接口分析之二  FastCV为计算机视觉(CV,computer vision)的应用开发者提供了两个主要功能:提供CV常用的函数库,其已经进行了优化且可以高效的运行在移动设备上;提供干净的processor-agnostic硬件加速...
  • 安装包:fastcv-installer-android-1-7-1.exe 文档:FastCV_Getting_Started_Guide.docx 点击安装包安装到任意目录,在根目录/samples下有三个工程,在eclipse中按照普通工程导入fastcvdemo,然后点击File->new->...
  • FastCV主要接口分析之一

    千次阅读 2016-01-22 11:24:57
    FastCV主要接口分析  安装Hexagon SDK后,会在安装的主目录下/Hexagon_SDK/2.0/lib/fastcv/hexagon_Release_v5存在如下文件:    上图中,fastcv.h是其对外暴露的接口,libfastcvadsp.a是函数的具体实现,部分...
  • FastCV主要接口分析之三

    千次阅读 2016-02-18 15:23:31
    FastCV主要接口分析之三  5. 点积相关函数  FASTCV_API uint32_t fcvDotProductxxxx( xxx, ...... );  此是一些列相关的函数,主要进行各种各种情况下的点积运算;  形参是各种维度的vector,返回的是点积值。...
  • fastcv环境搭建+samples编译

    千次阅读 2015-05-13 19:59:20
    fastcv是基于opencv适用于移动端 用高通官网一句话形容 a camera is more than just a camera  fastcv官网 https://developer.qualcomm.com/mobile-development/add-advanced-features/computer-vision-fastcv ...
  • FastCV SDK发行版本说明(1)1. 简介1.1 平台1.2 安装1.3 操作模式1.3.1 初始化过程1.3.2 取消初始化2 发行版本的变化2.1 版本编号方案2.2 命名修改策略 1. 简介 FastCV SDK 是一组为 ARM 实现的算法,并针对高通的 ...
  • FastCV主要接口分析之五

    千次阅读 2016-03-11 14:19:33
    FastCV主要接口分析之五 15.像素描述函数 FASTCV_API int fcvDescriptorSampledMeanAndVar36f32( const float* __restrict src,  int first,
  • 在Android平台上搭建Qualcomm的FastCv

    千次阅读 2016-09-19 09:06:20
    FastCv是一款Qualcomm公司发布的专门针对移动平台的计算机视觉库,尤其对Qualcomm自家的Snapdragon做了特别的优化。中间件开发人员可以使用FastCV构建框架开发人员所需要的计算机视觉应用,目前FastCv已经支持windows...
  • FastCV主要接口分析之四

    千次阅读 2016-02-26 15:10:52
    FastCV主要接口分析之四  10.仿射函数  FASTCV_API void fcvGeomAffineFitf32( const fcvCorrespondences* __restrict corrs,  float* __restrict affine );  此函
  • 基于fastcv的三维重建技术介绍

    千次阅读 2016-09-23 17:06:09
    Fastcv是高通专门为移动平台定制开发的一款高性能的图形处理库,通过该库可以快速的实现各种图形处理,包括人脸识别、目标跟踪和三维重建等,本节将对三维重建技术的原理和步骤进行介绍,在此基础上对fastcv的三维...
  • FastCV SDK发行版本说明(2)2.3 发行版1.6.02.3.1 现有 API 修改2.3.2 新增的API2.3.3 bug修复2.3.4 性能改进2.4 发行版本1.7.0系列2.4.1 现有 API 修改2.4.2 新增的API2.4.3 bug修复2.4.4 性能改进2.4.5 其他改变...
  • 1.概述 ...1)以色列ADAS公司iOnRoad就是采用FastCV进行开发; 2) FastCV性能要优于OpenCV; 2.1 FastCV SDK & 官方资料 https://developer.qualcomm.com/software/fastcv-sdk 2.2 FastCV API说明 ...
  • 高通FastCV简介

    2021-02-22 14:42:22
    不仅仅是摄像头,升级版的FastCV SDK v 1.7又将带来哪些全新体验呢?当然本次说的新体验,绝非大家原先了解到的人脸识别等,因为那已经是老版本就可以做到的啦,虽然我们应用的还不是那么的彻底,但是近期我们又...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 215
精华内容 86
关键字:

FastCV