让AI学相机对焦: Learning to AutoFocus

前言

分析来自谷歌发表在 CVPR 2020 上的论文 Learning to Autofocus :https://arxiv.org/pdf/2004.12260

目前网上对这篇论文的分析较少,有的分析并没有指出关键点,如:论文解读: Learning to AutoFocus-CSDN博客,接下来,我进行全面的分析;

技术背景

首先,caf反差对焦的情况下使用爬山以及各种优化后的爬山方法,必定会存在以下问题:

1、搜索速度缓慢

由于不知道真正的清晰焦点在哪,在哪个方向,只能通过爬山的搜索过程中,使用各种滤波等方法过滤脏数据、平滑干扰数据或加强波峰梯度,搜索次数随着当前焦点与目标焦点的距离的增大而增加,意味着时间也会增加,虽然电机的脉冲速度非常高,但是有个客观条件是目前解决不了的,即无论电机如何变化,图像也要在一个曝光时间完成后才能完成,且要在一个 1 /帧率时间内更新图像,所以也只能在1/帧率的间隔后才能计算图像清晰度,所以基于反差对焦的af,时间就来到了 search-time * 1/ 帧率至无穷大时间,比如我们现在是30fps,如果当前的焦点就是目标焦点,且滤波判断窗口为1,那么可以:先采集一帧数据,统计清晰度,先往方向a走,下一帧后获取图像,统计清晰度,发现是下降,那么图像折返往方向b走(电机一次性+2步),再获取一次图像和统计清晰度,此时发现清晰度依旧是下降,则回到最大清晰度点,搜索结束,总过花费90ms;但一般情况下,使用反差搜索,在清晰点附近,搜索次数可能要5-10步,不在搜索点附近,使用长焦相机,或者是夜晚的低帧率模式,比如10帧,可能就需要平均20次搜索,就需要2s的对焦时间,有的极限长焦情况,可能需要50次搜索,那就是5秒;

依此类推,基于爬山的caf方式比较慢,不知道清晰点,也不知道 清晰点的方向,经常出现反向搜索、多次无效搜索等问题,甚至有可能在搜索过程中受噪声、亮度变化,画面物体变化等干扰,所以可以使用AI测距,激光测距,tof测距等方法才能比较快速的定位到目标焦点区域,然后控制电机一次性到达目标区域,然后再使用快速搜索策略,即可在更短时间内结束对焦;

2、在爬山过程中易受干扰

由于前面所说的对焦速度比较慢,那么不可避免的在搜索过程中,物体位置、形态变化会影响画面的清晰度统计,易使af陷入局部误区停下而失败,在夜晚噪声的形态变化,时域拖影带来的Artifact,或者是空域噪声影响到的af权重表,都会带来清晰度统计的误差,搜索也很可能会错误的停止;如图左,就是在点状灯光在失焦时,清晰度更大的情况,易搜索错误,如图右,就是指清晰点和失焦点清晰度不成梯度的情况,这种情况,caf 在不缩小梯度阈值的情况下,通常不会认为是波峰,很容易错过峰顶;

3、呼吸效应

呼吸有以下两种情况:

第一种呢就是由于反差对焦带来的 ,景深越小的相机、焦距越明显,由于反差对焦,一定要找到山顶才会停下,而caf的视野很窄,要知道是山顶,他得必须要越过这个山顶,知道是在下坡以后才知道刚刚是山顶,再折返回去,这就产生了焦点呼吸,只有在景深很大大相机或者和广角相机中,才比较少出现呼吸,此外就是索尼等的调优,呼吸减小,或者是pdaf这样的呼吸减小,或者是高帧率的相机,总之有许多方法调优这个呼吸效应,调到人眼对这个呼吸不敏感的时间;

第二种就是光学原理带来的调焦过程的呼吸拉扯,尤其是在高倍率下,看几百米的物体时,如果对焦初始状态往反向走(即电机往1米方向走),会出现焦距的呼吸,画面的环状四周中会出现原本看不到的物体,这是由于光学折射带来的,要想规避掉,只能在这种情况下不将四周的一圈纳入统计信息,避免af的统计信息错误增加;如下图,离焦状态后,画面会被放大扩散,使得画面清晰度波动

4、解决方案

这些问题的解决方案近年来逐步有论文解决,但这些大多数都是绝密资料,公开的论文并不多,比如现在想要知道索尼的方案,都是无从得知的,比如,如何在变焦中对焦(不是手机的那种变焦中对焦,手机大都是两个定focal length的相机或潜望式相机堆叠而成,都是浅focal 范围的);

1、要想解决上述的一些问题,可以使用激光对焦去辅助,因为已知待测物体的距离,加上准确的物距曲线,就可以在各个倍率中都能得到准确的focus,当然,可能激光测距有误差,而且也不可能每个物距曲线都是准确的,所以在激光测距辅助下,还需要微调caf来实现最终的对焦,就和pdaf一样,也是先用dual pd来定位到清晰点附近,然后使用微搜caf来结束对焦;

2、可以使用tof来处理浅景深场景,用tof结合规则,或者ai的感兴趣区域搜索,来获取感兴趣物体的所在位置和所在深度与距离,使用查找表等方式将电机移动到大致清晰的位置,然后caf浅搜;

3、使用pdaf,需要sensor支持,在pdaf后经过caf浅搜

4、使用ai搜索,需要对每款镜头量身定制,这是由于每款镜头都有不同的特性,比如景深,fov,focal等,当然如果有规律的话可以做映射表,如何进行ai搜索呢,这就得介绍下面这篇论文了,这个方法是这几年的经典著作,相当于用这个方案就可能可以省去几十步的搜索,直接定位到清晰点附近,并且可以处理波峰与清晰度两侧情况,以及这个方案本身具有通用性,无需硬件设备,但是对于不同长焦相机,实现难度非常大,暂时可以先做focal length定长的ai af;

Learning to AutoFocus 论文解读

在摄影中,自动对焦是一个非常重要的环节,相信绝大多数的用户,对于 AF 的要求都是又快又准,相机由于镜头的特性,一般来说只能在一定范围内成像清晰,这个范围叫做景深,为了能让自己关注的区域成像清晰,都需要用到对焦技术,这篇文章也是用上了深度学习的方法来实现的,可以看到,深度学习已经在 low-level 的图像处理中发挥着越来越重要的作用了。

对焦一般来说包含两个环节,一是对焦区域的选择,也就是我们说的 ROI,在图像中,到底选择哪个区域进行对焦,这也是一个比较重要的步骤,现在的手机摄影在智能识别这块已经非常成熟了,一般都有一些自动识别 ROI 的方法,比如人脸检测,检测到人脸的时候,就会优先对焦到人脸,还有一些先验规则,比如中心区域对焦。第二步就是对焦了,其实对焦简单来说就是估计深度,因为我们的世界是三维的,虽然图像是二维的,但是我们拍摄的时候,其实是对三维世界进行成像,选定好 ROI 之后,需要估计该 ROI 所处的深度,这样才能移动镜头,将对焦面选择 ROI 所对应的深度,从而获得正确的景深,所以自动对焦技术,一般是指根据所选择的 ROI 确定对焦距离,并且快速的移动镜头完成对焦的过程。

目前主流的对焦技术一般分为两大类,一类是基于反差的对焦技术,contrast based auto focus;另外一类是基于相位检测的对焦技术,phase detection auto focus。基于反差的对焦技术比较好理解,就是镜头在移动的时候,图像会在某些距离变得模糊,模型距离下又很清晰,可以利用一些图像质量评估的准则,看图像什么时候最清楚,进而确定对焦距离,基于相位的对焦技术是最近才发展起来的,之前在单反上用到的比较多,单反上为了实现相位对焦技术,设计了非常复杂的光路,现在随着 sony 的 dual pixel 技术,手机上也开始使用相位对焦技术。相位对焦技术是利用了双目立体视觉原理,我们都知道,根据双目,我们是可以估计场景深度的,因为双目对环境中的物点会产生视差,而相位对焦技术,就是利用了双目的视差来进行对焦。

在这里插入图片描述

如上图所示,如果对焦准确的话,那么物点发出的光线将在相面汇聚成一点,这个时候没有视差,反之,如果对焦不准确,那么物点发出的光线无法汇聚成一点,而是会被分成两部分,分别被左右两个 pixel 所接收,由于透镜折射光线的性质,可以看到,前景和后景的双目图像是不同的,这样可以区分出当前所处的物面是在焦平面的前面还是后面,从而可以引导镜头的移动。

这篇文章直接用基于学习的方式来处理这个 AF 问题,从文章的介绍来看,网络结构和训练方式还是有点特别的,构造数据是一个 contribution,还有就是用深度学习的方法来预测对焦,也是一个不错的尝试吧。

这个网络的输入是一个 focal stack,也就是不同对焦距离下图像序列,简单来说,文章就是把 AF 问题,转换成一个图像序列的选帧问题,这个图像序列的每一帧对应不同的对焦距离,根据选择的帧,来确定对焦距离。

文章的方法是将连续的对焦距离先离散化成 n nn 个,这样可以获得 n nn 张不同对焦距离下的图,I k , k ∈ { 1 , 2 , . . . n } I_k, k \in { 1,2,...n }I k

,k∈{1,2,...n},这样一组图像称为 focal stack, 每帧图像称为 focal slice,k kk 是对应的 slice 下标,称为 focal index,根据使用的图像数量的不同,AF 的算法又可以分成以下几种,如下图所示: 在这里插入图片描述

  • Focal stack

这类算法,需要从整个 focal stack 中,找到最佳的 focal index:

f : { I k ∣ k = 1 , 2 , . . . n } → k ∗ f: { I_k | k=1, 2, ...n }

一般基于反差的对焦方法都得这么干,需要遍历一些 focal stack,然后才能选择出较佳的一个对焦点。

  • Single slice

    f : I k → k ∗ , ∀ k ∈ { 1 , 2 , . . . n }

这种方法应该是最具挑战的,直接从一帧图中,估计出最佳的对焦点。

  • Multi step

k 0∈i,2,...n,m mm 表示事先设定好的一个值,表示迭代最多进行 m mm 次,

文章接下来探讨了 AF 面临的挑战,文章给出了对焦距离与离焦程度的关系:

其中,L LL 表示光圈孔径大小,f ff 表示 focal length,Z ZZ 表示选择的场景深度,g gg 表示需要对焦距离,g gg 和镜头与sensor 之间的距离 g 0 g_0g 0

有关,一般来说给定 L , f L, fL,f 以及 Z ZZ,通过调整 g 0 g_0g 0

可以得到清晰的图像,所以一般来说,如果能够准确的估计场景深度,可以很好的实现对焦,dual-pixel sensor 可以通过两张子图很好地达到这个目的,视差可以满足如下的关系式:

文章指出,这种基于 defocus 的方法在实际应用中,也会受到一些假设的限制,文章列举了四点:

Unrealistic PSF Models,我们可以通过 defocus 的程度来判断对焦是否准确,defocus 就类似一个清晰图像与一个 PSF 的卷积,一般我们会假设 PSF 类似一个高斯分布的函数,不过实际场景中,PSF 的形态会比这复杂,从而大的 PSF 不一定会导致更 blur 的图像 Noise in Low Light Environments,暗光下的噪声,会影响很大东西,包括视差的估计,反差的估计,这个应该是比较好理解的了 Focal Breathing,这个在我们实际拍摄的时候,有的时候会遇到,就是在对焦的时候,你会看到预览画面一会儿清晰,一会儿模糊,这个也是经常会遇到的问题。 Hardware Support,现在的智能手机都会用 voice coil motors (VCMs) 来操控镜头模组,VCM 可以通过调整电压来移动镜头,不过 VCM 也会带来误差,从而导致对焦出现偏差。

这篇文章就提出了一种基于学习方法来解决自动对焦问题。既然是基于学习的方法,首先需要解决的就是数据集的问题,为了得到一个有效,鲁棒的模型,数据集的规模和质量是非常关键的,模型需要通过数据集来学习预测能力。

在这里插入图片描述

这篇文章的目的是解决对焦问题,所以输入是一组不同对焦距离下的图像,输出是最佳对焦距离的预测,这篇文章选择的对焦距离是从 0.102m 到 3.91m,分成了 49 等分,文章用到的网络模型是 Mobilenet-V2,以往的输入是 RGB 三通道图像,现在的输入就换成了 focal stack,如果有 49 张图,那么输入就是 49 个通道的图像,如果是 dual pixel 的形式,那么输入就是 98 个通道的图像。文章和通常的分类识别问题有点区别,区别之处就在于这个模型是 ordinal regression problem,简单来说,顺序是有一定相关性的,不像一般的分类问题,顺序是无关的。

也就是说文章通过两个大方法解决了对焦中时序问题和实际使用问题,文章通过时序的损失替代mse,来感知序列变化,通过固定的热编码,来解决训练时使用一堆focal stacks,而实际使用时,仅需要输入一张图及其focus index即可,甚至不需要index,前提是你的focus range固定,因为作者的相机是固定focal的也就是focus range 固定,所以这套放到变焦相机中,要做focus映射,可以使用简单的归一化映射或者分阶段映射,但都会有点误差;

网络与方案

作者在MobileNetV2架构[32]上构建了模型,该架构被设计为将传统的3通道RGB图像作为输入。在作者的用例中,作者需要表示一个完整的焦点堆栈,其中包含49个图像。作者将焦点堆栈的每个切片编码为一个单独的通道,因此模型可以推理焦点堆栈中的每个图像。在作者的实验中,作者让模型访问双像素数据,焦点堆栈中的每个图像都是2通道图像,其中通道分别对应于左和右双像素图像。在作者的消融中,模型没有双像素数据,焦点堆栈中的每个图像都是一个1通道图像,包含左视图和右视图的总和(相当于原始RGB图像的绿色通道)。为了在网络的输入中容纳“更宽”的通道数量,我们将通道数量增加了原始数量的4倍(宽度乘数为4),以防止输入和第一层之间的通道数量收缩。实际上,网络运行速度很快:旗舰智能手机的网络运行时间为32.5毫秒。

在全焦堆栈可用作输入的设置中,对双像素数据给模型一个128×128×98的张量,对传统绿通道传感器数据给一个128 x 128×49的张量。在只有一个焦点切片可观察的任务中,我们使用沿着通道维度的一个热编码作为输入:输入是98通道张量(或49用于仅绿色通道输入),其中与焦点堆栈中未观察到的切片相对应的通道均为零。

作者在多步骤模型的第一步中使用相同的编码,但作者为模型的每个后续步骤添加了额外的一个热编码,从而使模型能够访问焦点堆栈中所有先前观察到的图像。

作者通过取一个完整的单层网络来训练这个网络,并在所有可能的焦点堆栈和输入索引上对其进行评估。然后,作者给一个新的网络提供这个热编码,所以新的网络看到了第一个输入索引和单层网络的预测。

作者将自动聚焦建模为有序回归问题:

作者将每个焦点索引视为其自己的离散的不同类,但作者假设与每个焦点索引相对应的类标签之间存在顺序关系(例如,索引6比索引15更接近索引7)。作者网络的所有版本的输出都是49个logits。作者通过最小化[8]的有序回归损失来训练我们的模型,这类似于传统逻辑回归对无序标签使用的交叉熵,但其中不是计算关于表示基本真值标签的克罗内克-德尔塔函数的交叉熵的,而是将该德尔塔函数与拉普拉斯分布卷积。这鼓励模型做出尽可能接近地面实况的预测,而使用传统的交叉熵会错误地将除地面实况之外的任何预测(即使是直接相邻的预测)建模为同样昂贵。

对于训练,作者使用Adam[18]和默认参数(初始lr=1e−3,beta1=0.5,beta2=0.999),批量大小为128,全局步长为20k。对于有序回归损失,我们使用系数为1的[8]的L2成本度量。

表1。作者的模型和基线在四个不同版本的自动对焦问题的测试集上的结果。最左边的列表示问题类型,I表示绿色通道图像的全焦点堆栈被传递给算法。在D中,双像素数据的全焦点堆栈被传递给算法。在D1中,随机选择的双像素焦点切片被传递到算法,并且在I1中,随机选取的绿色通道切片被传递。结果按RMSE对每种输入类型进行独立排序。每个指标的前三个技术都用单切片技术组合在一起突出显示。A†表示结果是在整个图像的1.5倍裁剪内的补丁上计算的。

图7。使用学习深度的定性结果†

[10] 以及作者的D1模型。给定散焦双像素片(a),基线预测失焦切片(b);我们的模型预测了与基本事实(d)相似的聚焦切片(c)。


图8。使用ZNCC视差作为基线的低光示例的定性结果,以及作者在黑暗场景的示例补丁上的D1模型。这些图像已经变亮以便于可视化。

单步骤

这是最具挑战性的公式,因为该算法只给出一个随机的焦点切片,可以将其视为透镜的起始位置。在这个公式中,算法通常试图估计模糊大小,或者使用几何线索来估计深度的度量,然后将其转换为焦点索引。

多步骤

多步骤问题是前两个问题的混合。该算法被赋予初始聚焦指数,获取并分析该聚焦距离处的图像,然后被允许移动到其选择的附加聚焦指数,最多重复m次该过程。这个公式近似于用尽可能少的尝试将镜头移动到正确位置的在线问题。这种多步骤公式类似于相机制造商经常使用的“混合”自动对焦算法,其中由一些基于相位的系统(或直接深度传感器(如果可用))产生粗略的焦点估计,然后通过使用约束和缩写的焦堆作为输入的基于对比度的解决方案进行细化。

通过对上一次运行的输出结果进行重新评估,将两个D1基线扩展为多步骤算法。这两个步骤都大大提高了准确率。

特别地,这些算法在散焦模糊较少的索引(接近地面实况的索引)上更准确。

第一步用于将算法从高模糊切片移动到低模糊切片,然后第二步进行微调。我们从I1模型中看到了类似的行为,该模型在第二步中也得到了显著改进。我们将这种增益归因于解决焦点模糊模糊的模型,我们将在第7.4节中对此进行更多讨论。我们的D1模型比其他技术改进了,但幅度较小,可能是因为它在第一步就已经具有了高性能。与I1模型相比,它从第二切片获得的信息也少得多,因为没有模糊性需要解决

图10。(a) I1和D1对给定焦切片25作为输入的补片的预测进行建模。I1模型输出双峰分布,因为它努力消除可以产生相同聚焦模糊的当前切片前面和后面的聚焦指数之间的歧义。

D1分布是单峰的,因为双像素数据有助于消除两者之间的歧义。对于相同的补丁,I1模型对不同输入切片的预测在(b)中可视化。对于朝向近端或远端的焦点切片,当两个候选索引中的一个位于范围之外时,模型正确地预测,而对于在中间的输入切片,模糊性是有问题的。在这个有问题的范围内,该模型倾向于预测与深度相对应的焦点指数,当深度在焦平面的错误一侧时,会产生相同大小的混乱圈。

存在的问题

在单切片问题中,仅给定绿色通道的算法面临一个基本的模糊性:由于方程4中的绝对值,离焦图像内容可能在聚焦平面的任一侧。另一方面,具有双像素数据的模型可以解决这种模糊性,因为双像素视差是有符号的(等式5)。这可以从表2中的I1与D1的结果中看出,其中I1的单步结果明显比单步D1的结果差,但对于两步的情况,差异缩小了,其中模糊性可以通过查看两个切片来解决。

图10(a)还显示了特定补丁的模糊性,其中I1模型输出双峰分布,而D1模型的输出概率为单峰分布。有趣的是,这种模糊性只适用于两个候选索引都合理的焦平片,即位于0和49之间,如图10(b)所示。

作者的意思就是通过两步方法去优化不同侧模糊性一致问题,,基于两步骤的方法,准确率非常高,也就是搜索两次,电机走两次,加上网络,速度也很快了;

但用这个方法实际解决是不够的,实际上解决应该用多帧方法,比如,先让电机走2、3步,将这两三张图以batch维度送入,输出一张,网络的学习中也是这样(网络学习中就是5维了);这样能更强时序一些,得知电机正向、反向走的这几步是清晰度上升还是下降,可以正确的区分现在是出于峰的哪一侧,或是处于原理峰的一侧,可以更好的辅助网络拟合到err最小;当然这是一步骤的,也可以用两步骤:第一步骤单步的,算出该走到哪,在波峰两侧问题中,走到的区域,取图,第二阶段模型,以batch维度送入,给以这两帧的时序,予以学习(因为这个方法可以更大的得到时序以及图像的清晰度变化,因为第一步模型会算一个结果)

效果展示

总结

实际上,这个论文开创了比较新颖的思路,并使用优秀的方法解决一些实际问题,尤其是在低帧率下对焦,提供了很大的帮助,基于纯反差爬山的方法已经难以在低帧率(弱光下)得到很快的速度了;但这个方法除了上述提到的问题外,想要落地,还需要解决两大难题,首先就是泛化问题上,由于是基于图像分类base方案的,而且还不单是分类,比普通分类难度高了一个档次,要想做好,需要收集数十万的数据对序列,还需要涵盖各式各样的场景图,单步或多步骤下的准确率,要达到99.x左右,不然难以落地超越激光+caf或pdaf+caf方案;

reference

论文解读: Learning to AutoFocus-CSDN博客

https://photographylife.com/how-phase-detection-autofocus-works

https://arxiv.org/pdf/2004.12260

GitHub - sedara0218/camera_autofocus: A machine learning approach for defining contrast for autofocus.

OpenCV与AI深度学习 | 基于OpenCV实现模糊检测 / 自动对焦_opencv 对焦-CSDN博客

Exploring Positional Characteristics of Dual-Pixel Data for Camera Autofocus - 百度学术

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch-16 复现经典网络:LeNet5与AlexNet

一、相关概念 对于(10,3,227,227)数据表示,10张3通道的图,图的大小(特征数)为227*227. 通道数:作为卷积的输入通道数和输出通道数。 特征数:特征图的大小 步长stride和填充padding&…

三相电子负载:行业前沿

三相电子负载是模拟电网中实际负载的装置,主要用于电源、电机、变压器等产品的测试和老化。随着科技的发展,三相电子负载在电力、通信、汽车电子、新能源等领域的应用越来越广泛,成为行业前沿技术之一。 三相电子负载在电源行业的应用非常广泛…

聚会活跃气氛神器小程序源码系统 各种小游戏 让聚会不再冷场 带源代码包以及安装搭建教程

系统概述 在社交聚会中,如何让气氛活跃起来一直是一个让人关注的问题。小编给大家分享一款聚会活跃气氛神器小程序源码系统。它不仅提供了丰富多样的小游戏,还带有源代码包和详细的安装搭建教程,让你轻松打造属于自己的聚会互动平台。 代码…

Qt 项目(CMake)支持多国语言(2024/05)

目录 1.在工程手动创建languages文件夹2.修改CMakeLists.txt3.在qml上随便添加一下文字内容4.执行CMake 参考:Qt 项目(CMake)设置国际化支持 1.在工程手动创建languages文件夹 2.修改CMakeLists.txt set(TS_FILES"${CMAKE_SOURCE_DIR}/languages/aidi_zh_CN.ts"&qu…

超声波清洗机哪家好一点?四款无比卓越精品不可错过

在日常生活中,眼镜成为了我们不可或缺的伙伴,无论是阅读书籍、工作还是享受自然风光,清晰的视野总是至关重要。然而,眼镜上不可避免地会沾染灰尘、油脂甚至细菌,影响我们的视觉体验。传统的眼镜清洗方法虽然简单&#…

Python使用MQTT连接新版ONENet

Python MQTT 连接新版ONENet 简介 前几个教程我们使用mqtt.fx连接了新版的ONENet, 只是跑通了MQTT协议,但是在实际操作下还需要实现具体环境、具体设备的MQTT连接,本章教程将以Python MQTT的方式连接 ONENet 参考文档: paho-mqtt PyPI …

数据结构 顺序表

目录 1. 什么是数据结构?2. 顺序表2.1 线性表2.2 顺序表 3. 动态顺序表的实现 正文开始 1. 什么是数据结构? 在学习顺序表前,我们先来了解一下什么是数据结构:数据结构是计算机存储、组织数据的方式,具有一定逻辑关系…

用了那么久的可道云teamOS,居然才发现这个隐藏的功能:一键存图,无需下载

在日常的工作或学习中,我们在遇到喜欢的图片时,总会想要保存下来以备后用。 然而,传统的图片保存方式通常需要我们右键另存为,或者复制链接、打开下载工具,甚至可能需要跳转到其他应用或网页才能完成下载。 存在电脑本…

数据整理的Compact流程 (二)|OceanBase数据转储合并技术解读(二)

上篇文章《数据整理的Compact流程 (一)|OceanBase数据转储合并技术解读(二)》中,有讲解到,在OceanBase数据库中,当MemTable写满时,将其下刷到Mini SSTable的过程包含两个…

ubuntu移动硬盘重命名

因为在ubuntu上移动硬盘的名字是中文的,所以想要改成英文的。 我的方法: 将移动硬盘插到windows上,直接右键重命名。再插到ubuntu上名字就改变了。 别人的方法: ubuntu下如何修改U盘名字-腾讯云开发者社区-腾讯云 在自带的软件…

盘点10大灵动惊艳小演员❗谁是你的心头好?

盘点国内影视那些惊艳观众的小演员们无疑为影视作品注入了新的活力。以下是10个备受赞誉的小演员: 1.韩昊霖:凭借在《我和我的祖国》和《庆余年》中的出色表现 韩昊霖的演技赢得了观众和业界的广泛认可 他能够准确地把握角色的情感和细节,展…

雷达基数据绘制成雷达图

x波段雷达基数据绘制成雷达图 1.雷达基数据格式Z_RADR_I_ZR001_20240521020002_O_DOR_YLD2-D_CAP_FMT.bin.bz2 2.基数据读取 python f StandardData(i) # 新版本标准数据radarTime f.scantime # 获取雷达时次date_str radarTime.strftime(%Y-%m-%d %H:%M:%S)date_str d…

832. 翻转图像 - 力扣

1. 题目 给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转,即逆序。 例如,水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转图片的意思是图片中的 0 全部被…

一.ffmpeg 将内存中的H264跟PCM 数据流合成多媒体文件

在有一些嵌入式平台中,H264数据流一般来自芯片内部的硬编码器, AAC音频数据则是通过采集PCM进行软编码,但是如何对它实时进行封装多媒体文件 ,参考ffmpeg example,花了一些时间终于实现了该功能。 流程图如下&#xf…

【Pandas】深入解析`pd.read_pickle()`函数

【Pandas】深入解析pd.read_pickle()函数 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!🎇 🎓 博主简介&…

Ora-32004错误处理

问题现象 处理方法 观察alert会发现报错的参数在加载spfile的阶段 按照mos的方法对其reset 重新启动无报错 观察日志无报错

ora-00392 ora-00312错误处理

检查当前日志组状态 对日志组进行clear操作 重新开库无报错

java的变量关系~使用和扩展

一、变量的概述 1、什么是变量 白话:变量就是一个装东西的盒子。 通俗:变量是用于存放数据的容器。我们通过变量名 获取数据,甚至数据可以修改。 2、变量在内存中的存储 本质:变量是程序在内存中申请的一块用来存放数据的空间,类似我们酒店的房间&a…

C++ (week5):Linux系统编程3:线程

文章目录 三、线程1.线程的基本概念①线程相关概念②我的理解 2.线程的基本操作 (API)(1)获取线程的标识:pthread_self(2)创建线程:pthread_create()(3)终止线程①pthread_exit():当前线程终止,子线程主动退出②pthread_cancel()&…

OrangePi AIpro(8T) 基本介绍和资料汇总

OrangePi AIpro 基本介绍和资料汇总 1 介绍1.1 香橙派(Orange Pi) 公司概述1.2 OrangePi AIpro(8T) 介绍概述硬件规格参数引脚图产品详细图芯片优缺点优点 2 资料汇总2.1 官方资料概述资料下载 参考 1 介绍 1.1 香橙派(Orange Pi) 公司概述 香橙派(Orange Pi&…