技术领域
[0001] 本申请属于工业视觉领域,尤其涉及一种机器视觉系统。
相关背景技术
[0002] 随着计算机视觉和人工智能技术的快速发展,越来越多的应用需要对图像进行处理和分析,如图像检测、测量、识别、场景理解、图像增强等。
[0003] 然而,不同应用场景下的图像处理需求千差万别,现有的工业视觉系统大多按照固定流程工作,无法满足灵活性和适应性的要求。
具体实施方式
[0028] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
[0029] 本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
[0030] 针对现有技术存在的缺陷,本申请提供一种基于有向无环图的可配置的机器视觉系统,以满足不同应用场景下图像处理的多样性和灵活性需求,实现多种算法及流程的定制化图像处理和分析。
[0031] 下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的机器视觉系统进行详细地说明。
[0032] 如图1所示,该机器视觉系统100包括:主机110和多个从机120。
[0033] 主机110主要用于接收待识别图像,并对待识别图像的视觉任务构建有向无环图,将有向无环图部署在从机120中,并将有向无环图发送至与有向无环图对应的从机120,主机110可以是工控机等,从机120用于对待识别图像执行有向无环图中的视觉任务,可以是具有图像处理功能的工控机。
[0034] 在该实施例中,主机110与从机120通信连接,可以是数据线连接、局域无线网连接或是蓝牙连接等,用于实现在主机110与从机120之间传输数据和图像。
[0035] 主机110包括配置单元111和任务调度器112,配置单元111用于构建视觉任务对应的有向无环图,有向无环图包括多个视觉任务节点,任务调度器112用于将有向无环图分配至从机120。
[0036] 从机120包括至少一个处理引擎121,处理引擎121用于执行视觉任务节点对应的视觉任务,并发送视觉任务的反馈信息至主机110。
[0037] 可以理解的是,视觉任务节点是机器视觉系统100中的处理单元,每个视觉任务节点代表一个特定的图像处理、分析或控制算法,包括传统图像处理算法、深度学习算法以及运动控制算法等。
[0038] 视觉任务节点按照处理顺序和依赖关系组成有向无环图(Directed Acyclic Graph,DAG),DAG中的每条边可以表示视觉任务节点对应的视觉任务的处理顺序,每条边上的箭头表示视觉任务节点之间的依赖关系,能够标记数据流向和处理关系。
[0039] 通过使用有向无环图来管理和组织视觉任务,使得视觉任务之间的依赖关系清晰可见,视觉任务节点的执行顺序灵活可变,提高了系统的可配置性和可扩展性,将机器视觉任务的设计和管理提升到一个新的水平。
[0040] 需要说明的是,主机110和每台从机120均可以具备通信模块,主机110和从机120之间的数据传输和通信可以是利用通信模块实现的,能够确保主机110和从机120能够协同工作,有效地共享数据和信息。
[0041] 通信模块可以是无线Wi‑Fi模块、蓝牙模块或是通过数据线连接的数据接口。
[0042] 此外,通信模块还支持数据的安全传输和加密,以保护敏感信息。
[0043] 可以理解的是,从机120中的处理引擎121可以根据配置的有向无环图,优化并依次调度视觉任务节点的执行,并将执行视觉任务的反馈信息发送至主机110。
[0044] 处理引擎121可以根据依赖关系、硬件资源等因素进行调度和优化。
[0045] 反馈信息可以包括:每个视觉任务节点执行视觉任务的进度、状态以及处理结果。
[0046] 在实际的执行中,配置单元111根据待处理图像的视觉任务,调用与视觉任务对应的视觉任务节点,构建至少一个有向无环图,能够对待处理图像进行定制化的图像处理,具有灵活性和适应性,任务调度器112根据平均分配任务算法,将有向无环图和待处理图像分配给从机120的处理引擎121。
[0047] 从机120中的处理引擎121对待处理图像按照有向无环图处理视觉任务,并将处理进程、处理状态和处理结果等反馈信息发送至主机110。
[0048] 用户可以在制造业中使用该机器视觉系统100,通过配置界面,根据图像处理相关的质检流程构建有向无环图,视觉任务节点可以挂载有包括缺陷检测、尺寸测量等多种图像处理的相关算法,以确保产品质量。
[0049] 以X光图像分析为例。
[0050] 主机110获取X光图像作为待识别图像,并确定X光图像的视觉任务,X光图像的视觉任务可以包括:图像分解、图像重建和细节增强等。
[0051] 主机110根据视觉任务确定对应的视觉任务节点,构建有向无环图,并将有向无环图部署至从机120的处理引擎121中,同时将X光图像发送至该处理引擎。
[0052] 从机120驱动处理引擎121依次执行有向无环图中的图像分解、图像重建和细节增强等视觉任务,并将处理引擎121中各视觉任务节点的执行进度、状态以及处理结果作为反馈信息发送至主机110。
[0053] 在医疗诊断中,系统可以根据检测需求,调整DAG的图像处理流程,实现X光图像分析、病灶检测等功能。
[0054] 根据本申请实施例提供的机器视觉系统100,通过将主机110和多台从机120构建分布式计算架构,主机110中配置单元111对图像处理任务分配图像处理任务构建相关的有向无环图,能够灵活地适应图像处理的实际需求,并通过任务调度器112将有向无环图分配至各个从机120的处理引擎121中,实现图像处理的分布式计算,能够充分利用计算资源,使得该机器视觉系统100能够实现卓越的实时性和高性能,视觉任务可以在多个处理引擎121上并行处理,从而大大提高了处理速度和吞吐量,这对于需要快速响应的应用,如工业自动化和安全监控,尤为重要。
[0055] 在一些实施例中,任务调度器112包括分配模块,分配模块用于根据待分配的第一有向无环图的视觉任务节点属性,将第一有向无环图分配至第一处理引擎121,第一处理引擎121在第一从机120运行,第一从机120的视觉任务执行属性与第一有向无环图的视觉任务节点属性匹配。
[0056] 可以理解的是,视觉任务节点属性,包括该视觉任务节点需要执行的任务内容,例如图像降噪、尺寸归一化、图像分割或目标检测等图像处理。
[0057] 视觉任务执行属性,可以是根据第一从机120的硬件参数和系统配置等确定的,表征着第一从机120能够执行的视觉任务。
[0058] 任务调度器112需要将DAG中每个视觉任务节点的视觉任务节点属性,与第一从机120的视觉任务执行属性进行匹配,在根据匹配结果,确定第一从机120的第一处理引擎121能够运行第一有向无环图的情况下,将第一有向无环图分配至第一处理引擎121。
[0059] 在该实施例中,允许机器视觉系统100在多个处理引擎121上并行执行视觉处理任务,这提高了机器视觉系统100的性能和实时性,特别是在大规模图像处理应用中,分布式计算资源可以动态调整,以适应任务的需求,从而实现资源的最佳利用。
[0060] 在一些实施例中,第一从机120包括多个第一处理引擎121,分配模块用于将第一有向无环图分配至多个第一处理引擎121。
[0061] 可以理解的是,配置单元111可以同时配置多个有向无环图,第一有向无环图是其中的一个。
[0062] 在实际的执行中,使用多个第一处理引擎121处理同一个有向无环图,在其中一个第一处理引擎121出现故障的情况下,其他的第一处理引擎121能够正常处理,使得对有向无环图的处理具有灵活性和高容错性。
[0063] 在该实施例中,机器视觉系统100在实时性和容错性之间找到了平衡,这一创新使得机器视觉系统100不仅能够快速响应实时需求,还能够应对视觉任务节点故障等问题,确保系统的连续性和可靠性,这种平衡是系统设计的关键创新之一。
[0064] 在一些实施例中,机器视觉系统100包括多个视觉任务执行属性与第一有向无环图的视觉任务节点属性匹配的第一从机120。
[0065] 可以理解的是,第一处理引擎121可以在同一从机120上,也可以在不同的从机120上。
[0066] 在实际的执行中,主机110可以对第一有向无环图的视觉任务节点属性与多个从机120的视觉任务执行属性做匹配,进而能够匹配到多个第一从机120,进而通过任务调度器112将第一有向无环图分配至每个第一从机120的处理引擎121。
[0067] 在该实施例中,通过将第一有向无环图分配在不同的第一从机120上,从而增加机器视觉系统100在容错过程中的容错性。
[0068] 在一些实施例中,从机120还包括:
[0069] 至少一个第二处理引擎121,分配模块用于基于接收到的第一处理引擎121反馈的故障信息,将第一有向无环图分配至第二处理引擎121。
[0070] 可以理解的是,第二处理引擎121作为第一处理引擎121的备用,第二处理引擎121所在的从机120的视觉任务执行属性与发生故障的第一处理引擎121所在的从机120的视觉任务执行属性相同。
[0071] 在实际的执行中,任务调度器112的分配模块在接收到第一处理引擎121反馈的故障信息的情况下,确定第一处理引擎121出现了故障,自动将第一处理引擎121处理的第一有向无环图分配至第二处理引擎121,由第二处理引擎121代替出现故障的第一处理引擎121,处理第一有向无环图。
[0072] 在该实施例中,机器视觉系统100中,任务调度器112的分配模块在接收到第一处理引擎121反馈的故障信息的情况下,将出现故障的第一处理引擎121的执行的第一有向无环图自动重新分配给其他可用引擎,例如第二处理引擎121,使得在某处理引擎121发生故障的情况下,仍能执行任务,从而确保机器视觉系统100运行的连续性和稳定性,实现了对分布式计算资源的智能管理,具有强大的容错性。
[0073] 在一些实施例中,第二处理引擎121在第一从机120运行或在第二从机120运行,第二从机120的视觉任务执行属性与第一有向无环图的视觉任务节点属性匹配。
[0074] 可以理解的是,第二处理引擎121与出现故障的第一处理引擎121可以属于同一从机120,例如第一从机120,也可以属于不同从机120,例如第二从机120,其中,第二从机120可以是任务调度器112利用第一有向无环图的视觉任务节点属性重新匹配到的,因此,第二从机120的视觉任务执行属性能够与第一有向无环图的视觉任务节点属性相匹配。
[0075] 在实际的执行中,在确定某一第一处理引擎121出现故障的情况下,首先,任务调度器112可以在多个第一从机120中匹配不在运行状态中的第一处理引擎121,若匹配成功,将该第一处理引擎121作为第二处理引擎121,此时,第二处理引擎121在第一从机120运行;若匹配失败,则任务调度器112在除第一从机120之外的其他从机120中进行匹配,若匹配成功,则将该从机120作为第二从机120,第二从机120中的处理引擎121为第二处理引擎121。
[0076] 在该实施例中,通过在已匹配的第一从机120和未匹配的第二从机120中找到替代出现故障的第一处理引擎121的第二处理引擎121,对视觉任务进行重新分配,能够有效均衡负载,实现对分布式资源管理的灵活性和容错性,使得机器视觉系统100能够处理大规模的图像数据,并满足不同应用场景的需求。
[0077] 在一些实施例中,主机110,还包括:人机交互界面;人机交互界面,用于接收第一输入,响应于第一输入,触发配置单元111构建有向无环图。
[0078] 在该实施例中,人机交互界面可以包括:鼠标键盘、触摸屏或是智能音箱等,用于接收第一输入。在本步骤中,第一输入用于触发配置单元111构建有向无环图。
[0079] 其中,第一输入可以为如下至少一种方式:
[0080] 其一,第一输入可以为触控操作,包括但不限于点击操作、滑动操作和按压操作等。
[0081] 在该实施方式中,接收用户的第一输入,可以为,接收用户在终端显示屏的显示区域的触控操作。
[0082] 为了降低用户误操作率,可以将第一输入的作用区域限定在特定的区域内,比如人机交互界面的上部中间区域;或者在显示多个节点选项界面的状态下,在当前界面显示目标控件,触摸目标控件,即可实现第一输入;或者将第一输入设置为在目标时间间隔内对显示区域的连续多次敲击操作。
[0083] 其二,第一输入可以为实体按键输入。
[0084] 在该实施方式中,终端的机身上设有与视觉任务节点对应的实体按键,接收用户的第一输入,可以为,接收用户按压对应的实体按键的操作;第一输入还可以为同时按压多个实体按键的组合操作。
[0085] 其三,第一输入可以为语音输入。
[0086] 在该实施方式中,终端可以在接收到语音如“构建有向无环图”时,触发显示有向无环图的构建界面。
[0087] 当然,在其他实施例中,第一输入也可以为其他形式,包括但不限于字符输入等,具体可根据实际需要决定,本申请实施例对此不作限定。
[0088] 可以理解的是,在人机交互界面,用户可以通过拖拽视觉任务节点的节点标识,并根据每个视觉任务节点之间的依赖关系,将各个视觉任务节点标识用带箭头的线连接起来,形成第一输入。
[0089] 在实际的执行中,用户可以通过人机交互界面进行第一输入,触发配置单元111创造、编辑和调整DAG,以构建定制化的图像处理和分析流程。
[0090] 此外,用户可以在人机交互界面中启动对待处理图像处理流程的运行,一旦开始运行,从机120中的处理引擎121将根据配置的有向无环图,控制各个视觉任务节点依次执行视觉任务节点对应的视觉任务。
[0091] 人机交互界面会根据从机120发送的反馈信息,实时更新显示待处理图像的处理进程和处理结果,用户可以在人机交互界面上观察,在运行过程中监视每个节点的处理结果,进行调试和优化,并根据需要通过人机交互界面进行调整和进一步分析。
[0092] 在该实施例中,人机交互界面提供了直观的可视化界面,用户可以根据具体的应用需求,自定义和调整DAG图中的节点和连接,以构建完全适应其任务的处理流程,体现了机器视觉系统100的高度可配置性。这种高度灵活的配置性质使得机器视觉系统100能够满足不同行业和应用领域的需求,从而提供了广泛的适用性。
[0093] 在一些实施例中,人机交互界面还用于接收第二输入,响应于第二输入,触发任务调度器112发送参数调整信息至从机120,从机120基于参数调整信息更新有向无环图中视觉任务节点的参数。
[0094] 在实际的执行中,用户可以根据需求,或从机120发送至主机110的反馈信息,通过人机交互界面进行第二输入,任务调度器112发送参数调整信息中,包括对视觉任务节点中的图像处理算法,图像处理模型的参数,以及参数的阈值等参数调整的信息。
[0095] 配置单元111支持选择不同视觉任务节点、连接视觉任务节点之间的依赖关系,以及调整参数。
[0096] 在该实施例中,人机交互界面使用户能够轻松创建、配置和管理DAG图,有效降低了机器视觉系统100的使用门槛,使更多的用户能够充分利用机器视觉系统100的功能。
[0097] 在一些实施例中,主机110包括节点库;
[0098] 节点库包括多个图像处理算子节点和多个;
[0099] 多个图像处理算子节点和多个逻辑计算节点的接口一致,图像处理算子节点和逻辑计算节点用于构建有向无环图。
[0100] 可以理解的是,节点库中包括多个功能性节点,每个功能性节点的参数可设置,这些功能性节点按照功能属性可以划分为图像处理算子节点和逻辑计算节点,图像处理算子节点挂载有图像处理相关的算法,用于图像处理,逻辑计算节点挂载有逻辑计算模块,主要用于逻辑计算。
[0101] 在实际的执行中,配置单元111根据视觉任务,在节点库中调取相应的节点作为视觉任务节点,进而构建有向无环图。
[0102] 该机器视觉系统100不仅支持传统的机器视觉算法,还能够集成深度学习模型。节点库中包含了用于深度学习任务的功能性节点,用户可以在DAG图中构建和执行复杂的深度学习模型,从而实现更高级的图像分析和识别。
[0103] 在该实施例中,通过构建节点库,将深度学习模型集成到一个视觉系统中是本申请的一项重大创新,深度学习在图像分析和识别方面取得了显著的进展,通过在节点库中加入深度学习的图像处理算子节点这一灵活的方法,使用户能够轻松应用这些先进的技术。
[0104] 在一些实施例中,主机110还可以包括数据流接口。
[0105] 数据流接口是USB接口、IEEE1394接口、CoaXPress接口或GIGE接口,可以与相机、传感器等外部设备连接,传输数据。
[0106] 在该实施例中,主机110的数据流接口用于:读取有向无环图对应的待处理图像并转发待处理图像的处理结果。
[0107] 在实际的执行中,在外部的图像采集设备采集到待处理图像后,机器视觉系统100可以通过数据流接口在图像采集设备中读取待处理图像,有向无环图是根据对待处理图像的视觉任务构建的;在从机120向主机110发送待处理图像的处理结果后,机器视觉系统100可以通过数据流接口,将处理结果转发至外部系统或设备。
[0108] 在该实施例中,通过数据流接口,机器视觉系统100可以从不同传感器、设备或数据源中获取待处理图像;在对待处理图像处理完成后,可以将处理结果可以传送到控制系统、显示设备等。
[0109] 下面介绍一个具体的实施例。
[0110] 如图2所示,机器视觉系统100包括:作为主机110的机器1,作为从机120的机器2和机器3。
[0111] 机器1中包括配置界面和运行界面,运行界面包括任务调度器112、通信模块和显示模块。
[0112] 机器2中包括一个处理引擎121,机器3中包括2个处理引擎121。
[0113] 在系统运行的过程中,用户通过配置界面,拖拽视觉任务节点的节点标识,并根据每个视觉任务节点之间的依赖关系,将各个视觉任务节点标识用带箭头的线连接起来,形成第一输入,配置界面根据第一输入生成DAG。
[0114] 如图3所示,DAG可以是以XML配置文件的格式由配置界面分配至处理引擎121(运行时引擎)的。
[0115] 在DAG中,视觉任务节点可以包括:采集节点、图像处理节点、运动控制节点和发送节点。
[0116] 在采集节点之后,两个图像处理节点并行运行,再后来两个运动控制节点并行运行,最后运行发送节点。
[0117] 运行模块将一个或多个待处理图像的图像数据分别发送至机器2和机器3,配置界面将与待处理图像对应的DAG分配至机器2和机器3的处理引擎121中,机器2和机器3的中处理引擎121执行分配到的DAG,执行对待处理图像的视觉任务,并将处理进程、处理状态和处理结果等反馈信息发送至运行界面,并在现实模块进行显示。
[0118] 此外,用户还可以根据实际需求,通过显示界面的显示模块,对机器2和机器3中的处理引擎121正在执行的DAG进行参数设置。
[0119] 如图4所示,处理引擎121中对待处理图像的处理过程如下:
[0120] 将待处理图像作为图像源,先进行尺寸归一化、图像降噪等预处理,再对待处理图像做定位,通过BLOB找线找圆,最后交点计算中心点。
[0121] 其中,BLOB指的是图像中的最大连通区域,通常代表一个完整的对象或特征。
[0122] 图像采集装置所采集的图像进入到运行界面,任务调度器112需要将DAG中每个视觉任务节点的视觉任务节点属性,与从机120的视觉任务执行属性进行匹配,在根据匹配结果,确定从机120的处理引擎121能够运行有向无环图的情况下,将第有向无环图分配至处理引擎。
[0123] 任务调度器112根据平均分配任务算法,由通信模块发送给从机120的不同的处理引擎121,实现分布式计算,计算机器中可以多个处理引擎121提高执行效率和实现高可靠性,处理引擎121中执行的是配置界面生成的DAG图,执行后把处理结果给到显示界面做显示,显示界面也可以下发深度学习模型参数进行设置。
[0124] 视觉任务可以在多个处理引擎121上并行处理,从而大大提高了图像的处理速度和吞吐量,由于机器视觉系统100部署了多个从机120,如机器2和机器3,使得机器视觉系统具备强大的容错性,即使在某些处理引擎121中的视觉任务节点发生故障的情况下,其他的处理引擎121仍能继续执行任务。机器3具备两个处理引擎121,具有容错性。
[0125] 在该实施例中,机器视觉系统100,通过将主机110和多台从机120构建分布式计算架构,主机110中配置单元111对图像处理任务分配图像处理任务构建相关的有向无环图,并通过任务调度器112将有向无环图分配至各个从机120的处理引擎121中,实现图像处理的分布式计算,能够充分利用计算资源,使得该机器视觉系统100能够实现卓越的实时性和高性能,视觉任务可以在多个处理引擎121上并行处理,从而大大提高了处理速度和吞吐量,这对于需要快速响应的应用,如工业自动化和安全监控,尤为重要。实现了多种算法和流程的定制化处理和分析。该系统在机器视觉领域具有广泛的应用前景,有助于提高图像处理的定制性、适应性和集成性能。
[0126] 在本申请的描述中,“第一特征”、“第二特征”可以包括一个或者更多个该特征。
[0127] 在本申请的描述中,“多个”的含义是两个或两个以上。
[0128] 上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
[0129] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0130] 尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。