双目视觉立体标定与极线校正实战指南
简介本资源是一套基于OpenCV 3.0与Visual Studio 2013实现的双目视觉立体标定与校正完整工程面向计算机视觉初学者、机器人感知方向学习者及三维重建实践者解决双目相机系统参数标定、极线校正等核心问题为后续立体匹配与深度图生成奠定坚实基础。压缩包共251个文件涵盖140个hpp头文件与55个h声明文件封装标定流程与图像处理逻辑、20张棋盘格标定图像png格式、6个构建日志tlog及关键可执行文件Example.exe、动态链接库opencv_world300.dll等和CMake配置脚本整体体积29.64MB结构完整、开箱即用。目前已有1740人学习下载提供从源码编译、参数输出yml、运行验证到结果可视化的一站式实践路径含VS工程sln/vcxproj、调试符号pdb与模块化C实现main.cpp便于理解立体视觉底层原理并快速复现。1. 双目视觉立体标定与校正不是调两个相机就完事而是让左右眼真正“对上焦”你手头有一对工业USB双目模组拍出来的左右图看着挺齐整但一跑SGBM深度图边缘全是撕裂、视差跳变、远处物体直接消失——这不是算法不行是标定没做实。双目视觉立体标定与校正本质是解一个几何约束问题把左右相机各自成像模型内参和相对空间关系外参用数学语言精确描述出来再通过极线校正Rectification把原始图像“掰直”让匹配点严格落在同一行上。它不依赖深度学习模型不靠大量标注数据但对物理安装精度、棋盘格采集质量、OpenCV函数调用顺序极其敏感。这份资源包不是教学PPT合集而是一套经某高校机器人实验室在真实AGV避障项目中反复打磨的完整流程含标定板生成脚本、多角度采集建议清单、带日志回溯的标定主程序、校正后重投影误差可视化工具以及最关键的——5个导致重投影误差0.8像素却查不出原因的隐藏陷阱。适合正在调试双目测距模块的嵌入式工程师、ROS视觉组开发者或需要将双目方案落地到产线质检环节的算法部署人员。2. 标定原理与OpenCV实现路径为什么必须分三步走且顺序不能颠倒双目立体标定不是单目标定的简单叠加它要求同时求解两套内参fx, fy, cx, cy, k1–k5、两套外参R₁, t₁, R₂, t₂以及最重要的——左右相机之间的旋转和平移关系R, t。OpenCV的stereoCalibrate()函数看似一步到位但若跳过前置验证极易陷入“参数全绿但实际失效”的黑匣子状态。我们采用分阶段递进策略先独立标定每只相机确保单目内参可靠再联合标定外参获取R/t最后执行极线校正rectify。这种拆解不是为了炫技而是为后续排查留出明确断点——当深度图异常时你能快速定位是单目畸变没校正干净还是基线估计偏差过大。2.1 单目标定用calibrateCamera()锁定每只相机的“性格”单目标定的目标是获得每只相机的内参矩阵K和畸变系数D。关键不在拍得多而在拍得“有信息量”。我们要求至少15组不同姿态的棋盘格图像6×9角点且必须覆盖画面四角及中心区域。特别注意避免所有图像都来自同一高度俯拍——这会导致fy参数收敛不稳定。以下脚本生成符合ISO/IEC 15416标准的A4尺寸棋盘图210×297mm打印后实测角点间距误差0.05mmimport cv2 import numpy as np def generate_chessboard_pdf(pattern_size(6, 9), square_size_mm25.0, output_pathchessboard_A4.pdf): # A4尺寸210×297mm → 转换为像素300dpi下≈2480×3508px dpi 300 width_px int(210 / 25.4 * dpi) height_px int(297 / 25.4 * dpi) # 创建空白画布 board np.ones((height_px, width_px), dtypenp.uint8) * 255 # 计算每个方格像素尺寸 square_px int(square_size_mm / 25.4 * dpi) # 绘制黑白方格左上角为黑 for i in range(pattern_size[0]): for j in range(pattern_size[1]): x j * square_px 50 # 留边50px y i * square_px 50 if (i j) % 2 0: cv2.rectangle(board, (x, y), (x square_px, y square_px), 0, -1) # 保存为PDF需配合reportlab此处简化为PNG供快速验证 cv2.imwrite(chessboard_A4.png, board) print(f✅ 棋盘图已生成{output_path}PNG版用于预览) generate_chessboard_pdf()参数说明pattern_size(6,9)指横向6个内角点、纵向9个square_size_mm25.0是实际物理边长。务必用游标卡尺实测打印后角点间距若偏差0.1mm标定结果将系统性偏移——这是某次产线翻车的血泪经验。2.2 联合标定stereoCalibrate()的七个关键参数解析联合标定阶段输入单目标定结果输出立体外参R, t及优化后的内参。OpenCV官方文档对flags参数语焉不详实际工程中必须显式设置# 假设已获得objpoints世界坐标系下角点、imgpointsL/R左右图检测到的像素坐标 ret, KL, DL, KR, DR, R, T, E, F cv2.stereoCalibrate( objpoints, imgpointsL, imgpointsR, cameraMatrix1KL_init, distCoeffs1DL_init, cameraMatrix2KR_init, distCoeffs2DR_init, imageSize(640, 480), flagscv2.CALIB_FIX_INTRINSIC # ⚠️ 关键固定内参只优化外参 | cv2.CALIB_USE_INTRINSIC_GUESS # 使用单目标定结果作为初值 | cv2.CALIB_ZERO_TANGENT_DIST # 假设切向畸变为0多数镜头成立 | cv2.CALIB_RATIONAL_MODEL # 启用12系数畸变模型优于默认5系数 )CALIB_FIX_INTRINSIC强制不更新内参否则联合标定会劣化单目标定精度CALIB_RATIONAL_MODEL启用更精确的畸变模型对广角镜头尤其重要CALIB_ZERO_TANGENT_DIST切向畸变通常由镜头装配偏心引起优质工业镜头可安全关闭imageSize必须与采集图像分辨率严格一致否则重投影误差计算失真。2.3 极线校正stereoRectify()与initUndistortRectifyMap()的协同逻辑校正目标是让左右图像的极线平行于图像水平轴从而将匹配约束从2D降为1D。stereoRectify()计算校正变换矩阵R₁,R₂,P₁,P₂,Q而initUndistortRectifyMap()生成映射表用于实时重采样# 计算校正参数 R1, R2, P1, P2, Q, roi1, roi2 cv2.stereoRectify( KL, DL, KR, DR, (640,480), R, T, flagscv2.CALIB_ZERO_DISPARITY, # 强制左图主点y坐标右图主点y坐标 alpha-1 # alpha-1表示裁剪最小化保留全部有效像素 ) # 生成映射表耗时操作只需执行一次 map1L, map2L cv2.initUndistortRectifyMap(KL, DL, R1, P1, (640,480), cv2.CV_16SC2) map1R, map2R cv2.initUndistortRectifyMap(KR, DR, R2, P2, (640,480), cv2.CV_16SC2) # 实时校正在循环中调用 rectifiedL cv2.remap(imgL, map1L, map2L, cv2.INTER_LINEAR) rectifiedR cv2.remap(imgR, map1R, map2R, cv2.INTER_LINEAR)alpha-1牺牲部分图像边缘换取最大视场重叠比alpha0保留全部原始像素但中间有黑边更适合测距cv2.CV_16SC2使用16位有符号整数存储映射表比默认CV_32FC1节省50%内存且速度更快INTER_LINEAR双线性插值在实时性与精度间取得最佳平衡INTER_CUBIC仅在离线标定时使用。3. 标定质量验证用重投影误差热力图代替“平均误差0.5”这种玄学指标标定报告里常写“平均重投影误差0.32像素”但这掩盖了关键问题误差是否均匀分布角点处是否突增某次调试中平均误差仅0.41但右下角区域误差达2.7像素导致该区域深度值完全失效。我们改用热力图可视化每帧每个角点的重投影残差代码如下import matplotlib.pyplot as plt import numpy as np def visualize_reprojection_error(objpoints, imgpointsL, imgpointsR, KL, DL, KR, DR, R, T): # 计算左右相机各自的重投影点 proj_pointsL [] proj_pointsR [] for i, objp in enumerate(objpoints): # 左相机重投影 imgptsL, _ cv2.projectPoints(objp, np.zeros(3), np.zeros(3), KL, DL) proj_pointsL.append(imgptsL.reshape(-1, 2)) # 右相机重投影需转换世界坐标到右相机坐标系 R12, t12 R, T objp_cam2 (R12 objp.T).T t12.T imgptsR, _ cv2.projectPoints(objp_cam2, np.zeros(3), np.zeros(3), KR, DR) proj_pointsR.append(imgptsR.reshape(-1, 2)) # 计算每点残差 errorsL [] errorsR [] for i in range(len(objpoints)): errL np.linalg.norm(imgpointsL[i] - proj_pointsL[i], axis1) errR np.linalg.norm(imgpointsR[i] - proj_pointsR[i], axis1) errorsL.extend(errL) errorsR.extend(errR) # 绘制热力图按角点位置归类 fig, axes plt.subplots(1, 2, figsize(12, 5)) # 左图热力图 heatmapL np.zeros((480, 640)) for i, (x, y) in enumerate(imgpointsL[0]): if 0 int(y) 480 and 0 int(x) 640: heatmapL[int(y), int(x)] errorsL[i] im1 axes[0].imshow(heatmapL, cmapjet, vmin0, vmax1.5) axes[0].set_title(左相机重投影误差热力图) plt.colorbar(im1, axaxes[0]) # 右图同理... heatmapR np.zeros((480, 640)) for i, (x, y) in enumerate(imgpointsR[0]): if 0 int(y) 480 and 0 int(x) 640: heatmapR[int(y), int(x)] errorsR[i] im2 axes[1].imshow(heatmapR, cmapjet, vmin0, vmax1.5) axes[1].set_title(右相机重投影误差热力图) plt.colorbar(im2, axaxes[1]) plt.tight_layout() plt.savefig(reprojection_heatmap.png, dpi300) print(✅ 重投影误差热力图已保存reprojection_heatmap.png) # 调用示例需在标定后执行 visualize_reprojection_error(objpoints, imgpointsL, imgpointsR, KL, DL, KR, DR, R, T)为什么热力图比平均值有用它暴露局部失效区域。例如若热力图显示图像底部呈红色高误差说明标定板在该区域未充分覆盖需补拍仰角图像若中心区域蓝白分明但四角发红则提示镜头畸变模型不足应启用CALIB_RATIONAL_MODEL。4. 避坑指南五个让资深工程师连续三天睡不着觉的隐形陷阱标定失败往往不是因为代码写错而是物理世界与数学模型之间的微妙错位。以下是某跨平台机器人项目中真实踩过的坑每一条都附带现场日志特征和快速验证法4.1 现象stereoCalibrate()返回ret0失败但objpoints长度与imgpointsL/R完全匹配原因棋盘格角点检测时OpenCV的findChessboardCornersSB()在低对比度下可能返回亚像素精度为负的坐标如[-1.2, 3.7]这些非法点被无声丢弃导致imgpointsL[i]实际长度小于objpoints[i]触发内部断言失败。解决在调用stereoCalibrate()前插入校验for i in range(len(objpoints)): assert len(objpoints[i]) len(imgpointsL[i]) len(imgpointsR[i]), \ f第{i}组数据长度不匹配obj{len(objpoints[i])}, L{len(imgpointsL[i])}, R{len(imgpointsR[i])}4.2 现象校正后左右图极线基本平行但SGBM深度图出现大面积“条纹噪声”原因stereoRectify()的alpha参数设置不当。alpha0强制保留全部原始像素导致校正后图像存在大块无效区域值为0SGBM将这些0值误判为无限远点生成水平条纹。解决改用alpha-1并手动裁剪ROI# 获取有效区域 x, y, w, h roi1 # roi1来自stereoRectify()返回值 rectifiedL_cropped rectifiedL[y:yh, x:xw] rectifiedR_cropped rectifiedR[y:yh, x:xw]4.3 现象重投影误差热力图显示图像中心区域误差0.2px但实际测距误差15cm基线12cm原因标定板物理尺寸输入错误。代码中square_size_mm25.0但实际打印后用卡尺测得为24.82mm0.72%的尺度误差经三角测量放大后导致1m处深度误差达7.2cm。解决每次新打印标定板必须用高精度卡尺0.01mm测量至少3个方格边长取平均并更新代码中square_size_mm。4.4 现象同一组图像用OpenCV 4.5.5标定成功升级到4.8.0后stereoCalibrate()崩溃原因OpenCV 4.7版本默认启用AVX2指令集加速但某些老旧工控机CPU不支持触发段错误。错误日志中可见illegal instruction。解决编译OpenCV时禁用高级指令集或运行时设置环境变量export OPENCV_DNN_BACKEND0 # 禁用DNN后端干扰 export OMP_NUM_THREADS1 # 防止OpenMP线程冲突 python stereo_calibrate.py4.5 现象校正后图像看起来“歪斜”水平线明显不平原因stereoRectify()的flags未设置CALIB_ZERO_DISPARITY导致左右相机主点y坐标未对齐校正后图像发生旋转。解决强制添加该flag并用HoughLines验证# 校正后检测水平线 gray cv2.cvtColor(rectifiedL, cv2.COLOR_BGR2GRAY) edges cv2.Canny(gray, 50, 150) lines cv2.HoughLinesP(edges, 1, np.pi/180, threshold100, minLineLength100, maxLineGap10) # 若lines中多数角度偏离0°±0.5°则需重新标定并确认flags5. 进阶技巧用Q矩阵反推真实世界坐标以及如何让标定过程“可回滚”标定最终价值体现在深度计算上。OpenCV的stereoRectify()输出的Q矩阵是透视投影的核心其结构为Q [[1, 0, 0, -cx] [0, 1, 0, -cy] [0, 0, 0, f] [0, 0, 1/Tx, (cx-cx)/Tx]]其中f为等效焦距Tx为基线长度单位像素。但直接用reprojectImageTo3D()易受视差图噪声影响我们采用分步法提升鲁棒性5.1 分步深度计算先滤波再反推def disparity_to_depth(disparity_map, Q, valid_maskNone): 输入disparity_map (H,W) 视差图Q (4,4) 重建矩阵 输出xyz (H,W,3) 三维坐标单位毫米 # 1. 视差图预处理中值滤波去椒盐噪声形态学闭运算填小孔 disp_clean cv2.medianBlur(disparity_map.astype(np.float32), 3) kernel np.ones((3,3), np.uint8) disp_clean cv2.morphologyEx(disp_clean, cv2.MORPH_CLOSE, kernel) # 2. 排除无效视差0 或 max_disp disp_clean[disp_clean 0.5] 0 disp_clean[disp_clean 128] 0 # 根据实际基线设定max_disp # 3. 使用Q矩阵反推OpenCV底层实现 xyz cv2.reprojectImageTo3D(disp_clean, Q) # 4. 单位转换Q矩阵输出为米转为毫米便于后续处理 xyz * 1000.0 # 5. 应用有效掩膜如仅处理ROI区域 if valid_mask is not None: xyz[~valid_mask] [0,0,0] return xyz # 调用示例 xyz_map disparity_to_depth(disparity_img, Q, valid_maskroi_mask)关键参数说明max_disp128需根据实际基线如120mm和焦距如800像素估算max_disp ≈ (f * baseline) / min_depth设最小测距为300mm则max_disp ≈ (800*120)/300 320但SGBM实际稳定范围约1/3故取128更稳妥。5.2 标定过程可回滚用YAML保存全量中间态每次标定生成的KL, DL, KR, DR, R, T, Q等参数必须以人类可读格式存档而非仅存.npz二进制。我们采用YAML格式便于版本管理与人工审计import yaml def save_calibration_yaml(filename, data): # 将numpy数组转为Python原生类型 def ndarray_representer(dumper, data): return dumper.represent_list(data.tolist()) yaml.add_representer(np.ndarray, ndarray_representer) with open(filename, w) as f: yaml.dump({ timestamp: datetime.now().isoformat(), image_size: [640, 480], left_camera: { K: data[KL].tolist(), D: data[DL].tolist(), resolution: [640, 480] }, right_camera: { K: data[KR].tolist(), D: data[DR].tolist(), resolution: [640, 480] }, stereo: { R: data[R].tolist(), T: data[T].tolist(), E: data[E].tolist(), F: data[F].tolist(), Q: data[Q].tolist() } }, f, default_flow_styleFalse, allow_unicodeTrue, sort_keysFalse) # 保存示例 calib_data {KL: KL, DL: DL, KR: KR, DR: DR, R: R, T: T, E: E, F: F, Q: Q} save_calibration_yaml(calib_20240520_v2.yaml, calib_data)为什么坚持YAMLGit能清晰显示参数变更如K[0][0]从798.2→801.5而.npz文件无法diff产线同事可直接用文本编辑器修改焦距微调无需写Python脚本。5.3 真实场景验证法用已知尺寸物体做闭环测试理论再完美不如一把卡尺实在。我们固定一个200×200×200mm的亚克力立方体在1m、1.5m、2m三个距离拍摄测量其在深度图中的实际尺寸真实尺寸(mm)深度图测量值(mm)误差(mm)备注200198.3-1.71m距离中心区域200192.1-7.91m距离右下角区域200203.53.52m距离全图均值若右下角误差5mm立即检查该区域重投影热力图——这比任何指标都真实。从那以后我每次完成标定都强制用这个立方体测三组距离拍三张图存三行数据到Excel。不是为了交差是给自己的判断留一道物理锚点。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

PyTorch DataLoader 性能瓶颈分析与自研异步数据管线优化实战

PyTorch DataLoader 性能瓶颈分析与自研异步数据管线优化实战

凌晨两点,我看着训练日志里那条 GPU 利用率曲线又掉到了 58%。模型结构没问题,显存没爆,损失函数在正常下降,但每个 epoch 的耗时就是比理论估算慢了一倍。为什么会这样?因为数据供给端掐住了整个训练流程的脖子。很多…

2026/10/17 7:42:12 阅读更多 →
用Canvas绘制会旋转的六芒星:几何计算与前端动画实战

用Canvas绘制会旋转的六芒星:几何计算与前端动画实战

1. 项目概述:六芒星背后的前端魔法说真的,我最初接到这个需求的时候有点哭笑不得——某天下午,设计师同事突然丢过来一句话:“帮我在页面上画个六芒星呗,要那种线条流畅、能转起来更好看的。”我当时一边在心里吐槽“怎…

2026/10/17 7:42:03 阅读更多 →
12G显存跑Wan2.2视频生成:4bit量化+CPU offload实战部署

12G显存跑Wan2.2视频生成:4bit量化+CPU offload实战部署

显存只有12G,能不能跑起Wan2.2这类视频生成模型?答案是可以,但别指望像官方演示那样开箱即用。我花了两天时间反复试错,用一块12G显存的消费级显卡把Wan2.2跑出连续视频片段,这篇就完整复盘整个部署过程:从…

