当前位置:首页 > 智能硬件 > 机器视觉
[导读] SVM是一种常用的机器学习算法,在人工智能、模式识别、图像识别等领域有着非常广泛的应用,本节将结合FastCV库提供的fcvSVMPredict2Classf32机器学习函数API,对SVM原理

SVM是一种常用的机器学习算法,在人工智能、模式识别、图像识别等领域有着非常广泛的应用,本节将结合FastCV库提供的fcvSVMPredict2Classf32机器学习函数API,对SVM原理及用法进行介绍,为后续大家在使用FastCV进行图像识别类的应用开发提供参考。

一、FastCV简介

FastCV是Qualcomm公司开发提供的专注于移动平台的计算机视觉库(Computer vision library),该库针对ARM平台进行设计,并且针对Qualcomm处理器进行了优化,相对于OpenCV和JavaCv其性能有了大幅度的提高,非常适合移动设备各种图像处理,如三维重建、目标跟踪、人脸识别等。

FastCV提供的API结构如下图1所示,根据其提供的功能分类主要包括数学/适量运算、图像处理、图像变换、特征检测、对象检测、三维重建、色彩转换、聚类和搜索、运动和对象跟踪、形状和绘图、内存管理和SVM机器学习13个部分,通过fastcv提供的这些API接口你可以方便的完成各种图像处理应用的设计。极大的简化的设计过程,提高程序的稳定性和可靠性。后续将针对fastcv提供的SVM机器学习进行详细介绍。

图1 fastCV功能结构

二、SVM机器学习基本原理

支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。具体的SVM的原理是非常深奥的,其涉及到的数学理论非常多,并且通常还需要涉及到多维空间,从存粹的数学理论很难理解SVM的基本原理,并且介绍SVM的数学原理的内容也非常多(如http://www.dataguru.cn/thread-371987-1-1.html就对SVM的原理进行了详细介绍),这里将通过一个经典的SVM分类例子来向大家介绍SVM的基本原理。

假设现在你是一个农场主,圈养了一批羊群,但为预防狼群袭击羊群,你需要搭建一个篱笆来把羊群围起来。但是篱笆应该建在哪里呢?你很可能需要依据牛群和狼群的位置建立一个“分类器”,比较下图这几种不同的分类器,我们可以看到SVM完成了一个很完美的解决方案,如下图2所示,这就是景点的SVM分类原理。

图2 农场主搭建篱笆SVM经典例子示意图

三、fastCV中SVM接口参数解析

在fastCV中提供了SVM方法调用API接口,通过调用该接口可以方便的实现SVM学习功能,起API函数原型如下:

FASTCV_API fcvStatus fcvSVMPredict2Classf32( fcvSVMKernelType kernelType,

uint32_tdegree,

float32_tgamma,

float32_tcoef0,

const float32_t *__restrictsv,

uint32_tsvLen,

uint32_tsvNum,

uint32_tsvStride,

const float32_t *__restrictsvCoef,

float32_trho,

const float32_t *__restrictvec,

uint32_tvecNum,

uint32_tvecStride,

float32_t *__restrictconfidence

该函数返回通过SVM学习策略计算得到的当前样本的置信度,其计算公式如下(同时该值还可以通过libSVM和OpenCV提供的SVM训练得到):

confidence(i) = sum_j( svCoef[j] * Kernel(vec_i, sv_j) - rho;

为了学会调用该函数,就需要了解上述函数的各个参数的意义及具体的设置方法,以下是上述参数的意义和设置方法总结:

kernelType:核函数类型这里可以选择 ‘FASTCV_SVM_LINEAR’,‘FASTCV_SVM_POLY’,‘FASTCV_SVM_RBF’,‘FASTCV_SVM_SIGMOID’等;

degree: 设置核函数的深度,为整数,通常设置为3;

gamma:核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k);

coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0);

sv :支持特征向量;

svLen: 特征长度, (support vector length = feature length)。

svNum: 支持特征向量个数

svStride:支持向量跨度 ;

svCoef: sv系数,长度设置为sv个数 ;

rho SVM 偏置参数;

vec 检测向量;

vecNum 检测向量个数;

vecStride 监测向量跨度;

以上就是fastCV中提供的SVM接口介绍,在后续章节将进一步结合图像处理,来带大家用SVM来实现相关的分类和图片识别,大家如果想进一步了解更多的关于fastcv库的内容可以访问Qualcomm的https://developer.qualcomm.com/docs/fastcv/api/index.html网站查阅更多信息。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