夜雨聆风学习资料网

ARTICLE · 1083526

买了工业相机和视觉软件,为什么还做不出一台检测设备?

买了工业相机和视觉软件,为什么还做不出一台检测设备?

《看懂一台机器视觉设备》系列第 10 篇  ·  Unit 05|整机、产业与未来

拍到图,只证明采集成功;做成设备,还要让正确结果对应正确工件,并完成动作与验收。

桌上有一台工业相机,配好了镜头和光源;电脑里也装好了视觉软件,能在一张样图上圈出缺陷。把它们搬到产线旁边,就算有了一台检测设备吗?

还差得远。工件怎样稳定地出现在镜头前,什么算缺陷,什么时候拍,结果要交给谁,误判后怎样复核,运行一个班次是否仍然可靠——这些问题,不会因为买齐相机和软件就自动解决。

此前我们沿着设备内部的信号,一直追到电机和工作台。这次把视角拉远:一台视觉检测设备究竟由谁做出来?如果想做视觉开发工程师,自己应该看懂其中哪几段?

▌先从工厂真正提出的问题开始

假设一个工位要检查产品上有没有漏装螺丝。这只是教学示例,不对应作者参与过的具体设备。

“识别螺丝”听起来像一道算法题。但开始选相机之前,至少要弄清:螺丝会不会被遮挡?正常产品之间有什么差异?工件是否在运动?允许多久给出结果?漏检和误剔分别会造成什么后果?结果要显示给人看,还是要传给剔除机构?

这些不是算法之外的琐事,而是检测任务本身。工厂最终要验收的,也不是软件在几张样图上画出了漂亮的框,而是在约定的样本、节拍和生产条件下,设备能否稳定给出可用结果。验收指标和责任范围必须在具体项目里约定,不能用“准确率很高”一句话代替。

一轮正常检测至少要接上这些动作:工件进入约定位置,触发相机取图,软件处理对应图像,结果与这一件工件关联,再由整机显示、记录或执行后续动作。哪一步没有证据,故障就可能停在那一步;图像里的框画对了,也不等于产线上的那件产品被正确处理。

通俗地说,机器视觉像是给机器装上“眼睛”,但不止于拍照。它还要从图像里提取信息,作出检测、测量或定位判断,并把结果交给需要它的设备。这个比喻帮助我们入门,却不意味着机器一定按人眼的方式识别,也不意味着所有视觉判断都依赖 AI。

说得正式一些,美国自动成像协会(AIA)在一份行业研究中,把机器视觉界定为:软硬件结合,基于图像的采集与处理,为设备执行任务提供信息或引导。这个定义比“机器的眼睛”多出了关键的后半段:处理图像,并让结果真正派上用场。视觉给机器人提供抓取位置,是一种用法;检测漏装后给出放行或剔除结果,也是另一种。不能把“控制机器人运动”写成机器视觉唯一的目的。

范围确实不止工厂。农业里的果蔬分选、交通监控中的自动识别、医疗与生命科学的图像分析,都是相关应用;体育动作捕捉和影视特效也会用到图像获取与处理技术。不过,这些领域会交叉使用“机器视觉”“计算机视觉”“动作捕捉”等名称,不能把所有拍摄和后期处理都硬归入同一个定义。尤其 CT、MRI 等医疗影像,不能直接套进“光学相机拍照”的狭义解释。本文只沿着工业检测设备继续往下追。

那它由什么组成?沿着一件工件走,比背清单好记:成像与图像采集单元——光源、镜头、相机(内含图像传感器)把特征变成图像,某些方案还需要采集卡;图像处理单元——处理器和视觉软件从图像里提取所需信息、完成判断;结果通信——通过 I/O 或网络等接口把 OK/NG、尺寸或位置交给其他设备。处理器可能在工控机、视觉控制器或智能相机内;采集卡不是每套系统都必需的。

这又引出两个经常被省略的问题:什么时候拍,判断属于哪件工件?触发和结果关联要回答它们。至于工件定位、输送、剔除机构和安全联锁,则要放回整台设备中设计。拍到了图,不等于判断正确;判断正确,也不等于整台设备处理了正确的工件。

图 1|检测要求、采集、处理、结果交付与整机动作之间,仍有五次交接

▌把行业沿着一台设备拆开

第一层是让缺陷被看见的部件。光源决定哪些特征被突出,镜头把光投向图像传感器,相机完成采集;采集卡、工业计算机或视觉控制器则在相应方案中负责接收和处理图像。分辨率高不一定就拍得清:工作距离、视野、曝光、反光和工件姿态都要一起考虑。这里有光源、镜头、图像传感器、相机及计算硬件等供应商。

第二层是把图像变成判断的软件。有的软件主要帮工程师发现相机、设置参数并取图;有的让人把定位、测量、识别、缺陷检测等工具串成流程;还有的提供算子、编程接口和深度学习能力,供工程师开发更有针对性的应用。OpenCV 则是一套开源计算机视觉库,不是与 VisionMaster、VisionPro、HALCON 并列的整套工业视觉交付平台。它们都可能被叫作“视觉软件”,但不是同一层产品。

第三层是把视觉接进机器和产线的人。设备厂或系统集成商要让工件稳定到位,安排相机、光源、机械结构和触发时序,把 OK/NG、位置或测量值交给后续控制与数据系统,并处理报警、停机、换型和维护。厂商、代理商或 FAE 也可能在选型、测试和技术支持中参与,但具体谁承担交付责任,要看项目合同与实际分工,不能只凭公司名称判断。

第四层是最终使用设备的工厂。它提供工艺知识、合格与不合格样本、生产条件和验收要求,也要决定谁维护配方、谁复核异常、产品变化后怎样重新确认检测效果。部件供应商、软件厂商、设备厂和使用方不是永远一家公司对应一个格子:有的厂商同时提供相机和软件,有的设备厂自己写算法,有的工厂也有内部视觉团队。

图 2|按任务分辨供应方、集成方与使用方;同一公司可能承担多段

所以这条行业链不能简化为“相机厂把东西卖给设备厂”。硬件销售、软件许可、项目集成和后续技术服务也是不同的交付形式;这里不猜哪一环利润最高。更准确的问法是:这家公司交付的是部件、开发工具、整机方案,还是生产现场持续可用的检测能力?

▌ MVS、VisionMaster、VisionPro、HALCON:名字相近,位置不同

这些名字我都记在笔记里,但没有把每套产品完整用过。所以下面不是亲测横评,而是按官方资料梳理:它们主要帮工程师完成哪一步?先弄清位置,再谈适不适合自己的项目。

以海康机器人为例,MVS主要面向工业相机的连接、参数配置、图像采集和 SDK 开发;VisionMaster则是视觉算法开发平台,可以通过图形化流程搭建检测,也提供二次开发接口与深度学习工具。海康机器人同时提供相机、视觉软件等产品,但这不等于 VisionMaster 只能接自家相机;具体兼容性要核对接口、版本与设备资料。

康耐视的VisionPro既有QuickBuild这样的交互式搭建方式,也有供 C# 等 .NET 程序调用的开发接口。QuickBuild 是 VisionPro 的组成部分,不是另一个独立的“拖拽版”。深度学习相关产品经历过 ViDi → VisionPro Deep Learning等名称沿革;产品名和授权应以使用时的版本为准。康耐视也提供相机等硬件,但不能由此推断 VisionPro 只允许使用自家相机:官方文档还列有 GigE Vision 和部分第三方设备的接入路径。

MVTec的核心产品侧重视觉软件,本身不是工业相机厂商。HALCON提供 HDevelop 开发环境、图像处理能力和 Python、C、C++、.NET 等语言接口,适合需要深入编程和定制的方案;MERLIC主打图形化、无代码搭建应用,也能在相应授权条件下通过 HALCON 自定义工具扩展。它不是简单删减功能的“HALCON 轻量版”。MVTec 强调跨硬件使用,但“支持多种相机标准和接口”不等于“任何相机插上就能工作”,仍要核对驱动、GenTL/标准兼容、功能和软件版本。

这里不做“哪家最好”的排名。三组产品的功能有重叠,开发方式、硬件生态和交付方式却不同。视觉开发还要分清两道门:相机是否支持相关采集标准,软件是否有可用的驱动、SDK 或适配接口。支持 GigE Vision、USB3 Vision、GenICam/GenTL 等标准,有助于跨品牌连接,却不保证每项相机专有功能都能无差别使用。 拖拽不等于不能扩展,写代码也不自动等于检测效果更好。一套工具是否合适,要回到缺陷类型、设备架构、节拍、开发团队和维护条件。

图 3|这些工具主要帮工程师完成不同环节,不是同一张排行榜

对想自己学习的人,授权也是工程现实的一部分。按目前官方页面,MERLIC 提供 45 天试用,HALCON 提供 30 天试用;HALCON Progress 是正式商业版本类别,不能直接理解成“教育免费版”。符合条件的学生可以申请限非商业用途的学生许可,具体有效期与资格以申请时的官方规则为准。

图 4|相机标准兼容与软件实际适配,需要分别验证

▌视觉开发工程师,不是把几套软件都学一遍

同叫“视觉工程师”,在相机厂、软件厂、设备厂、集成商和终端工厂,工作重点可能不一样。有人侧重相机和光学选型,有人开发算法或软件平台,有人负责把视觉接进整机,有人长期处理现场的误检、漏检和换型。因此不能拿某一个招聘标题,替所有岗位画一张固定能力表。

