猪体积识别技术参数
1. 系统结构:高清像机、像机支架、识别核心板、算法软件。用户可根据自己的实际爱好或实际需求选择合适的算法类型。开发平台配套提供了相对应的图像算法实验,通过实验可以快速掌握基本开发知识,进而进行更深入的学习和研究。
2. 图像传感器 数量2个
Ø ★130万像素高清像机;
Ø 传感器类型:1/3" CMOS传感器
Ø 1对3.5mm音频输入(Mic in/Line in)/输出外部接口,1个内置麦克风
Ø 1个RJ45 10M/100M自适应以太网口;
3. 算法主控板 数量1个
Ø ★CPU主频2GHZ;内存:2G DDR3 SDRAM,大可扩展8G DDR SDRAM;
Ø 硬盘:1个MSATA2.0接口,可扩展SATA接口硬盘;
Ø CPU接口:BGA封装,板贴芯片,自带散热器;
Ø 接口:支持HDMI高清输出、支持VGA输出;
Ø 网卡:2个RJ45网口设计;
Ø 232接口接口
4. 取流:本系统用到两个摄像头,一个是俯视摄像头,由上而下垂直照射猪身;另一个是侧面摄像头,由侧面拍摄猪身;用户在代码中修改摄像头IP。
5. 俯视摄像头用来采集猪的长宽,侧视摄像头用来采集猪的高度,一个摄像头获取到有效数据,另一个摄像头没有获取到有效数据,不计算体积,两个摄像头都输出有效数据时才输出体积数据,猪在摄像头中是不断运动的,每时每刻的数据都可能发生变化,两个摄像头采取的数据同步机制:两个摄像头的有效输出之间的时间差小于3秒,为一次有效数据,通过这个数据计算相应的体积重量。
6. 体积=长X宽X高;重量=体积X密度;
7. 计算出来的长宽高的单位为米,所以输入的密度的单位应该是kg/m^3,这样输出的重量即为kg
8. 算法部分
1) 前景检测部分:主要通过PBAS算法来获得,PBAS算法主要是通过过对背景进行持续一段时间的建模,获得稳定背景后,然后再提取前景
2) 建立背景模型:PBAS算法采用类似SACON算法背景建模方法,收集前N帧像素以及梯度幅值作为背景模型;
3) 前景检测:检测过程与VIBE算法,计算样本集合中满足匹配条件的样本个数,若小于阈值#min,则表示为背景,不同之处在于不同像素的判断阈值R(xi)不同;B(xi)是背景模型,表示像素点xi的样本集合,F(xi)是前景图像,表示像素点xi的判断结果。
4) 背景模型更新:更新过程与VIBE算法,随机选择需要被替换的样本,随机选择像素邻域的样本集合更新,不同之处在于更新率不同,VIBE是固定的更新率,而PBAS的更新率是自适应的,并且更新邻域样本集合是用邻域的新像素值进行更新,而不是用新像素值本身。
5) 背景复杂度计算:新像素值与样本集合的小距离小于阈值时,该像素可能为背景,小距离描述背景的复杂度,距离越大,背景越复杂。采用样本集合中样本更新时的小距离的平均值作为背景复杂度的度量。
6) 自适应调整判断阈值:背景越复杂,其判断阈值应该越大,保证背景像素不被误判为前景,背景越简单,微小的变化都是由前景引起,判断阈值应该越小,调整策略如下:Rinc/dec是阈值的变化量,Rscale用于控制背景复杂度对判断阈值的调整。
7) 自适应调整更新率:背景越复杂,其出现错误判断的概率越大,对应的背景更新应该越少,减少错误判断对背景模型的影响。
8) 目标轮廓提取:轮廓提取算法采用编码的思想,给不同的边界赋予不同的整数值,确定它是什么边界以及层次关系。输入的二值图像即为0和1的图像,用f(i,j)表示图像的像素值。每次行扫描,遇到以下两种情况终止:(1)f(i,j-1)=0,f(i,j)=1;//f(i,j)是外边界的起始点;(2)f(i,j)>=1,f(i,j+1)=0;//f(i,j)是孔边界的起始点
9) 从起始点开始,标记边界上的像素。在这里分配一个WY的标示符给新发现的边界,叫做NBD。初始时NBD=1,每次发现一个新边界加1。在这个过程中,遇到f(p,q)=1,f(p,q+1)=0时,将f(p,q)置为-NBD。什么意思呢?就是右边边界的终止点。Opencv中是使用findContours来实现的
10) 红色标记块检测部分:主要通过对图像的RGB颜色通道进行限制,只获得那些近似红色的像素,然后对获得的红色部分进行轮廓提取,从而得到红色标记块的长宽等尺度位置信息
11) 通过检测到的长宽信息,结合界面传入的密度或拟合系数来计算猪的体积。