1.一种无色标机器鱼位姿识别算法,其特征在于,包括如下步骤:步骤S1,对采集到一幅图像进行图像处理以显示机器鱼;
步骤S2,将鱼头部分作为模板,以获取各幅图像中鱼头所在位置,并得到机器鱼的位姿;
所述步骤S1中对采集到一幅图像进行图像处理以显示机器鱼的方法包括:步骤S11,对图像进行灰度化处理;
步骤S12,对灰度化后的图像进行二值化分割;以及
步骤S13,对二值化分割后的图像进行先腐蚀后膨胀的形态学处理,以显示机器鱼;
所述步骤S11中对图像进行灰度化处理,即对图像采用蓝色分量进行灰度化;
所述步骤S2中将鱼头部分作为模板以获取各幅图像中鱼头所在位置的步骤包括:步骤S21,选取鱼头作为模板,即记录鱼头的形状特征,作为模板特征;
步骤S22,通过HOG描述子描述模板特征,再对每幅图像做模板匹配,搜索到每幅图像里的鱼头所在位置;
所述步骤S22中通过HOG描述子描述模板特征的方法包括:
步骤221,确定模板像素点构成的区域形状;即在求解模板HOG特征向量时,确定模板像素点构成的区域形状,并将该区域形状定义为圆形HOG块;
步骤S222,利用一阶微分计算图像梯度求解像素点梯度的模和方向;
步骤S223,选取梯度模值本身的投影对梯度方向的加权投影进行统计;即对圆形HOG块的划分,其中,任一圆形HOG块由若干单元组成,且任何一个单元都由若干个像素点组成;在搜索区域内统计目标区域所有像素点梯度在特定梯度方向上的投影,对每个圆形HOG块里的单元个数进行单独统计,绘制以梯度方向为横轴的直方图,然后将这个梯度分布平均分成多个方向角度,个数为bin,每个方向角度范围对应一个直方柱,若看成向量,则其维数为bin*cellnum*blocknum,其中,cellnum为单元个数,blocknum为圆形HOG块个数;并选取梯度模值本身的投影对梯度方向的加权投影进行统计。
2.根据权利要求1所述的无色标机器鱼位姿识别算法,其特征在于,所述步骤S22中对每幅图像做模板匹配以搜索到每幅图像里的鱼头所在位置的方法,即采用区域增长算法进行特定区域的目标搜索以快速锁定机器鱼所在的位置。
3.根据权利要求2所述的无色标机器鱼位姿识别算法,其特征在于,所述采用区域增长算法进行特定区域的目标搜索以快速锁定机器鱼所在的位置的方法包括:步骤S224,在开始搜索之前,初步确定一个矩形范围作为搜索区域;该矩形中点是上一帧图像中机器鱼的位置点,左上角和右下角沿x、y轴方向分别相对中点延伸若干个像素点,然后在这个搜索区域内进行基于区域增长的图像分割;
步骤S225,通过二值化分割,得到黑色块的左右、上下边界坐标,再以此边界值构成一个矩形区域,最后在此矩形区域内进行圆形滚动圈取搜索与匹配的遍历,即该区域内的每一点都作为一个搜索圆形的圆心位置,求取每个圆形位置下,圆圈内的黑色像素点所构成的形状的方向角,将圆形整体旋转该方向角,然后求取其所对应的HOG特征向量并求解其与模板的相似度;
步骤S226,选出相似度最高的圆形所在位置作为搜索的结果,即锁定机器鱼所在的位置。
4.根据权利要求3所述的无色标机器鱼位姿识别算法,其特征在于,所述步骤S224中区域增长的方法包括:步骤S2241,对要处理的整幅图像进行灰度值求解,其值域为0-255;
步骤S2242,求解目标颜色灰度阈值,以该灰度阈值范围更新颜色库,作为后续增长判据;
步骤S2243,以一定的步长对目标图像进行逐行逐列的种子点扫描搜索(以颜色库为准);若搜到种子点,进入步骤S2244;反之,进入步骤S2246;
步骤S2244,判断搜到的种子点4邻域内的像素点是否符合增长判据;若符合,合并该点且对该点灰度值赋予新值;反之,继续对其他邻域的像素点判断,直到4邻域都不符合增长判据为止,进入步骤S2246;
步骤S2245,用新合并点更新种子点,进入步骤S2244;
步骤S2246,最后得到被合并点构成的目标区域或搜索结束。
5.根据权利要求4所述的无色标机器鱼位姿识别算法,其特征在于,所述步骤S2中得到机器鱼的位姿的方法包括:步骤S23,利用重心法求解机器鱼在图像坐标系中的位置;以及
步骤S24,利用基于最小惯性矩的对称轴拟合的方法获得机器鱼在图像坐标系中的方向。
6.根据权利要求5所述的无色标机器鱼位姿识别算法,其特征在于,所述步骤S24中利用基于最小惯性矩的对称轴拟合的方法获得机器鱼的方向的方法包括:步骤S241,求解出对称轴的直线方向角正切值,形成一个主方向轴,另一个次方向轴;
步骤S242,结合机器鱼头部的形状,采用方向轴延伸法,即在两个方向轴上分别进行黑色像素的跨度值计算,比较两个跨度值,较大的一个所对应的方向轴即为主方向轴;
步骤S243,所述主方向轴作为鱼头方向轴,且上在跨度的中点开始划分,且根据鱼胸鳍在中点处的上、下两个区域的黑色像素数量得出机器鱼在图像坐标系中的方向。