相干光成像精确计算:采样条件与衍射算法选型指南
搞相干光成像数值计算的人十有八九都经历过这种崩溃物理上明明是对的一跑程序出来的图要么是一团条纹乱麻要么像被什么咬掉一块。问题几乎都不在“光学”而在“计算”——更具体地说是相干光成像的离散化采样和衍射积分数值化之间的那点微妙关系。这篇文章想把这层窗户纸捅破。一直有人坚持认为相干成像计算无非是把菲涅尔衍射积分直接塞给FFT我劝你趁早放弃这个想法。我见过太多案例同样的波长、同样的距离换一种算法结果完全对不上或者同一个算法换一组采样参数输出就从清晰的圆孔衍射变成马赛克。这里面的根源就是“精确计算”这四个字。讲清楚它的原理、采样条件和应用策略不算难但要讲得让人能直接拿去用就得把每一步的“为什么”都说透。写这个东西的触发点是我重新整理某位长期研究相干光计算的前辈的课程笔记。他反复强调一句话数值结果只有在满足采样条件时才等于物理结果。这句话看似老生常谈实际牵涉到傅里叶变换的周期性、衍射核的振荡、距离与分辨率的权衡。想真正掌握相干光成像的精确计算必须把“物理模型—近似条件—离散算法—采样约束”这条线打通。适合谁看搞数字全息、计算光学、光场成像或者做显微系统二次开发的工程师和研究生也适合刚接触信息光学、被一堆衍射公式绕晕的初学者。1. 相干光成像到底在算什么1.1 相干成像与非相干成像的本质差异很多人学信息光学时把相干成像和非相干成像混在一起记实际上一动手编程就露馅。非相干成像系统传递的是强度可以用光学传递函数OTF描述OTF是点扩散函数的傅里叶变换而相干成像系统传递的是复振幅用相干传递函数CTF描述CTF是相干点扩散函数的傅里叶变换通常等于光瞳函数本身。这个区别直接影响你怎么写代码。非相干成像里输入输出都是实值强度算完直接显示就行相干成像里输入和中间过程全是复振幅有模有相位而探测器又只能记录强度。所以相干光成像的“计算”往往分两截一截是正向传播从物面复振幅算出像面复振幅另一截是逆向重建从记录的强度图里把复振幅恢复出来。两截都绕不开同一个核心衍射积分。1.2 “精确计算”的三层含义我理解的精确计算不是“多算几位小数”而是三层意思层层递进。第一层是模型精确。用菲涅尔近似还是瑞利-索末菲衍射积分取决于距离和孔径尺寸。菲涅尔近似省略了展开式中的高次项在近场大孔径下误差会明显累积并不是简单放大像素就能解决的事。第二层是算法精确。同一个菲涅尔积分可以改写成傅里叶变换形式也可以保留为卷积形式还可以用角谱传播。三种写法在连续数学上等价但离散化之后误差特性完全不同。用错算法结果不是“精度差一点”而是像元尺寸和视场尺寸都变了。第三层是采样精确。离散傅里叶变换隐含周期性如果二次相位因子变化太剧烈采样跟不上频谱就会混叠。混叠不是噪声它是有规律地“污染”整个结果你甚至看不出它是什么时候混进来的。我举个具体例子。波长632.8nm物面采样间隔10μm采样点数1024传播距离500mm。用单次FFT法计算输出面的采样间隔变为λz / (Nδ1) 0.6328μm × 500mm / (1024 × 10μm) 316.4μm? 不对仔细算:这里别急着套数先把单位对齐。波长0.6328μm6.328e-7m距离0.5m乘积是3.164e-7m²。分母1024×10μm1024×1e-5m1.024e-2m。两者相除得3.09e-5m约30.9μm。也就是说同样的物理过程你用单次FFT法算出来输出像元尺寸是30.9μm不是输入面的10μm。如果你不知道这一点做三维形貌测量时坐标标定就全错了。而用卷积法算输出采样间隔保持10μm不变。这就是“精确计算”要讨论的第一个实际问题。2. 三种主流衍射计算算法及选型2.1 直接积分法慢但稳最直观的做法是把菲涅尔积分里的积分号直接换成求和。物面上N个采样点像面上M个采样点每个像点都要叠加N次复指数复杂度O(N×M)。如果N和M都是1024那就要做一百多万次复数运算算一张图还行算视频就非常吃力。直接积分法的优势在于没有FFT带来的隐含周期性你可以自由指定输出面的范围和采样间隔不受输入面尺寸限制。它特别适合两种场景一是验证阶段跟其他算法互相对照二是物面很小、像面很大或者像面很小、物面很大的“非对称”情况这时FFT方法很难兼顾两侧的采样。缺点是速度慢不是工程化的首选。2.2 单次FFT法快但娇气单次FFT法的思路是把菲涅尔衍射积分中的二次相位因子展开整理成标准傅里叶变换形式。输出场等于U2(x2) exp(ikz) / (ikz) × exp(iπx2²/λz) × FFT{ U1(x1) × exp(iπx1²/λz) }注意这行表达式里有两个关键相位因子输入面乘一个输出面再乘一个。FFT之前输入面已经乘了二次相位因子exp(iπx1²/λz)这个因子在物面边缘振荡最快。如果物面到边缘有半宽L1/2瞬时频率最大约为L1/2除以λz。根据采样定理采样间隔δ1必须小到能分辨这个最高频率工程上常用快速判断条件N × δ1² ≤ λz注意这是粗略下限。更保守的设计会把系数再乘2。满足这个条件输入面的二次相位因子才算是被采样住了。不满足频谱混叠会直接体现在最终图像上。单次FFT法的输出采样间隔由公式决定δ2 λz / (Nδ1)这意味着距离z越小δ2越小输出视场越小距离越大δ2越大视场越大。它天然适合中远距离衍射计算。一旦距离太近输出视场缩到比目标还小像就被“切”掉了。2.3 卷积法和角谱法近场计算的可靠选择菲涅尔衍射本身是卷积形式U2(x2) U1(x1) ⊗ h(x)其中卷积核h(x) exp(ikz)/(ikz) × exp(iπx²/λz)。根据卷积定理可以先对输入和卷积核分别做FFT相乘后再逆FFT回来这就是三次FFT的卷积法。它的输出采样间隔和输入面一致视场大小不变适合近距离、物面尺寸比较大的场景。角谱法则更严格。它不做傍轴近似直接从瑞利-索末菲衍射积分的频域形式出发把光场分解成平面波传播后频谱变为G2(fx, fy) G1(fx, fy) × exp(i2πz/λ × sqrt(1 - (λfx)² - (λfy)²))这个相位因子是严格解适用距离可以更短。但角谱法同样存在采样条件约束特别是大角度分量对应的高频成分一旦超过奈奎斯特频率结果就会出现环形伪影。角谱法和卷积法的输出采样间隔都保持与输入面一致所以我把它们归为一类适合近场、适合与实验像元尺寸直接对照。2.4 算法选型对比算法计算复杂度输出采样间隔典型适用距离主要误差源直接积分法O(N²)自由设定任意数值求积误差、截断误差单次FFT法O(N logN)δ2 λz/(Nδ1)中远距离输入面相位欠采样、视场过小卷积法O(N logN)等于输入采样间隔近中距离卷积核采样、边界截断角谱法O(N logN)等于输入采样间隔近场至中距离高频衰减、补零不足表格已经能说明问题不存在“万能算法”。选型的本质是看你的输出采样间隔需要多大、距离是否满足各自的前提条件。我自己的经验是如果实验系统的像元尺寸是确定的需要和实物坐标对齐优先选卷积法或角谱法如果只是做理论模拟、远场远距离传播单次FFT法最方便。3. 精确计算的关键参数采样、波长、距离与误差控制3.1 一上手就要算的采样判据很多人拿到一个计算任务第一件事是写FFT代码而不是先判断采样条件。这个顺序完全反了。正确的第一步是把波长λ、传播距离z、采样点数N、物面采样间隔δ1这四个数摆出来算一下单次FFT法是否成立以及输出采样间隔是否满足需求。回到前面那个例子。波长0.6328μm采样间隔10μm点数1024距离500mm。算一下λz 6.328e-7 × 0.5 3.164e-7 m² 0.3164 mm² Nδ1² 1024 × (10μm)² 1024 × 1e-10 m² 1.024e-7 m² 0.1024 mm²0.1024 0.3164满足Nδ1² ≤ λz单次FFT法可以用。输出采样间隔δ2 λz/(Nδ1) 3.164e-7 / (1024×1e-5) 3.09e-5 m 30.9μm这意味着最终像面上的采样比物面粗三倍。如果你想得到和物面等间隔的像面分布这个结果不能直接用得再做插值或者换成卷积法。再看一个反面案例。同样参数但距离变成z20mmλz 6.328e-7 × 0.02 1.266e-8 m² 0.01266 mm² Nδ1² 0.1024 mm²此时Nδ1²远大于λz单次FFT法的采样条件已经不满足。强行算输出面的二次相位因子必然混叠出现密密麻麻的干涉条纹物理上看着像“有用信息”其实是伪迹。注意这个判断只是一个工程经验式。实际使用时对精度要求高我会把条件改成2Nδ1² ≤ λz再用解析已知的传播案例做对比验证。别跟公式较劲关键是建立“先判断、后计算”的习惯。3.2 零填充不是用来救混叠的零填充是被误解最深的操作之一。很多人以为只要在物面四周补一圈零欠采样问题就解决了。实际上零填充只是在频域加密了采样点让频谱看起来更平滑但混叠的本质是高频分量折返到低频区域这些高频信息在补零前已经丢掉了补零补不回来。那么补零该怎么用正确的场景有两个。一是产生“超采样”效果补零到原尺寸的4倍输出像面的采样间隔更细图像的锯齿感会降低。二是消除边界截断误差在物面周围留出足够宽的暗区让衍射场传播后不会因为FFT隐含的周期性而“卷到”图像另一边。我习惯把物面放到计算窗口的中心四周至少留出和物面等宽的零区域也就是总尺寸扩到2倍以上。有一个必须避开的坑补零后输出视场和像元尺寸会同时变化。如果拿补零后的重建结果去做尺寸标定而且不知道原始N对应的关系坐标很容易差一截。先在原始尺寸上算好采样间隔再根据补零倍数修正这才是推荐流程。3.3 相位卷绕与解包裹相干光成像的最终输出经常是相位图。但atan2函数返回的相位被限制在[-π, π]区间遇到真实相位超过这个范围就会出现锯齿状的跳变这就是相位卷绕。做三维形貌测量时卷绕的相位必须还原成连续相位这一步叫相位解包裹。解包裹最容易出问题的地方不是算法本身而是噪声和欠采样。相邻像素的真实相位差超过π时解包裹会把一个正常的跳变误判成卷绕从而加错整数倍的2π。因此我在解包裹前会先对相位图做中值滤波或高斯滤波先降噪再解包裹如果相位梯度实在太大就改用双波长或多频解包裹用合成波长把等效动态范围扩大。这一条是实验测量中非常容易踩的坑。4. 典型应用数字全息与相干成像计算的落地4.1 数字全息图的数值重建流程数字全息是最能体现“精确计算”价值的应用之一。记录端用CCD或CMOS采集物光与参考光的干涉图重建端完全靠数值计算恢复出物光复振幅。一个完整的重建流程大致是读取全息图强度分布必要时做暗场和平场校正。在频域滤除零级像和共轭像保留正一级频谱。操作上用带通滤波器圈出频谱亮斑反变换得到滤波后的全息图。根据实验参数确定采样间隔和传播距离z选择重建算法。乘以数字参考光相位补偿倾斜因子。用角谱法或卷积法传播z距离得到重建复振幅。取模得到强度像用atan2取相位像再根据需求做相位解包裹。这里有一个非常实际的选择问题。如果你用单次FFT法重建重建场的像元尺寸是λz/(Nδ)而CCD像元尺寸是δ两者不一定相等。假设CCD像元5.2μmN2048λ0.6328μmz80mm那么重建像元尺寸是6.328e-7 × 0.08 / (2048 × 5.2e-6) 5.0624e-8 / 1.06496e-2 ≈ 4.75e-6 m 4.75μm跟5.2μm差得不算远但并不能直接对齐。如果拿这个像元尺寸去量样品长度每毫米会产生几十微米的累积误差。用卷积法或角谱法重建输出像元尺寸自动等于CCD像元尺寸5.2μm坐标标定直接对应实验系统。所以我做定量测量时几乎不用单次FFT重建只在快速预览时才用它。4.2 相移干涉术里的相位精确提取相移干涉术通过控制参考光相位变化从多幅强度图中解算出待测波面相位。四步相移公式是φ arctan[(I4 - I2) / (I1 - I3)]四步法在相移量为90°时是最简单的形式但实际相移器存在标定误差四步法解算的相位会出现周期性误差。更稳健的做法是Hariharan五步法把相移量和相位同时拟合出来对相移误差的容忍度更高。再进一步可以用迭代最小二乘算法把相移误差、背景光强波动一并估计掉。这些算法的共同点是每一步都在做“精确计算”。强度图去噪、相位提取、相位解包裹任何一步采样不够或者滤波过度都会直接污染最终测量精度。我一般会在强度图域先做一次各向异性扩散滤波保留边缘的同时抑制散斑噪声比普通高斯滤波效果好很多。4.3 从显微测量到光束整形应用面的扩展相干光成像精确计算的应用远不止数字全息。在光学相干成像显微镜里扫描点的点扩散函数需要精确衍射计算来标定在激光光束整形里目标面上的光场分布需要逆向计算空间光调制器的相位图迭代算法每一步都包含一次正负方向的衍射传播在光学加密里随机相位板的密钥设计也依赖相干光传播的精确建模。这些应用有一个共同特征误差是累积的。比如光束整形中的Gerchberg-Saxton算法每次迭代包含一次正向传播和一次逆向传播传播算法只要存在系统性偏差迭代结果就会偏向错误解。有人花了很多时间调迭代参数结果问题出在传播算法本身这种情况我见过不止一次。5. 常见问题与排查技巧实录5.1 输出图像全是密集条纹到底是不是混叠这个现象最常见的来源是单次FFT法在不满足采样条件时硬算。诊断方法很简单把距离z加倍再算一次如果条纹间隔也成比例变化说明是衍射计算的正常结果如果条纹形态完全乱套基本就是采样不足。另一个快速验证方式是换算法。对同一个输入分别用卷积法和单次FFT法计算把两个结果的强度分布叠在一起看。中远距离下两者应当高度一致如果差异明显优先怀疑单次FFT法的输入相位欠采样而不是卷积法有错。5.2 图像边缘出现“咬边”或卷绕FFT隐含周期性是边缘卷绕的元凶。当物面尺寸和输出视场大小接近时从左边缘溢出的能量会从右边缘冒出来。解决办法是在物面周围补足够宽度的零计算后再裁切回感兴趣区域。注意补零宽度需要根据衍射扩散范围估算不是随便补几十个像素就够。5.3 近场计算结果和实验对不上如果传播距离小于菲涅尔近似成立的范围算出来的图就会偏。判断方法是用菲涅尔数F a² / (λz)其中a是孔径半宽。F值越大说明距离相对孔径越近菲涅尔近似误差越大。工程上F大于1时我倾向于直接用角谱法或瑞利-索末菲积分不再用单次FFT和菲涅尔卷积核。角谱法虽然计算量稍大但严格性换来的可靠性值得。5.4 一个我自己常用的算法自检流程新写好的衍射计算代码一定先用解析解验证再上实验数据。最省事的验证案例是高斯光束传播。高斯光束在自由空间传播后仍然是高斯光束束腰位置、光斑半径都可以用解析公式算出来和数值结果对比误差能到1e-6级别。这个测试如果过不了说明算法实现有bug别急着去分析实验数据。另一个自检是“零距离极限”。虽然z不能取0但可以取一个极小值比如z1μm角谱法算出来的结果应该非常接近输入光场本身只有高频衰减造成的微弱差异。做完这两项测试算法才算达到“能用”的标准。常见问题可能原因排查思路密集条纹输入面相位欠采样缩小采样间隔或改用卷积法/角谱法图像卷绕FFT周期性扩大补零边界近场不收敛菲涅尔近似失效换角谱法并检查菲涅尔数尺寸标定错单次FFT输出间隔变化改用输出间隔固定的卷积法相位图锯齿跳变卷绕未处理解包裹前先滤波、再展开我个人在实际操作中的体会是相干光成像的“精确计算”根本不是某个算法有多高级的问题而是一套条件反射拿到参数先判断采样条件再选算法然后补零、计算、验证。这套流程走顺了大部分看似神秘的图像伪影三分钟就能定位出原因。最后再分享一个小技巧所有新写的传播算法不要直接拿实验数据试先用高斯光束解析解自检再做一次已知球面波的传播验证。这两步过了才轮到真实全息图。按这个顺序来你会少走很多弯路。

相关新闻

关注价格与总体成本的一站式 AI 智能办公平台横评:5 款候选选型建议

关注价格与总体成本的一站式 AI 智能办公平台横评:5 款候选选型建议

如果采购更关心价格、收费与总体成本,判断一站式 AI 智能办公平台的关键,是把订阅、定制、服务器与集成实施放到同一口径下比较,而不是被单一年费误导。本文就围绕成本这条主线,横评快鹭办公、蓝信、360织语、奥哲、通达OA 五款候…

2026/10/15 16:59:04 阅读更多 →
VS2019下VC++ MFC实现Socket聊天与文件传输实战

VS2019下VC++ MFC实现Socket聊天与文件传输实战

简介:面向MFC开发者的VC Socket编程示例,以CSocket为主线,演示客户端与服务端的双向通讯,在VS2019下完成聊天和大型文件不丢包传输;作者因集群功能预研而编写,适合学习MFC网络编程或准备开发文件传输功能的…

2026/10/15 16:59:04 阅读更多 →
Python多线程提速实战:从爬虫到授权口令测试的并发优化

Python多线程提速实战:从爬虫到授权口令测试的并发优化

前两天我帮一个做电商选品的团队处理商品信息采集,他们原来那个单线程脚本跑一批两万条链接,眼看要两个小时,进度条走得跟没走一样。我把里面请求部分改成ThreadPoolExecutor之后,同样的任务二十分钟左右跑完,再调到十…

2026/10/15 16:59:04 阅读更多 →

最新新闻

VLC 3.0.11 定制版支持 AVS+ 与 DRA 软解实战指南

VLC 3.0.11 定制版支持 AVS+ 与 DRA 软解实战指南

简介:本资源为适配Windows 7及以上系统的VLC媒体播放器3.0.11定制增强版,专为需播放国产音视频编码内容的开发者、广电从业人员及高清影音爱好者设计,解决主流播放器对AVS和DRA格式兼容性不足的问题。压缩包为7z格式,大小130.6MB&…

2026/10/15 17:48:03 阅读更多 →
Android属性动画解析:从补间动画缺陷到ObjectAnimator实战与原理

Android属性动画解析:从补间动画缺陷到ObjectAnimator实战与原理

做Android开发这些年,我最早接触的是补间动画,一个AnimationSet往上一套,平移、旋转、透明度都有现成接口,看起来挺方便。但真正在复杂交互里遇到按钮“飞过去但点不到”的问题之后,我才重新理解了属性动画的价值。而O…

2026/10/15 17:48:03 阅读更多 →
2026 最新 Codex 新手教程:用 cc-switch + TaoToken 零基础跑通 AI 编程

2026 最新 Codex 新手教程:用 cc-switch + TaoToken 零基础跑通 AI 编程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 17:48:03 阅读更多 →
CAN总线协议详解:从物理层差分信号到采样点配置与工程实践

CAN总线协议详解:从物理层差分信号到采样点配置与工程实践

1. 内容整体设计与思路拆解CAN,全称Controller Area Network,控制器局域网络。做嵌入式或者汽车电子的人,对这三个字母再熟悉不过。不管是车身控制、电池管理、电机驱动,还是一些工业自动化设备,几乎所有需要多个节点可…

2026/10/15 17:48:03 阅读更多 →
预编译libssh2类库接入CMake工程:链接配置与避坑指南

预编译libssh2类库接入CMake工程:链接配置与避坑指南

简介:这份资源是面向C/C开发者的libssh2预编译类库及配套头文件包,适合需要为网络管理工具、自动化脚本或远程控制软件集成SSH2能力的开发者使用,可省去自行编译的繁琐过程。压缩包共9个文件,约1.38MB,包含4个h头文件、…

2026/10/15 17:48:03 阅读更多 →
51单片机数码管动态显示与中断系统实战:从原理到代码

51单片机数码管动态显示与中断系统实战:从原理到代码

很多人学51单片机,一开始点个LED觉得挺简单,一到数码管动态显示就开始懵了。不是显示错位就是亮度不均,再往后遇到中断更是云里雾里。我当年自学的时候也在这个节点卡了差不多两周,后来把原理彻底理清楚才发现,数码管动…

2026/10/15 17:47:03 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →