自研机器视觉框架源码:六大场景落地与模块设计全解析
1. 为什么我最终选择自研一套机器视觉框架源码在设备集成这个行当里待久了你会发现一个很扎心的事实像AOI视觉检测、机械手定位、点胶机引导、插件机对位、激光切割机找靶、视觉螺丝机锁付这些设备名字听着千差万别可一旦拆到源码层面大家干的活其实高度重合——采图、预处理、找特征、算坐标、发结果。我最早接项目时基本是给每台设备单独写一套图像处理流程这个项目用A方案下个项目换个相机又要重来一遍。那时候最痛苦的不是算法本身而是大量重复的框架代码相机连接、参数配置、图像保存、结果上报、和PLC通信每一台新设备都要重新走一遍。后来我终于想明白了与其每个项目都从零搭积木不如把视觉通用能力抽出来沉淀成一套自己的机器视觉框架源码。这个框架解决的不只是“今天这个项目能不能跑通”而是“明年再来十个类似项目我能不能三天就出Demo”。这套框架目前支撑了至少六个方向的设备AOI检测、机械手定位、点胶机、插件机、激光切割机、视觉螺丝机。虽然业务千差万别但框架层基本没动动的只是算子配置和流程编排。这篇文章不聊空泛的概念直接说清楚我在这套框架源码里到底放了什么、每个模块怎么设计、六大场景怎么用这套框架落地。如果你也在做类似的事——不管你是刚入行的视觉工程师还是负责整个设备软件架构的老手应该都能从里面找到一些能直接抄作业的东西。2. 框架源码的分层设计把算法和业务彻底拆开2.1 采集层统一相机抽象屏蔽厂商差异框架的最底层是采集层。工业相机品牌五花八门有GigE口的、USB3.0口的还有线阵相机、面阵相机驱动SDK各不相同。如果每个相机都要在业务代码里调用自己的SDK接口那框架就毫无意义。所以我在采集层做了一个统一的相机接口所有相机适配器都实现同一个抽象类对外暴露的只有几个方法Open、SetParam、GrabOneFrame、SoftwareTrigger。这么做的好处很直接上层的图像处理模块完全不关心底层是哪个厂家的相机只拿到一帧Frame对象。切换相机品牌时只需要更换一个适配器配置项业务代码一行不改。我记得有个项目客户临时要求把GigE相机换成USB3.0工业相机我当时只改了一个字符串配置整个视觉流程没动现场调试半小时就恢复了。采集层还处理了一个容易踩坑的细节图像格式转换。不同相机会输出不同像素格式比如Mono8、BayerRG8、YUV422。框架采集层统一转成8位灰度图或RGB图再向上抛这样算法层不用到处兼容格式。实测下来Bayer转RGB这一步最容易被忽略相机的去马赛克参数如果没设对图像会出现严重的伪彩色或摩尔纹而这种问题往往在算法层很难排查。2.2 图像处理层算子即插即用参数全部配置化中间层是图像处理层也是整个框架源码的核心资产。这层不写业务只提供可复用的视觉算子。所谓算子就是一个个功能独立的处理单元二值化、形态学操作、轮廓查找、模板匹配、Blob分析、边缘检测、角点提取、圆查找、卡尺测量等等。为了做到可配置每个算子都定义了自己的参数结构体比如阈值范围、最小面积、匹配分数阈值、搜索区域ROI。这些参数全部序列化成JSON或XML配置不同项目只需要加载不同配置文件就能组合出完全不同的视觉流程。更关键的是我设计了一个流水线容器Pipeline它按顺序执行一串算子每个算子的输出可以成为下一个算子的输入。这个Pipeline支持分支和循环吗早期不支持后来发现AOI检测里经常要对同一个区域做多尺度分析于是加了一个最简单的循环节点支持对ROI列表批量执行同一组算子。这个改动让框架的复用性上了一个台阶很多检测项目都能用一套流程处理多个检测位。在实现时有一点特别值得注意算子之间的数据传输。我统一用ImageData和RegionData两种中间结构ImageData保存处理后的图RegionData保存候选区域列表。模板匹配的结果放在MatchResult里里面包含得分、位置、角度。这样设计后算法之间的耦合度极低加一个新算子只要声明它吃哪种数据、吐哪种数据就行。2.3 标定与坐标变换所有定位类设备的公共地基机械手定位、点胶机引导、激光切割机找靶这三类设备有一个共同需求把图像坐标换算成机器人坐标或加工台坐标。这个换算模块在框架里叫“标定与坐标变换层”是所有定位类设备的公共地基。最常见的标定方法是九点标定。做法是让机械手或运动平台走九个已知位置相机拍出每个位置对应的像素坐标然后用最小二乘法拟合一个仿射变换矩阵。我通常用estimateAffine2D之类的函数直接求解然后验证重投影误差。实测中如果误差大于0.1像素与物理毫米的对应精度最可能的原因不是拟合算法不行而是机械手的重复定位精度太差或者相机固定不牢造成了微振动。除了平移、旋转、缩放还要考虑镜头畸变。框架里内置了畸变校正模块基于棋盘格标定板计算内参和畸变系数然后在采集层做一次去畸变或者在算子层对ROI区域做校正。对于精度要求高的场景比如激光切割机我强烈建议在标定前先做畸变校正否则视野边缘的定位误差会非常难看。2.4 流程编排层把视觉工序变成可拖拽的配置框架最上面一层是流程编排层。最初我是把流程写死在代码里后来发现设备调试阶段经常要调整工序顺序比如AOI检测时要先粗定位再精检测机械手抓取时要先找Mark点再计算偏移。每次调整都要改代码重新编译实在是太痛苦了。于是我在框架里加了一个简单的流程编排引擎。它读取一个JSON描述文件里面定义了一串工序节点每个节点关联一个算子或一个子流程。执行引擎按序运行并把结果存进一个共享的“数据总线”里。调试的时候我只需要修改JSON文件刷新一下配置就能生效不需要重新编译整个程序。这个流程编排层帮我省了太多事。有一次在客户现场对方AOI设备要增加一个检测项我直接在配置里插入一个亮度均值判定算子加了一个阈值参数十分钟搞定。现场工程师看得很震惊其实底层逻辑不复杂就是对算子做了一层注册和反射让配置能映射到真正的方法。3. 六大核心视觉场景框架是如何在不同设备上落地的3.1 AOI视觉检测从“粗检”到“精检”的流程拆分AOI自动光学检测是框架里比较考验流程设计能力的场景。AOI设备一般分为两块一是全局预定位二是局部精细检测。全局预定位是为了消除产品在治具里的位置偏差通常用模板匹配找一个显著特征得到偏移量。精细检测则是按照预设的ROI列表逐个检查焊点、线路、元器件是否存在缺陷。我用框架搭AOI流程时会拆成两级Pipeline第一级Pipeline做整图分析和坐标系校准第二级Pipeline遍历所有ROI对每个ROI执行同一组检测算子。比如检测一个电容的焊接质量我会对ROI做阈值分割、Blob分析统计面积和形状参数若超出设定范围就标记为NG。这里有个很重要的经验AOI的误判率很大程度取决于ROI框得准不准。ROI框不准检什么都是白搭。所以我把ROI设计成相对坐标先通过Mark点定位做主校准再通过每个元件本身的焊盘特征做局部微调。这样就算产品批次有轻微偏位ROI依然能贴住目标区域。3.2 机械手定位手眼标定与抓取位姿计算机械手定位是框架里把坐标变换用到极致的一个场景。这里首先要明确一个概念相机装在机械手上方视野固定拍一个区域这就叫“眼在外”。还有一种方式是相机装在机械手末端跟着机械手一起动这叫“眼在手”。两种模式标定方法不同代码实现也不同。我目前处理最多的3C上下料场景是“眼在外”。框架里的流程是机械手先移动到拍照位触发相机采图然后视觉系统计算目标物中心在图像坐标系的坐标再经过九点标定矩阵得到目标物在机械手基坐标系下的坐标。最后把坐标发给机器人控制器。计算抓取姿态时要注意目标物可能有角度旋转。除了位置框架还会算出角度通常以模板匹配的角度输出为准。机械手末端的吸嘴或夹爪需要按这个角度旋转才能准确抓取。这里有个坑角度换算需要参考机械手的零点方向和旋转方向定义必须在标定时确认角度正负方向否则抓取时会转反。3.3 点胶机视觉引导路径补偿与胶路检测点胶机的视觉任务通常有两块一是引导机械臂找到产品上的点胶位置二是检测点胶后的胶路是否符合要求。前者和机械手定位类似也是走标定加匹配的流程。后者则更像是AOI的一个分支需要检测胶路有无断胶、堆胶、偏移。在框架源码里我为点胶机做了一个专门的“胶路检测”算子集合。核心思路是沿预设路径取若干截面对每个截面做灰度剖线分析找到胶体边缘计算胶宽和位置。胶宽异常或者边缘跳变过大就判定为NG。这个方案比单纯用Blob分析更稳定因为胶路是长条形的整幅图Blob分析容易受到反光干扰。点胶机的另一个细节是相机和点胶头的坐标匹配。通常相机会装在点胶头的侧面有一个固定偏移。这个偏移必须通过标定得到框架里我用了一个简单的平移偏移标定在画面中心点一个点然后让点胶头移过去记录坐标差。这个偏移在换机台或换镜头后一定要重新标定我见过不少现场异常都是因为忘掉了这一步。3.4 插件机视觉对位高精度目标匹配插件机把电子元件插装到PCB板上对视觉对位的要求很高因为引脚密密麻麻稍有偏移就插不进去。这类设备的视觉流程核心是先拍PCB板的定位Mark点再计算元件引脚的实际位置与理论位置的偏差。框架里我用模板匹配加边缘检测结合的方式。具体做法是在Mark点上做高精度模板匹配得到PCB的整体偏移和旋转然后对元件的引脚区域做边缘对位计算每个引脚的精确中心。这里有个要点模板匹配的分辨率要足够高而且尽量避免在反光剧烈的区域做匹配否则分数会波动。插件机现场调试时最怕的是PCB板批次变化板子的颜色、丝印深浅都会影响模板匹配。我的对策是尽量不依赖灰度模板而是在框架里提供边缘模板匹配算子它只关注轮廓形状对灰度变化不敏感。这个切换在实际项目中效果明显误判率下降了很多。3.5 激光切割机视觉定位找靶校正与振镜补偿激光切割机的视觉定位核心任务是让激光头知道“该往哪里切”。很多切割机采用振镜扫描方式加工前需要找靶标确定板材上的实际图形位置然后校正切割路径。这类设备和前面的最大区别是它通常不需要实时连续引导而是在加工前做一次静态定位然后把坐标补偿值发给控制系统。框架源码层面我做了一个“找靶模块”支持圆形靶标、十字线靶标和任意异形靶标。圆形靶标比较常用稳定性好我用圆检测加亚像素边缘拟合来计算圆心精度可以达到亚像素级别。另一个关键点是振镜带来的非线性畸变。振镜在视野边缘会有不同程度的桶形畸变如果不做校正边缘切割位置就会偏。我在框架里内置了基于网格的畸变校正功能通过拍摄棋盘格或点阵图建立图像坐标与振镜加工坐标的映射表。这个映射表会保存成一个文件换振镜后重新标定一次即可。3.6 视觉螺丝机定位锁付与结果确认视觉螺丝机算是这类设备里“小而美”的一个方向。它的核心流程分三步识别螺丝孔位置、引导锁付机构对准、锁付完成后再确认一次。别看简单实际做好不容易。框架里的螺丝机视觉流程是这样设计的第一步用模板匹配找到产品的基准点获取整体偏移第二步在基准点附近搜索螺丝孔一般用圆检测或环形轮廓提取第三步锁付机构移动到对应坐标第四步锁付后再次拍照确认螺丝是否已完全拧进去通过检测螺丝头高度或十字槽特征来判定。视觉螺丝机最容易出问题的地方是反光。螺丝头是金属的打光不好时会产生强烈的镜面反射导致检测特征丢失。我常用的解决方法是使用低角度环形光源降低镜面反射的影响并且把相机曝光时间调短把增益调低。这些参数我全部做进了框架的配置文件里现场工程师可以直接调整不用改代码。4. 框架源码里的通信与数据管理设备能否稳定运行的关键4.1 与PLC和机器人控制器的通信实现视觉系统算出来的坐标、检测结果最终要发给PLC或机器人控制器。如果通信模块写得不好视觉就算得再准也是白搭。我在框架里做了一个统一的通信组件支持以太网TCP、UDP、串口、Modbus TCP几种常用方式。每种方式都实现同一个接口发送结果、接收指令、握手断开重连。通信协议的数据格式最好提前约定好。我这边的通用做法是采用一个简单的ASCII协议比如用开头、;结尾的字符串中间用逗号分隔各个字段。这种协议调试方便用串口助手就能模拟。实际项目中PLC侧可能更愿意用字节型协议所以框架里也做了解析器的可配置化。要注意的是视觉系统永远不要假设通信链路永不中断。我在框架里加了看门狗机制定时检测通信状态如果断线会尝试重连并且把状态写进日志。现场电气干扰会导致偶发通信超时没有看门狗的话设备会一直卡在等待状态非常麻烦。4.2 结果数据结构和图像存档策略检测结果的数据结构直接影响后端的追溯和统计。我的框架里定义了一个VisionResult对象包含时间戳、产品条码、检测项名称、判定结果OK/NG、测量数值、坐标信息等字段。检测项可以多个所以VisionResult内部有一个结果列表。图像存档也是现场非常依赖的功能。设备调试阶段我们几乎要保存每一张NG图拿到办公室里慢慢分析。但在正式生产时如果每张图都保存硬盘很快会爆。所以框架里做了一个可配置的保存策略All、NGOnly、Never三种模式并且支持按日期分文件夹。这样既保证了现场追溯能力又不会让存储成为瓶颈。从开发层面讲图像保存最好用异步线程去做不要在相机回调里直接写硬盘否则会阻塞采图流程造成帧率下降或丢帧。我最初就是因为直接在回调里保存图像导致高分辨率相机只能跑到每秒三帧后来改成队列加独立线程写入马上恢复到满帧率。5. 实际调试中踩过的大坑光源、标定和线程一个都不能少5.1 光源变化让模板匹配“突然失灵”有次给某客户调试视觉螺丝机上午跑得好好的下午一开工就大量误判。查了一下午最后发现是车间窗帘拉开后环境光直接照到了产品上导致图像整体灰度变了。从那以后我在框架里加入了一个“采集预处理算子”可以自动做灰度均衡或归一化。算子会计算当前图像的灰度直方图然后映射到一个标准范围减少环境光的影响。但我也要提醒一下灰度归一化不是万能的。如果环境光和光源的色温差异太大RGB图像就会偏色灰度化后某些特征还是会被淹没。最根本的解决办法还是加遮光罩或者改用红外光源配合红外滤光片彻底隔绝环境光。5.2 标定板精度直接决定定位精度机械手定位项目里我踩过最深的一个坑是标定板本身不够平。有次现场师傅是拿普通打印纸去打印棋盘格标定板纸贴在机台上微微有点褶皱。结果标定出来的矩阵看起来挺正常但一到实际定位就偏好几毫米。后来换了玻璃基板的标定板定位误差马上降到合格范围。所以做视觉定位的朋友标定板精度真的不能省。金属或玻璃材质平整度好图案边缘清晰这是基本功。另外标定板的清洁也很重要上面有一点油污或灰尘都会影响角点提取精度。5.3 线程调度问题高帧率下的图像队列堆积视觉框架里最容易忽略的是线程模型。相机采集线程、图像处理线程、UI显示线程、通信发送线程如果互相直接调用很容易造成卡顿或数据竞争。我的框架采用生产者-消费者模型采集线程往队列里放图像处理线程从队列里取图。队列有长度上限如果处理速度跟不上采集速度就丢弃最旧的帧而不是最新帧。为什么要丢弃最旧帧因为工业现场更关心实时性处理当前最新的图像才有意义。有一次我写了一个“取最新帧”的方式结果在连续采集模式下面视觉计算结果总是滞后一拍。后来改成丢旧帧策略后机械手定位的响应速度快了很多从采图到发出坐标控制在50毫秒以内。5.4 框架源码的可扩展性新场景接入有多快框架设计完并不是一劳永逸因为总会有新设备类型找上门。有一次客户要做“视觉对位贴合机”这东西本质上也是定位但多了一个对位贴合的动作。我接到需求后发现框架里只需要增加一个贴合对准算子用来计算上下两个贴合面的相对偏移其余模块完全复用。从需求到现场稳定运行只花了两天。这种可扩展性不是凭空来的关键在于每个算子都遵循相同的输入输出协议新算子只要实现一个接口就能被流程编排器识别。如果你打算自己搭框架我强烈建议一开始就定义好算子的数据契约别嫌麻烦这个契约救了我无数次。最后说说我最深的体会机器视觉框架源码这件事最值钱的不是某一个算法模型跑得有多准而是它能让你在一个接一个的项目里用越来越少的代码量解决越来越复杂的现场问题。如果你还在每个项目里复制粘贴图像处理代码真心建议停下来花几周时间把公共部分抽出来磨刀真不误砍柴工。

相关新闻

goose desktop捣乱鹅完整说明:config.ini 与 Assets 目录结构拆解

goose desktop捣乱鹅完整说明:config.ini 与 Assets 目录结构拆解

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

2026/10/18 18:51:03 阅读更多 →
论文复现代码方法:从跑不通到敢改一行的工程实践指南

论文复现代码方法:从跑不通到敢改一行的工程实践指南

简介:这份资源面向机器学习与深度学习方向的研究人员、研究生及需要复现论文实验的开发者,整理了四种高效查找论文配套代码的实用途径,帮助解决复现过程中代码难寻、环境搭建繁琐等痛点。压缩包共3个文件,包含1个inscode工程配置、…

2026/10/18 18:51:03 阅读更多 →
CRM客户关系管理系统原型:React+Ant Design+Mock数据实战

CRM客户关系管理系统原型:React+Ant Design+Mock数据实战

简介:CRM客户关系管理系统原型面向Web前端开发者、产品设计师及毕业设计学习者,集中展示销售、市场与服务模块的交互界面设计思路,适合作为企业级管理系统前端的参考样例。原型重点运用JavaScript实现表单验证,覆盖邮箱格式、手机…

2026/10/18 18:51:03 阅读更多 →

最新新闻

OpenHarmony奖品详情页开发:从数据模型到状态管理全解析

OpenHarmony奖品详情页开发:从数据模型到状态管理全解析

我先把前面五篇的进度简单对一下,免得有读者是从这一篇才跟上来的:目前这个幸运大转盘项目已经完成了转盘主界面、抽奖动画、奖品管理、中奖记录和中奖弹窗这几个核心模块。这一篇要补上的奖品详情,其实是把"用户点开某个奖品图标之后看…

2026/10/18 21:47:12 阅读更多 →
React Native键盘避让在OpenHarmony上的适配实践

React Native键盘避让在OpenHarmony上的适配实践

1. 为什么键盘避让在 OpenHarmony 上会成为问题?做跨端开发的人最头疼的一类问题,莫过于软键盘弹起来之后,输入框被死死挡住。在 React Native 项目里,大家的第一反应就是用官方提供的 KeyboardAvoidingView 组件;可一…

2026/10/18 21:47:12 阅读更多 →
量化投研遇上大模型:研究记忆的风险边界与工程实践

量化投研遇上大模型:研究记忆的风险边界与工程实践

1. 当量化投研遇上大模型:一个正在被重新定义的边界做量化投研的人这两年应该都有一个共同的感受:数据获取的门槛在肉眼可见地降低,但真正拉开差距的东西,反而越来越模糊了。以前我们拼的是谁的因子库更全、谁的行情清洗更干净、谁…

