CN113888641A - 一种基于机器视觉和深度学习的立木胸径测量方法 - Google Patents
一种基于机器视觉和深度学习的立木胸径测量方法 Download PDFInfo
- Publication number
- CN113888641A CN113888641A CN202111086137.XA CN202111086137A CN113888641A CN 113888641 A CN113888641 A CN 113888641A CN 202111086137 A CN202111086137 A CN 202111086137A CN 113888641 A CN113888641 A CN 113888641A
- Authority
- CN
- China
- Prior art keywords
- diameter
- camera
- breast
- trunk
- chest
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/002—Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
- G01B11/005—Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates coordinate measuring machines
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/02—Measuring arrangements characterised by the use of optical techniques for measuring length, width or thickness
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/08—Measuring arrangements characterised by the use of optical techniques for measuring diameters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/24—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
- G06T2207/30208—Marker matrix
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Geometry (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于机器视觉和深度学习的立木胸径测量方法,包括以下步骤:第一步,相机标定和图像校正,相机标定和图像校正模块接收由相机拍摄的多张标定板图片,对相机进行标定得到相机内参和外参以及畸变系数,之后利用其对需要测量的图片进行畸变校正;第二步,树干图像分割,校正后的图片进入树干图像分割模块,树干图像分割模块采用U‑Net网络分割,使用U‑Net网络进行树干的提取,得到一副分割图像。本发明能够准确、快速和便捷的测量立木胸径,提高林业资源调查的效率,推动智慧林业的快速发展。
Description
技术领域
本发明涉及机器视觉技术领域,尤其涉及一种基于机器视觉和深度学习的立木胸径测量方法。
背景技术
目前胸径的测量方法按照使用的工具可以分为两类:利用传统工具如卡尺、直径卷尺的手工测量方法;利用全站仪,经纬仪等工具的精密仪器测量方法。
利用传统工具的手工测量方法受到环境的影响较大,测量的量程有限,对于胸径比较大的树干,甚至会出现无法测量的情况,同时测量数据的录入通过手工的形式,也极大地影响了测量的速度。除此传统方法外,还可利用一些高精密仪器进行测量,如电子经纬仪、全站仪、电子测树枪、数字式测径仪等。使用这些仪器可以获得很高的测量精度,但它们或是器材笨重难以携带,限制了其工作的环境和范围,或是造价昂贵,难以大范围地进行推广。同时这些仪器的操作复杂,使用步骤繁琐,对测量人员的要求较高,缺乏普适性。因此急需一种能够准确、快速和便捷的胸径测量方法,提高林业资源调查的效率,推动智慧林业的快速发展。
发明内容
本发明提供了一种基于机器视觉和深度学习的立木胸径测量方法,以解决上述背景技术中提出的问题。
为了实现上述目的,本发明采用了如下技术方案:
一种基于机器视觉和深度学习的立木胸径测量方法,包括以下步骤:
第一步,相机标定和图像校正,相机标定和图像校正模块接收由相机拍摄的多张标定板图片,对相机进行标定得到相机内参和外参以及畸变系数,之后利用其对需要测量的图片进行畸变校正;
第二步,树干图像分割,校正后的图片进入树干图像分割模块,树干图像分割模块采用U-Net网络分割,使用U-Net网络进行树干的提取,得到一副分割图像;
第三步,胸径测量,分割图像进入胸径测量模块后,首先进行胸径两侧的图像像素提取,像素提取时使用改进的树干外接矩形算法以及扫描线胸径定位算法,当得到胸径像素坐标之后进行三维坐标的重建工作,得到胸径两端的三维坐标,之后利用世界坐标进行胸径长度测算,其中采用了胸径误差校正模型对结果进行校正,其中胸径测量模块包括胸径像素坐标的提取、胸径三维坐标的重建和胸径长度的测算,胸径像素坐标的提取包括分割图像轮廓提取、树干轮廓外接矩形提取和胸径位置的定位,胸径三维坐标的重建包括三维重建模型和胸径三维坐标计算。
作为本技术方案的进一步改进方案:第一步中,标定板采用10×9的棋盘格,每一个方格边长为20mm。
作为本技术方案的进一步改进方案:第二步中,树干图像分割模块需要使用数据集,数据集需要尽量多的拍摄不同种类、不同环境下的树干原始图像和带有标定板的树木的图像,数据集需采用VOC2012数据集的格式来进行标注和整理,对于最终得到的图片以及其mask,采用8:1:1的比例划分训练集,验证集和测试集。
作为本技术方案的进一步改进方案:第二步中,U-Net结构的网络使用 pytorch框架进行搭建。
作为本技术方案的进一步改进方案:第三步中,分割图像轮廓提取采用 OpenCV的findContours()函数。
作为本技术方案的进一步改进方案:第三步中,树干轮廓外接矩形提取采用椭圆拟合求外接矩形的方法。
作为本技术方案的进一步改进方案:第三步中,胸径位置的定位采用扫描线的方法来获取胸径的位置。
作为本技术方案的进一步改进方案:胸径长度的测算模型为其中fx为由相机标定得到的相机x方向焦距;(x1,y1),(x2,y2)为胸径像素提取部分得到的胸径像素坐标;(xw1,yw1,zw1)和(xw2,yw2,zw2)为胸径三维坐标重建得到的;f为直接从出厂参数得到的相机焦距f。
与现有技术相比,本发明的有益效果是:
本发明采用机器视觉和深度学习技术,提出了一种立木胸径自动测量的方法,在以往研究的基础上,提出一系列的改进措施,来提高测量的准确性,通过建立U-Net神经网络模型进行图像分割,解决了现有测量时立木分割方法在复杂背景下分割能力的不足的问题;提出基于椭圆拟合的外接矩形提取算法,大大减小了胸径外接矩形提取过程中的误差;提出基于扫描线的胸径位置自动确定算法,解决了胸径位置自动确定的问题;提出胸径长度误差校正模型,解决了三维重建时胸径平面不与标定板平面共面的问题,该方法能够准确、快速和便捷的测量立木胸径,提高林业资源调查的效率,推动智慧林业的快速发展。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法的算法流程图;
图2为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法的算法结构图;
图3为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中标定所使用的棋盘格;
图4为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中亚像素角点检测原理示意图;
图5为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中搭建的U-Net网络结构示意图;
图6为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中模型训练的loss图;
图7本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中模型训练的f_score图;
图8为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中二值化边缘部分前(左)后(右)对比图;
图9为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中优化的外接矩形提取步骤图;
图10为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中胸径提取过程图;
图11为本发明提出的一种基于机器视觉和深度学习的立木胸径测量方法中胸径成像模型图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
请参阅图1~11,本发明实施例中,一种基于机器视觉和深度学习的立木胸径测量方法,包括以下步骤:
第一步,相机标定和图像校正,相机标定和图像校正模块接收由相机拍摄的多张标定板图片,对相机进行标定得到相机内参和外参以及畸变系数,之后利用其对需要测量的图片进行畸变校正;
第二步,树干图像分割,校正后的图片进入树干图像分割模块,树干图像分割模块采用U-Net网络分割,使用U-Net网络进行树干的提取,得到一副分割图像;
第三步,胸径测量,分割图像进入胸径测量模块后,首先进行胸径两侧的图像像素提取,像素提取时使用改进的树干外接矩形算法以及扫描线胸径定位算法,当得到胸径像素坐标之后进行三维坐标的重建工作,得到胸径两端的三维坐标,之后利用世界坐标进行胸径长度测算,其中采用了胸径误差校正模型对结果进行校正,其中胸径测量模块包括胸径像素坐标的提取、胸径三维坐标的重建和胸径长度的测算,胸径像素坐标的提取包括分割图像轮廓提取、树干轮廓外接矩形提取和胸径位置的定位,胸径三维坐标的重建包括三维重建模型和胸径三维坐标计算。
具体的,第一步中,相机标定是在进行机器视觉相关工作前的一项重要且基础的工作,其目的在于求得相机的内参和外参以及镜头的畸变系数。这些参数将是后续图像畸变矫正、三维重建等工作的基础,标定板采用10×9 的棋盘格,每一个方格边长为20mm,如图3所示,相机标定的第一步需要检测棋盘格中的角点,在OpenCV库中提供了棋盘格角点检测的函数 findchessboardcorners,利用其检测到棋盘中的角点;
findchessboardcorners函数对棋盘格的角点按照由上到下由左到右的顺序提取,作为相机标定中图像点坐标的初始参数,由于该函数只能够进行像素化的提取,角点的坐标还不够精确,为了提高检测精度,需要在此基础上使用亚像素级的角点检测;
亚像素级角点检测主要运用垂直向量乘积为零构造方程,通过最小二乘法求解,如图4,令点q为角点,其坐标就是待求的量,在q周围规定的窗口范围内任选一点pi,构造向量Pi=wi(pi–q),wi为权重,与pi离q的距离有关。令Gi为点pi处灰度的梯度向量;
对于pi考虑两种情况:在边界线和不在边界线上,对于在边界的情况,如点p0,由图7可知,边界处的灰度梯度方向垂直于边界,而向量P0=w0(p0 –q)平行于边界,故可得P0G0=0;对于点不在边界的情况如点P1,显然其灰度梯度为零,同样有P1G1=0。因此对于任意的p都存在PiGi=0,即有式(1):
将式(2)展开并构造成Xa=b的形式,得到式(2):
由最小二乘法解得式(3):
由式(3)得到的角点坐标可作为一个新的中心点q,并重复上面的步骤,在新点周围选取一系列pi构造方程解出新的q,这样不断迭代直到达到设定的精度或迭代次数,最终即得到亚像素级的角点坐标;
在OpenCV中有cornerSubPix函数可以求得亚像素点坐标,设置最大迭代次数为30,精度为0.001,窗口大小为23×23,对上面找到的初始角点进行亚像素优化,结果如表1。由结果可以看到,坐标的值精确到了小数,相比于之前的整数坐标,精度有了很大的提升,这对于后面相机的标定是有帮助的。
表1亚像素级角点检测结果及对比
为了更好地提高精度,需要用相机采集多张不同角度,不同距离的标定板图像,在进行角点检测之后得到一系列图像坐标,将其世界坐标的Zw设为零,得到对应的世界坐标,两组坐标即为相机标定的输入数据;
用张正友标定法和引入切向畸变的标定法进行标定,标定结果如表2,
表2标定结果
引入切向畸变进行标定之后可以看到切向畸变系数几乎为0,因此在后面的计算中可以忽略切向畸变带来的影响,在这一部分中得到的相机内参以及畸变系数,这将用于后面步骤的图像畸变校正和三维坐标的恢复;
对于相机采集的图像存在着径向的畸变(切向畸变可以忽略不计),由于胸径的测量是基于像素点坐标来恢复世界坐标,显然由于畸变所引起的像素坐标的偏移会对后面的测量精度产生影响,因此对图片进行畸变校正是十分重要的,根据畸变校正公式标定所得到的相机内参以及畸变系数即可以对畸变像素进行校正。
具体的,第二步中,深度学习的模型依赖于数据集的训练,数据集质量的好坏会直接影响到最后的训练结果,采用自行拍摄的方式,在一定范围内采集树木图像,由于树干的形状各异,且表面的纹理以及颜色各有不同,为了数据集的多样化,在拍摄的时候尽量多地拍摄不同种类、不同环境下的树干图像,除了采集树木的原始图像,另外还需要采集带有标定板的树木的图像,在实施过程中经过前后两次数据采集共得到525张立木树干的图像,由于两次采集所使用的设备不同,图片分辨率和尺寸都有所不同,为此需要对图像进行裁剪和尺寸统一的预处理,之后采用VOC2012数据集的格式来进行标注和整理,对于最终得到的图片以及其mask,采用8:1:1的比例划分训练集,验证集和测试集,即训练集420张,验证集52张,测试集53张,采用随机函数将数据顺序打乱,以防止其顺序影响训练,将打乱后的序列以文件名的形式保存在txt文档中,并放入ImageSets文件夹中。
具体的,第二步中,在制作好数据集之后即开始搭建神经网络模型,本方法采用的是U-Net结构的网络,使用pytorch框架进行搭建,网络的结构以及各层的操作如图5,图5中,由左到右可以将该网络分为三个部分:主干特征提取网络,加强特征提取网络以及预测网络,下面分别对三个部分的结构以及操作进行介绍:主干特征网络部分采用的是VGG16结构,该网络结构在ILSVRC 2014挑战赛中取得了较好的成绩。构建该部分网络结构只用到了卷积和池化操作;
加强特征提取网络主要是对前面特征提取网络中得到的5个特征层 (f1,f2,f3,f4,f5)进行特征加强,使用的是上采样以及特征融合的操作;
最后一层为预测网络,只由一个卷积层构成,其主要作用是调整图像的输出通道数使其与分割类别数相同,由于只需要分割出树干,加上背景最终的通道数应该为2,故使用1×1×2的卷积核进行卷积操作;
模型训练时确定训练的超参数,以学习率为10-5,批大小为8,进行训练,训练图像如图6和图7,通过训练图像可以看到,经过40次迭代之后模型开始收敛,测试集和验证集的f_score都在0.97以上,训练效果较好;
之后再进行图像分割测试,使用数据集中的测试集来对模型的树干分割性能进行测试,在语义分割任务中,除了使用mPA(平均像素精确度)进行计算外,通常还使用MIoU(平均交并比)来作为分割评判的标准,其对于每一个类分别计算其分割预测值和真实值之间的交并集的比例,再将其进行平均得到平均交并比,其计算公式如式(4):
其中k代表分割的类别,i和j分别表示真实值和预测值,pij表示将i 预测成j,
将测试集中的53张图片分成5组,分别计算其MIoU和mPA,并对背景和树干两类的分割结果单独计算,其结果如下表:
表3测试组的分割结果
可以看到MIoU为96.00,准确率可以达到97.96%,模型的分割效果较好。
具体的,第三步中,在上一步已经从相机拍摄的树木照片中得到了一张精确的树干分割图像,为了能够测量出胸径的值,需要从分割图中找到胸径的位置,并提取出胸径两端的像素值,树木分割图像提供了树干的连通区域信息,为了能够确定胸径位置需要先将连通区域的轮廓提取出来,需要采用 OpenCV的findContours()函数,因为通过上一步所得到的分割图像是灰度图像,所以需要先将分割图像二值化,将127作为二值化的阈值。经过二值化后的边缘如图8所示,二值化之后即可使用findContours()寻找树干的轮廓,在使用该函数的时候只需要提取最外围的轮廓,提取到的轮廓以像素点的坐标形式保存下来。
具体的,第三步中,树干轮廓外接矩形提取采用椭圆拟合求外接矩形方法,为了能够减少轮廓干扰区域的影响,故提出一种利用椭圆拟合求外接矩形的方法,椭圆拟合采用最小二乘法的原理:可令(xi,yi)为需要拟合的点集中的一点,根据椭圆的一般方程AX2+BXY+CY2+DX+EY+F=0可得任意一点到椭圆曲线的距离函数F(x,y)如式(4):
F(x,y)=ax2+bxy+cy2+dx+ey+f (4)
其中a,b,c,d,e,f为椭圆方程的六个参数值,满足约束条件b2-4ac=0,若定义向量X=[a,b,c,d,e,f]T,P=[x2,xy,y2,x,y, 1],那么式(4)可改为式(5):
F(x,y)=PX (5)
考虑点集中所有点的距离如公式6:
Pi为点i所对应的向量,求参数向量X的值即可转换为求式(6)的最小值优化问题,使用最小二乘法可以求出该式,根据式(6)可以看出在拟合的时候其追求的是整体误差的最小化,一些少量的随机的干扰点并不会对最后的结果产生较大的影响,因此利用该方法来拟合树干轮廓时,一些小的干扰轮廓就整体轮廓来说占比很小,其对于最终的拟合结果影响有限,拟合椭圆的形状和旋转角度可以正确反映出树干整体变化的趋势,基于该思想,如图9 所示,利用椭圆拟合求外接矩形的算法流程如下:
Step1:对轮廓P上的点进行椭圆拟合,记录椭圆中心坐标(xc,yc)和椭圆旋转的角度β;
Step2:以(xc,yc)为旋转中心将轮廓P逆时针旋转180-β度,记新轮廓为P’
Step3:寻找轮廓P’上下左右的极值点,进而找到其正外接矩形,记为矩形Rec;
Step4:将矩形Rec顺时针旋转180-β度得到矩形mRec即为优化后的外接矩形。
具体的,第三步中,根据上述所得到外接矩形即可以确定树干的底部基线以及其倾斜的角度,胸径需要在离底部1.3m处获得,先建立距离底部任意像素高Hpixel处直径的提取模型,如图10,本发明采用扫描线的方法来获取胸径的位置,对于上述所得到的树干优化外接矩阵,令矩形左侧边的上下点分别为LT和LB,建立LTLB的直线方程L,令一个动点为P,以L为轨迹从 LB点向上运动,当其运动到距离起始点为Hpixel距离时,过P点建立平行于外接矩形底边的直线V,交矩形右侧于点M,此时又令一动点K从P开始沿着直线V朝点M运动,每移动一个像素的距离都需要判断点K是否在树干的轮廓上,在遍历过程中只要某点出现在轮廓中即将该点加入到一个序列中,当K 遍历完PM之间的所有像素点后,得到点的序列Q,由于两直线相交的像素可能不止1个点,因此Q中的点个数可能大于2,为此我们取序列中第一个和最后一个点,记为D1(x1,y1)和D2(x2,y2),当Hpixel所代表的实际高度为1.3m时,D1D2即为树干胸径的位置,其坐标即为胸径像素坐标。
具体的,第三步中,三维重建模型具体为,在小孔成像模型中我们得到式:
可以将其形式改为公式(8):
其中A为相机的内参矩阵,已经通过相机标定已经得到,继续对式(8) 变形可以得到公式(9):
为了计算出Zc可以定义两个矩阵M1,M2,其值如式(10):
若只考虑式(10)的第三列,则有等式(11):
Zw=ZcM1(2,0)-M2(2,0) (11)
由于在建立世界坐标系的时候标定板平面与XwOYw平面重合,因此在恢复标定板上的三维坐标的时候有Zw=0,由此可以得到公式(12):
Zc=M2(2,0)/M1(2,0) (12)
这里Zc的值代表的是相机镜头光心距离标定板平面的距离,利用该值可以进行深度测量。到这里,对于式(8)来说其中的未知量就只有旋转矩阵R 和平移向量T,当得到了R和T值后,即可以得到世界坐标(Xw,Yw,Zw)。
通过拍摄一张带有标定板的照片即可进行R,T的计算,在机器视觉中称这个过程为PnP(pespective-n-point)求解。在OpenCV中提供了求解PnP 问题的函数solvePnP()。
具体的,第三步中,第三步中,胸径定位方法作出修改:根据LB的坐标计算其三维坐标,对于运动的P同样计算其三维坐标,利用两点距离公式计算出PLB的真实距离H,当H等于1.3m的时候,P停止运动。最终得到的D1 (x1,y1)和D2(x2,y2)即为胸径两端的图像坐标,再使用上文的方法进行转换,即得到了胸径的三维坐标(xw1,yw1,zw1)和(xw2,yw2,zw2),如公式(13)所示:
通过上述的计算得到了胸径的三维坐标(xw1,yw1,zw1)和(xw2,yw2,zw2),那么可以直接利用两点距离公式(14)计算出胸径的值:
图11显示了胸径在成像时的光路图,在这里我们将树干的横截面近似地看成一个圆形,OM和ON为圆的切线,P为相机镜头的光心,SN为物体在相机传感器平面所成的像。可以看到由于胸径平面和标定板平面之间存在一定距离,我们所计算出的胸径两端D1和D2的世界坐标实际上是点A和B的世界坐标,因此式(14)所计算出的lDBH为AB的实际长度,与胸径实际长度D1D2 存在一定的差距,当KP长度较小即相机离树干较近时,这种差距会造成较大的误差。为了减少误差提高测量的精度,本文提出胸径长度误差校正模型;
如图11,令SN=n,相机焦距为f,SN长度即为AB成像在相机传感器上的实际长度,为了计算SN我们需要得到传感器每一个像素点的实际长度,在相机内参矩阵中有fx=f/dx,fy=f/dy,其中dx和dy分别代表每一个像素点在x和y方向上的实际长度,在计算的时候可以认为像素点近似为一个正方形,即dx=dy,在前面我们已经得到胸径(实际上是AB点)的像素坐标(x1,y1),(x2,y2),即SN的实际长度如公式(15):
由ΔABP~ΔNSP可得到公式(16):
对于角α,其正切值tanα=n/2f,由于α必定小于90度,有sinα>0,如公式(17),根据三角函数之间的关系可求得:
如公式(18),在ΔOMP中有:
显然在圆中有等式(19):
联立式(14)-(19),可以得到胸径的校正长度lDBH_CORR=D1D2的计算模型,如公式(20):
式(20)即为胸径测量的模型,其中的参数有:由相机标定得到的相机x 方向焦距fx;胸径像素提取部分得到的胸径像素坐标(x1,y1),(x2,y2);胸径三维坐标重建得到的(xw1,yw1,zw1)和(xw2,yw2,zw2);以及可直接从出厂参数得到的相机焦距f。
本发明的工作流程:
本方法所需要的测量数据为悬挂标定板的树干图像,标定板由A4纸打印,图像可以由手机数码相机等图像设备采集得到,本发明使用数码相机来对树木图像进行采集,相机出厂参数已经给出,我们只需要知道相机的焦距即可,在采集图像时,需要尽量保证相机对焦准确,标定板部分清晰可见,没有受到遮挡,在正式测量前,需要知道相机的内参数,为此需要拍摄多张标定图像来进行相机标定,与前面数据采集不同的是,标定图像中的标定板应该尽可能占据图像的1/3以上部分,以保证标定的准确性,本设计点击选择图片输入需要测量的胸径,之后在点击测量程序即自动对胸径进行分割和定位计算胸径,将使用胸径尺测量的结果同利用本程序计算的结果比较,如表4所示:
表4测量结果对比
通过以上15株立木的测量可以看到,最大绝对误差为37mm,最大相对误差为5.74%,平均绝对误差为17mm,平均相对误差为4.02%。虽然个别的最大误差较大,但是平均测量结果准确率较好。根据《森林资源规划设计调查技术规程(GB/T 26424-2010)》中对胸径精确度的要求,该准确率属于国有森林经营单位和重点林区县商品林小班调查的“A”类误差等级。
以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。
Claims (10)
1.一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,包括以下步骤:
第一步,相机标定和图像校正,相机标定和图像校正模块接收由相机拍摄的多张标定板图片,对相机进行标定得到相机内参和外参以及畸变系数,之后利用其对需要测量的图片进行畸变校正;
第二步,树干图像分割,校正后的图片进入树干图像分割模块,树干图像分割模块采用U-Net网络分割,使用U-Net网络进行树干的提取,得到一副分割图像;
第三步,胸径测量,分割图像进入胸径测量模块后,首先进行胸径两侧的图像像素提取,像素提取时使用改进的树干外接矩形算法以及扫描线胸径定位算法,当得到胸径像素坐标之后进行三维坐标的重建工作,得到胸径两端的三维坐标,之后利用世界坐标进行胸径长度测算,其中采用了胸径误差校正模型对结果进行校正,其中胸径测量模块包括胸径像素坐标的提取、胸径三维坐标的重建和胸径长度的测算,胸径像素坐标的提取包括分割图像轮廓提取、树干轮廓外接矩形提取和胸径位置的定位,胸径三维坐标的重建包括三维重建模型和胸径三维坐标计算。
2.根据权利要求1的一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,第一步中,标定板采用10×9的棋盘格,每一个方格边长为20mm。
3.根据权利要求1的一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,第二步中,树干图像分割模块需要使用数据集,数据集需要尽量多的拍摄不同种类、不同环境下的树干原始图像和带有标定板的树木的图像,数据集需采用VOC2012数据集的格式来进行标注和整理,对于最终得到的图片以及其mask,采用8:1:1的比例划分训练集,验证集和测试集。
4.根据权利要求1的一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,第二步中,U-Net结构的网络使用pytorch框架进行搭建。
5.根据权利要求1的一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,第三步中,分割图像轮廓提取采用OpenCV的findContours()函数。
6.根据权利要求1的一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,第三步中,树干轮廓外接矩形提取采用椭圆拟合求外接矩形的方法。
7.根据权利要求1的一种基于机器视觉和深度学习的立木胸径测量方法,其特征在于,第三步中,胸径位置的定位采用扫描线的方法来获取胸径的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111086137.XA CN113888641A (zh) | 2021-09-16 | 2021-09-16 | 一种基于机器视觉和深度学习的立木胸径测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111086137.XA CN113888641A (zh) | 2021-09-16 | 2021-09-16 | 一种基于机器视觉和深度学习的立木胸径测量方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113888641A true CN113888641A (zh) | 2022-01-04 |
Family
ID=79009688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111086137.XA Pending CN113888641A (zh) | 2021-09-16 | 2021-09-16 | 一种基于机器视觉和深度学习的立木胸径测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113888641A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114322793A (zh) * | 2022-03-16 | 2022-04-12 | 科大天工智能装备技术(天津)有限公司 | 基于全局分割网络的工件尺寸测量方法、装置及存储介质 |
CN115218798A (zh) * | 2022-09-20 | 2022-10-21 | 西安中科慧远视觉技术有限公司 | 测量板材孔和/或槽尺寸的光学测量系统、方法及介质 |
-
2021
- 2021-09-16 CN CN202111086137.XA patent/CN113888641A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114322793A (zh) * | 2022-03-16 | 2022-04-12 | 科大天工智能装备技术(天津)有限公司 | 基于全局分割网络的工件尺寸测量方法、装置及存储介质 |
CN114322793B (zh) * | 2022-03-16 | 2022-07-15 | 科大天工智能装备技术(天津)有限公司 | 基于全局分割网络的工件尺寸测量方法、装置及存储介质 |
CN115218798A (zh) * | 2022-09-20 | 2022-10-21 | 西安中科慧远视觉技术有限公司 | 测量板材孔和/或槽尺寸的光学测量系统、方法及介质 |
CN115218798B (zh) * | 2022-09-20 | 2022-12-09 | 西安中科慧远视觉技术有限公司 | 测量板材孔和/或槽尺寸的光学测量系统、方法及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11551341B2 (en) | Method and device for automatically drawing structural cracks and precisely measuring widths thereof | |
CN112818988B (zh) | 一种指针式仪表自动识别读数方法及系统 | |
CN109341668B (zh) | 基于折射投影模型和光束追踪法的多相机测量方法 | |
CN110415300B (zh) | 一种基于三靶标建面的立体视觉结构动态位移测量方法 | |
CN106651942A (zh) | 基于特征点的三维旋转运动检测与旋转轴定位方法 | |
CN104657711B (zh) | 一种鲁棒的指针式仪表读数自动识别方法 | |
CN109579695B (zh) | 一种基于异构立体视觉的零件测量方法 | |
CN113888641A (zh) | 一种基于机器视觉和深度学习的立木胸径测量方法 | |
CN110223355B (zh) | 一种基于双重极线约束的特征标志点匹配方法 | |
CN111709985B (zh) | 一种基于双目视觉的水下目标测距方法 | |
CN109751964B (zh) | 一种高精度非接触式管径测量方法及装置 | |
CN106996748A (zh) | 一种基于双目视觉的轮径测量方法 | |
CN107589069B (zh) | 一种物体碰撞恢复系数的非接触式测量方法 | |
CN101311963A (zh) | 摄像机定位用圆标志点圆心的图像投影点位置的获取方法 | |
CN104036542A (zh) | 一种基于空间光线聚集性的像面特征点匹配方法 | |
CN109544642B (zh) | 一种基于n型靶标的tdi-ccd相机参数标定方法 | |
CN109974618B (zh) | 多传感器视觉测量系统的全局标定方法 | |
CN113049184A (zh) | 一种质心测量方法、设备及存储介质 | |
CN114331924B (zh) | 大工件多相机视觉测量方法 | |
CN113012234B (zh) | 基于平面变换的高精度相机标定方法 | |
CN113505626A (zh) | 一种快速三维指纹采集方法与系统 | |
CN115578315A (zh) | 一种基于无人机图像的桥梁应变近景摄影测量方法 | |
CN111968182B (zh) | 一种双目相机非线性模型参数的标定方法 | |
CN111815580B (zh) | 一种图像边缘识别方法及小模数齿轮模数检测方法 | |
CN105809685A (zh) | 一种基于单幅同心圆图像的摄像机定标方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |