标记 / 对齐 PCB ================== **此页面的用途** 为产品定义 **mark 点(参考标记点)** 与 **独特标记(unique marker)**,使系统在每次检测前能稳定定位 PCB 实际位置。Mark 点用于补偿来料偏移与拼板间的微小错位;独特标记用于 A/B 面双产品检测场景下自动区分两块不同的 PCB。 **如何进入** 进入 **产品编程页面**(Teach),点击顶部第一个标签页 **标记 / 对齐 PCB**。 .. image:: images/mark_align_pcb_overview.png :scale: 70% :alt: 标记 / 对齐 PCB 主界面:左侧标记列表 + 中央 PCB 画布 **操作流程** **Mark 点(marker)** 点击工具栏的 **+ 标记** 按钮,在拍摄图像上框选 PCB 上固定、易识别的参考标记点(圆形 mark、矩形 mark、或复杂的丝印图案均可)。绘制完成后会出现在左侧标记列表中。 每个 mark 点都支持以下属性配置: - **标记形状(Shape Type)**:圆形 / 矩形 / 模板匹配。 - **圆形 / 矩形**:使用 AI 算法寻找该形状的 mark 点。鲁棒性强,是首选方式。 - **模板匹配(Template Match)**:直接用框内图像作为模板匹配。适合 mark 点表面有油墨、氧化或受光照影响导致 AI 失败时改用。 - **二值化抽色(Mark Binarization)**:可在 mark 点底色不稳定时启用,先把 mark 点抽成二值掩膜再做匹配。开启后会出现 **三色范围** 参数(X / Y / Z / A),可点击 **显示色范围 Mask** 实时预览抽色效果。 - **定位(Locate)**:让相机移动到当前 mark 点的金板位置,便于核对位置是否正确。 - **预测中心(Predict Center)**:系统重新分析当前框内图像,自动微调 mark 点中心位置;可用于消除手画时的轻微偏差。 - **精修(Refine)**:手动微调 mark 点框的位置与大小。 需要 **2 个 mark 点**\ (分别置于 PCB 的对角位置)才能进行二维定位。当前版本 **最多支持 2 个 mark 点**,不能再添加更多。 .. image:: images/mark_point_example.png :scale: 70% :alt: 标记 / 对齐 PCB 画布上的 mark 点位置示意 **独特标记(unique marker)** 仅在 **A/B 面双产品检测** 场景下需要。点击 **+ 独特标记** 按钮,在每个产品上框选一处与另一面差异明显的区域(例如缺口位置、专属丝印、特殊器件)。框选的区域将作为产品识别特征。 独特标记支持选择 **分类方法**: - **GENERIC**:通用 AI 分类器,适合大多数差异明显的场景。 - **OCV**:基于字符外观对比,适合两个产品有不同但相近的丝印文字。 - **OCR**:基于字符识别,要求字符清晰、可读。 请确保所选区域在两个产品上 **差异明显**\ (例如缺口或独有元件),否则系统在检测时可能无法可靠区分 A/B 面。 .. note:: 每个产品在 A/B 面模式下需要 **正好一个** 独特标记。若该独特标记区域在两面上区分度不足,启动检测时系统会返回 **HTTP 428** 错误并提示重选区域。 **注意事项** .. tip:: **常见 Mark 点定位问题与处理建议:** - **检测时找不到 Mark 点,报错退出**:先尝试切到 **AI 算法**(圆形/矩形),更稳定;若 mark 点表面有油墨、氧化、污渍等导致 AI 找圆失败,改用 **模板匹配**。 - **Mark 点找到了但定位不准 / 误报多**:检查是否板子放反(对称 mark 点可能巧合找到但定位错误);确认两个 mark 点都画在 PCB 上稳定不易磨损的位置,且两点之间距离尽量大(接近对角分布),有利于精确定位旋转角度。 - **AB 面切换后 Mark 点找不到**:先确认板子方向放置正确;单独测 B 面可以找到但 AB 一起测找不到,多半是独特标记选区差异不足,回到本页重新框选差异更明显的区域。 - **热板与冷板差异导致间歇误报**:在元件配置中适当放大 **允许偏移距离** 与 **允许旋转角度**,让对齐机制能吸收板件因温度变化产生的轻微形变。 .. note:: **Mark 点选择建议(A 类规范):** - 优先选择 PCB 上 **固定、不易磨损、不易被遮挡** 的圆形或矩形丝印参考点。 - 避免选择 **元件本身**(元件可能贴歪或缺料),避免选择 **靠近 PCB 边缘** 的位置(拼接时可能被裁切)。 - 避免选择 **对称分布的 mark 点**\ (板子放反时可能被错误识别)。 - 每块 PCB 选择 **2 个** mark 点(当前版本上限),分别置于 PCB 的对角位置,以覆盖整板范围。 **相关页面** - :doc:`auto_programming` - :doc:`manual_programming` - :doc:`pcb_array`