Zernike多项式法生成相位理论推导及图像引导实现原理

目录

引言

波前传感器

​编辑

关于相位计算问题补充

关于结构图的修正

光束质量评价指标

Zernike多项式

​编辑Zernike多项式法生成相位

光强分布求波前相位-GS

更快的迭代方法SPGD

基于Zernike模式的SPGD


引言

我们还是先从第一篇文献开始理解展开今天分享的一些重要部分。

这个部分不详细介绍了,第一次介绍的时候,我感觉这篇文献出现了一些误解。这篇文献提出了这种方法是起源与OA的方法,和第二篇方法其实还不一样。这种方法其实和OA方法是同宗同源的。这次分享还是围绕这次的构架的几个点展开的:

1、波前无传感器自适应调节

2、光束质量评价指标

3、相位问题

4、光强问题

波前传感器

这个调节思路其实和波前整形是不一样的,波前是调节初始光引导光穿过散射介质的研究,而自适应调节更像是波后调节--因为OA的初始用途就是天文学中断流扰动问题。在OA中调节原理还区分有无波前传感器的区别。这种区别更像是反馈调节的信息区别,波前传感器可以探知到波前畸变的信息,而没有波前传感器的话,这是大部分的实验室常见的研究方向。这种方向其实是通过CCD或者其他图像探测设备来优化探测的某一指标。

无波前传感原理图

对探测器采集图像获得的畸变光强分布,利用选取的性能指标,通过波前控制器的控制算法计算得到下一步需要校正的面型,产生控制信号,再由波前控制器驱动校正器(DM)
校正,经过一步步的迭代,使得性能指标朝着极值方向,直至达到我们想要的性能后停止。

有波前传感系统原理图

由波前探测、控制和校正三大部分依次工作,传感器探测波前畸变信息,并传递给控制器使其通过相应的控制算法,产生校正器要施加的控制信号,从而能够实时的校正畸变。相比于前面所讲的无波前探测自适应通过某一性能指标进行迭代,波前校正量与待校正波前畸变之间的相关性不足,导致波前残差收敛慢(校正带宽低),效率低等缺点。而有波前传感器波前校正量是对待校正波前畸变探测后得到的,在理想情况下,两者之间是高度相关的,所以可以通过一次(一个控制周期)校正就能达到较高的精度,实时性高。

因此,这里重点研究指标是无波前传感器叠加图像探测器,所以在正式文案的第一个点就是探讨OA优化指标、波前整形指标、还有最近前沿的优化指标。

关于相位计算问题补充

对于使用CCD设备来说,探测器可以探测强度,其实就根本没办法直接探测到相位的变化的。但是就这个问题而言,其实是在OA领域有解决方案的。这种方案就是利用光强反向算出Zernike多项式,将多种Zernike分量叠加可以生成总的相位。这种方法其实非常有意思,在上面这张结构图的中,是一种神经网络叠加Zernike的相位。

关于结构图的改进

下图是第一次分享的时候制作的SVG图片,当时我第一次认为是同时使用两路神经网络来反向生成图片,这在论文后面附加解释中也是按照这种思路来理解。但是通过阅读OA的理解深入以后,这个相位和光强还可以做一个不一样的处理。首先是我知道了光强可以反推相位,然后是相位可以反推的。那么是不是可以只需要留一个就行了,然后利用这个关系互推就行,这个后面可以再深入再考虑。

光束质量评价指标

最常用的的几种性能指标函数:

1、波前整形性能指标:

\eta=\frac{I_{opt}}{I_{ref}}

2、OA领域五种指标:

1、光强均匀度

光强均匀度定义为平均强度\left\langle I\right\rangle与峰值强度I_{_{\mathrm{max}}}之比,用于描述激光束近场分布均匀性

U=\frac{\left\langle I\right\rangle}{I_{\max}}

2、斯特列尔比(Strehl Ratio)
斯特列尔比(SR)是光束经过有畸变系统后的峰值光强I_{\max,\text{real}}与无畸变系统后
的峰值光强I_{\max,\text{ideal}}比。即

SR=\frac{I_{\max,\text{real}}}{I_{\max,\text{ideal}}}

3、桶中功率比(BQ)
桶中功率比又称环围功率比,定义为相同桶尺寸内理想光斑环围功率与实际
光斑环围功率比的方根值

BQ=\sqrt{\frac{P_{\mathrm{ideal}}}{P_{\mathrm{real}}}}

4、像清晰度函数

像清晰度函数即光斑中的每一点光强平方之和,值越大,表示校正效果越好,
越理想

S=\iint I^2\left(x,y\right)dxdy

5、相关系数
相关系数即实际光斑与理想光斑的相似程度,值越大,表示校正效果越好,表达式为

J_c=\frac{\sum\left(I-\overline{I}\right)\left(I_i-\overline{I}_i\right)}{\sqrt{\sum\left(I-\overline{I}\right)^2\left(I_i-\overline{I}_i\right)^2}}

其中I为菲涅耳衍射公式计算得到的理想远场光斑分布,I_i为每次迭代所得的实际光斑分布。相比于其他指标,相关系数指标在收敛效果上差,但其在收敛速度上存在明显的优势。

3、图像引导评价指标

1、熵焓:H\left(I_{norm}\right)=-\sum_{m}\sum_{n}I_{norm}[m,n]\log\left(I_{nom}[m,n]\right)

2、像素光强:\frac{p_{matched}}{p_{opl}}=\frac{\sum_nI_{obj}^2[n]/\sum_nI_{obj}[n]}{I_{obj}[m]}

3、静态指标\mathcal{L}_{\mathrm{static}}(O,\Phi)=\sum_{i=1}^{L}\parallel I_{i}-O*|\mathcal{F}[M\circ e^{j(\Phi+\Gamma_{i})}]\mid^{2}\parallel^{2}

4、动态评估\mathcal{L}_\text{dynamic}[O(t_\mathrm{i}),\Phi(t_\mathrm{i})]=\sum_{i=1}^L \|I(t_\mathrm{i})-O(t_\mathrm{i})*|\mathcal{F}\{M\circ e^{j\left[\Phi(t_\mathrm{i})+\Gamma_\mathrm{i}\right]}\}|^2\|^2

Zernike多项式

Zernike条纹多项式又称为“University of Arizona”多项式,由James C. Wyant教授提出,它属于Zernike标准多项式的另一种表达。 在三维测量中,当真实相位被截断时,真实相位\phi和包裹相位\varphi之间关系如下: 
\varphi\big(x,y\big)=\omega\big(\phi\big(x,y\big)\big)

\omega()表示真实相位被包裹的过程,可以表示为: 
\omega(x)=\arctan\left(\sin(x)/\cos(x)\right)

通常,大多数包裹的相位图都是平滑的、连续的,因此真实的相位图可以用一系列正交Zernike多项式进行表示:

\phi\left(x,y\right)=\sum_{i=1}^sc_iZ_i\left(x,y\right)

式中Z_i(x,y)表示单位圆中定义的第i个Zernike多项式,c_i表示对应的系数,s(通常设为36)表示多项式的个数。Zernike多项式定义在极坐标下可表示为:

\left.\left.\begin{array}{l}Z_{eveni}=R_{n}^{m}\left(\rho\right)\cos m\theta\\Z_{oddi}=R_{n}^{m}\left(\rho\right)\sin m\theta\end{array}\right.\right\}m\neq0

Z_i=R_n^m\quad m=0

式中R_n^m(\rho )代表Zernike多项式径向多项式,\rho代表距离原点的径向距离,cos(m\theta )sin(m\theta )代表角度函数,m代表角度频率,\theta代表与x轴的夹角。i表示序号,m表示角度频率,n为方位频率

Z_{eveni}Z_{oddi}是Zernike多项式在极坐标下的一个分量。它与径向多项式R_n^m(\rho )和角度函数的乘积给出了Zernike多项式在极坐标下的值:

R_{n}^{m}\left(\rho\right)=\sum_{k=0}^{\frac{(n-m)}{2}}\frac{\left(-1\right)^{k}\left(n-k\right)!}{k!\left(\frac{n+m}{2}-k\right)^{k}!\left(\frac{n+m}{2}-k\right)^{k}!}\rho^{n-2k}

Zernike多项式还可以进一步表示为:

\begin{cases}m\neq0&\begin{cases}Z_j\left(\rho,\theta\right)=\sqrt{2\left(n+1\right)}R_n^m\left(\rho\right)\cos m\theta&j\in even\\Z_j\left(\rho,\theta\right)=\sqrt{2\left(n+1\right)}R_n^m\left(\rho\right)\sin m\theta&j\in odd\end{cases}\\m=0&Z_j\left(\rho,\theta\right)=\sqrt{\left(n+1\right)}R_n^0\left(\rho\right)\end{cases}

不同阶数的Zernike多项式在极坐标下的表达式,对应于不同的像差。下列是生成的前60阶Zernike像差,可以看出,低阶项较为平滑,细节不足,随着阶数的增加,细节增加。

Zernike像差解析表达式

前60阶Zernike多项式相位分布图

 这些多项式根据其径向阶n和方位角频率m进行组织。径向分量描述了多项式如何随半径ρ而变化。例如,径向阶为2的模意味着描述该模的多项式有一个数学项,其中最高幂是2,即它有一个\rho ^2项。正数代表余弦变化,负数代表正弦变化。方位角频率描述了多项式如何随角度\theta而变化。例如,值为2表示多项式随cos(2\theta )而变化。

基于Zernike多项式拟合的相位展开状态空间模型

\varphi\left(x,y\right)=\omega\Bigg(\sum_{i=1}^{s}c_{i}Z_{i}\left(x,y\right)\Bigg)

\omega()可以是数学公式公式,也可以是神经网络


Zernike多项式法生成相位

利用Zernike生成相位屏,不同于傅里叶变换法(功率谱法)生成相位屏,此方法的低频充分,但存在高频不足的问题,需要增加阶数进行补偿。这种方法是从计算各阶系数入手,而非功率谱的相位阵列,要考虑各阶的相关,先通过相位功率谱函数求得协方差

\left\langle a_i^*a_j\right\rangle=\frac{1}{\pi^2}\int_0^1\int_0^{2\pi}\left\langle\varphi\left(r\right)\varphi\left(r'\right)\right\rangle Z_i^*\left(r\right)Z_j\left(r'\right)\mathrm{d}r\mathrm{d}r^{\prime}

\left\langle\varphi(r)\varphi(r^{\prime})\right\rangle的相位结构函数,当i-j为奇数数时,协方差为零,为偶数时为
\begin{aligned} M_{i,j}& =\left\langle a_{i}a_{j}\right\rangle \\ &=0.15\biggl(\frac D{r_0}\biggr)^{\frac53}\frac{\left(-1\right)^{\frac{n_i+n_j-2m_i}2}\biggl[\left(n_i+1\right)\bigl(n_j+1\bigr)\biggr]^{1/2}\Gamma\left(\frac{14}3\right)\Gamma\biggl(\frac{n_i+n_j-5/3}2\biggr)\delta_{m_{jm_j}}}{\Gamma\biggl(\frac{n_i-n_j+17/3}2\biggr)\Gamma\biggl(\frac{n_j-n_i+17/3}2\biggr)\Gamma\biggl(\frac{n_i+n_j+23/3}2\biggr)} \end{aligned}

其中\Gamma为Gamma函数,n、m为第j项Zernike多项式的径向和角向频率数。

可以看出,协方差矩阵不全为零,即Zernike多项式之间并非完全统计独立的,这将为随机数分布的产生带来问题,所以要借助转换,而K-L函数的向量是完全不相关的,作为很好的选择,可以先计算出其独立变量的系数B,再经过转换,得到Zernike系数A

A=U^{T}B

其中U^T=U^{-1}是幺正矩阵,且满足UMU^T=S为对角矩阵,XSX^T=M通过奇异值
分解可以求得幺正矩阵X,X^T=U

由于Zernike一阶项为活塞像差,不影响相位分布,所以从第二项开始考虑,协方差矩阵

M=E\left(AA^T\right)=\begin{vmatrix}E\left(a_2a_2\right)&E\left(a_2a_3\right)&\cdots&E\left(a_2a_m\right)\\E\left(a_3a_2\right)&E\left(a_3a_3\right)&\cdots&E\left(a_3a_m\right)\\\vdots&\vdots&\ddots&\vdots\\E\left(a_ma_2\right)&E\left(a_ma_3\right)&\cdots&E\left(a_ma_m\right)\end{vmatrix}

由A和B的关系易的一个新的协方差矩阵
E\left(BB^T\right)=E\left(UAA^TU^T\right)=S

由于S是对角矩阵,所以B是不相关的统计独立的高斯随机变量,均值为零,方差由对角矩S阵给出。


光强分布求波前相位-GS

 从如何从测得的光强分布求波前相位的思考,对基于焦平面成像的波前探测技术进行了研究。对近轴传输的波动方程

\left[\nabla_{\perp}^{2}+2\text{j}k\frac{\partial}{\partial z}+2k^{2}\right]u=0

其中u=\left|u\right|\exp\left(j\varphi\right),对光场取共轭后,运算可得

k\dfrac{\partial I}{\partial z}+\nabla I\nabla\varphi=0

由上式可知,某一平面上的相位分布,可以通过可探测的传输轴上的两个截面的光强分布求得,但解析解难求。1972年,由Gerchberg及Saxton提出了GS算法,算法利用迭代的思想,即由已知的像平面和出瞳上的光强分布作为约束条件,设置循环条件多次迭代得到畸变光束的瞬时相位分布,然后与初始相位做差可得到相位畸变\varphi _{DM},对相位畸变取共轭后加载至波前校正器可实现畸变校正补偿。

\varphi_{_\mathrm{res}}=\varphi_{_{in}}+\varphi_{_{DM}}

其中\varphi _{in}为湍流导致的波前畸变,\varphi _{DM}为计算得到的相位畸变的共轭,\varphi _{res}为校正残差。所以校正会有误差存在,可以用校正后的光场分布与理想情况比较,相位畸变误差

\varepsilon=\overline{\left(\left|u_1-u_0\right|\right)}

其中u_1为校正后光场分布,u_0为理想光场分布。

已知近场和远场的光强分布,首先给定一个初始相位分布\varphi _0(x,y),根据光束而定,一般选为零相位面,与近场振幅分布\left | E(x,y) \right |=\sqrt{I(x,y)}构成入射光的复振幅分布

E\left(x,y\right)=\left|E\left(x,y\right)\right|\exp\left(j\varphi_0\left(x,y\right)\right)

即初始为平面波入射,对其做傅里叶变换,得到焦面复振幅分布

E\left(u,\nu\right)=\left|E^{\prime}\left(u,\nu\right)\right|\exp\left(\text{j}\varphi\left(u,\nu\right)\right)

振幅\left|E^{\prime}\left(u,\nu\right)\right|由测得的\left|E\left(x,y\right)\right|替换,再进行傅里叶逆变换得到下一次的迭代的相位,回到公式\left|E\left(x,y\right)\right|,进行新一轮的迭代,直到达到预定的近似程度或迭代次数的条件时,输出此时的相位。

GS算法的具体流程如图所示,下述为传统GS算法的具体实施过程:
两个可测约束条件为:透镜入射前的振幅分布\left | E \right |,后焦面的振幅分布\left | E_f \right |
(1)对一个振幅为\left | E \right |相位随机分布\varphi _0的光波即物光波进行傅里叶变换,得到像平面的光波。
(2)将得到的像平面的光波的相位保留,振幅由测得的后焦面振幅\left | E_f \right |替换,在进行傅里叶变换。
(3)将得到的近场的相位保留,振幅由测得\left | E \right |替换,作为下次迭代初始条件,进行迭代,使得振幅分布不断接近真实值,达到预定的近似程度或迭代次数的条件时,输出此时的相位。

更快的迭代方法SPGD

除了上面利用相位信息方法,最常用的就是1997年提出的随机并行扰动梯度下降(SPGD)算法,该算法可调参数少,实现起来较为简单,对动态波前畸变校正效果已经经过多年研究,证实了其效率和优越性。是目前最为常用的无模型控制方法。作为一种盲优化算法,无需知道控制电压与评价函数之间的关系,只需根据性能指标的变化来确定最优的控制电压的搜索方向,每次通过控制电压对变形镜施加随机微小扰动,通用性强,但由于波前校正量与待校正波前畸变之间的相关性不足,需要进行多次迭代计算,因此其收敛速度相对较慢。

对于N个单元的无波前探测的AO系统,将扰动\left\{\delta u_j\right\}(j=1,...N)并行施加到N个单元。数学证明,对于相互统计独立且随机的扰动\left\{\delta u_j\right\},在不影响收敛的前提下,可以将各扰动看成伯努利分布,即相同扰动幅值取正负的概率相同

