ISP——3A算法

news2025/4/11 1:37:39

目录

  • 前沿
  • 一. 自动曝光AE
    • 1.1. 自动曝光
    • 1.2. 18%灰
    • 1.3. 测光区域
    • 1.4. 摄影曝光加法系统
    • 1.5. AE算法
      • 1.5.1. 考虑事项
      • 1.5.2. AE实现过程
    • 1.6. AE算法
  • 二. 自动对焦AF
    • 2.1. 什么是自动对焦
      • 2.2. 图像清晰度评价方法
      • 2.2.1. Brenner 梯度函数
      • 2.2.2. Tenengrad 梯度函数
      • 2.2.3. Laplacian 梯度函数
      • 2.2.4. 方差函数
      • 2.2.5. 能量梯度函数
    • 2.3. 聚焦函数
    • 2.4. 自动对焦原理
    • 2.5. 对焦算法
      • 2.5.1. 测距法
      • 2.5.2. 图像分析法(被动聚焦)
        • 2.5.2.1 相位检测
        • 2.5.2.2. 对比度检测聚焦
  • 三. 自动白平衡AWB
    • 3.1. 色温和颜色恒常性
    • 3.2. 白平衡矫正
    • 3.3. 矫正方法
    • 3.3.1. 灰度世界理论
      • 3.3.2. 完美反射法
      • 3.3.3. QCGP
      • 3.3.4. 模糊逻辑算法
      • 3.3.5. 基于白点的算法
      • 3.3.6. 基于边缘的方法

前沿

最近在学习3A技术,简单记录一下。
我们先来看下什么是3A技术?

3A即自动对焦(AF),自动曝光(AE),自动白平衡(AWB)

补充:通常在进行3A算法的时候会有一个先后顺序:AWB->AE->AF

  • AF:控制对焦马达的移位,使镜头定焦在合适的位置
  • AE:Auto Exposure即自动曝光,是相机根据外界光线的强弱自动调整曝光量和增益,防止曝光过度或者不足的一种机制。通过调节快门,光圈,感光度(ISO),使得图像达到合适的亮度
  • AWB:通过调整图像的R/B通道的增益值,调节图像的色温/色调表现

问:为什么调节白平衡只有R和B的增益

答:简化电路,减少调节过程以及带来的工作量相应的增加。2、通过合理调节R-Drive和B-Drive,配合固定的G-DriVe完成亮平衡校对工作。这好比一只三条腿的桌子,一条腿固定,调节另外两条腿的长短,使桌面达到水平状态。亮平衡只有R和B,一般是长虹彩电的特征。

  AF控制着对焦马达,是镜头的基本功能,AE与AWB自动白平衡算法来实现图像对比度最大、改善主体拍摄物曝光或曝光不足、使画面在不足光线照射下的色差得到补偿。3A是每个相机的基本算法功能,每个A都代表了成像的基本组件,总结一下:

  1. AE控制着ISO/快门,是sensor的基本功能
  2. AF控制着对焦马达,是镜头的基本功能
  3. AWB是camera色彩系统的第一个基础模块,3A准确率是成像的基本保证

关于上面的光圈,快门,ISO的含义知乎上有一个很绝的解释:
在这里插入图片描述
感兴趣的也可以跳转到这个话题看一下:如何理解 ISO、快门、光圈、曝光这几个概念?。

一. 自动曝光AE

1.1. 自动曝光

先来看下自动曝光的概念,然后在看几个跟其相关的概念:

  • AE的基本概念

Auto Exposure即自动曝光,是相机根据外界光线的强弱自动调整曝光量和增益,防止曝光过度或者不足的一种机制。

在这里插入图片描述
  可见,AE的输入为当前影像的亮度值Y,输出为sensor的曝光时间和增益,isp增益和镜头光圈(如果镜头光圈可调)。当AE algorithm得到当前帧的亮度后,便会与target Y做比较,然后计算出下一次需要调整的参数,以便让影像的亮度越来越接近target Y,如下所示(target只是一个范围):
在这里插入图片描述

  1. 曝光是什么?
    以摄影为例,曝光指摄影过程中进入镜头照射在感光元件上形成影像的过程就是曝光,这个过程由光圈、快门、感光度的组合来控制。
  2. 什么是曝光量?
    图像传感器所接受的光量,用H表示,单位是勒克斯·秒,公式如下:
    H = E × t H = E \times t H=E×t
  • E为照度,单位是勒克斯(lx )
  • t为感光材料受到光线照射的时间,单位是秒( s )
  • 曝光量H的单位为勒克斯·秒( lx·s )

解释下上面照度的意思:
照度又称为投射光,是描述被摄体受照表面被照明的程度。照度定义为单位面积上所接受的光通量,照度E用公式表示为:
E = Φ / A E=\Phi/ A E=Φ/A
Φ \Phi Φ 为光通量, 单位为流明 ( I m ) (I m) (Im) A A A 为受照面积, 单位为平方米 ( m 2 ) \left(\mathrm{m}^2\right) (m2)

  1. 什么是曝光强度
    曝光强度 = 曝光时间 × 光圈大小 × I S O 曝光强度 = 曝光时间\times 光圈大小\times ISO 曝光强度=曝光时间×光圈大小×ISO

相机上的光圈是固定的,所以只需要考虑曝光时间和ISO(增益值的一种表示,这里的增益又分为Analog Gain,Digital Gain以及ISP
增益。这里记住ISO指的就是信号增益大小就行了)。
4. 自动曝光
有了上面的三个概念,我们再来看下相机的自动曝光怎么定义的,相机上的自动曝光就是让相机根据当前的图像信息自动配置曝光大小,也就是曝光时间和ISO的值。下面是一组不同曝光强度下的相机成像对比。
在这里插入图片描述

1.2. 18%灰

我们再来看下曝光相关的另一个概念,18%灰。在介绍这个概念之前,我们需要了解两个相关概念:韦伯定律和曝光分区系统。

  1. 韦伯定律
    即感觉的差别阈限随原来刺激量的变化而变化,而且表现为一定的规律性,可用如下公式来表示:
    Δ Φ / Φ = C \Delta \Phi / \Phi=C ΔΦ/Φ=C
    其中 Φ \Phi Φ 为原刺激量, Δ Φ \Delta \Phi ΔΦ 为此时的差别阈限,C为常数,又 称为韦伯率。看起来有点难理解,说人话就是人对自然刺激的感知是非线性的,刺激以一定比例的增长,对人而言是均匀增长的。
  2. 曝光分区系统
    再来看下曝光分区系统。这是由 Ansel Adams 和 Fred Archer在1940年左右所阐述,如下图所示,将人眼对于从黑到白渐进的变化分为11阶,将处于当中的块5认为是适中的曝光强度,称为中灰。而5块的光照反射率是18%,也就是定义的18%灰。因此专业摄影师通常会使用测光表来判断环境光,来决定拍照的曝光强度,使得照片的整体曝光强度在18%灰左右。但是也要结合具体情境进行设置,比如说在拍摄雪景的时候再把曝光度调为18%的话就会使得照片偏黑,即我们说的“白增黑减”。
    在这里插入图片描述

1.3. 测光区域

再来看一个相关概念,测光区域。通常一个图片中同时存在亮与暗的区域,如果把所有区域都纳入考虑来算一个平均值,可能不能如实反映拍照者的期望,所以会有个重点测光区域。根据不同算法,测光区域也不同。比较原始的是将整个区域分为 M × N M \times N M×N个区域,取中心的 X × Y X \times Y X×Y区域;手机上通常有针对人脸区域测光、中心测光与点测光。测光区域也有一定的权重分布,通常在中心的区域权重会更大一些。

1.4. 摄影曝光加法系统

E V = A V + T V = B V + S V EV =AV+ TV= BV+ SV EV=AV+TV=BV+SV

  • EV:Exposure Value,将相机的曝光形成数字化,曝光值
  • AV:Aperture Value 光圈值
  • TV:Time Value 快门值
  • SV:Sensitive Value 感光值 (ISO)
  • BV:Brightness Value亮度值,环境亮度

关于上面每个值的计算方法如下:
在这里插入图片描述
根据上面的公式可以得到 E V = A V + T V = B V + S V EV =AV+ TV= BV+ SV EV=AV+TV=BV+SV的公式为:
2 ∗ log ⁡ 2 ( F number  ) − log ⁡ 2 ( 1  exposure time  ) = log ⁡ 2 ( B / 0.3 K ) + log ⁡ 2 ( 0.3 S ) 2 * \log _2(\mathrm{F}_ \text {number })-\log _2\left(\frac{1}{\text { exposure time }}\right)=\log _2(B / 0.3 K)+\log _2(0.3 S) 2log2(Fnumber )log2( exposure time 1)=log2(B/0.3K)+log2(0.3S)
其中

  • F n u m b e r F_{number} Fnumber是镜头光圈值大小,我们常说的 F 1.4 F_{1.4} F1.4 F 4.0 F_{4.0} F4.0
  • B B B是景物亮度单位是 C d / c m 2 Cd/cm2 Cd/cm2

1.5. AE算法

在了解了上面的基本概念之后,我们来看下AE的算法步骤以及需要考虑的问题。

1.5.1. 考虑事项

在一个响应周期内,AE算法需要处理的具体事项如下:

  1. 根据ISP硬件生成的图像曝光统计数据评估当前图像的曝光质量
  2. 如果曝光质量需要调整,则根据当前的工作参数和理想曝光目标生成下一帧图像的工作参数
  3. 将新的工作参数写入各硬件设备,驱动光圈、sensor快门及增益达到新的位置

1.5.2. AE实现过程

  1. 对当前图像进行亮度统计
  2. 根据当前图像亮度确定曝光值
  3. 计算新的曝光参数,曝光时间,光圈和增益
  4. 将新的曝光参数应用到相机中
  5. 重复1-4的步骤,直到满足亮度需求

1.6. AE算法

  1. 均值法AE
  2. 直方图改进的均值法AE
  3. N段式统计法

二. 自动对焦AF

2.1. 什么是自动对焦

  自动对焦是利用物体光反射原理,将反射的光被相机上的传感器CCD(光电转换器,将光信号转换为电信号的传感器)所接受,通过计算机处理,带动电动对焦设备进行对焦的方式叫做自动对焦。就是移动对焦设备使得成像清晰。
在了解自栋对焦算法之前我们需要知道几个常见名词,有些是初中物理已经见过的。

  • 像距:像距是像(CCD传感器)到平面镜(或透镜的光心)之间的距离,一般用v表示。
  • 物距:物体到透镜中心的距离,一般用表示u表示。
  • 焦距:镜头中心点到行程码清晰影像胶片或者CCD的距离,也就是焦距反映的是清晰成像的距离,一般用f表示。
  • 景深:拍摄一张照片的时候,照片中的最近物体和最远物体之间能够清晰成像的部分就是景深。
  • 凸透镜:就是我们说的放大镜,中间厚两边薄。相机镜头通常都是凸透镜构成。

我们来看一下凸透镜成像原理:
在这里插入图片描述
人眼其实就是个可变焦的凸透镜。视网膜可以等效成CCD,人的大脑会自动的把倒立的像给处理成正向的。
成像公式:
1 f = 1 u + 1 v \frac{1}{f} = \frac{1}{u} + \frac{1}{v} f1=u1+v1

  • f,u,v分别表示焦距,物距,像距。

2.2. 图像清晰度评价方法

  既然自动对焦是要让CCD接受清晰的图像,我们知道人眼很容易判断一个图像是否清晰,那么相机应该怎么判断一个图像是否清晰呢?方法有很多,我们简单介绍常用的几个。

2.2.1. Brenner 梯度函数

Brenner梯度函数是最简单的梯度评价函数,它只是简单的计算相邻两个像素灰度差的平方:
在这里插入图片描述
其中:f(x,y) 表示图像f对应像素点(x,y)的灰度值,D(f)为图像清晰度计算结果。

2.2.2. Tenengrad 梯度函数

Tenengrad 梯度函数采用Sobel算子分别提取水平和垂直方向的梯度值,基与Tenengrad 梯度函数的图像清晰度定义如下:
在这里插入图片描述
G(x,y) 的形式如下:
在这里插入图片描述

2.2.3. Laplacian 梯度函数

Laplacian 梯度函数与Tenengrad梯度函数基本一致,用Laplacian算子替代Sobel算子即可,该算子定义如下:
在这里插入图片描述
因此基于Laplacian 梯度函数的图像星清晰度的定义如下:
在这里插入图片描述
其中G(x,y)是像素点(x,y)处Laplacian算子的卷积。

2.2.4. 方差函数

因为清晰聚焦的图像有着比模糊图像更大的灰度差异,可以将方差函数作为评价函数:
在这里插入图片描述
其中 μ \mu μ为整幅图像的平均灰度值,该函数对噪声比较敏感,图像画面越纯净,函数值越小。

2.2.5. 能量梯度函数

能量梯度函数更适合实时评价图像清晰度,该函数定义如下:
在这里插入图片描述

2.3. 聚焦函数

  图像对比度通常也称为锐度,是用来描述图像细节分辨程度和清晰度的度量值。对比度检测聚焦采用锐度来评价聚焦的准确程度,图像锐度越大也就是聚焦值越大,说明越接近准确聚焦的位置。在聚焦调节范围内,每 个调焦位置会对应个锐度值,也就是聚焦值,这些聚焦值形成 曲线,通常称为聚焦曲线 。锐度值通过锐度评价函数计算获得,锐度评价函数有时也称为聚焦函数。一个良好的锐度评价函数对应的聚焦曲线应该是 个如下图所示的单峰曲线,并且曲线峰值对应的调焦位置即为准确聚焦的位置。
在这里插入图片描述
  什么是聚焦峰值,聚焦的准确位置对应于锐度评价函数(锐度评价函数就是聚焦函数)的最大峰值,也只有找到最大峰值才能知道准确聚焦的位置。那么最大峰值应该怎么确定吗?可以看出,锐度评价函数决定了聚焦的精度,而聚焦的峰值搜索算法决定了自动聚焦的速度。下图展示几种搜索算法:
在这里插入图片描述

这部分的内容详细可以参考:自动聚焦技术(AF)。

补充:

图像清晰评价函数用来后期评估聚焦的效果,聚焦函数是用来找图像焦点的,注意区分两者的差别。

2.4. 自动对焦原理

  1. 对焦过程中图像仍在一直不断产生,把镜头在某个位置时的那帧图像送到图像处理器(ISP)处理,得出该图像的统计信息,再把这信息送到对焦算法库(可能在isp硬件上执行,也可能在驱动程序软件执行),对焦算法库根据硬件规范和上述统计信息算出下一步镜头该往哪个方向移动多少距离,并驱动镜头到达那个位置;
  2. 接着在此位置得到新图像,又计算统计信息,计算再下一步的镜头位置…图像清晰度渐渐变化,如此经过几个循环收敛,图像到一定程度,就认为对焦成功。

  统计信息是和聚焦算法以一一对应的,什么样的算法就需要ISP计算相应的统计信息。不同的对焦算法就又形成了不同的自动对焦方式,不同的对焦方式有不同的对焦速度和硬件需求及设计(主要针对摄像头传感器)。不管什么对焦算法,他的目的都是要快准狠迅速完成高质量的对焦。

2.5. 对焦算法

我们来介绍几个常见的对焦算法。

2.5.1. 测距法

  一种主动聚焦方式,摄像头发出红外光或超声波并接收返回光线,实现测距,然后借此距离计算物距实现对焦,此方法精度略差,高端机上已较少使用,或作为其他方法的补充。(现在也有激光实现快速准确聚焦,如iPhone的LiDAR)

2.5.2. 图像分析法(被动聚焦)

2.5.2.1 相位检测

  相位检测聚焦是单反相机中用的最普遍的自动对焦方法,这种聚焦系统一般由反光镜、微透镜,以及多个成像敏感器等硬件构成 其对焦原理如图所示,简单地说,通过镜头的光束被分为两个部分,分别在不同的两组成像敏感器上成像 如果对焦准确,则两幅图像相同;如果对焦不准 ,则两幅图像会出现偏移 通过比较两幅图像而检测这个偏,就能检测出聚焦的偏离状态。 相位检测自动聚焦的优点在于对焦迅速且比较精确, 缺点在于 要独特的硬件构造,造价高,且其复杂的构造不适合需要结构紧凑的情况,比如不适合在一般的数码相机及移动手机等平台上应用。如下图所示:
在这里插入图片描述

2.5.2.2. 对比度检测聚焦

  对比度检测聚焦是另外一种被动聚焦方法,这种方法不需要额外的硬件构造,它仅仅通过对连续获得的实际图像进行分析处理,根据前后两帧或多帧图像的对比度计算结果来控制调焦的方向和大小。其基本原理是随着调焦向准确位置越 近,图像越清晰,对应的图像对比度也越大。由于不需要额外的硬件支持,这种聚焦方法广泛应用于摄像机、数码相机等成像系统。
会有以下缺点:

  1. 聚焦速度相对较慢;
  2. 对光照较为敏感,尤其是在低照度情况下容易失效;
  3. 当目标物缺乏明显的纹理细节(比如白色墙壁)时,难以准确聚焦;

下面是一个对比度检测聚焦的框架,对比度检测聚焦的关键因素有两点: ①锐度评价函数:②峰值判定和搜索策略。
在这里插入图片描述

三. 自动白平衡AWB

先看一组图。同一光源下,左边的图是在AWB没开的情况下显示的图像,右边的是在AWB打开的情况下拍摄的。
在这里插入图片描述

3.1. 色温和颜色恒常性

在学习AWB之前,我们需要先了解几个概念:

  • 色温:色温描述的是具有一定表面温度的“黑体”(blackbody)的辐射光的光谱特性。简单的理解就是颜色随温度的变化规律,比如生铁就是黑色,加热会变成橘红色,继续加热到液态会呈现偏白的颜色,这种随温度而产生的颜色变化就光谱特性;
  • 颜色恒常性:颜色恒常是指在照度发生变化的条件下人们对物体表面颜色的知觉趋于稳定的心理倾向;
  • 白平衡原理:传感器不具有人眼的不同光照色温下的色彩恒定性,白平衡模块就需要将人眼看来白色的物体进行色彩的还原使其在照片上也呈现为白色,通俗的讲就是讲人眼看到的白色还原为白色。

3.2. 白平衡矫正

  • 手动白平衡:在拍照前通过拍摄一个18度灰的卡片,然后计算出当时环境的白平衡的gain值对后面的图片进行校正;
  • 自动白平衡:camera通过自己本身的算法,通过获取的图像自动计算出gain值对图像进行校正的方式;

3.3. 矫正方法

下面我们来看几个矫正方法。

3.3.1. 灰度世界理论

在这里插入图片描述
任一幅图像,当它有足够的色彩变化则它的RGB分量的均值会趋于相等。这是一个在自动白平衡方面应用极为广泛的理论。算法流程如下:

  1. 计算各个颜色通道的平均值 R m e a n R_{mean} Rmean G m e a n G_{mean} Gmean B m e a n B_{mean} Bmean
  2. 寻找一个参考值K,因为人眼对于 G G G通道比较敏感,一般一般情况选取 G m e a n G_{mean} Gmean作为参考;
  3. 计算 R g a i n = G m e a n R m e a n R_{gain} =\frac{G_{mean}}{R_{mean}} Rgain=RmeanGmean, B g a i n = G m e a n R m e a n B_{gain} = \frac{G_{mean}}{R_{mean}} Bgain=RmeanGmean;
  4. 对图像中的每个像素都乘以对应的gain值进行校正;

