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网站查阅更多信息。