动态坏点校正(DPC)在低照度环境下的关键作用与实现策略

动态坏点校正(DPC)在低照度环境下的优化策略 本文深入探讨了动态坏点校正(DPC)技术在低照度环境下的优化策略,重点分析了信噪比下降、温度敏感性和增益非线性等挑战。通过自适应阈值策略、多尺度梯度融合算法和硬件协同优化,显著提升了坏点检测的准确性和效率,为图像传感器在弱光条件下的性能提升提供了实用解决方案。 阅读详情

1. 为什么低照度下,坏点成了“显眼包”?

如果你用过一些老旧的手机或者行车记录仪,在夜晚或者光线很暗的环境下拍照或录像,可能会发现画面里有一些特别扎眼的小白点或者小黑点,怎么晃都甩不掉。这些烦人的小点,十有八九就是图像传感器上的“坏点”。平时光线充足的时候,它们可能藏得很好,一旦环境变暗,就像舞台的聚光灯打在了它们身上,变得异常醒目。这背后,就是我们今天要深入聊的**动态坏点校正(DPC)**技术,尤其是在低照度这个“魔鬼考场”里,它如何成为拯救画质的“关键先生”。

简单来说,坏点就是传感器上那些“不听话”的像素。工厂生产时不可能做到十全十美,总会有个别像素点先天不足(制造缺陷),或者用久了“累坏了”(老化),导致它们无法正确响应光线。这些坏点主要分两种:静态坏点和动态坏点。静态坏点就像地图上固定不变的“钉子户”,位置和亮度特性是固定的,要么一直特别亮(亮点),要么一直特别暗(暗点)。对付它们,厂家通常会在出厂前做一次“人口普查”,生成一个坏点坐标表,后期处理时直接按表索骥,用周围好像素的值替换掉就行。

但问题来了,真正棘手的往往是动态坏点。这种坏点非常“狡猾”,它有点像人的“应激反应”。在正常光照下,它表现得和好像素差不多,你根本发现不了。但是,一旦环境光线变暗,为了看清东西,相机系统会做两件事:提高传感器的增益(ISO)和可能因长时间曝光导致传感器温度上升。恰恰是这两个操作,把动态坏点给“激活”了。增益放大,相当于把所有的信号(包括坏点的异常信号)都一起放大;温度升高,又会加剧传感器内部电子的热噪声。一叠加,原本微弱的坏点信号瞬间被放大成画面中刺眼的白斑或突兀的黑点。这就是为什么你在暗光环境下,坏点问题会突然爆发的原因。

所以,低照度不仅是考验相机进光能力的场景,更是检验传感器健康度和图像处理算法韧性的试金石。如果只用静态坏点表去校正,就像只带了旧地图去探险,根本无法应对路上新出现的“陷阱”(新产生的或受环境影响而显现的动态坏点)。因此,一套能够实时检测、实时矫正的动态坏点校正机制,对于提升暗光画质、保证成像稳定性来说,不是锦上添花,而是雪中送炭。它必须集成在图像信号处理(ISP)流水线的最前端,在原始数据还没被后续的降噪、色彩插值等处理“污染”之前,就赶紧把这些“捣乱分子”清理干净,否则坏点的影响会像墨汁滴入清水,扩散到整个画面。

2. 动态坏点校正(DPC)的核心:如何揪出“潜伏者”?

知道了动态坏点的危害,那怎么在复杂的图像数据里,实时地把它们找出来呢?这就像在一群正常交谈的人中,快速识别出那个在尖叫或者沉默不语的异常者。动态坏点检测的核心思想,就是基于邻域像素的对比。一个正常的像素点,它的亮度值应该和它周围的“邻居们”是和谐、渐变的,符合自然图像的连续性规律。而一个坏点,无论是过亮还是过暗,它都会显得与周围环境“格格不入”。

最经典、也最直观的检测算法是PINTO算法(或者叫八邻域比较法)。我刚开始做图像处理的时候,就亲手实现过这个算法,理解起来特别容易。它的操作步骤如下:

  1. 划定侦察范围:以当前待检测的像素为中心,看它周围的八个直接相邻的像素(上、下、左、右、左上、右上、左下、右下),构成一个3x3的侦察窗口。
  2. 计算差异值:分别计算中心像素与这八个邻居的亮度差值。
  3. 判断一致性:检查这八个差值。如果它们有正有负,说明中心像素和周围有亮有暗,是正常的边缘或纹理,判定为好点。
  4. 识别异常:如果八个差值全部是正数(意味着中心点比所有邻居都亮),或者全部是负数(中心点比所有邻居都暗),那就可疑了!
  5. 最终裁决:光可疑还不够,万一它就是个特别亮或特别暗的细节呢?所以需要加上阈值判断。如果这八个差值的绝对值,每一个都大于我们预设的一个阈值,那基本可以断定,这个点“坏掉了”,因为它与所有邻居的差异都异常地大。

这个算法用代码实现起来也很直接,我当年写的Demo核心逻辑大概是这样:

def detect_bad_pixel_8neighbor(center, neighbors, threshold):
    """
    center: 中心像素值
    neighbors: 包含8个周围像素值的列表
    threshold: 判定阈值
    """
    diffs = [center - n for n in neighbors]  # 计算与每个邻居的差值
    
    # 判断差值是否全正或全负
    all_positive = all(d > 0 for d in diffs)
    all_negative = all(d < 0 for d in diffs)
    
    if not (all_positive or all_negative):
        return False  # 正常点
    
    # 判断所有差值绝对值是否都超过阈值
    all_above_threshold = all(abs(d) > threshold for d in diffs)
    
    return all_above_threshold  # True则为坏点

但是,PINTO算法有个明显的软肋:怕边缘。在图像的边缘区域,像素值本身就会发生剧烈变化,一个位于真实物体边缘的好像素,它和某一侧邻居的差值也可能非常大,容易满足“全正/全负且超阈值”的条件,从而被误判为坏点。这就是所谓的“误杀”。为了解决这个问题,更鲁棒的算法被提出来,比如基于梯度方向的方法。

梯度法的思路更巧妙:它认为,在真正的边缘方向上,像素值的变化是平滑、连续的梯度。而一个坏点,无论处在哪个方向,它都会在所有方向上产生一个突兀的、高梯度值。算法会计算中心像素在水平、垂直、45度、135度这四个方向上的梯度(通常是二阶梯度,对噪声更鲁棒),然后找出梯度值最小的那个方向,认为这就是图像真实的边缘方向。接着,它会检查中心像素在这个“最平滑”方向上的梯度值是否仍然异常地高。如果高得离谱,远超其他方向,那就说明这个突兀点不是自然边缘的一部分,而是坏点。

这两种方法各有千秋。PINTO算法简单、计算量小,适合对功耗和实时性要求极高的嵌入式设备,但在复杂纹理场景下误检率高。梯度法更精准,尤其能有效避免边缘误判,但计算复杂度稍高。在实际的ISP芯片(比如海思的方案)里,工程师们往往会结合多种检测逻辑,甚至加入自适应阈值机制(阈值随图像整体噪声水平动态调整),在低照度高噪声环境下,适当放宽判定条件,避免把大量噪声点误判为坏点,实现检测准确率和鲁棒性的平衡。

3. 抓住坏点后,如何“优雅”地修复?

检测出坏点只是第一步,就像医生确诊了病情,接下来关键是怎么治。修复(矫正)的目标很明确:用一个新的、合理的像素值替换掉这个坏点的值,让这个位置看起来和周围环境“无缝衔接”,就像它从来没坏过一样。这里最忌讳的就是简单粗暴,比如直接用某个邻居的值覆盖,那样很容易在画面中留下生硬的“补丁”痕迹。

最常用、也最有效的矫正方法是中值滤波。具体操作是:把这个坏点所在的检测窗口(比如刚才的3x3或更大的5x5窗口)里,排除掉坏点本身,把剩下所有好像素的值拿出来,从小到大排序,然后取排在中间的那个值(中位数)来替代坏点。为什么用中值而不是平均值?这是中值滤波的妙处。平均值容易受到极端值的影响,如果窗口内恰好还有另一个噪声点,平均值就会被带偏。而中值对极端值不敏感,它能更好地代表这个局部区域的“典型”亮度水平,修复后的过渡更自然。

在低照度环境下,修复策略还需要一些特别的考量。暗光下图像信噪比低,噪声颗粒多。如果我们用的检测窗口较小(如3x3),可用的好像素样本就少,中值结果的可靠性会下降。因此,有些高级的DPC模块会采用自适应窗口或多方向插值的策略。

以梯度法检测为例,当它判定一个点为坏点,并且确定了图像最平滑的方向(比如是水平方向)后,它的修复就不是简单取中值了,而是会沿着这个边缘方向进行插值。例如,如果判断边缘是水平的,且坏点更靠近左边的邻居P4,那么修复值可能会这样计算:output = P4 + (P2 + P7 - P1 - P6)/2。这个公式的意图是,利用与坏点同一颜色通道、且在同一行上的像素(P2, P7, P1, P6)来估计水平方向上的亮度变化趋势,然后将这个趋势补偿到P4上,从而得到坏点位置应有的值。这种方法相当于在修复时“尊重”了图像的局部结构信息,修复效果比盲目的中值滤波要好得多,尤其能保持边缘的清晰度。

我曾在项目里对比过这两种修复方式。在处理一张有动态坏点的夜景RAW图时,简单3x3中值滤波后,坏点虽然没了,但那个小区域看起来有点“糊”,像被轻微涂抹过。而采用方向性插值修复后,坏点被干净地移除,同时砖墙的纹理和窗户的边缘都保持得很利落。当然,方向性插值的计算量更大,需要根据硬件资源(如DSP算力、内存带宽)来权衡选择。

4. 实战挑战:低照度DPC的参数调优与陷阱

理论很美好,但把动态DPC算法真正部署到产品里,尤其是在手机、安防摄像头这些对功耗和成本极其敏感的设备上,会遇到一大堆让人头疼的实战问题。调参过程,那真是“踩坑”的重灾区。

第一个大坑:阈值(Threshold)怎么设? 这是DPC算法的“灵敏度旋钮”。阈值设高了,算法变迟钝,一些较弱的坏点检测不出来,留在画面里碍眼;阈值设低了,算法变“神经质”,容易把正常的图像细节(特别是暗部噪声点)误判为坏点,导致图像被过度抹平,细节损失。在低照度下,这个矛盾尤其突出。因为增益一拉高,整个画面的噪声水平(尤其是随机噪声)飙升,这些噪声点在局部看,也可能满足“与周围差异大”的条件。

我的经验是,阈值绝对不能是个固定值。它必须是一个与传感器增益(ISO)和估计的图像噪声水平正相关的动态值。可以建立一个简单的查找表(LUT),在低增益(亮光)下使用较高的阈值,保证细节;在高增益(暗光)下,使用较低的阈值,但同时要结合更严格的判定逻辑(比如梯度法中的多重判断条件),以防误杀。有时候,甚至需要引入一个“噪声模型”,实时估算当前ISO下的噪声强度,让阈值略高于噪声强度,这样才能在去除坏点和保留细节之间找到最佳平衡点。

第二个挑战:计算复杂性与实时性的博弈。 全图每个像素都用5x5窗口做梯度计算?对于动辄几百万像素的传感器,这个计算量在硬件上很难实时完成(功耗和发热受不了)。所以,工程上做了很多优化。比如,行缓冲(Line Buffer)处理是一种常见策略。ISP不需要同时缓存整个画面,而是只缓存当前处理行及其上下几行(例如,对于5x5窗口,需要缓存5行数据),以流水线方式逐像素处理。这大大降低了对片上内存的需求。

另一种思路是降低检测频率。不是每一帧、每一个像素都做全检测。可以每N帧做一次全图坏点检测,将结果缓存起来,后续帧直接使用这个“动态坏点表”进行矫正,同时用更轻量级的逻辑去检测是否有新坏点产生。海思的一些ISP芯片文档里就提到,动态坏点校正可以配置为不同的强度等级,用户可以在画质和功耗之间做选择。

第三个容易忽略的点:与ISP流水线其他模块的联动。 DPC不是孤立工作的。它处在ISP的最前端,后面紧跟着可能就是降噪(NR)和去马赛克(Demosaic)模块。这里有个顺序问题:是先做DPC,还是先做Demosaic?传统做法是先DPC,在RAW域(拜耳格式)就干掉坏点,防止它污染色彩插值。但也有研究尝试将DPC与Demosaic结合,先做初步插值得到全彩色信息,再利用彩色通道间的相关性进行更准确的坏点检测与修复。这属于更高级的算法,效果可能更好,但实现也更复杂。

在实际调试中,我经常需要把DPC模块打开和关闭,在监视器上反复对比同一暗光场景。关掉DPC,看到的是闪烁的坏点;打开DPC但参数不对,可能看到的是被抹平的暗部或者新引入的伪影。这个过程很磨人,但也是确保最终成像质量的必经之路。记住,没有“放之四海而皆准”的参数模板,针对特定的传感器型号和主控芯片,都必须经过细致的实拍调优,才能让动态DPC在低照度下稳定、高效地工作。

Python+OpenCV实现坏点检测:5种工业视觉质检中的DPC优化技巧 本文详细介绍了如何利用Python和OpenCV实现工业视觉中的坏点检测与校正(DPC),并分享了五种经过海思平台验证的实战优化技巧。内容涵盖自适应阈值、多方向梯度法、动态坏点追踪等核心方法,旨在帮助工程师构建高鲁棒性、可实时处理的产线级视觉质检系统,有效提升检测良率。 阅读详情

相关推荐

ISP图像处理中的‘隐形杀手’:详解坏点校正(DPCC)与Raw域降噪(DPF)的权衡艺术

本文深入探讨ISP图像处理中的坏点校正(DPCC)与Raw域降噪(DPF)技术,解析静态坏点与动态坏点的区别及校正策略,分析过度校正对图像锐度的影响。通过实际案例对比,提供针对不同应用场景的优化配置方案,帮助工程师在噪声抑制与细节保留之间找到最佳平衡。

weixin_29294597的博客 155

低成本Sensor的坏点校正实战:如何用动态DPC提升监控摄像头画质

本文针对安防监控中低成本图像传感器(Sensor)的动态坏点问题,深入探讨了动态坏点校正(DPC)技术的实战应用。文章分析了动态坏点随温度、增益变化的特性,对比了静态DPC的局限,并详细阐述了在Hi3516DV300等主流安防SoC的ISP中实现动态DPC的核心算法、参数配置及调优策略,旨在帮助工程师在抑制坏点与保留图像细节间找到最佳平衡,有效提升监控摄像头画质。

weixin_29231221的博客 248

避坑指南:ISP图像调试中那些‘奇怪’问题的来源与解法(DPC坏点、LSC暗角、Color Shading)

本文深入解析ISP图像调试中常见的DPC坏点、LSC暗角和Color Shading等问题的物理本质与解决方案。通过详细的调试方法论和实战案例,帮助工程师快速定位和解决图像质量问题,提升摄像头模组的成像性能。文章特别强调ISP tuning过程中的关键参数优化和跨模块耦合问题的处理技巧。

weixin_28707365的博客 375

海思Hi3519V101芯片的ISP实战:5×5窗口动态坏点检测算法详解与优化

本文深入解析海思Hi3519V101芯片的ISP技术,重点介绍5×5窗口动态坏点检测算法(DPC)的优化策略。通过硬件化实现和工业级参数调优,显著提升安防监控在极端环境下的成像质量,为嵌入式开发提供实用指南。

tree的博客 745

海思ISP实战:解锁IMX585 LCG/HCG模式,优化极低照度画质

本文深入探讨了海思ISP在IMX585传感器上的实战应用,重点解析了LCG/HCG双增益模式在极低照度环境下的画质优化技巧。通过帧率调整、3DNR参数调优和增益分配策略等实战方法,有效提升低照度场景下的图像质量,为安防监控和工业检测等应用提供专业解决方案。

weixin_30338481的博客 465

图像传感器坏点修复:从PINTO算法到梯度法的ISP实战指南

本文深入探讨了图像传感器坏点修复的两种主流算法——PINTO算法和梯度法,并提供了ISP实战指南。通过详细解析算法原理、工程实践和性能优化,帮助工程师有效解决工业视觉系统中的坏点问题,提升检测准确率。文章特别强调了在RAW域处理的重要性以及算法选型的关键因素。

weixin_30654583的博客 300

避开图像处理第一个坑:详解ISP中DPC模块的MATLAB实现与参数调优(附代码)

本文深入解析了ISP中DPC模块的MATLAB实现与参数调优,帮助开发者避开图像处理中的常见陷阱。通过详细讲解坏点校正算法、自适应阈值设计、多Bayer格式处理等关键技术,并提供可复现的代码示例,助力工程师在嵌入式平台高效实现DPC功能。

weixin_30256901的博客 446

手把手教你调试IPC相机ISP:从黑电平到3DNR的完整避坑指南

本文提供了一份完整的IPC相机ISP调试指南,从黑电平校正、镜头阴影与坏点校正等基础校准入手,系统阐述了AE、AWB、CCM、Gamma、LDCI、Dehaze以及Demosaic与3DNR等核心模块的调试顺序与联动关系。文章重点揭示了各环节间的强耦合性,并提供了从黑电平到3DNR的清晰调试路径与实用避坑技巧,旨在帮助工程师建立系统性的调试思维,高效解决画面偏色、噪点多、细节模糊等常见问题。

weixin_29254029的博客 327

ISP调试核心技术解析:从光学尺寸到坏点矫正

本文深入解析ISP调试的核心技术,涵盖从光学尺寸、CRA匹配、FSI/BSI结构到像素合并与动态坏点矫正等关键环节。文章强调光学尺寸是感光能力的物理基础,并详细探讨了如何通过CRA匹配优化镜头与传感器协同,以及利用像素合并技术平衡分辨率与感光能力。此外,还介绍了动态坏点矫正技术如何实时修复传感器缺陷,为高质量图像处理奠定基础。

i7j8k9l的博客 377

063、坏点校正:静态坏点表、动态坏点检测与邻域插值替换算法

本文介绍了图像传感器坏点校正的核心技术方案,主要包含三个关键部分: 静态坏点表:通过出厂标定构建位图索引,实现O(1)复杂度的坏点查询,存储优化避免性能损耗。 动态坏点检测:采用梯度法与统计法结合的方式,梯度法通过四方向梯度差异识别异常像素,统计法则通过直方图分析发现离群值。其中梯度阈值需随ISO增益动态调整。 邻域插值替换:提出方向加权插值算法,先判断边缘方向再选择插值策略,在平坦区采用四方向加权平均,在边缘区域则沿边缘方向插值,既保护了边缘又避免了简单平均导致的问题。 文章通过实际案例说明坏点校正的重要

sundong_81的博客 52

128、坏点标定与动态补偿策略——静态坏点表生成及瑞芯微/海思ISP的实时坏点校正协同

文章摘要: 本文探讨了车载摄像头模组中坏点问题的解决方案,重点分析了静态坏点表生成与动态补偿策略的协同机制。通过海思3559和瑞芯微RK3588平台的实际案例,详细介绍了坏点标定的关键步骤(暗场/亮场检测、阈值设置、边缘保护插值等)及产线流程设计,并对比了不同ISP的坏点校正逻辑差异。文章指出坏点校正需兼顾静态查表与动态算法,强调量产中需监控坏点随温度/老化的漂移现象,建议在架构设计时预留余量并建立"动态转静态"的闭环机制,以避免批量性客诉风险。最后总结了坏点校正与降噪模块的调优顺序及整机验证的重要性。

zzfmlxs的博客 17

图像信号处理实战指南:openISP如何从RAW数据重塑高质量图像

在数字图像处理领域,图像信号处理器(ISP)是连接传感器原始数据与人类视觉感知的关键桥梁。openISP作为一款开源图像信号处理器,为开发者提供了从RAW数据到高质量RGB/YUV图像的完整解决方案。无论是手机摄像头、监控系统还是工业视觉应用,openISP都能提供专业的图像处理能力。本指南将带你深入理解图像信号处理的核心原理,掌握从传感器原始数据到最终图像的完整处理流程。 ## 问题:为什么你

gitblog_00606的博客 437

096、DPC坏点校正的静态表与动态检测协同——在联发科Imagiq平台上的调优与验证方法

本文探讨了联发科Imagiq平台DPC(坏点校正)调优的关键问题与解决方案。通过实际案例分析,揭示了静态表与动态检测协同工作的复杂性:静态表在高温环境下的失效、动态检测对纹理区域的误判,以及两者优先级冲突导致的画面异常。文章详细介绍了温度补偿表分级、置信度设置、双域处理等调优方法,并提出了包含温度循环的动态验证流程。作者强调DPC调优需结合场景特性,在漏检与误判间寻找平衡,建议建立坏点数据库进行长期跟踪,同时利用隐藏调试接口优化参数配置。最终指出,稳定的DPC效果需要针对特定使用场景进行定制化调整。

zzfmlxs的博客 11

从传感器到屏幕:揭秘ISP图像处理流水线的核心算法与场景适配

本文深入解析ISP图像处理流水线的核心算法与场景适配,从传感器原始数据到最终成像的全过程。探讨了解马赛克、3A控制环、降噪与细节增强等关键技术,以及在手机摄影和自动驾驶等场景中的优化策略。特别关注了神经网络加速和计算摄影等前沿趋势,为图像处理技术的未来发展提供见解。

weixin_30315905的博客 494

Defect Pixel Mapping(DPC)建表与修复算法:机制详解与平台实战路径

Defect Pixel Mapping(DPC)是成像系统中关键的坏点定位与修复机制,区别于 Bad Pixel Correction(BPC)在运行时动态检测的策略,DPC 更侧重于**精确定义与持久化记录** Sensor 中异常像素位置,并在图像处理路径中使用固定策略进行替代。本文将围绕 DPC 建表流程、表结构规范、典型修复算法、平台适配与工程验证路径等内容,结合高通、MTK 等主流平台实践进行深入解析,为开发者提供从模组调试到量产维护的系统性参考。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1310

023、君正T41/T40 ISP超低功耗平台:消费类影像产品的调优与量产适配

君正T41/T40 ISP平台在消费类影像产品中的调优与量产适配经验总结:该平台主打超低功耗(1080P30下整机功耗<1W),需针对性优化而非套用高通/海思方案。关键点包括:AE需配合sensor预曝光策略,注意消隐区寄存器写入时序;AWB建议采用场景预设锁定色温范围;DPC阈值应调高避免过度抹除细节;降噪强度需平衡拖影与噪点。量产注意sensor上电时序(reset后需10ms延时)和ISP时钟动态管理,避免抓拍卡顿。调优核心是接受算力局限,追求"够用且稳定",通过手动逐参数优化确保量产一致性,充分发挥

zzfmlxs的博客 288

【芯片视觉引擎的核心:ISP模块设计全景解读】

在智能手机、智能汽车、安防监控和工业视觉蓬勃发展的今天,一颗小小的摄像头背后,离不开一个关键芯片模块——ISP(Image Signal Processor,图像信号处理器)。ISP的核心使命,就是通过一系列精密算法,将这些"原材料"还原成清晰、自然的彩色图像。同时,ISP与NPU的协同优化成为新的技术趋势,通过语义理解引导图像处理流程,实现更智能的图像优化。通过从应用场景出发的精准功能定义、软硬件协同的架构设计、以及功耗性能的精细平衡,ISP这个传统的图像处理模块正在芯片设计中焕发新的活力。

lu_pete的博客 1031

实战指南:在UE5中高效集成Entt(ECS)框架

本文提供了一份在虚幻引擎5中高效集成Entt ECS框架的实战指南。针对UE5项目在处理大规模动态实体时的性能瓶颈,详细讲解了如何通过数据驱动的ECS架构进行优化。内容包括前期环境准备、核心构建步骤、创建首个ECS子系统以及与UE原生系统的数据同步技巧,旨在帮助开发者快速掌握集成方法,提升游戏逻辑的执行效率。

weixin_29002209的博客 158
上一篇: LaTeX表格排版避坑指南:从Excel到完美三线表的5个关键步骤
下一篇: 开源飞控实战指南:地面站与SDK深度解析
gitlab7runner
博客等级 码龄4年 78粉丝 1747原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值