代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架

这篇具有很好参考价值的文章主要介绍了代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

点云PCL免费知识星球,点云论文速读。

文章:Surround-view Fisheye BEV-Perception for Valet Parking: Dataset, Baseline and Distortion insensitive Multi-task Framework

作者:Zizhang Wu1& Yuanzhu Gan1& Xianzhi Li2∗ Yunzhe Wu1 Xiaoquan Wang1 Tianhao Xu3 Fan Wang1

编辑:点云PCL

欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

代客泊车场景下的环视鱼眼相机的感知是自动驾驶的基础和关键,停车场的环境条件表现不同于普通的公共数据集,例如不完美的光线和空间,这对感知性能有很大影响,大多数基于公共数据集的现有网络可能会概括这些代客泊车场景的次优结果,也会受到鱼眼失真的影响。在这篇文章中,我们介绍了一个新的大型鱼眼数据集,称为鱼眼泊车数据集(FPD),以促进在处理不同的现实全景停车场景案例方面的研究,值得注意的是,我们编译的FPD在不同的环视图感知任务中表现出优异的特性。此外还提出了我们的实时畸变不敏感多任务感知网络(FPNet)框架,该框架通过增强鱼眼失真操作和多任务轻量化设计来改善环视图鱼眼BEV感知。大量实验验证了我们方法的有效性和数据集的异常下的可推广性。

主要贡献

为满足自动驾驶开发的不断提高的要求,过去十年中,先驱性工作创造了许多数据集,这些数据集涵盖了大多数自动驾驶任务,如物体检测,语义分割,深度估计,车道检测,运动估计等,为自动驾驶做出了巨大贡献。然而,这些数据集几乎都是针孔相机数据集,视野受限。实际上,广泛的视觉任务也采用全景鱼眼相机监视周围环境,因为它们具有大的视场(FoV)和足够稳定的性能。当自车可以使用四个鱼眼相机实现360度感知,这有助于大规模生产,此外,全向相机也捕捉360度的视野,在水平平面上覆盖了一个完整的圆。Valeo发布了第一个鱼眼数据集Woodscape,以鼓励鱼眼模型的开发,但是由于数据保护限制,Woodscape没有发布LiDAR地面真值,KITTI360提供了另一个包含丰富传感信息(包括针孔和鱼眼相机)的大规模数据集,对于全向相机,工业界和学术界提供了像Stanford2D3D,Matterport3D,360D,PanoSUNCG 等数据集用于全向视觉感知,然而,这些数据集通常关注地面以上的自动驾驶场景,如城市、农村和高速公路。目前尚无针对代客泊车场景的公开基准数据集,我们的鱼眼停车数据集(FPD)可以填补这一空白,促进研究处理真实世界的停车场景。

大多数公共感知方法设计针对针孔图像的模块,这些方法进行透视投影,对相机畸变关注较少,然而,当使用广角摄像头(如鱼眼相机或全向相机)时,研究人员必须关注较大的畸变和其他问题。环视自动驾驶系统通常采用鱼眼相机实现周围环境的感知,构建特定组件来处理畸变。全向相机揭示了在360◦全景图像中涉及的更高复杂性和畸变,全向图像感知还需要处理畸变和由较大分辨率、图像预处理和知识转换等问题引起的问题。表I展示了三种成像传感器的更多比较。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

FPD鱼眼泊车数据集专注于代客泊车环视感知任务,并填补了处理现实停车场场景研究的空缺,此外,在FPD上提供基线方案,提出了针对环视鱼眼感知任务的实时抗畸变多任务网络FPNet,包括2D物体检测,单目3D物体检测,俯视图感知和单目稠密深度估计。该网络在轻量级和准确性之间取得平衡,并具有特殊的模块来处理鱼眼畸变。我们的贡献总结如下:

 • 我们构建了第一个鱼眼泊车数据集FPD,专注于环视鱼眼感知,包括2D物体检测,3D物体检测,鸟瞰图感知和深度估计,贡献了FPD包括超过40万张鱼眼图像。

 • 我们提出了我们的FPD基线方案:针对环视感知任务的抗畸变多任务框架FPNet,特别是俯视图感知。FPNet利用特殊的畸变模块和轻量级设计实现了实时,抗畸变和准确性能。

 • 综合实验验证了我们收集的FPD数据集的实用性和FPNet的有效性。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图1,停车场内的几个代客泊车场景,包括车辆相遇、车辆跟随、车辆穿越、车辆驶出、人员跟随和人员绕圈等。

主要内容

Fisheye停车数据集(FPD),包括数据收集和注释过程、数据集描述和显著特征等方面的详细内容。

A.数据收集 

为确保自动驾驶场景的多样性,我们在三个城市、100多个停车场、白天和晚上等不同条件下,拍摄了超过400个视频以及激光雷达的点云序列。图2展示了我们收集到的几个真实的鱼眼停车场景图像。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图2. 我们收集的真实代客泊车场景的图例,包括不同的停车条件、不同的光照条件和不同的遮挡。

具体来说,我们使用了RoboSense RSRuby作为主雷达,它有128个光束,10Hz的捕获频率,360度水平视场和-25度到+15度的垂直视场。此外选择了四个纵目鱼眼RGB相机,分辨率为1920×1280,捕获频率为20Hz。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图3,传感器的安装位置以及生成的图像或点云可视化,其中前保险杠的中心设置为自车辆坐标系的原点

图3展示了这些传感器的安装位置及它们产生的图像或点云的性能,在数据记录过程中,系统会对相机的视频和激光雷达的点云序列进行时间戳对齐,以备后续注释,此外,我们还进行了以下三个步骤的传感器校准过程,首先,我们可以通过初始工厂设置提供的镜头畸变查找表直接计算相机的内参,其次,我们通过测量设备,根据自车坐标系计算出激光雷达和相机的外参(x,y,z,pitch,yaw,roll),第三,我们通过对投影的激光雷达点和图像语义内容进行对齐,进一步校正相机的外参,如图5所示,我们通过上述校准将激光雷达点投影到图像平面,然后手动调整相机的外参,以使其与投影点和语义内容相匹配。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图5. 我们将激光雷达点投影到相机图像平面上以矫正相机的外参,其中颜色表示点的不同距离

为了覆盖停车场的各种真实场景,我们人为地安排了多种驾驶场景来收集数据,例如车辆相遇、车辆穿越和人员绕行等,如图1所示,这些是自动停车任务中常见但关键的场景。

B. 数据标注

与KITTI数据集相同的方式对数据集进行标注,即在每个物体的完整点云周围绘制紧密的边界框,不对所有物体的连续移动过程进行覆盖标注,相反删除类似的片段,并以三到五帧的间隔对数据进行标注,此外限制可见范围(在15米内),因此我们放弃了太远的物体,对于被遮挡的物体,如果遮挡率小于80%,我们保留3D边界框,通过标注员的经验想象完整的3D边界框,图6显示了我们标注标签的几个示例。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图6. 标注标签的可视化结果。(a) 拍摄的单目鱼眼图像; (b) 相关的2D对象标签(黄色边界框)和投影的3D对象标签(蓝色边界框); (c) 根据真值完成深度值计算的深度图。

我们的标注包含八个类别,包括汽车,卡车,行人,骑手,婴儿车,交通锥,摩托车和无停车标志,图4演示了八个类别的标注演示,其中蓝色边界框表示3D注释的2D可视化,从点云平面投影到图像平面,黄色边界框表示蓝色投影点的外部边界矩形,作为我们的2D目标检测ground truth,也在图6(b)中显示。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图4. 我们的数据注释包括八个类别,包括汽车、卡车、行人、骑行者、婴儿车、交通锥桶、摩托车和禁止停车标志

此外,通过校准和畸变参数将点云投影到单目图像中,用于稀疏深度图,然后,我们采用深度估计方法IP-Basic来创建更强的深度ground truth,如图6(c)所示。

C. 数据集描述 

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

表格II和图7展示了FPD的统计信息,总共,我们获得了超过400000个数据,其中每个数据包含四个鱼眼图像和一个带标注的点云,此外,每个数据附带一个内参、一个外参和一个鱼眼畸变参数,可以通过内参、外参和鱼眼畸变参数将点云标签投影到图像中,以获取2D物体边界框和深度ground truth。此外将FPD按比例分为训练、验证和测试集,比例为5:3:2,数量分别为210,000、126,000和84,000,日间和夜间场景的比例为2:1,此外,每个停车场平均有4000个数据组成了超过400000个标签,其中最频繁的类别是汽车、行人和交通锥,如图7所示。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图7. FPD在不同类别中的详细数据分布

D. 数据集特性 

作为第一个大规模实际的鱼眼数据集,FPD具有以下良好特性: 

1)第一个停车场景的鱼眼数据集:提供了第一个聚焦于多个自动驾驶任务的停车场景鱼眼数据集FPD,与公共数据集的自然场景有所不同,停车场景中的环境条件,例如光线和不透明度,显著增加了检测难度。针对各种困难的停车场景,FPD可以促进解决实际停车问题的研究。 

2)大规模数据:到目前为止,我们的FPD包含来自200多小时停车场景视频和点云序列的超过400,000个数据,未来将继续收集不同类型的停车场景,以丰富现有数据集。

 3)高质量和多样性:FPD覆盖了三个城市、来自不同时期的100多个停车场和不同的停车情况,此外精心挑选高分辨率的高质量图像和点云,确保我们的数据集的优越性。

 4)多用途:作为一个基于点云的数据集,FPD不仅可以用于三个任务(即2D目标检测、单目3D目标检测和深度估计),而且可以用于其他视觉任务,例如点云3D目标检测、2D或3D语义分割、视频目标检测,因此,FPD对于不同的任务具有多重用途。

畸变鲁棒的多任务框架

全景鱼眼单目畸变鲁棒多任务框架FPNet,图8展示了我们FPNet的框架,主要由共享特征提取器和多任务感知模块组成,包括2D物体检测头、3D物体检测头和深度估计。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图8 展示了我们FPNet的框架,主要由共享特征提取器和多任务感知模块组成,包括2D目标检测头、3D目标检测头和深度估计

共享特征提取器:为平衡性能和速度之间的权衡,我们选择DLA34作为共享特征提取器,此外应用一些改进措施以达到轻量级的要求,首先将输入图像的下采样比例从通常的4调整为8,这样可以节省大量时间,但仍保持准确性,其次,我们根据嵌入式设备上的推理时间,去除了一些冗余层,仍然具有很好的性能。

多任务感知:在从鱼眼单眼图像中提取特征后,通过多任务感知对我们的三个感知任务进行预测。通过Fisheye Distortion Module (FDM)实现了去畸变功能,它正确地建立了3D空间和2D图像平面之间的鱼眼投影,以排除畸变的干扰,该模块具有两个主要功能:

(i)通过投影3D地面真实值来产生2D标签;

(ii)从2D图像点还原3D位置,与针孔模型投影相比,鱼眼模型投影需要考虑鱼眼畸变的影响。

实验

1. FPD的结果:为了展示我们的FPNet方法的有效性,我们基于FPD进行了三个任务的基准评估,如表III所示。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

2)跨数据集评估:验证了我们的 FPD 在其他公共数据集上的泛化性能,在两个常规数据集 COCO 和 KITTI 上训练了 CenterNet对象检测模型和 DRO深度估计模型,如表 IV 所示。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

3) 定性结果:提供了关于FPD 的定性示例,如图 11 和图 10 所示。图 11 显示了一些泊车员停车场场景的定性结果。(b) 表示 2D 和 3D 投影结果,(c) 表示密集深度估计。我们的多任务网络满足不同泊车员停车场场景中的实时感知需求。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图10. FPD上更多物体和方向的定性结果,(a) 输入图像;(b) 2D目标检测结果(黄色框)和投影的3D目标检测结果(蓝色框);(c) 从3D结果得到的BEV可视化,其中红色边界框表示预测结果,蓝色部分表示物体的头部。

图 10 展示了更多物体和其他方向的可视化结果,值得注意的是,(c) 表示从 3D 检测结果的 BEV 可视化。从图 10 可以看出,我们的网络实现了对不同方向拥挤物体的良好感知表现。

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习

图11,FPD上几个代客泊车场景的定性结果,(a)输入图像; (b) 2D物体检测结果(黄色框)和投影的3D物体检测结果(蓝色框); (c) 估计的深度结果。

总结

本文提出了一个新的大规模鱼眼数据集,称为鱼眼泊车数据集(FPD),通过提供多样的环视停车场景,该数据集旨在帮助行业构建更安全的停车辅助驾驶系统,此外,我们提供了实时的多任务鱼眼感知网络(FPNet),以增强鱼眼畸变性能和各种轻量级设计,在FPD上的广泛实验验证了我们的FPNet的有效性,然而FPD仍有很大的发展空间,包括如何增强更多的数据多样性、简化我们的方法以及如何处理不断增加的数据和多样化的视觉任务的潜力,尽管如此,我们期望FPD能激发更多相关研究并促进停车场景下的环视感知性能。在未来,我们将进一步探索环视鱼眼BEV感知在代客泊车方面的应用,具体包括以下方面:

(1)探索激光雷达-相机融合感知,因为激光雷达点云提供更多的三维信息。

(2)探索轻量级图像特征提取器,以实现更强大的视觉特征。

(3)设计特定的技术来增强扭曲的鱼眼图像,以提高泛化能力。

(4)将我们的环视鱼眼BEV感知和数据集应用于其他任务,例如障碍物检测。

更多详细内容请加入智驾全栈与3D视觉学习星球

智驾全栈与3D视觉学习星球:主要针对智能驾驶全栈相关技术,3D/2D视觉技术学习分享的知识星球,将持续进行干货技术分享,知识点总结,代码解惑,最新paper分享,解疑答惑等等。星球邀请各个领域有持续分享能力的大佬加入我们,对入门者进行技术指导,对提问者知无不答。同时,星球将联合各知名企业发布自动驾驶,机器视觉等相关招聘信息和内推机会,创造一个在学习和就业上能够相互分享,互帮互助的技术人才聚集群。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

基于鱼眼相机的SLAM方法介绍

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架,人工智能,数码相机,深度学习文章来源地址https://www.toymoban.com/news/detail-523145.html

到了这里,关于代客泊车的环视图鱼眼BEV感知的数据集、基线方法和克服畸变的多任务框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 全景环视拼接,四路鱼眼摄像头,有个大概样子了

           用四路鱼眼摄像头去拼接全景环视图像,首先要用对相机进行标定,因为是鱼眼相机,用的函数应该是cv2.fisheye.initUndistortRectifyMap,再remap,不能用一般相机的标定函数,接着用cv2.getPerspectiveTransform,cv2.warpPerspective进行透视变换,进行拼接,现在是有点样子了,但代码

    2024年02月11日
    浏览(40)
  • 自动驾驶代客泊车360环式系统及倒车雷达功能规范

    1.     文档总概. 8 1.1.      范围. 8 1.2.      名词解释. 8 1.3.      相关应用文档. 8 1.3.1.      文档优先说明. 8 1.3.2.      政府法规与文件. 9 1.3.3.      行业规范与文件. 9 1.3.4.      百度及客户提供相关功能定义文档. 9 2.     系统概述. 10 2.1.      整车网络

    2024年01月21日
    浏览(53)
  • 【BEV感知】BEV-LaneDet:3D 车道线检测算法

    论文:https://arxiv.org/abs/2210.06006 GitHub:GitHub-gigo-team/bev_lane_det 介绍:这篇文章是 毫末智行 在单目场景下在bev视图下实现车道线检测的方法,其车道线检测的基础方法是源自于bev视图下车道线分割,再通过预测几个附加预测头用于辅助后处理。具体来讲创新点主要有三点: (

    2024年04月12日
    浏览(48)
  • BEV视觉3D感知算法梳理

    最近,基于BEV空间下的感知任务已经涌现出了众多优秀算法,并在多个自动驾驶公开数据集(KITTI,Waymo,nuScenes)上取得了非常不错的成绩。根据自动驾驶汽车上安装的传感器类型(视觉传感器:针孔/鱼眼相机传感器、激光雷达传感器、毫米波雷达传感器)对感知算法进行分

    2024年02月02日
    浏览(50)
  • 三. LiDAR和Camera融合的BEV感知算法-融合算法的基本介绍

    自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》,链接。记录下个人学习笔记, 仅供自己参考 本次课程我们来学习下课程第三章——LiDAR和Camera融合的BEV感知算法,先来了解下融合的基本概念 课程大纲可以看下面的思维导图 从第三章开始我们会针对详细的算法来

    2024年04月26日
    浏览(35)
  • 纯视觉都有哪些量产方案?单目3D感知在自动驾驶中的应用一览(3D检测/BEV/占用网络)

    尽管基于点云的3D目标检测算法性能不断提升,在KITTI和Nuscenes等榜单上碾压视觉方案。但是激光雷达相对高昂的造价和对各种复杂天气情况的敏感性限制激光雷达的应用范围,使得研究人员更多的探索基于视觉的3D检测。 纯视觉的3D检测输入一般是单目图像或多目图像,只需

    2024年03月19日
    浏览(59)
  • 【CV论文精读】【BEV感知】BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View

    【CV论文精读】【BEV感知】BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View BEVDet:鸟瞰下的高性能多摄像机三维目标检测 自动驾驶感知周围环境进行决策,这是视觉感知中最复杂的场景之一。范式创新在解决2D目标检测任务中的成功激励我们寻求一种优雅、可行和可

    2024年02月22日
    浏览(49)
  • 数据治理(二)-基线治理

    本文只是大概讲,基线任务治理方法,分为从基线owner和节点owner角度讲述分为两个部分:   Owner离职/转岗。   基线配置不合理。   高频预警/破线治理。   应急不及时治理。 2.1模型治理 2.1.1 ods类   超大DataX治理   多源sls日志   超大merge任务治理 2.1.2 dwd类   高频超大明细

    2024年04月11日
    浏览(30)
  • BEV(Bird’s-eye-view)三部曲之二:方法详解

    高度信息在自动驾驶中并不重要,BEV视角可以表达自动驾驶需要的大部分信息. BEV空间可以大致看作3D空间. BEV representation有利于多模态的融合 可解释性强,有助于对每一种传感器模态调试模型 扩展其它新的模态很方便 BEV representation有助于下游的prediction和planning任务 BEV语义分

    2023年04月08日
    浏览(37)
  • AHD同轴摄像头接入电脑USB录制视频的方法,AHD转USB,AI图像算法(ADAS\DMS\360环视\BSD\人脸识别),图像接入电脑处理

            在图像算法训练时,有时候需要接入电脑进行算法调试和处理,很多摄像头是AHD同轴信号,例如安防和汽车后装市场很多摄像头都是AHD同轴的接口,而电脑没有可以接入同轴的接口,所以需要转换成电脑可以接入的接口才可以将摄像头接入电脑,而USB绝对是最常用

    2024年02月09日
    浏览(138)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包