P\Big(\delta u_j=\pm\sigma\Big)=0.5

其中u_j为波前校正器的控制信号。系统性能指标J(u)为控制信号u_j的函数,AO的目标即通过算法迭代获得合适的控制信号,从u_j得到最优J(u)。性能指标变化
量为\delta J^{(n)}

\delta J^{(n)}=J\left(u_1^{(n)}+\delta u_1,...u_j^{(n)}+\delta u_j...u_N^{(n)}+\delta u_N\right)-J\left(u_1^{(n)},...u_j^{(n)}...u_N^{(n)}\right)

u_j^{(n+1)}=u_j^{(n)}+k\delta J^{(n)}\delta u_j^{(n)}

其中k为增益系数,正负由性能指标的决定,性能指标向极大值优化时取正,否则,取负。


基于Zernike模式的SPGD

通过Zernike相位屏的生成占比,可以看到,对湍流引起的波前畸变中,低阶像差在湍流中的占比大,权重高,本文基于Zernike多项式的特殊性,提出用Zernike多项式作为扰动项,来优化SPGD算法的迭代次数。对低阶像差进行迭代,速度快、适用范围广、实验工作量小,对第i阶Zernike像差校正,分别生成此阶数的正负单位像差,利用变形镜拟合Zernike像差,根据探测的光斑信息,判断性能指标的变化,生成下一次迭代的面型,原理与传统的相同,只是扰动对象由变形镜拟合的连续的Zernike像差代替由变形镜随机驱动器的电压。


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux-端口、nmap命令、netstat命令

端口是设备与外界通讯交流的出入口,可分为物理端口和虚拟端口 物理端口实际存在可以看见,而虚拟端口是指计算机内部的端口,是不可见的,用来操作系统和外部交互使用。 IP地址不能锁定程序,所以可以通过端口&#xff0…

圣诞节来临,如何用海外云手机给亚马逊店铺引流?

马上就要到圣诞节了,这是一年中冲刺销售量的最后一个好机会,对所有亚马逊卖家都十分重要。而无论是亚马逊新手卖家还是老卖家,要想在激烈的竞争中取胜,仅仅靠产品本身是不现实的,通过测评和社媒引流获取更多曝光和流量…

提升效率必备:用关键词替换法重命名文件夹技巧

在日常生活和工作中,经常要处理大量的文件夹,进行归类、整理和重命名。但是手动一个个重命名文件夹既费时又费力。为了提高效率,可以采用关键词替换法来批量重命名文件夹。现在讲解云炫文件管理器如何用关键词替换命名文件夹的具体步骤。 首先…

【Linux进程】 进程的理解

目录 前言 1. 系统管理 2. 进程 2.1 概念 2.2 进程的调度 2.3 描述进程-PBC 3. 查看进程 4. 通过系统调用获取进程标示符 前言 在计算机科学领域,进程是一种重要的概念,在日常学习中也经常遇到进程这个概念,那么进程到底是什么&#x…

Keras实现seq2seq

概述 Seq2Seq是一种深度学习模型,主要用于处理序列到序列的转换问题,如机器翻译、对话生成等。该模型主要由两个循环神经网络(RNN)组成,一个是编码器(Encoder),另一个是解码器…

使用mysql查询当天、近一周、近一个月及近一年的数据以及各种报表查询sql

1.mysql查询当天的数据 1 select * from table where to_days(时间字段) to_days(now()); 2.mysql查询昨天的数据 1 select * from table where to_days(now( ) ) - to_days( 时间字段名) < 1 3.mysql查询近一个月的数据 1 SELECT * FROM table WHERE date(时间字段) …

OR-3150:IGBT驱动光耦,可替代HCPL3150

具有MOSFET高输入阻抗和GTR低导通压降特性提供隔离反馈 高隔离电压 1.5A输出电流 工业温度范围&#xff1a;–40C 至 110C 宽工作 VCC 范围 特征 VCM 1500V 时最小共模抑制 &#xff08;CMR&#xff09; 为 35 kV/μs 最大低电平输出电压 &#xff08;VOL&#xff09; 1.0…

杨中科 ASP.NETCore开发效率利器 HOT RELOAD

HOT RELOAD 1、困惑:修改了服务器端的代码&#xff0c;必须重新运行程序。 2、方法1: [启动 (不调试) ] 3、方法2: .NET 6开始的Hot Reload(热重载) 正常修改代码后 不重启&#xff0c;是无法看到新的数据展示在页面 修改 运行结果&#xff1a; 方式一&#xff1a;设置开始…

Android WiFi基础概览

Android WiFi 基础概览 1、WiFi协议2、Android WLAN 架构2.1 应用框架2.2 Wi-Fi 服务2.3 Wi-Fi HAL 3、相关编译 android13-release 1、WiFi协议 Wi-Fi&#xff08;无线通信技术&#xff09;_百度百科 2.4GHz 频段支持以下标准&#xff08;802.11b/g/n/ax&#xff09;&#xff…

CommonJS 和 ES6 Module:一场模块规范的对决(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

质量管控之Bug管理 5大注意事项

Bug管理对于提高软件质量、用户满意度、开发效率等都具有重要的意义。它是确保软件质量和用户体验的关键环节。而Bug管理不善&#xff0c;可能会导致软件质量下降、项目进度延误、用户满意度降低、等不良影响。 因此&#xff0c;正确有效地进行Bug管理非常重要&#xff0c;而进…

Maven各版本的官方下载地址

2023年1月3日&#xff0c;周三上午 官方下载地址&#xff1a; https://dlcdn.apache.org/maven/

oracle语法学习

oracle语法学习 1.备份表 create table bd_psndoc_temp as select * from bd_psndoc2.还原表 drop table bd_psndoc; create table bd_psndoc as select * from bd_psndoc_temp3.查询表的前5条记录 select * from bd_psndoc_temp where rownum<54.从一个表中复制所有的列…

为什么有人说PMP是水证,它的含金量到底怎么样?

在我国大陆&#xff0c;有好多证书被商业化得太重了&#xff0c;甚至演变成了个人或一些公司摇钱的工具。所以有些证书受人吹捧它崛起的快&#xff0c;但是活不长&#xff0c;甚至“夭折”&#xff0c;比如以前微软系列的证书&#xff1b; 而PMP认证从国外引进大陆这么多年了&…

为什么原生广告成为APP广告变现的重要选择?

APP广告变现可以采用的广告形式有多种选择&#xff1a;激励视屏、插屏广告、原生广告。开发者可以在不影响用户体验的情况下制定合适的变现策略。 一、什么是原生广告&#xff1f; 原生广告不同于以往传统广告的效果&#xff0c;用户在观看时就像内容里的某个吸睛片段&#x…

onxxruntime使用cuda以及tensorrt进行加速

1、版本匹配 版本需要匹配&#xff0c;不然运行会报错 2、onnxruntime之tensorrt加速 方式一&#xff1a; OrtTensorRTProviderOptions trt_options{}; trt_options.trt_max_workspace_size 2147483648; trt_options.trt_max_partition_iterations 10; trt_options.trt_m…

学习使用layPage, 多功能JS分页组件/插件的方法

学习使用layPage, 多功能JS分页组件/插件的方法 效果图分页代码 效果图 点击查看链接 分页代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Layui</title><meta name"renderer" content"we…

YOLOv8改进:IoU系列篇 | Shape-IoU结合基于辅助边框的Inner-IoU损失,实现再次创新

🚀🚀🚀本文改进: Shape-IoU结合基于辅助边框的Inner-IoU损失,小目标检测实现涨点,基于辅助边框的优化前提下,更加关注边界框本身的形状和尺度来计算损失 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研…

[UUCTF 2022 新生赛]ez_rce

[UUCTF 2022 新生赛]ez_rce wp 在做这道题时&#xff0c;我参考了这篇博客&#xff1a; https://www.cnblogs.com/bkofyZ/p/17594549.html 认识到了自己的一些不足。 题目代码如下&#xff1a; <?php ## 放弃把&#xff0c;小伙子&#xff0c;你真的不会RCE,何必在此纠…

Unity真机Log工具 SRDebugger使用记录,GM布局管理

SRDebugger 官方文档安装及初始化常用设置选项布局选项快捷键选项高级设置 使用GM工具案例常用特性GM分组排序GM固定页签 官方文档 文档&#xff1a; https://www.stompyrobot.uk/tools/srdebugger/documentation/ 插件地址&#xff1a; https://assetstore.unity.com/package…