2026/10/18 21:47:12 阅读更多 →
PL/SQL Developer导出表全攻略:从选项拆解到踩坑排查

PL/SQL Developer导出表全攻略:从选项拆解到踩坑排查

很多PL/SQL Developer用户都会卡在“导出表”这一步。明明菜单里有个Export Tables,可真点进去又不知道该勾哪些选项,导出来的SQL文件拿去别的库一执行就报错,或者数据缺了一半。这问题特别常见,尤其在Oracle DBA和开发人员之间来…

2026/10/18 21:47:12 阅读更多 →
降低AIGC率有哪些方法?AIGC检测里摘要、综述AI率高分别怎么改!

降低AIGC率有哪些方法?AIGC检测里摘要、综述AI率高分别怎么改!

降低AIGC率有哪些方法?AIGC检测里摘要、综述AI率高分别怎么改! 拿到知网AIGC检测报告,你可能会看到这样的情况:全文AI率不算夸张,可摘要那一页的AIGC疑似度超过50%,第二章文献综述连着三四页大段标红&…

2026/10/18 21:47:12 阅读更多 →
Select模型详解:Windows Socket TCP服务端实现与优化

Select模型详解:Windows Socket TCP服务端实现与优化

聊到Windows下的网络编程,“五种I/O模型”绝对是一个绕不开的话题。很多人在面试或者做项目的时候第一次接触这个概念,当场就被Select、WSAAsyncSelect、WSAEventSelect、重叠I/O、完成端口这一串名词搞懵了。说实话,这五个模型确实容易让人望…

2026/10/18 21:46:11 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →