D0I:10.13374/i.issn1001053x.2002.03.079 第24卷第3期 北京科技大学学报 Vol.24 No.3 2002年6月 Journal of University of Science and Technology Beijing Jun.2002 计算机辅助测量料堆体积的三角区域法 王贤文王秀美洪源刘珍 曾祥希 北京科技大学信息工程学院,北京100083 摘要提出了在计算机辅助测量料堆体积中一种新的体积计算算法,包括:整理原始数据 点、求原始数据点的偏导数、建立三角剖分、区域曲面拟合、计算区域体积、计算料堆体积等步 骤.在算法的基础上,开发出一个应用系统,并通过试验验证了算法的正确性 关键词三角区域;料堆体积测量;计算机辅助测量 分类号TP391.7 目前料堆体积的测量仍采用传统的手工测 xy小Ff+f(x-x+f(vy-y+ 量方式,把料堆看作微地形,采用地形测量方法 -xr4f(o0-ywr 测绘出地形图,然后计算出料堆的体积,进一 步可求得料堆的质量.采用手工测量方法工作 2(x-x0y-y) (1) 繁重,时间长,结果误差大 显然有Qxy=无.通过最小二乘法,对点 本文利用计算机无接触三维测量技术,开 (x)附近的点或整个区域D上的散乱点进行拟 发出一种新的体积测量系统,该系统具有快速、 合,从而求得(xyW处的近似1阶,2阶偏导f(v), 简便、作业强度底、测算精度高等优点.系统的 £(),fa(y),fn()f(),i=1,2,…,N.一般地,最 原理是:在料堆上放置一些标志点,围绕料堆现 小二乘法的目标函数取为 场拍摄3~25张照片,照片数字化后输入计算机 e立ae-fF (2) =材 中.在计算机中对每张照片上料堆的标志点进 其中,a=1/Wc-xy-y.在式(2)中,加入系 行标识后,综合各标志点在不同照片上的位置, 数a的原因是认为距离点(x)越远的点,对点 进行立体恢复,从而计算出各标志点的真实空 (xy)处的偏导数的影响越小. 间坐标XY,Z值;利用所得标志点的坐标,建立 (3)建立二角剖分.多边形区域D是所有数 三角区域,计算出料堆的体积 据点形成的最小凸包,在D内对所有数据点建 立三角剖分.对于平面上的1组散乱点,可形 1算法设计 成的三角剖分不是惟一的.为了保证计算结果 1.1算法的基本思想 的精度,应使形成剖分中的每个三角形尽可能 根据料堆现场中标志点建立三角区域,计 是锐角二角形或三边的长度大体相等.采用了 算出料堆位于每个二角区域内的体积V:,则整 如下方法来建立二角剖分:①建立第1个二角 个料堆的体积V为所有区域体积之和:=ΣV. 形.任选I点作为第1个顶点,选择与该点最近 1.2算法实现的步骤 的点作为第2个顶点,然后用余弦定理找出与 (1)整理原始数据点.①删除距离过近的点: 前2点连线夹角最大的点作为第3个顶点.② ②将所有数据点的XYZ坐标变换到区域 扩展三角形.依次将三角形的3条边向外扩展. 0≤X≤Xmt,0≤Y≤Ym,0≤ZSZ内. 扩展时如出现新形成的二角与原有的二角形交 (2)求原始数据点的偏导数.对应每一节点 叉或重复的情况,新形成的三角形无效.③重 (xy,),构造一个节点函数: 复第2步,直到所有三角形的3条边都经过扩 展,三角剖分建立完毕 收稿日期200105-31王贤文男,25岁,硕士 (4)区域曲面拟合.对数据点建立好一角剖 *国家九五科技攻关课项目No.96-919-01-01-3)
第 卷 第 期 年 月 北 京 科 技 大 学 学 报 及 计算机辅助测量料堆体积的三角区域法 王 贤文 王 秀美 洪 源 刘 珍 曾祥希 北京科技大学信息工程学院 , 北京 摘 要 提 出了在计算机辅助测 量料堆体积 中一 种新的体积计算算法 , 包括 整理原始数据 点 、 求原始数据点的偏导数 、 建立 三角剖分 、 区域 曲面拟合 、 计算 区域体积 、 计算料堆体积等步 骤 在算法 的基础 上 , 开发 出一 个应用 系统 , 并通 过试验验证 了算法 的正 确性 关键词 三 角区域 料堆体积测 量 计算机辅助测量 分类号 目前料堆体积 的测 量仍采用 传统 的手工测 量 方式 , 把料堆看作微地形 , 采用地形测 量方法 测绘 出地形 图 , 然后 计算 出料堆 的体积 , 进 一 步可 求得料堆 的质量 采用 手工测 量 方法工作 繁重 , 时间长 , 结果 误差大 本文利用 计算机无 接触三维测 量技术 , 开 发 出一 种新 的体积测量 系统 , 该系统具有快速 、 简便 、 作业 强度底 、 测 算精度高等优点 系统 的 原理是 在料堆上放置一些标志点 , 围绕料堆现 场拍摄 一 张照 片 , 照 片数字化后 输人计算机 中 在计算机 中对每张照 片上 料堆 的标志点进 行标识后 , 综合各标志点在不 同照 片上 的位置 , 进 行立 体恢 复 , 从而计算 出各标志点 的真实空 间坐标戈从 值 ‘,头利用所得标志点的坐标 , 建立 三 角区域 , 计算 出料堆 的体积 必 刃 琪 , 一 瑞 妙一川十 认 一 , 《 矛 伽一见 , , 一 伽一 ‘ 关 石,乙, 显然 有 力丫 通 过最 小 二 乘法 , 对 点 ,扔 附近 的点或 整 个 区域 上 的散乱 点进行拟 合 , 从而求得 ,川处 的近似 阶 , 阶偏 锹 , , 芳以 ,无 仅 ,无 孤 , , , … , 一 般地 , 最 小 二乘法 的 目标 函数取 为 切 二 艺 扎 , , 一厂 算法设计 算法的基本思想 根据料堆 现场 中标 志点建立 三角 区 域 , 计 算 出料堆位于 每个 二 角 区域 内的体积 叱 , 则 整 个料堆 的体积 为所有 区域体积之和 艺醉 算法实现的步骤 整理原始数据点 ①删 除距离过近 的点 ② 将 所 有 数 据 点 的 坐 标 变 换 到 区 域 ‘ 尤‘ 、 , 三 几 , 三 ‘ 内 求原 始数据点 的偏导数 对应每一 节点 ,, , 构造一 个节点 函数 收稿 日期 一 一 王 贤文 男 , 岁 , 硕士 国家 ’九五 ’科技攻关课项 目 认 一 一 一 一 其 中 , 丙 了,一, 仅一川 , 在式 中 , 加 人 系 数 。 的原 因是认 为距 离点,川越远 的点 , 对点 ,, 处 的偏导 数 的影 响越小 建立 不 角 剖分 多边 形 区 域 是 所有数 据点 形 成 的最小 凸包 , 在 内对所 有数据点 建 立 三 角 剖分 对 于平 面 上 的 组 散乱点 , 可 形 成 的三 角剖分不 是惟一 的 为 了保证计算结果 的精度 , 应使形 成剖分 中的每个二 角形 尽可 能 是锐角 二 角形或 下边 的长度大 体相 等 采用 了 如下 方法来建立 二 角 剖分 ①建 立 第 个 二 角 形 任选 点作为第 个 顶点 , 选择 与该点最 近 的点 作为第 个顶 点 , 然后 用 余弦定 理找 出与 前 点 连线夹 角 最大 的点 作 为第 个 顶 点 ② 扩 展 三 角形 依次将三 角 形 的 条边 向外扩展 扩展时如 出现新形 成 的 二角 与原有 的 二 角形 交 叉 或 重 复的情况 , 新形 成 的三 角形无 效 ③重 复第 步 , 直到所有 三 角形 的 条边都经 过 扩 展 , 三 角剖分建立 完毕 区域 曲面 拟合 对 数据点建立 好 二 角剖 DOI :10.13374/j .issn1001-053x.2002.03.079
·370· 北京科技大学学报 2002年第3期 分之后,得到一个以数据点为顶点的三角形集 分别为k,k2,k. 合,每1个三角形形成1个三角区域,对每1个 函数fx,y=Axy在三角区域PPP上的积分 三角区域进行曲面拟合.算法中采用公式: 用式(5)(7)可求得 F)py (3) J∬f(x.y)dxdy=∬f(x.y)dxdy+S∬Ax.y)drdy(5) 用xy的多项式来拟合每一区域上的曲面. ∬nx.y)drdy=-∬Axydrdy= 设三角区域的3个顶点为P(xy),P(xy, ),P(cy,).利用求得3个顶点的近似1,2阶 dcyd=nA(c版- n+1 偏导数f(xy)(xy)f(xy),fn(xyJ(xyW(i= 2(C(-x” (6) 1,2,3,可见对每1个顶点可以确定6个条件,3 mt7月] ∬f(x.y)dxdy=∬Axydxdy-- 个顶点共确定18个条件.但在式(3)中,拟合多 项式的系数p只有9个(从p到),为了充分利用 dx(C 0 3个顶点所提供的18个条件,采用最小二乘法 2(C(-x灯r- 、m++1刀] () 来确定式(3)中的系数p 而每一个区域上的曲面用形如式的(3)的y 式(3)中Fxy)的1,2阶导函数分别为F(xy), 的多项式Fxy)来拟合,所以利用式(5)(7)可以 F,(xy),F(xy),Fw(xy)和Fx,y以.则最小二乘法 很容易计算出在每一个区域内的料堆体积. 的目标函数取为: 如果一个区域位于料堆的外部,需要在此 E=[F(xy)-fi]+E[F.(xny)-f.(xy)P+ 3 之上加一个修正值.设区域PPP,位于料堆的外 [F,(xy)-f(xy)+E[F(x)-f(xy)+ 部,且P,P为料堆最外层的点.如图2所示,曲 ∑[F,w(xy)-fn(x)]2+[FxyJ-f(xy)]P(4) 线P,P,为料堆最底层的实际形状(局部),此时如 果只计算料堆位于三角区域PPP上的体积,将 利用最小二乘法确定式(3)中的系数之后, 会产生较大的误差.为了获得更精确的结果,在 对于三角区域PP,P内的任意点Pxy),可求得 区域PPP,上增加一个修正值,具体实现步骤 该点的函数值Fx,y). 为:Pxy)点对应拟合曲面上的点为A,线段 (⑤)计算料堆位于三角区域内的体积.由于 PP的中点对应拟合曲面上的点为B,直线AB与 采用多项式来进行曲面拟合,而多项式函数的 水平面(xoy平面)的交点为P,则增加的修正值为 原函数是很容易求得的,所以可以直接求式(3) 拟合函数F(xy)在三角区域PPP,上的积分.因 所示的函数在二角区域上的二重积分,即料堆 此,实际上把拟合函数x,)在四边形区域 在该区域上的体积. PPPP上的积分作为料堆在区域PPP上的体 设三角区域的3个顶点为P(xy),P(x2y), 积. Pxy),不妨设有x,≤x≤.考察函数fx= (6)计算料堆的体积.计算出料堆在每一个 Axy(A为常数,m≥0,n≥0)在三角区域PPP上 三角区域上的体积”,整个料堆的体积就很容 的积分(如图1所示).可见三角区域PPP可分 易计算出来,即=ΣV, 为D,D2个区域.设直线PP,PP,PP的斜率 白 D P X X X Pi 图1计算三角区域的体积 图2对外围三角区域进行修正 Fig.1 Calculating volume of a triangle region Fig.2 Adjusting an outside triangle region
一 北 京 科 技 大 学 学 报 年 第 期 分之后 , 得 到一个 以数据点 为顶点 的三 角形集 合 , 每 个三角形形成 个三 角 区 域 , 对每 个 三 角区 域进行 曲面拟合 算法 中采用 公式 玲功 一 蓦分 才夕 用砂的 多项式来拟合每一 区域上 的曲面 设三 角区域 的 个顶点 为只 】护 抓 ,凡 扒 , 关 , 尸, , 不 利用求得 个顶点 的近似 , 阶 偏 导 数不,少〕沂 ,少 , ,少〕办 少〕儿 少办 ,, , 可见对每 个顶 点可 以 确定 个条件 , 个顶 点共确定 个条件 但在式 中 , 拟合多 项式的系数尸只有 个 从尸侄如办 , 为了 充分利用 个顶点所提供的 个条件 , 采 用最小二乘法 来确定式 中的系数夕 式 中月奔力的 , 阶导 函数分别为 必 , 凡 户凡 功几 户和 凡 功 则最小 二乘法 的 目标 函数取为 二 艺〔月尤 扔 一厂〕 十 艺 ,, 一不,对〕 十 习凡,川一苏,力卜习凡,力一瓜 ,川 艺仁凡 ,少 , 一九 ,少 ‘ 〕 , 艺 凡 ‘少 , 一 几 ,少 宕 , 利用最小二乘法确定式 中的系数户之后 , 对 于 三 角 区 域只尸 」内的任意 点尸伙必 , 可 求得 该点 的 函数值月无必 计算料堆位于 三 角 区 域内的体积 由于 采用 多 项式来进行 曲 面拟合 , 而多 项 式 函数 的 原 函数是很容易求得 的 , 所 以 可 以 直接求式 所示 的 函数在 二角 区域上 的二重 积分 , 即料堆 在该 区域上 的体积 设三 角 区 域的 个顶点为尸 ,, ,八 , , 只,扔 , 不 妨 设 有 ,‘ 从‘ 与 考 察 函 数刀大淤二 巧 卢 为常数 , 泛, 之 在 三角 区 域尸 」上 的积分 如 图 所示 可 见三角 区域尸 尹 可 分 为 ,, 个 区域 设直线尸 尸 , 尸、几尸 的斜率 分别为 , 棍 , 允 函数爪 义少 钊巧卢在三角 区域尸 只 上 的积分 用 式 可 求得 仃 , “ 一 仃 , 妙仃 砂山也 尹 却户沪生 口 及 仃 功 咖 一 仃 了丫叙 尸 几 口 犷“ 篇“ 再飞青〔艺 嵘了 一 棍一 , ,、 石 , , 、 对毋,一片 ,、 、 少乙 气端 一 产 一二几二不万,一 旬 一下 仃 功 办 仃 巧 卢血由厂 打 丈立丈 、 ’ 妒流嘿 叫一 艺 口 一 ‘勺 对’ 一对 , ’ 而每一个 区域上 的曲面用形如式 的 的砂 的多项 式州大扔来拟合 , 所 以利用式 代 可 以 很容易计算 出在 每一 个 区 域 内的 料堆体积 如果一个 区 域位 于料堆 的外部 , 需 要在此 之上 加一个修正值 设区域尸 位于料堆 的外 部 , 且尸 ,, 几为料堆最外层 的点 , 如 图 所示 , 曲 线只凡为料堆最底层 的实际形状 局部 , 此时如 果 只计算料堆位于三 角区域尸 几只上 的体积 , 将 会产生较大的误差 为 了获得更精确的结果 , 在 区域尸 上增加一个修正值 , 具体实现步骤 为 尸 扔 点 对 应拟合 曲面 上 的点 为 , 线段 尸,只 的中点对应拟合曲面上 的点为 , 直线 与 水平 面 平面 的交点为尸 , 则增加的修正值为 拟合 函数八不砂在三角 区域 几上 的积分 因 此 , 实 际 上 把 拟 合 函 数卢飞沐加 在 四 边 形 区 域 尸尸 尹 上 的积 分作为料堆在 区 域 只尹 〕 上 的体 积 计算料堆 的体积 计算 出料堆在每一个 三 角 区域上 的体积 环 , 整 个料堆 的体积就很容 易计算 出来 , 即 玖 图 计算三 角区 域的体积 柱。 图 对外 围三 角 区域进 行修正 吐 认
Vol.24 干贤文等:计算机辅助测量料堆体积的三角区域法 ·371. 2试验 料堆吻合得很好(图3). 为了验证算法的正确性和实用性,用两 类数据进行试验. 2.1人工数据试验 人为设计了几组数据,例如半球体、1/4球 体、锥体等物体.利用这些数据对算法进行测 试,计算结果与实际值相比,依数据点采集密 度的不同,计算结果的相对误差在0.4%6% 之间变化,这样的误差范围是满足工程上的 测量要求的.把计算后的数据输人到MAT- LAB中进行三维恢复,与实物吻合很好 2.2实际现场数据试验 (a)实际现场照片 试验是对一煤堆进行的.对同一个煤堆 独立进行2次试验来对算法的精度进行评估 (1)试验过程.①在料堆表面放置标志点 和基准杆.②采用数字相机围绕料堆拍照,相 邻照片应有一定的重叠度.照相站点在料堆 周围大体上均匀分布,大约照15张.③把照 (b)MATLAB中重建结果 片输入计算机进行图像量测,用图像量测系 图3实际现场和计算数据在MATLAB中的可视化 统打开每张照片,用鼠标点取标志点并输入 Fig.3 An actual material pile and visualization of calculating 点号.④立体重建.启动立体重建程序计算标 data in MATLAB 志点的三维坐标.⑤体积计算.根据计算出的 标志点的三维坐标,计算出料堆的体积. 参考文献 (2)试验结果.2次试验的计算结果分别 1宋学斌.计算机辅助测量料堆体积的算法研究与 为1.85m3和1.78m3,2次结果的差为0.07m, 系统开发:[学位论文】.北京:北京科技大学,1998 如果把2次计算结果的平均值为1.815m作 2王贤文.大规模和非自然形料堆体积的计算机辅 助测量算法研究及其实现D]:[学位论文].北京: 为料堆标准值,则相对误差为3.86%.将计算 北京科技大学,2000 后的数据输入到MATLAB中进行三维恢复, 3王福明,贺正辉,索谨.应用数值计算方法M.北 与实际料堆相比较,发现计算的结果与实际 京:科学出版社,1992 Using Triangle-region Method to Measure Stockpile's Volume WANG Xianwen, WANG Xiumei,HONG Yuan,LIU Zhen,ZENG Xiangxi Information Engineering School,UST Beijing,Beijing 100083,China ABSTRACT In the volume calculation of stockpile by using computer-aided measuring technique,a new volume calculation method is introduced.It includes six steps which are purifying and standardizing raw data,getting partial derivative of data points,building triangle grid,surface fitting of triangle region,cal- culation triangle region volume,calculation volume of stockpile.Based on this algorithm,an application system is developed,and it is testified valid and practical by analyzing instances. KEY WORDS triangle region;volumetric calculation of stockpile;computer-aided measuring technique