发明名称 一种基于自适应步长和声搜索算法的脐橙图像分割方法
摘要 本发明公开了一种基于自适应步长和声搜索算法的脐橙图像分割方法,主要解决传统和声搜索算法应用于脐橙图像分割时存在着分割速度慢,分割精度不高的缺点。本发明在应用和声搜索算法分割脐橙图像的音调调整过程中根据混沌运动规律产生搜索因子,并采用最优个体与随机个体之间的差分自适应地确定搜索步长,从而增强算法的搜索性能;另外,利用最优个体及其邻域个体的信息产生邻域反向个体,并将邻域反向个体融合到选择操作过程中,以加快算法的收敛速度;与同类方法相比,本发明能够加快脐橙图像分割的速度,提高分割精度。
申请公布号 CN104715490A 申请公布日期 2015.06.17
申请号 CN201510163411.7 申请日期 2015.04.09
申请人 江西理工大学 发明人 郭肇禄;岳雪芝;汪慎文;杨火根;刘松华;谢霖铨;李康顺
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 赣州凌云专利事务所 36116 代理人 曾上
主权项 一种基于自适应步长和声搜索算法的脐橙图像分割方法,其特征是:包括以下步骤:步骤1,利用摄像机采集一幅脐橙图像OI,然后将采集的脐橙图像OI转换成为YCrCb色彩空间的图像YI;步骤2,提取图像YI中每个像素的Cb颜色分量值作为聚类数据,将提取到的聚类数据按像素在图像YI中的行列坐标存储到矩阵DCB中,由此可得到矩阵DCB中每个元素与图像OI中每个像素之间的行列坐标一一对应关系,其中矩阵DCB的大小为H×W,并且H的值等于图像YI的高度,W的值等于图像YI的宽度;步骤3,用户初始化参数,所述初始化参数包括分割类别数目D,和声库大小Popsize,记忆库学习率HMCR,反向邻域大小NK,最大评价次数MAX_FEs;步骤4,当前演化代数t=0,当前评价次数FEs=0;步骤5,随机产生初始和声库<img file="FDA0000695807690000011.GIF" wi="690" he="102" />其中:下标i=1,...,Popsize,并且<img file="FDA0000695807690000012.GIF" wi="64" he="75" />为和声库P<sub>t</sub>中的第i个个体,其随机初始化公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>B</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>t</mi></msubsup><mo>=</mo><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>&times;</mo><mn>255.0</mn><mo>/</mo><mi>D</mi><mo>+</mo><mi>rand</mi><mrow><mo>(</mo><mn>0,1</mn><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mn>255.0</mn><mo>/</mo><mi>D</mi><mo>-</mo><mn>1.0</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000695807690000013.GIF" wi="1178" he="91" /></maths>其中下标j=1,...,D,并且D表示要将图像分割成多少个类别;<img file="FDA0000695807690000014.GIF" wi="69" he="78" />为在和声库P<sub>t</sub>中的第i个个体,存储了D个分割类别的聚类中心,rand(0,1)为在[0,1]之间服从均匀分布的随机实数产生函数;步骤6,计算和声库P<sub>t</sub>中每个个体<img file="FDA0000695807690000015.GIF" wi="68" he="74" />的适应值<img file="FDA0000695807690000016.GIF" wi="170" he="73" />其中下标i=1,...,Popsize,计算个体<img file="FDA0000695807690000017.GIF" wi="66" he="77" />的适应值<img file="FDA0000695807690000018.GIF" wi="148" he="78" />的方法为:首先计算矩阵DCB中每个元素DCB<sub>m,n</sub>分别与个体<img file="FDA0000695807690000019.GIF" wi="63" he="77" />中存储的D个分割类别的聚类中心的距离,DCB<sub>m,n</sub>与哪个聚类中心的距离最小,则令DCB<sub>m,n</sub>属于哪个类,然后计算矩阵DCB中所有元素DCB<sub>m,n</sub>与它所属个体<img file="FDA00006958076900000110.GIF" wi="64" he="73" />中分割类别的聚类中心的距离之和作为个体<img file="FDA00006958076900000111.GIF" wi="67" he="74" />的适应值,其中适应值越小则表明个体越优秀,并且矩阵行下标m=1,...,H,列下标n=1,...,W;步骤7,当前评价次数FEs=FEs+Popsize,并保存和声库P<sup>t</sup>中适应值最小的个体为最优个体Best<sup>t</sup>,令音调调整率PAR=0.01;步骤8,采用自适应步长策略产生一个试验个体U<sup>t</sup>,并计算试验个体U<sup>t</sup>的适应值F(U<sup>t</sup>),具体步骤如下:步骤8.1,令计数器j=1;步骤8.2,在[0,1]之间随机产生一个实数r1,如果r1小于记忆库学习率HMCR,则转到步骤8.3,否则转到步骤8.13;步骤8.3,在[1,D]之间随机产生一个正整数RI1,并令<img file="FDA0000695807690000021.GIF" wi="278" he="84" />步骤8.4,在[0,1]之间随机产生一个实数r2,如果r2小于音调调整率PAR,则转到步骤8.5,否则转到步骤8.14;步骤8.5,在[0,1]之间随机产生一个实数r3,如果r3等于0.25,0.50或0.75,则再重新产生它直到r3不等于0.25,0.50或0.75;步骤8.6,令中间变量TCI=r3;步骤8.7,令计数器Ct=1;步骤8.8,按Logistic混沌公式计算搜索因子CI的值:CI=4.0×TCI×(1.0‑TCI);步骤8.9,令中间变量TCI=CI;步骤8.10,令计数器Ct=Ct+1,如果计数器Ct小于或等于350,则转到步骤8.8,否则转到步骤8.11;步骤8.11,令<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>U</mi><mi>j</mi><mi>t</mi></msubsup><mo>=</mo><msubsup><mi>Best</mi><mi>j</mi><mi>t</mi></msubsup><mo>+</mo><mo>[</mo><mi>CI</mi><mo>&times;</mo><mn>2</mn><mo>-</mo><mn>1</mn><mo>]</mo><mo>&times;</mo><mrow><mo>(</mo><msubsup><mi>Best</mi><mi>j</mi><mi>t</mi></msubsup><mo>-</mo><msubsup><mi>B</mi><mrow><mi>RI</mi><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>t</mi></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000695807690000022.GIF" wi="895" he="85" /></maths>如果<img file="FDA0000695807690000023.GIF" wi="71" he="82" />大于255或者<img file="FDA0000695807690000024.GIF" wi="72" he="79" />小于0,则令<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>U</mi><mi>j</mi><mi>t</mi></msubsup><mo>=</mo><msubsup><mi>Best</mi><mi>j</mi><mi>t</mi></msubsup><mo>;</mo></mrow>]]></math><img file="FDA0000695807690000025.GIF" wi="278" he="81" /></maths>否则保持<img file="FDA0000695807690000026.GIF" wi="70" he="83" />值不变;步骤8.12,转到步骤8.14;步骤8.13,令<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>U</mi><mi>j</mi><mi>t</mi></msubsup><mo>=</mo><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>&times;</mo><mn>255.0</mn><mo>/</mo><mi>D</mi><mo>+</mo><mi>rand</mi><mrow><mo>(</mo><mn>0,1</mn><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mn>255.0</mn><mo>/</mo><mi>D</mi><mo>-</mo><mn>1.0</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000695807690000027.GIF" wi="1153" he="85" /></maths>步骤8.14,令计数器j=j+1,如果计数器j小于或等于D,则转到步骤8.2,否则转到步骤8.15;步骤8.15,计算试验个体U<sup>t</sup>的适应值F(U<sup>t</sup>),转到步骤9;步骤9,采用邻域反向策略产生试验个体U<sup>t</sup>的邻域反向个体NOU<sup>t</sup>,并计算邻域反向个体NOU<sup>t</sup>的适应值F(NOU<sup>t</sup>),具体步骤如下:步骤9.1,令当前和声库中适应值最优个体的下标为BestI;步骤9.2,令计数器j=1;步骤9.3,如果计数器j小于或等于D,则转到步骤9.4,否则转到步骤9.11;步骤9.4,令计数器i=(BestI‑NK+Popsize)%Popsize,其中%表示取余运算符;步骤9.5,令邻域下界<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>NA</mi><mi>j</mi></msub><mo>=</mo><msubsup><mi>B</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>t</mi></msubsup><mo>,</mo></mrow>]]></math><img file="FDA0000695807690000031.GIF" wi="225" he="85" /></maths>邻域上界<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>NB</mi><mi>j</mi></msub><mo>=</mo><msubsup><mi>B</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>t</mi></msubsup><mo>;</mo></mrow>]]></math><img file="FDA0000695807690000032.GIF" wi="219" he="84" /></maths>步骤9.6,令计数器i=(1+BestI‑K+Popsize)%Popsize,令计数器mt=1;步骤9.7,如果mt小于或等于2×NK,则转到步骤9.8,否则转到步骤9.10;步骤9.8,令邻域下界<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>NA</mi><mi>j</mi></msub><mo>=</mo><mi>min</mi><mrow><mo>(</mo><msub><mi>NA</mi><mi>j</mi></msub><mo>,</mo><msubsup><mi>B</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>t</mi></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000695807690000033.GIF" wi="500" he="80" /></maths>并令邻域上界<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>NB</mi><mi>j</mi></msub><mo>=</mo><mi>max</mi><mrow><mo>(</mo><msub><mi>NB</mi><mi>j</mi></msub><mo>,</mo><msubsup><mi>B</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>t</mi></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000695807690000034.GIF" wi="515" he="80" /></maths>其中min为取最小值函数,max为取最大值函数;步骤9.9,令计数器i=(i+1)%Popsize,并令计数器mt=mt+1,转到步骤9.7;步骤9.10,令计数器j=j+1,转到步骤9.3;步骤9.11,令计数器j=1,邻域反向因子nr=rand(0,1);步骤9.12,如果计数器j小于或等于D,则转到步骤9.13,否则转到步骤9.15;步骤9.13,令<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msubsup><mi>NOU</mi><mi>j</mi><mi>t</mi></msubsup><mo>=</mo><mi>nr</mi><mo>&times;</mo><mrow><mo>(</mo><msub><mi>NA</mi><mi>j</mi></msub><mo>+</mo><msub><mi>NB</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><msubsup><mi>U</mi><mi>j</mi><mi>t</mi></msubsup><mo>;</mo></mrow>]]></math><img file="FDA0000695807690000035.GIF" wi="719" he="85" /></maths>步骤9.14,令计数器j=j+1,转到步骤9.12;步骤9.15,计算邻域反向个体NOU<sup>t</sup>的适应值,转到步骤10;步骤10,令BU<sup>t</sup>为试验个体U<sup>t</sup>及其邻域反向个体NOU<sup>t</sup>两者之间适应值最小者;步骤11,令当前和声库中适应值最差个体的下标为WorstI;步骤12,按以下公式在当前和声库中的最差个体<img file="FDA0000695807690000036.GIF" wi="143" he="81" />与个体<img file="FDA0000695807690000037.GIF" wi="118" he="75" />两者之间选择出更优个体进入下一代和声库:<img file="FDA0000695807690000038.GIF" wi="1571" he="201" />步骤13,当前评价次数FEs=FEs+2,保存和声库P<sub>t</sub>中适应值最小的个体为最优个体Best<sup>t</sup>;步骤14,音调调整率<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><mi>PAR</mi><mo>=</mo><mn>0.01</mn><mo>+</mo><mrow><mo>(</mo><mn>0.99</mn><mo>-</mo><mn>0.01</mn><mo>)</mo></mrow><mo>&times;</mo><mfrac><mi>FEs</mi><mrow><mi>MAX</mi><mo>_</mo><mi>FEs</mi></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000695807690000041.GIF" wi="901" he="143" /></maths>步骤15,当前演化代数t=t+1;步骤16,重复步骤8至步骤15直至当前评价次数FEs达到MAX_FEs后结束,执行过程中得到的最优个体Best<sup>t</sup>为D个分割类别的聚类中心,采用得到的D个分割类别的聚类中心对矩阵DCB中的所有元素进行分类,在确定了DCB中的所有元素的类别后,再利用矩阵DCB中每个元素与图像OI中每个像素之间的行列坐标一一对应关系,对图像OI中的每个像素进行分类,即得到最终分割的结果。
地址 341000 江西省赣州市红旗大道86号