把 MVS、VisionMaster、VisionPro、HALCON、MERLIC 并排写在笔记里,很容易让人以为学习目标就是“每套都要会”。但会打开五套软件,不等于能交付一套检测系统。至少要回答:图像从哪里来?为什么能稳定拍清?怎样判定?结果交给谁?出错后怎样发现和恢复?

对有设备与控制基础、想走工业视觉应用开发这条路的人,我更愿意按下面的顺序学。这是学习路线,不是所有公司统一的岗位标准:

第一步,学会把需求和图像对上。要检什么、什么不检?合格边界、节拍和验收方法由谁确认?工件、光源、镜头、相机、触发与曝光能否稳定地把目标特征呈现出来?如果原图里的螺丝时亮时暗,先查成像条件,不要只在算法里调阈值。

第二步,选一套主工具把检测做通。工作中能接触哪套,就先用哪套完成定位、判断和结果输出。想深入可编程开发,可以进一步学 HALCON;在现有设备主要使用 VisionMaster 或 VisionPro 的场合,先把实际项目做扎实更有价值。其余工具先能看懂定位与接口,不必同时精通。OpenCV 值得认识,但也不必为了“凑齐软件名单”而学。

第三步,补上把各段连起来的编程能力。例如选择 C# 作为上位机开发主线,从实际需要的最小功能开始:调用相机 SDK 取图,运行视觉流程,显示结果,把 OK/NG 与当前工件对应,发送给控制端,并保存异常信息。HALCON 的 HDevelop 视觉逻辑可以与 C# 应用集成,但软件给出 NG,不等于设备已经正确剔除那件产品。

第四步,验证它能长期工作。不能只拿一张成功样图作证据。换批次、换班次、光源变化或相机掉线以后,系统怎样发现问题、停止可能错误的后续动作、恢复并留下可排查记录?误检、漏检和节拍是否达到项目事先约定的验收标准?

图 5|从稳定成像到长期运行,每一步都留下可复核证据

有一条适合自己的练习路径:先用获得使用许可的公开样图或自己拍摄的样图,完成一个“漏装螺丝”离线检测;再接上手边有权限使用的相机,或模拟相机连续取图,让程序处理多张图;最后加入模拟结果输出、工件编号、异常日志和断线处理。没有设备,也能先完成前两段;没有真实现场验证,就明确把它叫作练习项目,而不是产线交付案例。

这条路的目标不是让一个人包办光学、算法、电气和整机全部工作,而是逐步具备独立做通一条完整检测流程的能力:知道自己的输入从哪里来,输出会被谁使用,问题可能在哪个边界出现。纯 AI 算法研发则是另一条更偏模型设计、数学、训练与部署的路线,不能因为两者都叫“视觉工程师”就混为一谈。

▌一个不用买设备的行业地图练习

拿“检查产品是否漏装螺丝”这个假设任务,画一条线:工厂提出判定要求 → 工件与光学成像 → 相机采图 → 软件给出结果 → 整机执行与记录 → 工厂验收维护。

在每一段下面,只写三件事:需要什么证据、可能由哪类公司或岗位负责、出错时先查什么。比如没有图像,先查触发与采集;样图能识别、产线却频繁误报,先比较两处的图像和产品变化;图像判断正确、实物却没被正确处理,再查结果关联与整机动作。不要只因为结果来自算法,就断言“算法坏了”。再把 MVS、VisionMaster、VisionPro、HALCON、MERLIC 放到它们实际能帮助完成的环节,而不是把五个名字并排写成一张排行榜。

图 6|遇到问题按现象找上一段的证据,不先猜算法坏了

做完这张图,至少能回答一个对学习和求职都实用的问题:一个岗位说“做机器视觉开发”,它期待我开发的是相机接入、检测算法、视觉应用软件,还是整机交付中的某一段?岗位描述若只列出 HALCON、VisionPro 等名称,还应该追问实际要负责取图、成像、算法、上位机集成与现场验收中的哪些环节。

这篇暂时形成的工程判断是:机器视觉行业不是由几家软件公司组成的,而是围绕一次可信的检测结果,把部件、工具、应用工程和生产责任接在一起。对想成为视觉开发工程师的人,记住产品名只是入口;能沿着需求、成像、判断、通信和验收,亲手做通一条可验证的检测链,才是在积累可迁移的本领。

你在招聘信息里见过最模糊的“视觉工程师”要求是什么?它实际更像算法开发、相机应用,还是设备集成?

▌延伸资料

A3|机器视觉系统由哪些部分组成

海康机器人|VisionMaster 产品与开发方式

康耐视|VisionPro QuickBuild

MVTec|HALCON 与 MERLIC 产品线

相关学习资料