3.3.2. 完美反射法

  完全反射也是基于一个假说:基于这样一种假设,一幅图像中最亮的像素相当于物体有光泽或镜面上的点,它传达了很多关于场景照明条件的信息。如果景物中有纯白的部分,那么就可以直接从这些像素中提取出光源信息。因为镜面或有光泽的平面本身不吸收光线,所以其反射的颜色即为光源的真实颜色,这是因为镜面或有光泽的平面的反射比函数在很长的一段波长范围内是保持不变的。完美反射法就是利用用这种特性来对图像进行调整。算法执行时,检测图像中亮度最高的像素并且将它作为参考白点。基于这种思想的方法都被称为是完美反射法,也称镜面法。通俗的意思就是整个图像中最亮的点就是白色或者镜面反射出来的,那么最亮的点就是光源的属性,但是该点本身应该是白点,以此为基础就可计算出gain值从而进行校正。下面怡红色通道为例展示怎么计算的:
在这里插入图片描述

3.3.3. QCGP

这种方法将灰度世界和完全反射以正交的方式结合。下面仍以红色通道为例演示怎么计算的:
u r R a v e 2 + v r R a v e = K a v e ; u r R max ⁡ 2 + v r R max  = K max ⁡ K a v e = R a v e + G a v e + B a v e 3 ; K max ⁡ = R max ⁡ + G max ⁡ + B max ⁡ 3 \begin{aligned} & u^r R_{\mathrm{ave}}^2+v^r R_{\mathrm{ave}}=K_{\mathrm{ave}} ; \\ & u^r R_{\max }^2+v^r R_{\text {max }}=K_{\max } \\ & K_{\mathrm{ave}}=\frac{R_{\mathrm{ave}}+G_{\mathrm{ave}}+B_{\mathrm{ave}}}{3} ; \\ & K_{\max }=\frac{R_{\max }+G_{\max }+B_{\max }}{3} \end{aligned} urRave2+vrRave=Kave;urRmax2+vrRmax =KmaxKave=3Rave+Gave+Bave;Kmax=3Rmax+Gmax+Bmax

通过上面的方程组就可以解出​和​ 然后对原像素进行校正:
R n e w = u r R o r g 2 + v r R o r g R_{new} = u^rR_{org}^{2} +v^rR_{org} Rnew=urRorg2+vrRorg

3.3.4. 模糊逻辑算法

在这里插入图片描述
如图圆圈表示该颜色本身应该在坐标系中所处的位置,箭头分别表示随色温的变化发生的偏移,这个是通过先验知识得到的,后面再通过这个进行校正。
在这里插入图片描述
通过以上两种方式将图像分成8块,然后通过模糊逻辑的方式计算出每个快的一个权重,这个权重和亮度和色度相关,然后通过模糊逻辑方式进行确定。求得权重后就可以计算出整个图像的加权均值,如下图10a,黑点表示八个块的分布,X表示加权后整个图像的位置。然后目的是要让加权的这个值往白点上靠,就通过调整增益的方式调试,调整完增益后,每个块儿的均值又会发生变化,然后又重新计算出每个块的权重,再通过权重计算出整个图像的均值,如图10b,整个图像的均值已经靠近原点了。然后如果X和白点的差距在一个设定的范围内则认为完成白平衡,否则继续调整增益重复上述步骤进行校正。
在这里插入图片描述

3.3.5. 基于白点的算法

  1. 将RGB颜色空间转换到YUV空间,转换公式如下:
    [ Y U V ] = [ 0.3 0.59 0.11 − 0.15 − 0.29 0.44 0.51 − 0.52 − 0.095 ] [ R G D ] \left[\begin{array}{l} Y \\ U \\ V \end{array}\right]=\left[\begin{array}{lll} 0.3 & 0.59 & 0.11 \\ -0.15 & -0.29 & 0.44 \\ 0.51 & -0.52 & -0.095 \end{array}\right]\left[\begin{array}{l} R \\ G \\ D \end{array}\right] YUV = 0.30.150.510.590.290.520.110.440.095 RGD

  2. 通过限定YUV的区域来判断是否为白点,如下论文通过四个限制条件俩限制白点,满足条件的点就是白点,参与后续的计算,否则不是点直接舍弃
    在这里插入图片描述

  3. 通过以上四个限制条件找到白点集合后,就可以对白点集合运用GW算法或者其他算法计算gain值从而进行后续的校正。

3.3.6. 基于边缘的方法

  1. 先通过一定的手段,比如梯度的方式求出图像中的边缘,然后在边缘各侧各取两个点参与计算;
  2. 通过上述得到的参考点集合,就可以运行灰度世界或者其他的算法求出gain值; 在这里插入图片描述
    优点:减少的大色块的干扰,因为一般认为边缘就是色块变化的的分界线,那么提取边缘两侧的样本点就可以满足颜色充分的条件,那么就可以运用灰度世界法求出gain.而且有大色块的时候计算的也是也只是选取边缘的几个点,就可以避免大色块分量太大造成白平衡异常的问题。

下面看展示几个白平衡算法效果图:灰度世界理论,完全反射,QCGP算法。

在这里插入图片描述

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

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

相关文章

设计模式-8--模板方法模式(Template Method Pattern)

一、什么是模板方法模式(Template Method Pattern) 模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤的实现延迟到子类中。模板方法模式允许在不改变算法的…

多机单目标跟踪Cross-Drone Transformer Network for Robust Single Object Tracking

1. 摘要 无人机已被广泛用于各种应用,如空中摄影和军事安全,因为与固定摄像机相比,无人机具有高机动性和广阔的视野。多架无人机跟踪系统可以通过收集不同视角的互补视频片段来提供丰富的目标信息,特别是当目标在某些视角下被遮挡…

微信小程序分包-主包尺寸 (不包合插件) 应小于 1.5 M

目录 起因 分包 最后 起因 更新一个之前的小程序, 上传的时候提示主包尺寸 (不包合插件) 应小于 1.5 M 怎么办?查看教程啊 开发者可通过开发者工具中的性能扫描工具提前发现代码中的可优化项: 1. 代码包不包含插件大小超过 1.5 M 【建议】…

1777_树莓派截图功能实现

全部学习汇总: GitHub - GreyZhang/little_bits_of_raspberry_pi: my hacking trip about raspberry pi. 最近入手了树莓派的3B版本,安装了官方推荐的Debian版本。之前使用Linux的几个发行版本的时候,系统中通常会有KDE等集成的截图工具&…

第一个实例:QT实现汽车电子仪表盘

1.实现效果 1.1.视频演示 QT 实现汽车仪表盘 1.2.实现效果截图 2.生成的安装程序 此程序是个windows下的安装程序,可以直接安装,看到汽车仪表盘的实现效果,安装程序从下面链接下载: 【免费】使用QT实现的汽车电子仪表盘,在windows下的安装程序资源-CSDN文库 3.功能概述…

go语言基础操作--二

a : 10str : "mike"//匿名函数,没有函数名字 形成一个闭包,函数定义,还没有调用f1 : func() { //:自动推到类型fmt.Println("a ", a)fmt.Println("str ", str)}f1()//给一个函数类型起别名 这个写法不推荐type FuncType …

存储成本降低85%,携程历史库场景的降本实践

携程,一家中国领先的在线票务服务公司,从 1999 年创立至今,数据库系统历经三次替换。在移动互联网时代,面对云计算卷积而来的海量数据,携程通过新的数据库方案实现存储成本降低 85% 左右,性能提升数倍。本文…

TensorRT来加速YOLO v5推理与检测

TensorRT来加速YOLO v5推理与检测 文章目录 TensorRT来加速YOLO v5推理与检测TensorRT简介一、TensorRT安装1. 电脑基础环境2. 查看 cuda 版本3. 安装TensorRT4. 验证TensorRT 二、YOLO v5模型导出函数1.onnx 模型导出(def export_onnx()函数…

nmon性能监控工具介绍【杭州多测师_王sir】

nmon监控工具 (nmon监控centos6X)1) 工具准备nmon16X(性能监控)和nmon_analyser(性能报告分析器);2) 下载nmon页面地址:http://nmon.sourceforge.net/pmwiki.php?nSite.Download3) 下载指定版本nmon到centos6X:wget https://nchc.dl.sourceforge.net/project/nmon…

HTTP协议初识·中篇

加上目录,会出现导向不正确的情况,可能是bug,目录一长就容易出错? 本篇主要讲解了: 网页分离(网页代码和.c文件分离) html链接跳转 网页添加图片 确认并返回资源类型 填写正文长度属性 添加表单 临时重定向 补充知识&a…

04. 函数和函数调用机制

1. 先学习/复习C语言的入门知识 1.1 C语言简介 C语言是一种通用的编程语言,于1972年由丹尼斯里奇(Dennis Ritchie)创建。C语言最初目的是为了开发UNIX操作系统,但由于其简洁的语法、快速的执行速度和可移植性,自此成…

Linux系统中驱动入门设备树DTS(经典)

设备树(DTS:device tree source),字面意思就是一块电路板上设备如上图中CPU、DDR、I2C、GPIO、SPI等,按照树形结构描绘成的一棵树。按照策略和功能分离的思路,就是驱动代码(功能)和设备树DTS配置…

算法通关村16关 | 滑动窗口如此简单

1. 滑动窗口基本思想 滑动窗口就是快慢指针问题,快指针走一步,慢指针走一步,维护窗口的大小。 下图有大小为3的滑动窗口移动示例。 窗口:窗口是left和right之间的元素,也可以理解为一个区间。窗口的大小可能固定&#…

Win7设备和打印机里空白,0个对象,但是可以打印的处理办法

呉師傅 你是不是遇到过Win7系统打开设备和打印机的时候显示是空白的,0个设备的情况?要怎么操作才能解决这一问题呢,下面就分享一下如何处理这个问题的小方法大家可以尝试一下。 问题如下: 解决方法: 1、点击桌面左下…

Unity中Shader的消融视觉效果优化smoothstep(min,max,x)

文章目录 前言Unity中Shader的消融视觉效果优化 一、在clip(value) 的 基础上 用 smoothstep(min,max,x),并且增加一个渐变纹理对消融边缘进行视觉上的优化二、进行优化 前言 Unity中Shader的消融视觉效果优化 一、在clip(value) 的 基础上 用 smoothstep(min,max…

3.0 Dubbo的可扩展机制SPI源码解析

1. Dubbo SPI 架构图 2. Demo ExtensionLoader<Protocol> extensionLoader ExtensionLoader.getExt ensionLoader(Protocol.class); Protocol http extensionLoader.getExtension("dubbo"); System.out.println(http); 上⾯这个Demo就是Dubbo常⻅的写法&am…

java八股文面试[多线程]——newWorkStealingPool

newWorkStealingPool是什么&#xff1f; newWorkStealingPool简单翻译是任务窃取线程池。 newWorkStealingPool 是Java8添加的线程池。和别的4种不同&#xff0c;它用的是ForkJoinPool。 使用ForkJoinPool的好处是&#xff0c;把1个任务拆分成多个“小任务”&#xff0c;把这…

【MySQL学习笔记】(七)内置函数

内置函数 日期函数示例案例-1案例-2 字符串函数示例 数学函数其他函数 日期函数 示例 获得当前年月日 mysql> select current_date(); ---------------- | current_date() | ---------------- | 2023-09-03 | ---------------- 1 row in set (0.00 sec)获得当前时分秒…

剑指 Offer 57 - II. 和为s的连续正数序列(简单)

题目&#xff1a; class Solution { public:vector<vector<int>> findContinuousSequence(int target) { //本题使用滑动窗口&#xff08;双指针&#xff09;int i1, j1; //定义左右边界&#xff0c;一般是左闭右开int sum0; //窗口内的和vector&…

区块链技术与应用 - 学习笔记1【引言】

大家好&#xff0c;我是比特桃。本系列主要将我之前学习区块链技术时所做的笔记&#xff0c;进行统一的优化及整合。其中大量笔记源于视频课程&#xff1a;北京大学肖臻老师《区块链技术与应用》公开课。肖老师的课让我找回了求知若渴般的感觉&#xff0c;非常享受学习这门课的…