第4期 何世钊,等:支持向量机与BP网络在火灾图像探测上的比较 341 4火灾实验 H H ● H 本文选用普通CCD摄像头,并通过视频采集卡 00 及其附带的SDK软件开发包连续采集帧图像.火灾 探测程序的图像处理部分由VC++编写完成,主要 完成火灾图像的目标分割及之后对火焰形状特征的 ◇ 口 Margin=2/ 提取.BP神经网络由Matlab编写实现,SVM算法则 由VC++代码实现.2种方法分别对图像处理程序 图2支持向量机分类超平面 给出的数据进行分析,判别火灾 Fig.2 Hyperplane classifier of the SVM 实验收集了包括纸张火、棉絮火、木材火、汽油 火、酒精火和柴油火以及蜡烛、台灯、日光灯干扰图 线性不可分情况下需引入惩罚因子C,距离最 像共1046幅.图像处理程序提取了每幅图像的特征 大化问题就转化为如下的二次规划问题: 值及特征值的变化值.这包括了火焰的面积、周长、 1 四2Iw2+C∑5 (6) 圆形度、面积差、周长差、圆形度差、重心以及位移, 通过反复实验对比,选用火焰的面积、周长、面 式(6)满足y:(wx:-b)+E:-1≥0且专:≥0.x:∈R 积差、周长差、圆形度差、位移作为火灾判据,可以取 为输入到支持向量机的训练向量,y:∈{-1,1}为训 得较好的训练效果.从而省去了冗余的判据如圆形 练样本x:所属类别.通过引入拉格朗日算子,消去 度、重心,使得程序运算量减少,提高了反应速度.确 w、b、C专等变量,得出 定判据后,取各幅图像的如上6个特征及图像所属 max p ∑a=2aaw (7) 类别构成一个样本,如表1所示.对于图像所属的类 型,用1来表示火灾图像样本,用-1或0表示来表 式(7)满足式(8)条件: 示干扰源图像样本(BP网络的干扰源样本用O表 f0≤&:≤C, (8) 示,SVM的干扰源样本则用-1表示).表1为火灾 0≤4≤C 实验中的部分样本, 表1部分火灾实验数据 Table 1 Part of fire experiment data 序号面积 周长 面积差 周长差 圆形度差 位移 火灾有无 1 319 189.120 24 22.688 0.01601 2.5318 1 2 508 303.922 53 20.968 0.00230 0.7517 1 73 97.974 45 36.382 0.00281 8.4646 -1或0 769 438.788 501 222.496 0.02180 26.8403 35 57.592 10 8.242 0.00362 15.1985 -1或0 6 408 293.578 46 39.452 0.00805 6.8935 1 7 102 207.120 56 96.210 0.01711 9.5715 -1或0 4.1SVM的训练与测试 时的各参数值.RBF核函数如式(9)所示. 从获取的实验样本中,选取156个样本作为 K(xi,)exp(-l:x;I2/02).(9) SVM的训练集.利用样本的面积、周长、面积差、周 在多次训练过程中,发现训练样本的选择和排 长差、圆形度差、位移及样本所属类型训练SVM. 序要求很严格.样本需要包含各类型火源和干扰源, SVM的学习过程依赖于核函数,但是一个具体问题 并且不同类型的样本的训练顺序要相互交错.否则, 选择何种核函数最优至今未有明确的原则与理论指 训练误差相当大,从而导致训练失败. 导.经过实验反复挑选,最终选择高斯径向核函数 依据以上要求对SVM进行训练后,再将火灾实 (RBF),惩罚因子C为0.05,误差为0.001,o=1. 验的全部样本共1046个送入算法中进行识别.经统 然后利用SM0训练算法89)求解使式(7)取最大值 计,有60个样本发生错判,全部属于干扰样本误判