2026/10/16 3:28:04 阅读更多 →

最新新闻

ThreadX串口通信实战:从信号量到DMA空闲中断的丢数据排查指南

ThreadX串口通信实战:从信号量到DMA空闲中断的丢数据排查指南

简介:本资源面向STM32嵌入式开发者与实时操作系统学习者,聚焦ThreadX下UART串口DMA通信的完整工程实现,解决裸机串口收发效率低、任务间同步困难等问题。工程基于STM32CubeMX生成,结合ThreadX的队列与信号量机制,演示D…

2026/10/17 7:42:12 阅读更多 →
从Agent到AI IDE:一位开发者的年度工具链进化实录

从Agent到AI IDE:一位开发者的年度工具链进化实录

年初那阵子,我参加了几场线上的技术交流,大家开口闭口都是Agent,各种演示视频看着确实唬人——什么自动写周报、自动跑数据分析、自动修Bug。到了下半年,风向变了,圈子里的热门话题从Agent转向了AI IDE,一批…

2026/10/17 7:42:12 阅读更多 →
从零搭建深度学习围棋AI:特征编码、网络训练与MCTS联调实战

从零搭建深度学习围棋AI:特征编码、网络训练与MCTS联调实战

把特征、网络、搜索这三件事从"听说过"变成"跑得通",是我写这篇续篇最想解决的问题。上一篇写深度学习与围棋的结合思路时,有不少读者留言说原理能看懂,但一到自己动手搭系统就卡壳:棋盘状态怎么编码&#xf…

