一种基于超高分辨率图片的无人机电力巡线故障检测方法

文档序号:28070376发布日期:2021-12-18 00:19阅读:247来源:国知局
一种基于超高分辨率图片的无人机电力巡线故障检测方法

1.本发明属于自动巡检领域,尤其涉及一种基于超高分辨率图片的无人机电力巡线故障检测方法。


背景技术:

2.近年来,我国经济持续稳定快速发展,对电能需求的增加使得我国电网规模增长迅速。至2011年,我国电网规模已经排名世界首位。新中国成立之初,1949年,35千伏及以上输电线路长度6475千米;1978年,35千伏及以上输电线路长度23万千米;2006年,35千伏及以上输电线路长度突破100万千米;2018年,35千伏及以上输电线路长度189.2万千米,较1949年增长291倍;预计到2025年将超过200万千米。在实际情况中,相当大的一部分高压输电线路往往需要跨过高山和河流,这让高压输电线路的人工日常巡检存在极大困难和危险。高压输电线路以及安装在输电线路上的各种电气元件,都是完全暴露在自然环境之中,日晒、风雪、雷雨和一些其他的自然力量都会对输电线路造成一定的影响。随着时间的推移、累积,对输电线路的破坏就会扩大,从而导致输电线路出现磨损、腐蚀,甚至断股等问题出现。目前,我国输电线路传统的巡线方式有徒步地面巡线和逐基登塔巡线等等,这些巡线方式对人员的要求很高,需要依靠经验丰富的巡检人员。
3.目前传统的输电线路巡检方式存在以下问题:
4.(1)巡检效率低。输电线路常跨过高山、森林等人烟稀少的地区,巡检工作人员需翻山越岭,靠徒步前进,仅靠人眼远距离观看,可能会由于树木遮挡,使得输电线路巡检效率低,并会造成较多的误检漏检情况。
5.(2)巡检质量。由于通讯交通的不便捷,导致巡检效率低下,使得输电线路巡检周期长,故障解决不及时,常常会发生一轮巡检还没有结束,前面已经巡检过的输电线路又发生问题的情况,将使得巡检工作意义不大。
6.(3)工作人员安全无保障。由于部分输电线路分布于交通死区和通讯盲区中,在进行输电线路巡检的工作人员一旦发生意外,就是生命危险。
7.如今,国内较为常见的为无人机巡线,通过地面工作人员控制无人机,拍摄输电线路和铁塔的图片,结束巡线后由经过专业培训的识图人员查阅照片,对存在故障隐患的地方再图片中进行标注,如输电线断股、悬挂异物、绝缘子污损等,根据图片自身所携带的经纬度信息来确定输电线路故障的实际地理位置。但是,无人机输电线巡检所航拍的图片属于超高分辨率,其分辨率高达5472*3078,而输电线路故障元件与整幅图片对比占不到1%,并且输电线路存在的故障类型比较多,而且输电线路横跨的距离使得一般都是上千公里这就使得图片的背景语义信息非常丰富(森林、山川、河流、田地、道路等),干扰信息比较多。人为的判断更加依赖识图工作人员的技术水平,容易造成漏检、误检等问题,这会造成现场实际维修人员的核查工作量,同时,无人机输电线路航拍图片的数量是非常庞大的,使用人工检测图片所存在的电力元件故障,既耗时又费力。
8.为保证电网的运转正常及检修人员的人身安全,利用计算机与无人机作为平台搭
载巡检设备,对高压输电线进行有效的人工智能图片识别是具有重要的意义。目前对问题线路的图片识别方法还是使用传统的识别方法,例如使用hog(histogram of oriented gradient,hog)特征+svm(support vector machine,svm)算法或者dpm(deformable part model,dpm)算法的传统目标识别算法来进行分类的。传统的识别方法存在识别精度较低,对标注者的专业要求较高,识别速度较慢等问题。
9.随着近几年深度学习的兴起,计算机视觉技术在过去几年里取得了巨大的进步。研究人员提出使用faster r

cnn、ssd和yolo对输电线路故障进行检测。faster r

cnn通常接收1000*600像素的图片,而ssd使用300*300或者512*512像素的输入图片,yolo使用416*416或640*640像素的输入图片。虽然这些框架在传统目标检测数据集上取得了不错的性能,但是它们之间没有一个框架可以直接对5472*3078超高分率的图片进行检测。此外,这些网络模型当中通常会使用多个下采样层去生成对象区分的相对特征。如果感兴趣的对象在图片中只有几个或者几十个像素,这就会存在问题。例如,考虑默认的yolo网络架构,它以32倍进行下采样并返回一个13*13的预测网格。这意味着如果对象质心的间隔小于32个像素,则网络很难学习到目标的特征信息。
10.无人机航拍由于其拍摄角度问题,会造成物体可以有任意的方向,这种有限的旋转不变性范围是很麻烦的。此外,我们还注意到,超高分率的图片可以简单解决上面提到的一些问题。例如,对图片进行上采样可以确保感兴趣的对象足够大且足够分散,以满足标准架构的要求,但是这种简单粗暴的方法是不可行的,因为这种方法还将使运行时增加许多倍,对硬件设备要求过高,经济性较差。类似地,在图片上运行滑动窗口分类器以快速搜索感兴趣的对象在计算上变得难以处理,因为每个对象大小都需要多个窗口大小。如果目标是全球数字图片中的一艘10米长的船,我们必须评估超过100万个滑动窗口切割。
11.进行无人机巡检的主要技术难点如下:
12.超高分辨率图片的尺寸是5472*3078,而故障目标物体则特别小。因此,如果只是简单地将超高分辨率图片缩小到大多数算法所需的输入大小(几百像素)会造成很多小目标都法被检测出来,而无人机电力巡线故障检测主要都是检测小目标的物体(并不是指该物体实际尺寸很小,而是该物体在5472*3078图片上,相对而言是小物体)。如果对原始图片不进行尺度缩放,而是简单的进行下采样,下采样的倍数太大,容易造成特征数据信息的丢失;如果下采样倍数太小,网络前向传播所需要的显存会特别大,需要在显存中保存大量的特征图,极大消耗gpu资源,使得训练网络模型的硬件成本大幅度提升。
13.其次,故障对象属于小目标物体。在无人机拍摄的超高分辨率图片中,人们感兴趣的对象是非常小的,有些对象还十分密集聚集,这与传统数据集是不一样的。传统数据集中的对象是大型和突出的。例如,像汽车这样的物体,在传统数据集中每个物体的范围大约占据原始图片的20%

80%的面积,而对于像输电线路中r销的丢失这个的故障,即使在最高分辨率下,每个物体的范围也只有大约20像素到100像素之间,也就是说每个物体的范围大约占据原始图片的~1%的面积。
14.完整的旋转不变性以及遮挡问题。无人机航拍由于其拍摄角度,背景复杂等原因,常常会遇到图片中故障对象被严重遮挡的问题,以及无人机从高空观察的物体可以有任何方向。
15.训练数据相对缺乏。目前无人机巡线电力故障检测方面的数据很少的,一方面是
由于之前传统的电力巡线,都是采取人工的方式,遇到故障并不会拍照存储相关故障数据,另一方面是由于这涉及到我国的安全性问题,一般输电线路故障数据并不会在网上公开。基于这两点,使得我们能够获取的输电线路故障图片相对较少。


技术实现要素:

16.为解决上述问题,本发明公开了一种基于超高分辨率图片的无人机电力巡线故障检测方法。本发明采用滑动窗口对图片切分,采用mosaic数据增强的方法去扩充原始数据集,根据自定义数据集自适应计算锚框,进行自适应图片缩放以及具有更细粒度特性和更密集的新网络体系结构和损失函数,有效提高了输电线路故障检测的准确率。
17.为实现上述目的,本发明的技术方案为:
18.一种基于超高分辨率图片的无人机电力巡线故障检测方法,包括如下步骤:
19.步骤一、建立无人机航拍输电线路故障类型图片数据集;
20.步骤二、建立yolo检测模型,yolo检测模型包括滑动窗口切图单元,滑动窗口切图单元采用滑动窗口对无人机航拍输电线路故障类型图片数据集切图得到若干低分辨率的切图和对应的xml文件;
21.步骤三、yolo检测模型通过低分辨率的切图和对应的xml文件进行训练,得到训练好的yolo检测模型;
22.步骤四、对待检测的无人机航拍输电线路故障类型图片输入训练好的yolo检测模型得到检测结果。
23.进一步的改进,所述步骤一中,无人机航拍输电线路故障类型图片通过自主采集和网络爬取相结合得到以及通过基于仿射变换的方法进行数据集增强得到。
24.进一步的改进,所述步骤二中,采用滑动窗口切图的步骤如下:首先使用labelimg标注软件对超高分率原始图片进行标注获取xml标注文件,然后进行剪切得到低分率的图片和与之对应的xml文件,并重新命名。
25.4.如权利要求2所述的基于超高分辨率图片的无人机电力巡线故障检测方法,其特征在于,所述低分率的图片的重叠率为20%,长宽为960*960。
26.进一步的改进,所述步骤二中,在yolo检测模型中,对cspdarknet53进行改进,变为csp*_x;*代表用户自定义的数量,值越大表示提取特征的能力越强,相应的训练时间和测试时间也会变长,模型规格选择x,是最重量级的也是最大的模型;yolo检测模型包括输入端、特征提取部分、特征融合部分和结果输出部分;特征提取部分。
27.进一步的改进,所述特征提取部分包括滑动窗口切图单元,滑动窗口切图单元为focus结构;滑动窗口切图单元的darknet53网络加入csp结构,即在darknet53网络的残差块外再加入一个卷积分支,darknet53网络的最后加入spp网络;
28.所述特征融合部分采用特征金字塔网络和路径聚合网络;特征金字塔网络由自上向下部分和自下向上部分组成;其中,自上而下部分的网络用于提取航拍图片的特征,自下而上部分用于融合不同尺度的特征信息;路径聚合网络用于创建自下而上的路径,缩短信息传播路径,利用low

level特征层中存储的精确定位信息,底层基础信息向高层传播以帮助进行分类和定;
29.结果输出部分采用三种不同尺度的特征层去预测最终的结果。
30.进一步的改进,所述三种不同尺度的特征层包括40*40*(c+5)*3、80*80*(c+5)*3、160*160*(c+5)*3三种,其中c代表故障类别数,5包括(xmin,ymin,xmax,ymax,confidence)五个元素,表示矩阵框;xmin,ymin分别表示矩阵框左上角坐标的横坐标和纵坐标、xmax,ymax分别表示矩阵框右下角坐标的横坐标和纵坐标、confidence存在物体的概率,3表示3个锚框。
31.进一步的改进,所述步骤三中进行训练时,建立l
classification
表示分类损失函数,进行故障分类:
32.需要先经过sigmoid激活函数激活,得到对应第i个类别的概率值;其中sigmoid的公式为:
[0033][0034]
x
i
表示第i个样本的特征,e表示自然常数;p
i
表示对应第i个类别的概率值;
[0035]
bceloss的公式为:
[0036][0037]
其中,l
classification
表示分类损失函数,s表示特征层的大小,i表示特征层第i个网格,j表示第j个锚框,classes表示类别总类,表示真实值,p
i
(c)表示预测值;
[0038]
建立localization loss定位损失函数:
[0039][0040]
其中,ciou loss表示定位损失函数,ciou表示锚框和预测框的完整交并比,iou表示锚框和预测框的交并比,distance_2表示两个中心点的欧氏距离,distance_c表示对角线距离;
[0041]
其中π表示圆周率,w
gt
表示真实框的宽,h
gt
表示真实框的高,w
p
表示预测框的宽,h
p
表示预测框的高;
[0042]
建立confidence loss定位损失函数:
[0043][0044]
其中,l
confidence
表示置信度损失函数,s表示特征层的大小,i表示特征层第i个网格,j表示第j个锚框,,表示第i个网格的第j个锚框存在物体,表示第i个网格的第j个锚框不存在物体,表示真实值,表示预测值;b表示锚框数量,表示第i个网络第
j个锚框的预测值,表示第i个网络第j个锚框的真实值;λ
noobj
表示超参数;
[0045]
训练使得yolo检测模型总的损失函数l最小,yolo检测模型总的损失函数l为:
[0046]
l=l
classification
+l
localization
+l
confidence
[0047]
进一步的改进,所述yolo检测模型进行目标检测时,对低分辨率的切图进行缩放,其中的缩放比例通过如下步骤确定:
[0048]
设低分辨率的切图被缩放为预定义尺寸a*b,低分辨率的切图对应的原图尺寸为a’*b’;计算a/a’和b/b’的值,选择其中数值较小的值作为低分辨率的切图的缩放系数,低分辨率的切图对应的原始图片的长和宽均乘以缩放系数,得到缩放后的图片,然后缩放后的图片的长减去缩放后的图片的宽;再采用numpy中np.mod取余数的方式得到n个像素,缩放后的图片的宽度的顶部和底部的填充像素数均为n/2。
[0049]
本发明的优点:
[0050]
本发明采用滑动窗口对图片切分,采用mosaic数据增强的方法去扩充原始数据集,根据自定义数据集自适应计算锚框,进行自适应图片缩放以及具有更细粒度特性和更密集的新网络体系结构和损失函数,有效提高了输电线路故障检测的准确率。
附图说明
[0051]
图1为滑动窗口切割切割图像的图;
[0052]
图2为传统填充的方式示意图;
[0053]
图3为本发明传统填充的方式示意图;
[0054]
图4为用mosaic数据增强的图像;
[0055]
图5为对输入图片进行切片操作的流程示意图;
[0056]
图6为超高分辨率图像的输出的效果图;
[0057]
图7为模型性能pr曲线(只检测下述故障:防震锤生锈(damper)、绝缘子自爆(missinsulator)、鸟窝(nest)、u型环生锈(u_typerust)、三角板生锈(rust));
[0058]
图8为模型性能pr曲线(只检测下述故障:r销丢失(cotter))。
具体实施方式
[0059]
以下结合附图及实施例对本发明做进一步说明。
[0060]
本发明一种基于超高分辨率图片的无人机电力巡线故障检测方法。该方法的核心是:采用滑动窗口切分,采用mosaic数据增强的方法去扩充原始数据集,根据自定义数据集自适应计算锚框,自适应图片缩放以及具有更细粒度特性和更密集的新网络体系结构。
[0061]
(1)建立无人机航拍输电线路故障类型图片数据集
[0062]
(a)自主采集和网络爬取相结合的数据收集研究
[0063]
(b)基于仿射变换的方法进行数据集增强的研究
[0064]
(2)采用滑动窗口切图
[0065]
首先使用labelimg标注软件对超高分率原始图片进行标注获取xml标注文件(000001.jpg有000001.xml与之对应),然后对它们进行剪切得到低分率的图片和与之对应的xml文件,并对其重新命名(注:我们考虑有重叠的滑动窗口切图,对不存在任何故障类型
的低分率切图不进行保存)(000001_768_768.jpg和000001_768_768.xml以及000001_1536_768.jpg和000001_1536_768.xml),用这些低分率的图片和与之对应的xml文件来进行网络训练。注:从超高分辨率的图片剪切获取低分率的图片中可以自定义低分率的长宽(默认960*960)以及重叠率(默认20%),这根据实际数据进行灵活的手动调整。
[0066]
选择带重叠率的滑动窗口切割的方法是为了避免两张小图之间,一些目标正好被分割截断,比如分割的小图是960*960像素大小,则overlap可以设置为960*20%=192像素。如图1所示。
[0067]
(3)自适应锚框计算
[0068]
在yolo算法中,针对不同的训练数据集,都会预定义9个长宽不同的锚框,在网络训练中,网络会根据预定义的锚框输出预测框,进而和真实框groundtruth(通过labelimg软件标注获得)进行对比,计算两者的误差,再反向传播更新网络参数。我们通过采用k均值和遗传学习算法对自定义数据集进行分析,获得适合自定义数据集中对象边界框预测的预设锚定框。同时我们将自适应锚框计算集成在模型当中,在训练不同部分时,自适应锚框可以进行相应的改变。而传统的锚框计算需要单独使用k均值聚类算法进行单独计算,而且只有在数据准备完成之后才能确定,并且在模型训练过程中不会自适应进行调整。
[0069]
(4)自适应图片缩放
[0070]
在通用的目标检测算法中,不同的图片长宽都会不同,因此常采用的方式是将原始图片统一缩放到一个标准尺寸(用户自定义),再输入训练好的网络模型中进行检测。在实践使用过程中,很多图片的长宽比是不同的,因此缩放填充后,两端的黑边大小都不同,因此如果填充过多,会造成信息冗余,影响检测速度
[0071]
例如:传统填充的方式如图2所示
[0072]
在项目实际使用时,很多图片的长宽比不同,上述这种对原始图片进行尺寸缩放填充的比较多,存在信息冗余,影响推理速度。我们对此进行改进对原始图片自适应的添加最少的黑边,如图3所示。
[0073]
(b)计算缩放后的尺寸
[0074]
第一步:原始图片缩放尺寸为640*640,都除以原始图片的尺寸后,可以得到0.5333和0.8两个缩放系数,选择小的缩放系数。
[0075]
(b)计算缩放后的尺寸
[0076]
原始图片的长宽都乘以最小的缩放系数0.5333宽变成了640,而高变成了426。
[0077]
(c)计算填充数值
[0078]
第三步:将640

426=214,得到原本需要填充的高度。再采用numpy中np.mod取余数的方式,得到22个像素,再除以2,即得到图片高度两端需要填充的数值。
[0079]
训练时没有采用缩减黑边的方式,还是采用传统填充的方式,即缩放到640*640大小。只是在测试,使用模型推理时,才采用缩减黑边的方式,提高目标检测,推理的速度。
[0080]
(5)采用mosaic数据增强
suppression,nms)操作筛选不同置信度下的锚框,抑制置信度比较低的锚框。在yolov5中,使用加权的nms,在筛选锚框的过程中,将锚框的置信度作为权重,得到新的矩形框,把该矩形框作为最终的预测矩形框,再将置信度低于阈值的锚框进行剔除。
[0092]
(6)目标函数
[0093]
(a)classification loss分类损失函数
[0094]
对应分类任务,输出的标签是互斥的。如某一个输电线路故障可能是绝缘子破损、r销丢失、防震锤生锈等,且该故障只可能是三种类别中的一种。此时将会使用softmax函数将三者的预测值转换为总和为1的概率值,并分类为概率最高的那一类。
[0095]
(a)我们在计算分类损失时使用bcewithlogitsloss损失函数:其中sigmoid的公式为:
[0096][0097]
x
i
表示第i个样本的特征,e表示自然常数;p
i
表示对应第i个类别的概率值;
[0098]
bceloss的公式为:
[0099][0100]
其中,l
classification
表示分类损失函数,s表示特征层的大小,i表示特征层第i个网格,j表示第j个锚框,classes表示类别总类,表示真实值,p
i
(c)表示预测值;
[0101]
(b)建立localization loss定位损失函数:
[0102][0103]
其中,ciou loss表示定位损失函数,ciou表示complete intersection over union,ciou完整交并比,iou表示intersection over union,iou交并比,distance_2表示两个中心点的欧氏距离,distance_c表示对角线距离;
[0104]
其中π表示圆周率,w
gt
表示真实框的宽,h
gt
表示真实框的高,w
p
表示预测框的宽,h
p
表示预测框的高;
[0105]
(c)建立confidence loss定位损失函数:
[0106][0107]
其中,表示置信度损失函数,s表示特征层的大小,i表示特征层第i个网格,j表示第j个锚框,classes表示类别总类,表示第i个网格的第j个锚框存在物体,表示第i个网格的第j个锚框不存在物体,表示真实值,c
i
表示预测值;
[0108]
训练使得yolo检测模型总的损失函数l为:
[0109]
l=l
classification
+l
localization
+l
confidence
[0110]
(7)yolov5的模型分为4种,分别为s、m、l、x分别适用于不同的实际需求,其s模型速度最快,精度最低,模型最小,x模型速度最慢,精度最高,模型最大。在训练过程中,我们采用adam优化器对总目标函数进行优化。通过利用训练数据对网络模型进行训练,我们可以得到输电线故障检测模型。
[0111]
其中s、m、l、x模型的主要区别如下所示:
[0112]
(a)不同网络的深度
[0113]
网络模型采用了两种不同csp结构,即csp1和csp2,其中csp1结构主要应用于backbone部分,csp2结构主要应用于neck部分。注:四种yolov5网络结构中每个csp1和csp2结构的深度都是不同的。
[0114]
对于csp1结构,第一个csp1中使用1个残差组件,故命名为csp1_1,其余依次类推。
[0115]
对于csp2结构,第一个csp2中使用1组卷积,故命名为csp2_1,其余依次类推。
[0116]
同网络的宽度:
[0117]
四种yolov5网络结构在不同阶段的卷积核的数量都是不一样的。因此会直接影响卷积后的特征图的厚度。例如,在第一个focus结构中,最后的卷积操作,其卷积核的数量是32个,因此经过focus结构,其特征图变成320*320*32。
[0118]
8)使用测试集数据去验证训练好的yolov5模型的实际识别效果。
[0119]
(a)对待检测的超高分辨率的图片首先使用带重叠率的滑动窗口切割的方法进行切割获得很多低分辨率的切图;
[0120]
(b)将每个切图送入训练好的网络模型中进行检测,并将单个低分辨率切图检测结果进行保存,待所有低分辨率的切图检测完成之后,将所有低分辨率的切图的检测结果转换到原始超高分辨率的图片上,然后对原始超高分辨率图片上的检测结果做一次非极大值抑制操作,将同一个目标的很多重复框进行去除,只保留最好的一个矩形框。这样,我们就可以将很多小目标故障物体进行检出。在测试阶段集成测试时间增强(test time augmentation,tta),将输入的测试图片进行翻转、旋转等数据增强操作,并最后对同一样本的不同数据增强的结果根据任务需求进行平均数据处理。
[0121]
(9)具体实验过程
[0122]
本发明目前只检测输电线防震锤生锈(damper)、绝缘子自爆(missinsulator)、鸟窝(nest)、u型环生锈(u_typerust)、三角板生锈(rust)、r销丢失(cotter)共6种类型的故障,本发明不限于以上6个故障的检测。我们在实际实验过程中发现不同尺度的故障目标容易产生误检,我们采用融合不同尺度图像的检测模型结果,来解决由此产生的问题。我们针对r销丢失和其它故障类型目标分别训练了一个检测模型,这两个检测模型的输入图像尺度也不一样,测试图像时,将不同检测模型、不同低分辨率切图的检测结果合并在一起就得到最终一张超高分辨率图像的输出。
[0123]
其效果如图6所示。
[0124]
性能分析:
[0125]
如下图所示,显示了两种模型的pr曲线和每个故障类别的ap值。我们通过精度(precision)、召回率(recall)、每个故障类别的ap和map进行模型评估。
[0126]
一些相关性的定义。
[0127]
true positive(tp)表示真正结果为正例,预测结果也是正例(与真实标注框(ground truth)区域的iou>=0.5,其中ground truth由人工标注)。
[0128]
false positive(fp)表示真正结果为负例,预测结果却是正例,(与真实标注框(ground truth)区域的iou<0.5,其中ground truth由人工标注)。
[0129]
true negative(tn)表示真实结果为正例,预测结果却是负例(遗漏的ground truth区域)。
[0130]
false negative(fn)表示真实结果为负例,预测结果也是负例(背景区域)。
[0131]
其中:
[0132][0133][0134]
从图7和图8中可以看出,precision高时,recall往往偏低;而recall高时,precision往往偏低,即precision和recall是一对矛盾的性能度量指标。在一般情况下,我们对模型预测的结果样例进行排序,排在前面的是模型认为“最可能”是正例的样本,排在最后的则是模型认为“最不可能”是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的precision和recall。然后以precision为纵轴,recall为横纵作图,就得到pr曲线。当recall=1且precision=1,这意味着fn=0,fp=0,此时模型的效果非常完美,由此可以知道,越靠近右上角,说明模型效果越好。
[0135]
防震锤生锈(damper)精度98.1%、绝缘子自爆(missinsulator)精度86.1%、鸟窝(nest)精度78.8%、u型环生锈(u_typerust)精度93.6%、三角板生锈(rust)精度(98.3%)整个模型的map@0.5为91%。r销丢失(cotter)精度62.9%整个模型的map@0.5为62.9%。整体上看,本发明具有良好的精度。
[0136]
尽管本发明的实施方案已公开如上,但并不仅仅限于说明书和实施方案中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里所示出与描述的图例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1