仓面大粒径堆石的图像处理与粒径识别
2022-12-01付立群徐小蓉郭欣晟
刘 易 付立群 徐小蓉 郭欣晟 金 峰
(1.长春工程学院 水利与环境工程学院,长春 130012;2. 清华大学 水沙科学与水利水电工程国家重点实验室, 北京 100084; 3. 华北电力大学 水利与水电工程学院, 北京 102206)
堆石混凝土新型筑坝技术采用高性能自密实混凝土(HSCC)自流填充堆石体空隙[1-3],其中大粒径石料骨架构成了堆石体.文献[4]规定了最小堆石粒径宜不小于300 mm,采用150~300 mm的堆石时需要进行论证,且小于200 mm的逊径石块体积占比不宜超过2%.这一施工准则对工程而言相对简单且保守,安全裕度偏大,主要是为避免小粒径堆石堵塞堆石间窄小孔喉.然而,适当采用一定比例的小粒径堆石,合理安排堆石粒径级配,可以有效提高堆石率,降低施工成本.因此,亟需发展更精细化的堆石质量评价和控制方法.
堆石粒径分布是影响堆石混凝土密实性的重要因素之一,研究二者之间的关系需要依托真实的堆石粒径分布数据库[5].鉴于实验室场地空间大小、搬运成本等限制因素,大量来自工程现场的堆石入仓图片仍是主要数据来源.堆石料为当地筑坝材料,由于石块的数量与重量庞大,难以手动测量或筛分.在施工质量监督中,常用方法是人工目测法,仅靠施工人员的宏观经验判断,可靠性较差[5].因此每个浇筑仓的堆石粒径分布在施工现场较难获取,部分工程在备料场设置钢筛或钢筋笼[6],自动筛除小于300 mm的逊径石块,但只能保证堆石的最小粒径要求,并不能得到堆石的粒径分布.
随着图像识别技术的发展,批量化、非接触式快速测量堆石粒径参数成为可能,传统的算法包括分水岭算法[7]、区域生长算法[8]、边缘检测算法[9]等,被广泛运用于颗粒物的边界提取和识别;近年来深度学习算法[10],如人工神经网络分析法[11]也被用于颗粒检测.沈乔楠等[5]采用基于种子点搜索的分水岭算法,分割堆石块体间的粘连区域,将石块的内切圆直径作为等效粒径提取出来,统计得到粒径区间分布作为堆石质量评价等级.该方法尚属摸索阶段,不能实现批量图片处理.黄科翰等[12]基于BASEGRAIN软件开展了河床卵石粒径的自动识别应用研究,认为第一灰度阈值对识别结果起控制作用.该方法多适用于质地均匀、边缘规则的椭圆形卵石.
堆石混凝土中的堆石体,属于三维立体特征明显、区域质地不均匀的大石料集合体,在BASEGRAIN软件中容易被过分割成多个石块.通过降低图片像素或远距离拍摄堆石照片,可弱化石块的质地不均匀性,但该方法容易产生清晰度过低以至于人眼都无法区分重叠石块的问题.此外,采用常规的分水岭算法或边缘检测算法等图像识别技术,对堆石粒径的识别存在过分割或欠分割的问题,计算结果的准确性欠佳.本文旨在解决堆石粒径图像识别的准确性问题,提出了量化堆石粒径的一种新识别方法,即基于图像识别和人机交互的堆石粒径分布判别方法[13-14].通过实现堆石粒径的可视化自动识别,提供更精确的堆石粒径级配曲线数据,为堆石混凝土的质量控制、检测与评价奠定基础,进而为施工规范的修订提供参考.
1 堆石图像识别方法
图像灰度值预处理对非均质的堆石图像识别结果有很大的帮助.RockGUI软件中,通过图像灰度化将彩色RGB图像压缩为灰度图像,再采用基于空域的直方图均衡算法和中值滤波算法的图像增强技术,完成图像预处理.
图像阈值分割算法是在灰度图像的基础上进行阈值分割,从而粗略地提取每个堆石的空间坐标位置,并能通过占有像素面积判断堆石的空间分布情况.根据图像的曝光均匀程度,采用两种不同的阈值分割方法[16]:李氏最小交叉熵分割方法和自适应阈值法.
本文结合图像梯度改进了传统的分水岭分割算法,针对三维复杂堆石体的图像特点,如区域质地不均匀、多石块重叠遮挡等问题,在传统图像分割处理算法的基础上,提出了将阈值分割与分水岭分割相结合的算法,使用阈值分割的结果来限制分水岭注水点的个数后,有效减少了传统分水岭算法由于种子点过多而带来的过分割现象[17],得到了较为理想的图像分割结果.在开发的RockGUI堆石粒径图像识别软件中,将分水岭算法的阈值分割结果可视化展示,为后续人机交互提供用户操作界面.
2 人机交互模式
2.1 图形用户界面与输入参数
将第1节图像识别算法集成到堆石粒径图像识别软件中,并通过图形用户界面GUI(graphical user interface)的形式呈现给工程用户,如图1所示.软件的开发语言为Python,图像处理主要由Scikit-image库完成,图形用户界面的搭建由PyQt5库完成.
图1 图形用户界面(初始分割结果)
在GUI用户界面中,输入相应参数可以调整图像识别效果,其中可调节的参数共有5个,分为4类.第1类为图片去噪的相关参数,即“噪声过滤核半径α1”,默认值为7,通常在5~15的范围内,该值越小则图片分割结果碎片越多,可能导致过分割,反之该值越大可能会导致欠分割情况;第2类参数为阈值选取方法,通常软件默认为“全局阈值选取”法,若勾选“局部阈值选取”时,其中“局部阈值分割核半径β2”与“偏移量s”变为输入项,阈值分割法的偏移量会导致图片分割结果的较大差异,参与图像分割计算;第3类参数为“形态学侵蚀迭代次数n”;第4类参数为梯度运算的相关参数,即“梯度运算核半径γ3”,其中核半径值越大,导致的图片分割碎片越多.不同参数图像识别得到的结果有所差异,需根据堆石图像实际情况来调整.
2.2 人机交互修正流程
如图2所示,在GUI应用中输入原始图像2(a),经过内置的图像预处理与分割算法,得到的初步识别结果为图2(b).为了解决过分割或欠分割等问题,在软件基础上增加了人机交互修正功能,主要包括三大类操作:过分割区域合并、欠分割区域再分割和删除噪声背景.图2(c)为合并过分割区域,支持点击两个或多个过分割区域,合并为同一区域,如将同一块堆石的不同阴影面合并.图2(d)为再分割欠分割区域,选择“分割面”用鼠标轨迹作为分界线,线两侧划分成两个独立区域,通过“再分割”可将粘连或互相遮挡的堆石分离成两个独立块石.图2(e)为删除背景区域,可标记图片边缘的不完整堆石,绿色圆点标记为背景区域,被标记的不完整堆石不参与堆石区域的粒径计算.单击“工具”菜单栏中的“块体对应”,可选择实际为同一块体的两个或多个区域,将其标注为同一块体.堆石外接圆拟合结果如图2(f)所示.
图2 人机交互修正流程
RockGUI软件中采用的人机交互算法均为伪代码,属于较为成熟的图像修正算法.本研究首次将人机交互算法应用到堆石混凝土工程中,借助了人眼判断能快速判别重叠堆石体的有效性,将其用于复杂三维堆石体的粒径识别计算,大大提高了图像识别的准确性.
3 大块堆石粒径计算
3.1 参照物选择及拍摄误差计算
参照物是计算堆石粒径的重要参考,按相同的比例尺对像素值进行换算.因此,拍摄的堆石照片中需包含已知尺寸的参照物,如安全帽、标杆、圆圈环等.本文选取固定长度为1 000 mm的测量标杆和直径为400 mm的铁丝圈作为参照物,拍摄仓面堆石照片时尽量以俯视水平视角,避免倾斜视角的尺寸畸变.
照片拍摄角度难免产生部分倾角,会不可避免产生畸变,现有的堆石照片主要为现场工程师手持手机相机俯视拍摄,拍摄高度为1.2 m到1.5 m之间,相机焦距和物距主要影响拍摄时产生的畸变大小.
如图3所示,默认参照物在F点正中位置,当相机倾斜时,相机中线与竖直线角度为α,由于在图像识别时将其认为是俯视拍摄,实际的BC会被当做DE进行处理.计算在两端两个微小角度上的BI,KC的识别误差可以计算畸变大小.
图3 相机倾斜产生畸度示意图
设AF=1,则AG=cosα.由于∠BAI与∠KAC极小,设两个点的畸变为m和n,可以计算得到:
(1)
(2)
当α<12°时,m<1.1,n>0.85,畸变最大的区域变化率小于15%.可以认为倾角小于12°时,畸变对识别结果的影响在可接受范围内.另外在倾斜时,参照物的位置也会对识别结果造成影响,应尽量保持参照物水平.经测算,圆环参照物的畸变影响会比标杆参照物的影响小.
3.2 堆石粒径的定义与计算
堆石最小外接圆直径的计算方法为:首先遍历整个点集S,获取位于最左、最右、最上、最下的点坐标(xi,yi),将这4个点所在的集合设为P,剩余的点集设为Q,即S=P+Q.采用下列公式求包围点集P的最小外接圆C的圆心(xc,yc)和半径:
(3)
同时,遍历点集Q检查是否有点在圆C外,若所有点都在该圆内,则O1为最优解;若存在点位于圆C外,此时将Q中距离圆心O1最远的点移动至P中,遍历点集{P}的任意四点组合,重复上述计算求出点集P中的最小外接圆,直至最优解.
4 工程应用
4.1 工程概况
贵州省风光水库位于正安县格林镇风光村境内,大坝为C9015一级配堆石混凝土双曲拱坝,坝顶高程691.0 m,最大坝高48.5 m,坝顶宽5.0 m.为加快施工进度、简化坝体构造与施工,该工程采用了不分横缝、整体浇筑的堆石混凝土拱坝型式[18](如图4(a)所示),于2020年4月中旬开始首仓堆石混凝土浇筑,至2021年8月底完成坝体浇筑.
图4 风光水库位置、型式及仓面采样点示意图
4.2 典型仓堆石照片取样
基于上述研究,2020年11月开展风光水库的现场试验,选择正在施工的单元工程(高程677.7~679.0 m,已浇筑坝高32.5 m)作为典型仓.遵循随机取样、均匀分布的原则,先后在靠近右坝肩坝段取35个点位进行堆石照片取样,采样点位置如图4(b)所示,图中黄色和红色点位分别为以400 mm铁丝圈、1 000 mm标杆作为参照物.
4.3 堆石粒径识别
针对风光水库典型仓面,在不同取样点获取俯视照片,不同照片间保证堆石不重复.采用研发的堆石粒径识别RockGUI软件,对堆石照片进行图像处理与粒径计算.同时,为了验证识别结果的准确性,使用可视化的图像标定工具LabelImg,采用人工识别的方法对图片中的颗粒手动标注,提取堆石颗粒的长轴和短轴直径信息.图5为比例尺为1 m标杆时其中一组堆石照片的识别结果.图5(a)为RockGUI软件的堆石粒径识别结果,红色圆圈表征石块的最大外接圆;图5(b)为对应的人工标注结果,其中红色粗线段代表堆石外接多边形的长轴a,即堆石边缘距离最远的两点之间的线段,短轴b为其长轴的垂线.理论上,堆石的最大外接圆直径D略大于堆石的长轴尺寸且非常接近,虽然通过二维图像识别出的粒径为堆石的“可视粒径”,但仍可将人工标注的长轴结果近似看作堆石粒径的真值,用于判断本文研发的图像处理技术的准确性.
图5 堆石图像识别与人工标注效果图
经过RockGUI软件的初步图像识别,并利用人机交互功能剔除识别异常值,如图片边缘堆石不完整的粒径值,最终得到1 607块堆石.相应地,通过人工标注进行图片处理,共提取出2 387个堆石.由于图像处理得到的堆石粒径均为二维的“可视粒径”,若绘制粒径级配曲线需转化为累积质量分数.假定堆石密度均质相同,分别采用D3和ab2估算RockGUI图像识别和人工标注的堆石体积,绘制出的粒径级配曲线(不超过某粒径的堆石质量占比)如图6所示,其中分别以外接圆直径D和人工标注长轴a为横坐标,块石粒径以毫米为单位.
图6 RockGUI图像识别和人工标注结果对比(质量占比)
由图6可看出,图像识别的外接圆直径与人工标注的外接多边形长轴结果非常接近,堆石粒径级配曲线趋势基本相同.实测粒径结果略小于RockGUI识别结果,尤其是小于1 m的块石识别结果;两种方法均识别出了少量大于1.5 m的大块堆石;粒径小于300 mm的堆石质量占比非常小,小于5%.
4.4 堆石质量评价等级
根据文献[4],规定堆石的最小粒径不宜小于300 mm,宜为300~1 000 mm范围,当采用粒径为150~300 mm的堆石时应进行论证.堆石的最大粒径不应超过结构断面最小边长的1/4,也不宜大于浇筑层厚,风光水库本仓的浇筑层厚为1.3 m.
针对风光水库的堆石粒径识别结果,通过统计粒径区间分布数据可知,RockGUI软件图像处理结果中粒径小于300 mm的堆石块数占比为17.45%,质量占比为1.39%;相应地,人工标注的结果中粒径小于300 mm的堆石块数占比为25.53%,质量占比为2.44%,因此该试验仓逊径堆石料的占比符合质量要求(<5%).此外,两种方法算出的堆石粒径在300~1 300 mm之间的质量占比分别为81.71%和81.76%,占堆石料源的主体.
而关于大块堆石,RockGUI共识别出17块大于仓面厚度1 300 mm的堆石,人工标注识别出12块,二者的大石头块数占比分别为1.06%和0.50%(如图7所示).然而由于大块石体积大,质量占比影响非常大,能达到仓面堆石体总质量的16.9%和15.8%.通常在实际施工过程中,仓面靠近上下游面会首先堆积大块石头作为稳固外围,虽质量大但有利于堆石骨架的形成和提高坝体强度,也能节省混凝土用量,因此在堆石质量评价时可不特意约束大体积堆石的质量占比,而建议适当改为大体积堆石块数占比不小于5%.
图7 RockGUI和人工标注结果对比(块数占比)
根据多个堆石混凝土工程的施工经验,制定堆石质量评价等级见表1.Ⅰ类和Ⅱ类堆石是小粒径堆石占比过多,浇筑混凝土时容易发生堵塞;Ⅲ类堆石是粒径超过浇筑层厚(如1 300 mm)的大粒径堆石块数占比,超过了5%;Ⅳ类和Ⅴ类堆石在300~1 300 mm标准范围内的堆石占比,分别超过80%和90%.结合上述图像识别和堆石粒径计算结果,风光水库该仓的堆石质量等级为Ⅳ类,仓面堆石体质量整体较好.
表1 堆石仓面块石粒径区间分布质量评价等级(单位:%)
5 结果误差分析
5.1 堆石识别数量
通过RockGUI软件识别和人工标注识别两种方法得到的堆石数量存在差异,前者得到的块石数量比人工标注的数量少约700块.对比图像识别结果发现,由于RockGUI软件忽略了照片边缘不完整的块石,每张照片中有5~10块边缘不完整石头,这同时也降低了堆石粒径识别的误差,使得粒径级配曲线S线型趋势更光滑.同时,该软件中被遮挡严重的小块石识别数量也减少,对于图像阈值分割不显著的块石自动忽略,也是造成识别出的堆石数量偏少的原因之一.
5.2 堆石粒径误差
为进一步分析不同粒径堆石的识别精度,将RockGUI软件图像得到的堆石粒径记作b′,将人工使用LabelImg以多边形圈定块石测量得到的块石长轴值为b,选取典型取样点位5号和6号的堆石粒径绘制图8,比较两者粒径之间的误差分布.由图8可知,粒径b′和b的相对误差一般小于20%,大部分集中在误差10%左右,如图8(a)所示,表明RockGUI图像识别结果总体的可靠性.比值b′/b的离散性较强,如图8(b)所示,范围在0.7~1.3之间,且随着b增大有减小的趋势,70%左右的数据分布在1.0两侧,主要在0.9~1.1之间变化.如图8(c)所示,相对频率也是满足随着b增大有减小的趋势,不满足正态分布.表明RockGUI的计算结果总体与实测值相符,且明显偏离的情况比较少.粒径较小块石的偏离较大,是因为大块石的遮挡作用以及大块石阳光下阴影的遮蔽,使小块石的边界难以准确分割识别.大块石的识别效果较好,一方面是因为设置参数时以大块石作为标定样本,另一方面是因为大块石在照片中占据更多像素位置,边界较明确.
图8 5、6号采样点计算粒径b′与实测特征粒径b对比
5.3 堆石特征粒径
图9 6组采样点计算与实测特征粒径对比
由图9可看出,RockGUI软件图像处理与实测的粒径结果符合良好,相对误差在全级配范围内均小于20%,大部分特征粒径的误差在10%以内.采用这两种方法得到的特征粒径值差异存在整体性偏移,即RockGUI软件图像处理到的粒径值普遍略大于实测粒径结果,这与RockGUI软件采用堆石的外接圆直径略大于堆石长轴的理论一致.在块石实际粒径分布处于D35到D65的部分,堆石图像识别的特征粒径与真实值非常接近,在粒径较小或较大时离散程度稍高,可看出RockGUI软件图像在处理中间粒径区间的堆石颗粒识别结果更为准确,需增加更多的数据集和优化算法,以提高软件在处理小块石和大块石的处理精度.
6 结论与展望
本文首次将图像识别技术和人机交互技术结合应用到堆石混凝土工程的堆石质量评价,通过改进现有图像识别算法并加上通过人眼判断的人机交互修正方法,开发了非接触式的堆石粒径自动识别软件RockGUI,并采用人工标注测量方法对其软件图像识别结果进行了准确性验证,主要结论如下:
1)堆石体由于质地不均、重叠严重等特点识别难度较大,但通过改进图像分割算法能有效减少图像过分割现象.将肉眼可判别的人机交互修正算法,集成到图像处理中,发展出一种半自动化的非接触式图像处理方法,能大大提高识别结果的准确性.
2)本文开发的RockGUI软件能识别出堆石粒径级配曲线,由于采用堆石外接圆直径表征“可视粒径”导致比人工测量值长轴偏大,但无论是计算粒径、特征粒径还是质量占比等,相对误差都不超过20%,图像处理结果具有可靠性.风光水库的试验仓堆石粒径级配曲线基本呈S型,逊径堆石料小于300 mm的质量占比约2%,堆石体质量良好.
堆石粒径级配分布是评价堆石入仓质量的重要指标,比最小粒径300 mm更能表征堆石体骨架的特点.下一步将结合深度学习算法、双/多目摄像头拍摄等手段,进一步提高图像识别算法的速度和准确性,为堆石质量评价提供科学依据.