发明名称 一种基于鱼类活性分析的水质毒性检测方法
摘要 一种基于鱼类活性分析的水质毒性检测方法,包括以下步骤:1)以鲫鱼作为生物监测对象对其进行实时监测;2)通过RGB到HSV颜色空间域的转换来提取目标鱼轮廓,实时监测鲫鱼群体,得到鲫鱼的跟踪视频序列;3)鲫鱼的运动数据分析检测,包括以下过程:3.1)、将鲫鱼的运动速度、轮廓面积与面积均值之差作为主要特征数据;3.2)、基于朴素贝叶斯分类器算法生成成熟的检测模型;3.3)、使用新的特征数据来检测判断该检测模型是否成熟;3.4)、通过成熟的检测模型在线检测实时水质数据,最终实现水质毒性的在线检测。能够实现在线实时检测,提高水质检测的敏感性和连续性,降低检测成本,可对大量未知水质毒性状况进行实时有效地检测。
申请公布号 CN106526112A 申请公布日期 2017.03.22
申请号 CN201610937528.0 申请日期 2016.10.25
申请人 浙江工业大学 发明人 程振波;肖刚;邵腾飞;黄斌;高晶莹;朱天奇;陈明明;李轶
分类号 G01N33/18(2006.01)I;G06K9/62(2006.01)I 主分类号 G01N33/18(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 一种基于鱼类活性分析的水质毒性检测方法,包括以下步骤:1)以鲫鱼作为生物监测对象对其进行实时监测,综合鲫鱼的运动速度和运动时轮廓大小的变化,以此判断水样中的鱼是否死亡,从而实现对水质是否存在毒性进行实时反馈;2)采集和提取鲫鱼的运动特征:通过红R、绿G、蓝B到色调H、饱和度S、亮度V颜色空间域的转换来提取鱼目标轮廓,实时监测跟踪水样中鲫鱼,得到鲫鱼的跟踪视频序列,该跟踪模型描述如下:通过对监控视频图像的分割、识别、跟踪标定鲫鱼目标的实时运动位置,并以固定时间间隔作为统计周期,获取该周期内鱼群中每个个体的轮廓和运动速度等特征参数;3)鲫鱼的特征参数分析,包括以下过程:定义死鱼特征数据集和活鱼特征数据集,通过学习,形成一个成熟的分类器结构模型;具体过程如下:3.1)收集水箱中每一条鲫鱼的运动速度v、轮廓面积outline_Area与所有鲫鱼面积均值average_Area之差这两个特征数据,将这两个参数作为检测水箱中鱼是否存活的指标;;其中,鱼的运动速度是研究鱼类行为的一个重要的参数,它反应单位时间内的位移、加速度等运动特征;3.1.1)速度的特征数据考虑到前一帧和后一帧每条鱼的运动轨迹变化小,因此采用后一帧与前一帧鱼的重心最短距离计算这条鱼在一帧时间内的移动距离S<sub>i</sub>;然后,取一秒钟的帧数,把这些距离相加再除以时间就是鱼每秒的运动速度;但是,由于水箱中鱼在游动时常常存在叠加,导致定位每一条鱼的身份存在困难;如果不能精准的对每一条鱼进行跟踪,那么计算每一鱼的身份就会产生误差;由于帧间鱼游动距离很小,因此可根据前后帧距离关系求得每一条鱼的游动距离;也就是取目标鱼后一帧到当前帧移动距离最小值,作为当前帧该目标鱼的游动距离;假设水箱中有n条鱼,第j帧第i条鲫鱼轮廓的重心坐标为<img file="FDA0001139519030000011.GIF" wi="187" he="78" />第j+1帧第k条鲫鱼轮廓的重心坐标为<img file="FDA0001139519030000012.GIF" wi="275" he="79" />可以得到第j帧第i条鲫鱼到第j+1帧第k条鲫鱼的距离为:<maths num="0001"><math><![CDATA[<mrow><msub><mi>S</mi><mi>k</mi></msub><mo>=</mo><mroot><mrow><msup><mrow><mo>(</mo><msubsup><mi>x</mi><mi>i</mi><mi>j</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>k</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msubsup><mi>y</mi><mi>i</mi><mi>j</mi></msubsup><mo>-</mo><msubsup><mi>y</mi><mi>k</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup></mrow><mn>2</mn></mroot><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001139519030000013.GIF" wi="1246" he="123" /></maths>根据以上方法,可求出第j帧第i条鲫鱼到第j+1帧鱼缸中各条鱼的距离为S<sub>1</sub>,…S<sub>k</sub>…S<sub>n</sub>;由此,得到当前鱼i在帧间游动距离为:S<sub>i</sub>=min{S<sub>1</sub>,S<sub>2</sub>,…S<sub>k</sub>…S<sub>n</sub>}    (2)此时得到的最短距离S<sub>i</sub>即为第j帧第i条鲫鱼到下一帧游动的距离;在一秒内取15帧,则目标在1秒内的运动速度可以通过以下公式计算得到:<maths num="0002"><math><![CDATA[<mrow><mi>v</mi><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mn>15</mn></msubsup><msub><msup><mi>s</mi><mi>j</mi></msup><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001139519030000021.GIF" wi="1046" he="70" /></maths>水箱中鱼的运动速度的大小,能反映鱼类游动的激烈程度,是衡量鱼类目标在被检测水质中活性的一个重要指标参数;然而,当鱼的游动速度为0,并不意味着此时该鱼一定处于死亡状态,而是有可能鱼处于静息状态;此外,由于水流速度或者其他鱼的撞击,死亡的鱼其速度也并不总是为0;3.1.2)轮廓大小的特征数据背景差分后利用opencv里的contourArea函数可求得目标轮廓面积,其中opencv是一个基于开源发行的跨平台计算机视觉库,该函数是统计目标轮廓内的每个像素点的累加和,即为面积;与上述求速度的方法类似,求得每一时刻鱼的位置,由此计算水箱中鱼在每一时刻的面积{A<sub>1</sub>,A<sub>2</sub>,…A<sub>n</sub>};当鱼处于死亡状态时,其身体自由的飘浮在水中,鱼体的面积大于其处于非死亡状态时的面积;其中,水缸中鱼体平均面积可由下式计算:<maths num="0003"><math><![CDATA[<mrow><mi>a</mi><mi>v</mi><mi>e</mi><mi>r</mi><mi>a</mi><mi>g</mi><mi>e</mi><mo>_</mo><mi>A</mi><mi>r</mi><mi>e</mi><mi>a</mi><mo>=</mo><mfrac><mrow><msub><mi>A</mi><mn>1</mn></msub><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><mo>+</mo><mn>...</mn><mo>+</mo><msub><mi>A</mi><mi>n</mi></msub></mrow><mi>n</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001139519030000022.GIF" wi="1197" he="87" /></maths>3.2)基于朴素贝叶斯算法对数据进行训练产生成熟的分类器结构模型,算法过程如下:a)设x={a<sub>1</sub>,a<sub>2</sub>,……a<sub>m</sub>}为一个待分类项,而每个a为x的特征项;目标鱼的速度a<sub>1</sub>和轮廓面积差a<sub>2</sub>即为特征项,因此可得x={a<sub>1</sub>,a<sub>2</sub>},x表示目标鱼;b)输出类别集合C={c<sub>1</sub>,c<sub>2</sub>,……c<sub>n</sub>},每个c是输出集合C的一种结果;本发明是检测判断鱼是否死亡,因此类别集合C={c<sub>1</sub>=0,c<sub>2</sub>=1},并用C=0表示鱼处于活着状态;c)当利用游动速度和面积差这两个特征来判断鱼类是否死亡时,可将这一过程表示成联合条件概率P(C|a<sub>1</sub>,a<sub>2</sub>);该式表示在a<sub>1</sub>,a<sub>2</sub>同时发生情况下目标鱼处于死亡状态的概率;由贝叶斯公式,可得,<maths num="0004"><math><![CDATA[<mrow><mi>P</mi><mrow><mo>(</mo><mi>C</mi><mo>|</mo><msub><mi>a</mi><mn>1</mn></msub><mo>,</mo><msub><mi>a</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>C</mi><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>1</mn></msub><mo>,</mo><msub><mi>a</mi><mn>2</mn></msub><mo>|</mo><mi>C</mi><mo>)</mo></mrow></mrow><mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>1</mn></msub><mo>,</mo><msub><mi>a</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0001139519030000023.GIF" wi="662" he="135" /></maths>上式中的P(a<sub>1</sub>,a<sub>2</sub>)不依赖于类别C,也就是它的值对分类结果不产生影响,因此计算过程该项将被忽略;由全概率公式和条件概率的链式法则,上式的分子项可展开为:P(C)P(a<sub>1</sub>,a<sub>2</sub>|C)=P(a<sub>1</sub>,a<sub>2</sub>,C)=P(a<sub>1</sub>|a<sub>2</sub>,C)P(a<sub>2</sub>|C)P(C)假设给定类别C,特征之间相互条件独立;也就是,P(a<sub>1</sub>|a<sub>2</sub>,C)=P(a<sub>1</sub>|C),上式可化为:P(C)P(a<sub>1</sub>,a<sub>2</sub>|C)=P(a<sub>1</sub>|C)P(a<sub>2</sub>|C)P(C)d)收集所有鱼处于存活/死亡状态下的游动速度和轮廓面积数据,构造训练样本集,用于计算概率P(a<sub>1</sub>|C)、P(a<sub>2</sub>|C)值;本发明假设P(a<sub>1</sub>|C)、P(a<sub>2</sub>|C)均符合高斯分布,这样可以从训练集中求得鱼处于死亡状态时速度均值μ<sub>1</sub>,方差σ<sub>1</sub>;鱼处于死亡状态时轮廓面积均值μ<sub>2</sub>,方差σ<sub>2</sub>;3.3)使用新的特征数据来检测判断该检测模型是否成熟;也就是,给定目标鱼的两个特征判断该目标鱼处于死亡或者存活状态;<maths num="0005"><math><![CDATA[<mrow><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>C</mi><mo>=</mo><mn>0</mn><mo>|</mo><msub><mi>a</mi><mn>1</mn></msub><msub><mi>a</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow><mrow><mi>P</mi><mrow><mo>(</mo><mi>C</mi><mo>=</mo><mn>1</mn><mo>|</mo><msub><mi>a</mi><mn>1</mn></msub><msub><mi>a</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>C</mi><mo>=</mo><mn>0</mn><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>1</mn></msub><mo>|</mo><mi>C</mi><mo>=</mo><mn>0</mn><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>2</mn></msub><mo>|</mo><mi>C</mi><mo>=</mo><mn>0</mn><mo>)</mo></mrow></mrow><mrow><mi>P</mi><mrow><mo>(</mo><mi>C</mi><mo>=</mo><mn>1</mn><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>1</mn></msub><mo>|</mo><mi>C</mi><mo>=</mo><mn>1</mn><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>2</mn></msub><mo>|</mo><mi>C</mi><mo>=</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001139519030000031.GIF" wi="1238" he="102" /></maths>假设鱼是否死亡的先验概率相等,即P(C=0)=P(C=1)=0.5;此外,<maths num="0006"><math><![CDATA[<mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>a</mi><mn>1</mn></msub><mo>|</mo><mi>C</mi><mo>=</mo><mn>0</mn><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msqrt><mrow><mn>2</mn><msub><mi>&pi;&sigma;</mi><mn>1</mn></msub></mrow></msqrt></mfrac><mi>exp</mi><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><msup><mrow><mo>(</mo><msub><mi>a</mi><mn>1</mn></msub><mo>-</mo><msub><mi>&mu;</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow><mrow><mn>2</mn><msubsup><mi>&sigma;</mi><mn>1</mn><mn>2</mn></msubsup></mrow></mfrac><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001139519030000032.GIF" wi="853" he="150" /></maths>同理,可以分别求得P(a<sub>2</sub>|C=0)、P(a<sub>1</sub>|C=1)和P(a<sub>2</sub>|C=1)的值;当(5)中比值大于1,则判断目标鱼处于存活状态,否则处于死亡状态;3.4)通过成熟的检测模型对鱼缸中鱼的存活与否作出判断;当鱼缸中目标鱼死亡条数超过总数的一半,则给出水质存在毒性的预警信号。
地址 310014 浙江省杭州市下城区潮王路18号浙江工业大学科技处