2026/10/17 7:42:12 阅读更多 →
从零构建围棋AI:深度学习与蒙特卡洛树搜索实战解析

从零构建围棋AI:深度学习与蒙特卡洛树搜索实战解析

先算一笔账。19路围棋的合法局面数量大约在10的170次方量级,这个数字比宇宙中的原子总数还要多出不少量级。传统搜索树和简单局面评估在这种复杂度面前基本是失效的,这也是二十多年前程序员用绝对搜索算法做围棋程序时始终卡在业余低段的根本原因。深度学…

2026/10/17 7:42:12 阅读更多 →
数据增强实战指南:五大策略提升竞赛模型泛化能力

数据增强实战指南:五大策略提升竞赛模型泛化能力

数据竞赛打久了,你会越来越明显地感觉到一件事:模型结构的边际收益已经越来越低,真正让你在排行榜上稳住位置的,往往是别人看不见的那部分数据工作。数据增强就是其中最基础、也最容易被低估的一块。在大数据竞赛里,数…

2026/10/17 7:42:12 阅读更多 →
【共创稿事节】HarmonyOS 7 Agent 开发实战 09:Agent 测试评测集

【共创稿事节】HarmonyOS 7 Agent 开发实战 09:Agent 测试评测集

做 Agent 应用最怕的不是「写不出第一版」,而是「改了第三版之后,发现第一版明明答对的题现在答错了」。大模型有随机性、提示词有耦合、工具调用有边界,靠人肉聊天抽查既覆盖不全又无法回放。这一篇我们给 Agent 配上一套离线评测集&#xf…

2026/10/17 7:41:11 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

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

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →