【论文笔记】Text2QR
论文:Text2QR: Harmonizing Aesthetic Customization and Scanning Robustness for Text-Guided QR Code Generation
Abstract
二维码通常包含很多信息但看起来并不美观。stable diffusion的出现让平衡扫描鲁棒性和美观变为可能。
为了保证美观二维码的稳定生成,引入了QR美观蓝图(QR Aesthetic Blueprint, QAB)模块,生成蓝图图像,对整个生成过程进行控制。随后,可扫描性增强潜在细化(the Scannability Enhancing Latent Refinement, SELR)过程在潜在空间内细化输出,从而强化了可扫描的鲁棒性。
这个方法利用了stable diffusion的强大生成能力,在图像美观性和二维码可扫描行之间进行权衡。
Github仓库
1 Introduction
现在有很多工作致力于改善二维码的美观性,但是大多导致了扫描的不稳定。
本文提出了Text2QR,提供无缝生成二维码的解决方案,平衡用户定义的美观性和强大的可扫描性。
框架通过三个关键步骤展开:
- 用户通过使用stable diffusion生成他们喜欢的图案来启动该流程。
- 协同作用开始于QAB模块中图像的混合。这个模块生成一张蓝图,合并预先生成的图像(引导图像)中的内容,并准确反映QR码中的编码信息。然后将这张蓝图图像输入ControlNet,指导Stable Diffusion保留用户定义的美观性,并维持QR码明暗块之间的所需关系。虽然生成的结果会带来解码挑战,但是其表现出明显的明暗块分布,同时保持与用户偏好一致。
- 构建了能量方程,量化生成结果中的内容和消息的一致性。通过对潜在代码进行梯度上升迭代来优化该能量方程,逐渐增强扫描鲁棒性,同时保持内容一致性。
本文的贡献:
- Text2QR,在二维码生成中协调用户定义的美观性和强大的可扫描性。
- 引入QAB模块和SELR流程,用于保持美观的同时优化扫描稳健性。
- 更优越的效果
3 Preliminary
先阐明QR码扫描仪从美观的QR码图像中解码二进制信息的过程。
给定带有QR码的彩色图像,首先通过提取亮度通道(YCbCr颜色空间中的Y通道),将其转化为灰度表示,表示为 I ∈ R H × W I\in \mathbb{R}^{H\times W} I∈RH×W,包含 L L L个灰度级(通常为256)。
设QR码包含 n × n n\times n n×n个模块,每个模块的大小为 a × a a\times a a×a个像素,有 n ⋅ a ≤ min ( H , W ) n\cdot a\leq \min(H, W) n⋅a≤min(H,W)。这样就构建出了一个包含 n 2 n^2 n2个模块的网格,记作 M k M_k Mk,其中 k ∈ [ 1 , 2 , ⋯ , n 2 ] k\in [1,2,\cdots,n^2] k∈[1,2,⋯,n2]。这个网格将图像 I I I划分为 n 2 n^2 n2个块,表示为 I M k ∈ R a × a I_{M_k}\in\mathbb{R}^{a\times a} IMk∈Ra×a。
第 k k k个模块被解码为1位信息 I ~ k \tilde{I}_k I~k,代表0或1,其中 I ~ ∈ R n × n \tilde{I}\in \mathbb{R}^{n\times n} I~∈Rn×n表示整张二进制图的结果。
通常扫描仪对于每个模块的中心子区域内的像素进行采样。
令 θ \theta θ为以模块 M k M_k Mk为中心、大小为 x × x x\times x x×x的正方形区域, p ∈ { 1 , 2 , ⋯ , H } × { 1 , 2 , ⋯ , W } \mathbf{p}\in\{1,2,\cdots,H\}\times \{1,2,\cdots,W\} p∈{1,2,⋯,H}×{1,2,⋯,W}表示 I I I的像素坐标。解码后的二进制值 I ~ k \tilde{I}_k I~k可以记作:
v k = 1 x 2 ∑ p ∈ θ I M k ( p ) ; I ~ k = { 0 if v k ≤ T b , 1 if v k ≥ T w , − 1 otherwise . v_k=\frac{1}{x^2}\sum_{\mathbf{p}\in\theta}I_{M_k}(\mathbf{p});\tilde{I}_k= \begin{cases} 0 \qquad & \text{if} \ v_k\leq\mathcal{T}_b, \\ 1 \qquad & \text{if} \ v_k\geq\mathcal{T}_w, \\ -1 \qquad & \text{otherwise}. \end{cases} vk=x21p∈θ∑IMk(p);I~k=⎩ ⎨ ⎧01−1if vk≤Tb,if vk≥Tw,otherwise.
其中 T b \mathcal{T}_b Tb和 T w \mathcal{T}_w Tw是二值化的阈值。考虑到对称性,令 T b = L ⋅ ( 1 − η ) / 2 \mathcal{T}_b=L\cdot (1-\eta)/2 Tb=L⋅(1−η)/2, T w = L ⋅ ( 1 + η ) / 2 \mathcal{T}_w=L\cdot(1+\eta)/2 Tw=L⋅(1+η)/2,其中 η ∈ ( 0 , 1 ) \eta\in(0,1) η∈(0,1)。超参数 η \eta η可以控制二值化过程的严格性。

4 Method
![![[Pasted image 20240330222807.png]]](https://img-blog.csdnimg.cn/direct/60a18b3e06f34bdcaadba02eeff89202.png)
4.1 Overall
第一阶段,用户准备 I g I^g Ig和 M \mathcal{M} M(依赖关联参数 c c c和 z 0 z_0 z0)。
第二阶段,关键一步是通过创新的QAB模块将 I g I^g Ig和 M \mathcal{M} M中封装的信息无缝集成,以制定全面的蓝图,记为 I b I^b Ib。
随后, I b I^b Ib在ControlNet C \mathcal{C} C中进行处理,以对stable diffusion model施加影响。这个影响涉及通过受控过程调整中间特征,定义为:
I s = G ( c , z 0 ∣ C ( I b , c , z 0 ) ) I^s=\mathcal{G}(c,z_0|\mathcal{C}(I^b,c,z_0)) Is=G(c,z0∣C(Ib,c,z0))
这种整合确保了协同输出 I s I^s Is和谐地平衡了源自 I g I_g Ig的审美偏好和 M \mathcal{M} M的结构约束。
最后阶段, I s I^s Is通过SELR模块进行迭代微调,改进了扫描鲁棒性,同时保留了美术品质。
最后输出是一个美观的二维码 Q Q Q。
4.2 QR Aesthetic Blueprint
该模块旨在通过集成二维码信息和引导图像细节来创建可扫描的蓝图。
最初,从引导图像 I g I^g Ig中提取亮度通道,表示为 I y g I^g_y Iyg。为了确保可以比较的分布,分别使用直方图偏振(Histogram polarization)进行亮度调整和模块重组的方法进行像素重新排列来预处理 I y g I^g_y Iyg和 M \mathcal{M} M。最后,应用自适应半色调方法(Adaptive-Halftone)将二者混合,产生蓝图图像 I b I^b Ib。
4.2.1 Histogram polarization
该模块的主要目的是协调 I y g I^g_y Iyg的直方图分布和QR码的直方图分布。该过程增强了 I y g I^g_y Iyg的对比度,产生高对比度的图像 I h c I^{hc} Ihc。
直方图偏振操作由查找表 H \mathcal{H} H表示,其将像素值从一个灰度级映射到另一个灰度级。
对于每一个像素 p \mathbf{p} p,令 τ = I y g ( p ) \tau=I^g_y(\mathbf{p}) τ=Iyg(p), τ ′ = I h c ( p ) \tau'=I^{hc}(\mathbf{p}) τ′=Ihc(p),将过程表示为:
τ ′ = H ( τ ) \tau'=\mathcal{H}(\tau) τ′=H(τ)
令 n τ n_\tau nτ表示灰度级 τ ∈ [ 0 , L ) \tau\in[0,L) τ∈[0,L)的出现次数,为每一个灰度级 τ \tau τ引入累积分布函数(Cumulative Distribution Function, CDF):
cdf ( τ ) = ∑ i = 0 τ n i H × W \text{cdf}(\tau)=\sum_{i=0}^\tau \frac{n_i}{H\times W} cdf(τ)=i=0∑τH×Wni
目标是令生成的 I h c I^{hc} Ihc在 [ 0 , T b ) ∪ [ T w , L ) [0,\mathcal{T}_b)\cup[\mathcal{T}_w,L) [0,Tb)∪[Tw,L)范围内具有平坦的直方图。同时排除在 [ T b , T w ) [\mathcal{T}_b,\mathcal{T}_w) [Tb,Tw)中出现的情况。为了实现这一点,首先创建一个新图像 I h e I^{he} Ihe,其线性化CDF的值的范围为 [ 0 , L − T w + T b ) [0,L-\mathcal{T}_w+\mathcal{T}_b) [0,L−Tw+Tb)。令 τ ~ = I h e ( p ) \tilde{\tau}=I^{he}(\mathbf{p}) τ~=Ihe(p),于是有:
τ ~ = ( L − T w + T b ) ⋅ cdf ( τ ) \tilde{\tau}=(L-\mathcal{T}_w+\mathcal{T}_b)\cdot \text{cdf}(\tau) τ~=(L−Tw+Tb)⋅cdf(τ)
随后,通过添加 T w − T b \mathcal{T}_w-\mathcal{T}_b Tw−Tb来移动值的范围 [ T b , L ) [\mathcal{T}_b,L) [Tb,L)从而获得 I h c I^{hc} Ihc:
τ ′ = H ( τ ) = { τ ~ if τ ~ < T b , τ ~ + T w − T b if τ ~ ≥ T b . \tau'=\mathcal{H}(\tau)=\begin{cases} \tilde{\tau} \qquad & \text{if} \ \tilde{\tau}<\mathcal{T}_b, \\ \tilde{\tau}+\mathcal{T}_w-\mathcal{T}_b \qquad & \text{if} \ \tilde{\tau}\geq\mathcal{T}_b. \\ \end{cases} τ′=H(τ)={τ~τ~+Tw−Tbif τ~<Tb,if τ~≥Tb.
![![[Pasted image 20240331123739.png]]](https://img-blog.csdnimg.cn/direct/749b6f72548c43cdb265009438bacc07.png)
4.2.2 Module reorganization
为了将QR码 M \mathcal{M} M与 I h c I^{hc} Ihc混合,首先将 I h c I^{hc} Ihc二值化为二值图像 I b i n I^{bin} Ibin。该二值图像指导module reorganization方法,记为 E r \mathcal{E}_r Er,该方法在保留编码信息的同时重新排列 M \mathcal{M} M的模块。该过程可以表述为:
I b i n ( p ) = { 0 if I h c ( p ) < T b , 1 if I h c ( p ) > T w , I^{bin}(\mathbf{p})=\begin{cases} 0 \qquad & \text{if} \ I^{hc}(\mathbf{p})<\mathcal{T}_b, \\ 1 \qquad & \text{if} \ I^{hc}(\mathbf{p})>\mathcal{T}_w, \\ \end{cases} Ibin(p)={01if Ihc(p)<Tb,if Ihc(p)>Tw,
M r = E r ( M , I b i n ) \mathcal{M}^r=\mathcal{E}_r(\mathcal{M},I^{bin}) Mr=Er(M,Ibin)
4.2.3 Adaptive-Halftone blending
考虑第 k k k个模块区域 M k M_k Mk,我们输入经过histogram polarization后的图像块 I M k h c I_{M_k}^{hc} IMkhc和一个目标值 M k r = 0 or 1 M_k^r=0\ \text{or} \ 1 Mkr=0 or 1。目标是获得蓝图 I b I^b Ib,其中 I M k b I_{M_k}^b IMkb可以被解码为正确的信息,同时保留尽可能多的图像内容。
为了达成这个目标,引入了全新的blending method:Adaptive-Halftone blending(自适应半色调混合)。
具体地,对于每个模块 M k M_k Mk,令 θ k \theta_k θk是一个大小为 u × u u\times u u×u的方形区域,以图像块 I M k h c ( u ≤ a ) I^{hc}_{M_k}(u\leq a) IMkhc(u≤a)为中心。用 M k r \mathcal{M}_k^r Mkr来填充 I θ k h c I_{\theta_k}^{hc} Iθkhc以生成 I M k b I_{M_k}^b IMkb。通过最小化该模块内的编码距离来优化放行区域大小 u u u。 u u u对应的该模块的模拟解码值定义为 E k ( I M k b ∣ u ) E_k(I_{M_k}^b|u) Ek(IMkb∣u):
E k ( I M k b ∣ u ) = 1 a 2 [ ∑ p ∈ θ k L ⋅ M k r + ∑ p ∉ θ k I M k b ( p ) ] = 1 a 2 [ u 2 ⋅ L ⋅ M k r + ∑ p ∉ θ k I M k b ( p ) ] \begin{align} E_k(I_{M_k}^b|u)&=\frac{1}{a^2}[\sum_{\mathbf{p}\in\theta_k} L\cdot \mathcal{M}_k^r+\sum_{\mathbf{p}\notin\theta_k} I_{M_k}^b(\mathbf{p})] \\ &=\frac{1}{a^2}[u^2\cdot L\cdot\mathcal{M}_k^r+\sum_{\mathbf{p}\notin\theta_k} I_{M_k}^b(\mathbf{p})] \end{align} Ek(IMkb∣u)=a21[p∈θk∑L⋅Mkr+p∈/θk∑IMkb(p)]=a21[u2⋅L⋅Mkr+p∈/θk∑IMkb(p)]
特别地,当 u = a u=a u=a时,有 E k ( I M k b ∣ u ) = L ⋅ M k r E_k(I_{M_k}^b|u)=L\cdot\mathcal{M}_k^r Ek(IMkb∣u)=L⋅Mkr。目标是最小化编码距离:
u k = argmin v ∣ ∣ E k ( I M k b ∣ u ) − L ⋅ ( η ⋅ M k r + 1 − η 2 ) ∣ ∣ u_k={\underset{v}{\operatorname{arg min}}}||E_k(I_{M_k}^b|u)-L\cdot(\eta\cdot\mathcal{M}_k^r+\frac{1-\eta}{2})|| uk=vargmin∣∣Ek(IMkb∣u)−L⋅(η⋅Mkr+21−η)∣∣
根据 T b \mathcal{T}_b Tb和 T w \mathcal{T}_w Tw的定义,可以简写上式:
s k = { argmin s ∣ ∣ E k ( I M k b ∣ u ) − T b ∣ ∣ if M k r = 0 , argmin s ∣ ∣ E k ( I M k b ∣ u ) − T w ∣ ∣ if M k r = 1 , s_k=\begin{cases} {\underset{s}{\operatorname{arg min}}}||E_k(I_{M_k}^b|u)-\mathcal{T}_b|| \qquad & \text{if} \ \mathcal{M}_k^r=0, \\ {\underset{s}{\operatorname{arg min}}}||E_k(I_{M_k}^b|u)-\mathcal{T}_w|| \qquad & \text{if} \ \mathcal{M}_k^r=1, \\ \end{cases} sk=⎩ ⎨ ⎧sargmin∣∣Ek(IMkb∣u)−Tb∣∣sargmin∣∣Ek(IMkb∣u)−Tw∣∣if Mkr=0,if Mkr=1,
为每个模块都填充了合适尺寸的同心方形块后,继续将标记(包括查找器和对齐标记)粘贴到最终的蓝图 I b I^b Ib上。
下图展示了从不同的蓝图生成不同的 I s I^s Is:

此调整涉及当 I h c I^{hc} Ihc有效封装模块信息以保留更多图像内容时缩小块的大小。
相反,当需要更明显的控制信号来确保模块在 I s I^s Is中的可扫描性时,它会扩大块的大小。
4.3 Scannability Enhancing Latent Refinement
生成的 I s I^s Is遵循施加的 M r \mathcal{M}^r Mr的结构约束,但因为仍有大量错误的模块,因此不可扫描。为了解决此问题,可扫描性增强潜在细化(Scannability Enhancing Latent Refinement, SELR)提供了很细致的强化过程来增强扫描鲁棒性。
包括取景器和对其图案的标记对于确定QR码的位置和角度至关重要,从而影响其扫描性。因此,在细化之前将它们的外观整合到 I s I^s Is上,记作 I s ^ \hat{I^s} Is^。

使用VAE将增强图像 I s ^ \hat{I^s} Is^编码为潜在代码 z s z_s zs,将VAE的模型记作 E V \mathcal{E}_V EV。总体目标函数 L L L可以被分为三项之和:标记损失 L m \mathcal{L}_m Lm,编码损失 L c \mathcal{L}_c Lc,协调损失 L h \mathcal{L}_h Lh。
L ( z ) = λ 1 L m ( D V ( z ) , I b ) + λ 2 L c ( D V ) ( z ) , I b ) + λ 3 L h ( D V ) ( z ) , I s ) \begin{aligned} \mathcal{L}(z)&=\lambda_1\mathcal{L}_m(\mathcal{D}_V(z),I^b) \\ &+\lambda_2\mathcal{L}_c(\mathcal{D}_V)(z),I^b) \\ &+\lambda_3\mathcal{L}_h(\mathcal{D}_V)(z),I^s) \end{aligned} L(z)=λ1Lm(DV(z),Ib)+λ2Lc(DV)(z),Ib)+λ3Lh(DV)(z),Is)
其中, λ 1 \lambda_1 λ1到 λ 3 \lambda_3 λ3用于平衡各项之间的权重。 D V \mathcal{D}_V DV代表VAE编码器的解码器。 z z z是由 z s z_s zs初始化并在不断迭代中通过最小化目标函数来微调的潜变量,控制生成的QR码 Q = D V ( z ) Q=\mathcal{D}_V(z) Q=DV(z)的可扫描性和美观质量。代码损失 L c \mathcal{L}_c Lc是通过Artcoder: an end-to-end method for generating scanning-robust stylized qr codes这篇文章提出的方法计算的,该方法采用SSLayer提取模块值,通过竞争机制计算基于模块的代码损失。
4.3.1 Marker loss
扫描仪根据标记区域中的特定像素比来识别QR码。
引入一个二元掩码 K c c \mathcal{K}_{cc} Kcc,专门用于过滤标记的交叉中心区域,目的是保护基本标记功能免受因美学定制而造成的潜在损害。形式上,标记损失函数 L m \mathcal{L}_m Lm定义如下:
L m ( Q , I b ) = K c c ⋅ ∣ ∣ Q y − I b ∣ ∣ 2 \mathcal{L}_m(Q,I^b)=\mathcal{K}_{cc}\cdot||Q_y-I^b||^2 Lm(Q,Ib)=Kcc⋅∣∣Qy−Ib∣∣2
其中 Q y Q_y Qy表示二维码 Q Q Q的亮度通道。
这个公式确保了标记的完整性,同时允许对QR码的非标记区域进行美观修改。重点是优化视觉质量,同时保持原始扫描能力。
这个损失函数计算了 L 2 L^2 L2-Wasserstein距离,记为 W 2 W_2 W2,计算 Q Q Q的特征图和 I s I^s Is的距离。
特别地,
4.3.2 Harmonizing Loss
解决了与标记和代码相关的可扫描性问题后,要进一步确保通过协调损失来保留美学品质。特征图 f i f_i fi通过预训练的VGG-19网络的 i ∈ [ 1 , 6 , 11 , 18 , 25 ] i\in[1,6,11,18,25] i∈[1,6,11,18,25]层提取而出,损失可以被计算为:
L h = ∑ i W 2 ( f i ( Q ) , f i ( I s ) ) \mathcal{L}_h=\sum_i W_2(f_i(Q),f_i(I^s)) Lh=i∑W2(fi(Q),fi(Is))
令 P 1 , P 2 P_1,P_2 P1,P2分别为 R n \mathbb{R}^n Rn上具有 μ 1 , μ 2 ∈ R n \mu_1,\mu_2\in\mathbb{R}^n μ1,μ2∈Rn的平均值、非奇异协方差矩阵 C 1 , C 2 ∈ R n × n C_1,C_2\in\mathbb{R}^{n\times n} C1,C2∈Rn×n。 L 2 L^2 L2-Wasserstein距离 W 2 ( P 1 , P 2 ) W_2(P_1,P_2) W2(P1,P2)可以被定义为:
A = trace ( C 1 + C 2 − 2 ( C 1 C 2 C 1 ) 1 2 ) A=\text{trace}(C_1+C_2-2(\sqrt{C_1}C_2\sqrt{C_1})^{\frac{1}{2}}) A=trace(C1+C2−2(C1C2C1)21)
W 2 ( P 1 , P 2 ) = ∣ ∣ μ 1 − μ 2 ∣ ∣ 2 + A W_2(P_1,P_2)=\sqrt{||\mu_1-\mu_2||^2+A} W2(P1,P2)=∣∣μ1−μ2∣∣2+A
协调损失的集成确保优化的输出不仅满足功能要求,而且保留美学品质。本质上,SELR模块利用标记、编码、协调损失来优化生成的QR码的可扫描性和美观性。
相关文章:
【论文笔记】Text2QR
论文:Text2QR: Harmonizing Aesthetic Customization and Scanning Robustness for Text-Guided QR Code Generation Abstract 二维码通常包含很多信息但看起来并不美观。stable diffusion的出现让平衡扫描鲁棒性和美观变为可能。 为了保证美观二维码的稳定生成&a…...
【ReadPapers】A Survey of Large Language Models
LLM-Survey的llm能力和评估部分内容学习笔记——思维导图 思维导图 参考资料 A Survey of Large Language Models论文的github仓库...
站群CMS系统
站群CMS系统是一种用于批量建立和管理网站的内容管理系统,它能够帮助用户快速创建大量的网站,并实现对这些网站的集中管理。以下是三个在使用广泛的站群CMS系统,它们各具特色,可以满足不同用户的需求。 1. Z-BlogPHP Z-BlogPHP是…...
landsat8数据产品说明
1、下载数据用户手册 手册下载网址,搜索landsat science关键词,并点击到官网下载。 2、用户手册目录 3、landsat8数据产品说明 具体说明在手册的第四章,4.1.4数据产品章节,具体描述如下: 英文意思: L8 的…...
Golang 内存管理和垃圾回收底层原理(二)
一、这篇文章我们来聊聊Golang内存管理和垃圾回收,主要注重基本底层原理讲解,进一步实战待后续文章 垃圾回收,无论是Java 还是 Golang,基本的逻辑都是基于 标记-清理 的, 标记是指标记可能需要回收的对象,…...
OpenHarmony:全流程讲解如何编写ADC平台驱动以及应用程序
ADC(Analog to Digital Converter),即模拟-数字转换器,可将模拟信号转换成对应的数字信号,便于存储与计算等操作。除电源线和地线之外,ADC只需要1根线与被测量的设备进行连接。 一、案例简介 该程序是基于…...
计算机学生求职简历的一些想法
面试真的是一件非常难的事情,因为在短短的半小时到一个小时,来判断一个同学行不行,其实是很不全面的。作为一个求职的同学应该怎么办呢?求职的同学可以提前做一些准备,其中比较重要的要数简历的编写。 简历的作用 简…...
网工内推 | 售前专场,需熟悉云计算技术,上市公司,提成高
01 神州数码 招聘岗位:售前工程师 职责描述: 1.负责所在区域华为IT产品线(服务器、存储、云、虚拟化)的售前技术支持工作,包括客户交流、方案编写、配置报价、投标支持、测试等; 2.与厂商相关人员建立和保…...
excel匹配替换脱敏身份证等数据
假如excel sheet1中有脱敏的身份证号码和姓名,如: sheet2中有未脱敏的数据数据 做法如下: 1、在sheet2的C列用公式 LEFT(A2,6)&REPT("*",8)&RIGHT(A2,4) 做出脱敏数据,用来与sheet1的脱敏数据匹配 2、在sheet…...
[技术笔记] Flash选型之基础知识芯片分类
1、按照接口分类 分为 Serial串口Flash 和 Parallel并口Flash; 市场大量使用Serial Flash;价格便宜;已满足系统对数据读写速度的要求; Serial Flash已经可以代表 NOR Flash; 小知识: 1)在…...
Jenkins常用插件安装及全局配置
Jenkins常用插件安装及全局配置 前言 Jenkins是一个流行的持续集成工具,通过安装适用的插件,可以扩展Jenkins的功能,并与其他工具和系统集成。本文将介绍一些常用的Jenkins插件以及安装和配置的步骤。通过安装和配置这些常用插件…...
C++初学者:如何优雅地写程序
我喜欢C语言的功能强大,简洁,我也喜欢C#的语法简单,清晰,写起来又方便好用。 一、为什么不用C语言写程序。 C语言用来做题目,考试研究是很方便的,但是用来写程序做软件,你就会发现,…...
图论- 最小生成树
一、最小生成树-prim算法 1.1 最小生成树概念 一幅图可以有很多不同的生成树,比如下面这幅图,红色的边就组成了两棵不同的生成树: 对于加权图,每条边都有权重(用最小生成树算法的现实场景中,图的边权重…...
LeetCode刷题记(一):1~30题
1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以…...
芒果YOLOv5改进89:卷积SPConv篇,即插即用,去除特征图中的冗余,FLOPs 和参数急剧下降,提升小目标检测
芒果专栏 基于 SPConv 的改进结构,改进源码教程 | 详情如下🥇 👉1. SPConv 结构、👉2. CfSPConv 结构 💡本博客 改进源代码改进 适用于 YOLOv5 按步骤操作运行改进后的代码即可 即插即用 结构。博客 包括改进所需的 核心结构代码 文件 YOLOv5改进专栏完整目录链接:…...
Linux:详解TCP报头类型
文章目录 温习序号的意义序号和确认序号报文的类型 TCP报头类型详解ACK: 确认号是否有效SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段FIN: 通知对方, 本端要关闭了PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走RST: 对方要求重新建立连接; 我们把携带RST标识的称…...
【Leetcode】top 100 二分查找
35 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 基础写法!!!牢记…...
Redis高级面试题-2024
说说你对Redis的理解 Redis是一个基于Key-Value存储结构的开源内存数据库,也是一种NoSQL数据库。 它支持多种数据类型,包括String、Map、Set、ZSet和List,以满足不同应用场景的需求。 Redis以内存存储和优化的数据结构为基础,提…...
HarmonyOS 应用开发之FA模型与Stage模型应用组件
应用配置文件概述(FA模型) 每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供描述应用的基本信息。 应用配置文件需申明以下内容: 应用的软件Bundle名称,应用的开发…...
6个黑科技网站,永久免费
1、http://mfsc123.com https://www.mfsc123.com 一个非常赞的免费商用素材导航网站。 收集了各种免费、免版权的图片、插画、视频、视频模板、音乐、音效、字体、图标网站。 再也不用担心版权问题,都能免费商用,自媒体作者必备。 而且还在每个网站…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
