Skip to content

SVS (SmartVision Studio)

简介

算法开发平台SmartVision Studio(以下简称为“SVS”)是阿加犀自主研发的视觉算法开发平台,由图像处理算子和交互式视觉功能模块组成。该平台功能丰富、简单易用,助力开发者通过拖拽连线方式,快速搭建定位、测量、缺陷检测、信息识别等各类视觉方案。

界面布局

SmartVision Studio 采用四区域布局:

  • 工具栏:可拖拽的节点模块库,分为采集、图像处理、深度学习、通信四大类

  • 操作栏:工作流级别的快捷操作按钮

  • 画布区:流程设计与节点编辑主工作区,支持多流程标签页切换

  • 展示区:用于查看图像输出和模块执行结果

image

操作栏

包括两部分,如下图所示:

image-1

  • 工作流名称区域:显示当前工作流名称,支持以下操作。

    功能操作详细描述
    重命名工作流双击工作流名称
    1. 弹出"重命名工作流"对话框
    2. 输入新名称
    3. 点击"确定"
    4. 系统检查是否与相机端工作流重名
    5. 若重名,显示警告并阻止保存
    查看流程列表鼠标悬停在工作流名称上
    • 弹出流程列表浮窗
    • 显示所有流程名称(当前仅支持1个主流程)
    • 点击流程名称可重新打开该流程标签页
  • 常用功能按钮区域:提供部分常用功能的快捷入口。

    各功能按钮直接单击即可操作,相关简介如下表:

    图标名称操作描述
    新建工作流1. 弹出“新建工作流”对话框
    2. 输入工作流名称
    3. 点击“确定”完成创建
    4. 自动创建主流程并进入编辑
    从本地加载工作流1. 触发文件选择对话框
    2. 选择 .json 格式的工作流文件
    3. 系统自动解析并加载工作流到画布
    导出工作流到本地将当前工作流导出为本地 .json 文件
    保存到相机将当前工作流保存到相机端
    生成应用画布非空且只有一个完整流程链,支持将工作流导出为一个独立应用 此操作会自动保存工作流至相机
    全局相机设置详见“全局相机”节内容
    执行当前工作流画布非空且只有一个完整流程链。
    1. 按钮变为旋转动画
    2. 全屏显示半透明遮罩和“工作流执行中...”提示
    3. 执行完成后自动关闭遮罩
    4. 结果显示在右侧结果面板
    此操作会自动保存工作流至相机
    撤销存在可撤销的历史操作时,撤销上一步画布操作
    恢复存在已撤销的操作时,恢复已撤销的操作
    清空画布清空当前流程的所有节点和连线
    从相机删除1. 弹出“从相机删除”对话框
    2. 列表显示相机端所有工作流
    3. 单击选中要删除的工作流
    4. 点击“删除”按钮
    5. 确认后删除

工具栏

工具模块按功能分为四大类,具体参考"模块介绍"节:

  • 采集:图像源节点(相机、静态图)

  • 图像处理:裁剪、轮廓识别、图像滤波、形态学处理、二值化

  • 深度学习:DL定位、DL分割、DL模型集

  • 通信:IO输出

画布区

画布区是用于搭建、编辑和管理工作流的核心区域。用户可通过拖拽模块节点、创建连线和配置节点参数的方式,完成视觉算法处理流程的搭建。

  • 流程标签页操作
功能操作详细描述
新建流程单击标签页最右侧的 `+` 按钮
  1. 弹出"新建流程"对话框
  2. 输入流程名称
  3. 点击"确定"创建
  4. 自动打开新流程标签页

当前版本仅支持使用默认的主流程,暂不允许创建额外的流程,多流程功能将在后续版本中开放。

切换流程单击流程标签页
  • 画布切换到对应流程
  • 右侧图像源和结果面板自动刷新
  • 每个流程独立记忆图像源选择状态
关闭流程鼠标悬停在标签页,点击右侧 `×` 按钮仅关闭标签页,不删除流程,可通过悬停工作流名称重新打开
重命名流程双击流程标签页名称
  1. 弹出"重命名流程"对话框
  2. 输入新名称
  3. 点击"确定"完成重命名
  • 模块节点操作
功能操作详细描述
添加模块节点选中工具模块拖动至画布区
  1. 在节点模块上按下鼠标左键
  2. 保持按下状态移动鼠标到画布
  3. 在目标位置释放鼠标
  4. 节点自动生成在释放位置

每个流程只能有一个采集节点(相机或静态图),重复添加会提示错误。

单击模块节点左键单击节点
  • 节点边框高亮显示
  • 右侧展示区自动刷新该节点的输出结果
  • 自动请求节点的输出结果数据
此操作会自动保存工作流至相机
双击模块节点左键双击节点弹出节点配置对话框,点击"执行"或"确定"按钮。此操作会自动保存工作流至相机
拖动模块节点按住节点拖动
  • 实时移动节点位置
  • 连接的边自动跟随调整
右键选中右键单击节点节点被选中并虚线框高亮显示
右键多选节点依次右键点击多个节点所有右键点击的节点都被选中
删除节点右键选中节点后,会自动弹出删除操作面板删除所有选中的节点
取消选中点击画布空白区域取消所有节点选中状态,删除面板自动隐藏
创建连线
  1. 鼠标悬停在节点,显示连接点
  2. 按下连接点并拖动
  3. 移动到目标节点的连接点
  4. 释放鼠标完成连接
删除连线右键点击连线,选择"删除"删除连线

展示区

包括两部分的内容:

  • 图像:显示当前选中模块的输出图像。在执行完整个工作流程后,该流程上涉及到的所有模块的输出图像,可在下拉框中进行选择展示。选项按照此格式:模块节点名 #短ID.输出图像 (1/N),例如DL模型集 #fbec .输出图像 (1/2),则表示,DL模型集模块ID为#fbec,其模块输出图像数总数为2,当前显示的其第1张图像。

  • 模块结果:显示当前选中模块的输出结果数据,不同的模块,将显示不同结果数据,具体参考"模块介绍"节。

    • 支持按类型筛选结果

    • 支持全部展开/折叠

    • 支持下载图片或导出数据

图像输出

当选择“图像”选项卡时,系统会显示当前模块及其上游模块的图像信息(若上游模块存在图像输出)。 用户可通过复选框选择需要查看的图像,系统将同步显示所选图像内容。

如下图所示:

当图像源为“静态图”时,展示区将提供静态图列表管理功能,详见"图像源"模块节介绍

模块结果

当模块运行完成后,系统将在右侧的模块输出面板中显示该模块的运行结果。 模块结果区域主要由两部分组成:

  • 顶部区域:显示模块的运行信息(如状态、耗时等)。

  • 主体内容:展示该模块对应的运算输出结果。

如下图所示:

对于大多数以图像为主的模块(例如:图像源、裁剪、图像滤波、形态学处理、二值化等), 输出结果主要为图片。界面中会展示图片的以下信息:

  • 图像尺寸:显示图片的宽度与高度。

  • 图像格式:展示当前图片的编码格式(如 JPG、PNG、BMP 等)。

  • 图片操作

    • 下载图片:可将输出图片保存至本地。

    • 放大预览:支持全屏或局部放大查看,便于观察细节。

如下图所示:

其他模块除图像结果外,还会输出其他附加信息,具体参考模块介绍节内容。


方案组成介绍

流程管理

工作流用于组织并执行视觉处理与推理流程。用户可根据检测需求,通过拖拽模块、创建连线与设置参数的方式,完成算法方案的搭建。

工作区域

当创建新的工作流后,可从左侧工具栏中选择所需的工具模块,拖拽至主流程工作区域中,即可形成一个完整的工作流。

主流程区域支持多种编辑与视图操作,包括:连线类型切换、放大/缩小、自适应视图、锁定模块等功能,方便用户灵活地调整流程结构与布局。

如下图:

  • 连线类型:可修改模块之间的连线样式,支持三种类型:智能折线、直线、曲线,便于根据流程复杂度选择合适的展示方式。

  • 放大:放大当前工作区域,便于查看细节或进行精确的模块操作。

  • 缩小:缩小工作区域,适合查看整体流程结构。

  • 自适应视图:自动调整视图比例与模块大小,快速定位当前工作流的最佳显示范围。

  • 锁定模块:锁定后,模块将无法被拖动或调整位置,用于防止误操作。

流程错误提示说明

在构建工作流过程中,如果某些模块配置不完整、模型缺失或依赖的上游节点异常,

系统会在主流程区域中高亮显示错误状态,以帮助用户快速定位问题。

如下图所示:

当模块出现错误时,系统将以 红色边框与红色图标 标记该节点,并在鼠标悬停时显示详细的错误提示信息。

模块通用配置

基本参数

  • 图像源:默认订阅前序模块输出的图像。

运行参数

  • 运行参数:可对模块进行视觉检测时的算法参数进行设置,从而达到理想检测效果。不同模块,运行参数各不相同,具体请以模块实际内容为准。

方案全局功能

导出应用

导出应用功能用于将当前工作流打包生成独立的可部署应用。

方便在其他设备中直接运行,无需重新编辑工作流。如下图所示

在导出应用界面中,需填写应用的基本信息及导出目标:

应用 ID:必填,应用的唯一标识符,用于区分不同应用。建议采用英文或数字组合。

应用版本号:必填,应用版本号,格式建议为 主版本.次版本.修订号(例如:1.0.0)。用于版本管理与更新记录。

应用名称:必填,应用的显示名称,将在导出后用于识别应用。

应用描述:对应用功能、用途或算法流程的简要说明(最多 200 字),方便后期维护与识别。

在界面底部可选择导出目标,用于指定应用导出位置:

  • 本地: 将应用导出至本地计算机,生成独立的应用包文件(通常为 .zip 格式)。 适合离线部署、备份或传输至其他设备。

  • SVE 相机端: 直接将应用推送至本地的 SVE 相机设备。 系统将自动进行传输与部署,完成后可在相机端直接运行该应用。

全局相机

全局相机管理用于统一配置、管理和调试所有已连接的相机设备。通过在该界面配置相机参数,可确保图像采集效果稳定一致,从而提高后续算法处理结果的准确性与可靠性。

用户可在此模块中查看、选择并调整各个相机的基本参数与色彩参数,以满足不同的算法任务需求。

如下图所示:

相机列表

界面左侧显示所有已识别的相机设备列表,例如:C0 相机、C1 相机、C2 相机

提示:相机编号与线缆/设备接口应在现场安装阶段进行对应标记,以避免后续调试混淆。

点击任意相机名称,即可进入对应的参数设置界面。

基本参数设置

右侧区域为当前相机的详细参数配置区,分为基本参数设置色彩参数设置两部分。

分辨率 (pixel):设置相机输出图像的分辨率,支持多种标准分辨率选项(如 3840×2160、1920×1080 等)。

触发帧率 (fps):设置相机的帧率,即每秒钟采集的帧数。较高帧率可获得更流畅的画面,但可能增加系统负载。如60fps、120fps

曝光模式:支持“自动”与“手动”两种模式。

  • 自动模式:系统根据光照条件自动调整曝光。

  • 手动模式:用户可自行设置曝光时长、曝光度、曝光补偿,实现精确控制。

色彩参数设置

自动白平衡

设置相机的白平衡方式,支持:

  • 自动:系统自动调整色温平衡;

  • 手动:用户可自定义白平衡参数。

图像调节参数
参数名称范围说明
饱和度0 – 100控制图像颜色的鲜艳程度。
对比度0 – 100控制图像明暗层次的对比强度。
锐度0 – 100控制图像边缘的清晰度
自定义白平衡

在关闭自动白平衡的情况下,可手动设置白平衡参数,适用于光源条件固定的场景。支持设置RGB增益和色温调整。

模块介绍

采集

采集分类下的模块可设置图像输入源。

图像源

图像源模块提供图像来源,可选本地图像、相机。

  • 参数配置

    • 图像源选择相机时,可从已配置的相机中获取图像。此时需设置以下参数:

      • 选择相机:选择关联的相机。点击"执行"按钮,可抓取对应相机的一帧图片显示在图像区域。相机的配置,可参见"全局相机"节。
    • 当图像源选择本地图像时,可从本地图像中加载图像。此时需设置以下参数:

      • 采集间隔(ms):相邻的两张图片加载的时间间隔。图片可通过右侧的图像展示区域,进行本地上传。
  • 静态图配置

    • 点击 “本地上传” 按钮,即可从本地选择文件上传到平台。

    • 系统支持主流图像格式(如 JPG、PNG、BMP 等),上传成功后,图片将显示在静态图列表中。

    提示: 上传前请确认图片尺寸及格式符合当前模块的输入要求。

上传完成后,所有静态图会显示在列表中。用户可进行如下操作:

  • 选择图片:勾选需要用于执行工作流的图片。

  • 删除图片:移除当前选中的静态图。

  • 全部删除:清空当前所有静态图文件。

删除操作不可恢复,请谨慎操作。

在工作流执行时,当节点图像源选择为“静态图”模式,

系统将使用静态图列表中被勾选的图片进行任务处理。

平台最多支持同时选中 5 张静态图,工作流将按顺序依次使用这些图像作为输入源执行。

图像处理

图像处理是对目标图像进行图像预处理的过程。当图像干扰较多、特征不明显时,可考虑使用图像处理模块进行预处理。

裁剪

裁剪是从图像中移除所有不需要的区域,或者突出图像的一个特殊特征的过程。

  • 参数配置

    • 输入源:一般为图像源模块的输出图像,也可是其他图像处理类别模块的输出图像。

    • 形状:包括两种:矩形全幅。

      默认是将前序模块的图像相关参数进行展示。可直接在图像展示区域,进行框选,框选后通过输入框的上下按键进行微调。点击"全幅",即可恢复到初始状态。当框选区域符合要求时,可直接点击"执行"进行查看。

轮廓识别

轮廓识别是用于提取图像中物体的边界。通过配置的面积长度,筛选出符合要求的目标对象。可用于物体识别、形状分析、目标跟踪等应用。

  • 基本概念

    • 轮廓: 图像中物体的边界,由一系列点组成。

    • 轮廓特征: 轮廓的面积、周长、边界矩形、最小外接矩形、最小外接圆等。

  • 参数设置

    • 面积: 取值范围0~74,649,600 px²

    • 长度: 取值范围0~36,000 px

  • 模块结果

    该模块的输出结果,包括符合要求的轮廓数量,及每一个轮廓对应的面积长度中心点坐标信息。

    如下图所示:

图像滤波

滤波是一类图像处理算法,该模块支持高斯滤波均值滤波中值滤波三种滤波类型。

  • 高斯滤波

    高斯滤波是一种基于高斯函数的平滑处理方法。与均值滤波不同,高斯滤波在计算像素平均值时,会给中心像素赋予更高的权重,而给边缘像素赋予较低的权重。高斯滤波在去除噪声的同时,能够更好地保留图像的边缘信息。

    • 参数:滤波核宽度核高度,取值范围1~51。值越大,图像失焦效果越明显,即图像越模糊。

    • 适用场景:高斯滤波适用于去除图像中的高斯噪声,并且在保留图像边缘信息方面表现较好。

  • 均值滤波

    均值滤波是最简单的平滑处理方法之一。均值滤波的原理是将图像中每个像素的值替换为其周围像素的平均值。均值滤波可以有效地去除噪声,但可能会导致图像变得模糊。

    • 参数:滤波核宽度核高度,取值范围1~51。值越大,图像失焦效果越明显,即图像越模糊。

    • 适用场景:均值滤波适用于去除图像中的随机噪声,但可能会导致图像边缘变得模糊。

  • 中值滤波

    中值滤波是一种非线性平滑处理方法。它的原理是将图像中每个像素的值替换为其周围像素的中值。中值滤波在去除椒盐噪声(即图像中随机出现的黑白点)时非常有效。

    • 参数:滤波核,取值范围1~51。值越大,图像失焦效果越明显,即图像越模糊。

    • 适用场景:中值滤波适用于去除图像中的椒盐噪声,并且在保留图像边缘信息方面表现较好。

形态学处理

通过腐蚀、膨胀、开运算和闭运算等操作,可以实现对图像的噪声去除、对象分离、边缘检测等效果。该模块有助于更好地处理和分析图像数据。

  • 形态学类型

    • 膨胀

      膨胀操作与腐蚀相反,它是一种扩大图像中前景对象的过程。

      膨胀操作通过将结构元素与图像进行卷积,只要结构元素与图像中的前景像素有重叠,中心像素就会被保留。

    • 腐蚀

      腐蚀操作是一种缩小图像中前景对象的过程。

      腐蚀操作通过将结构元素与图像进行卷积,只有当结构元素完全覆盖图像中的前景像素时,中心像素才会被保留,否则会被腐蚀掉。

    • 开运算

      开运算是先腐蚀后膨胀的组合操作。

      开运算主要用于去除图像中的小噪声或分离连接的对象。

    • 闭运算

      闭运算是先膨胀后腐蚀的组合操作。

      闭运算主要用于填补前景对象中的小孔或连接断裂的对象。

  • 形状

    指滤波核的形状,包括矩形椭圆形十字形

  • 迭代次数

    指一次形态学处理过程中对原图像进行的操作次数,迭代次数越多,效果越明显,取值范围:1~10。

  • 核宽度和核高度

    取值范围1~51,加大该值会使形态学处理的效果更明显。

二值化

图像二值化即将原图像转换为仅包含0和255两个灰度值的图像。图像二值化的目的是简化图像,突出目标轮廓,方便后续图像处理。二值化图像可以帮助算法更准确地识别图像中的边缘和特征。

  • 类型

    • BINARY

      即二值化,大于阈值的变为最大值,小于阈值的变为0。

    • BINARY_INV

      即反二值化,大于阈值的变为0,小于阈值的变为最大值。

    • TRUNC

      即截断,大于阈值的变为阈值,小于阈值的保持不变。

    • TOZERO - 取零

      即取零,大于阈值的保持不变,小于阈值的变为0。

    • TOZERO_INV

      即反取零,大于阈值的变为0,小于阈值的保持不变。

  • 阈值

    阈值,用于分割图像的像素值。

  • 设定值

    如果像素值大于阈值,则设置为这个值(通常为255)。

深度学习

深度学习是指通过类似脑神经网络的深度学习模型,让计算机学习和理解复杂的信息,完成高难度的识别任务,可用于图像定位、分割等场景。

该类别的模块,都只需要配置模型文件,模型文件来自于AIC(AI Creator)基于大量的样本数据训练得到的。

  • 模型配置:

    • 本地端

      将AIC训练得到的模型下载到本地后,进行上传。

    • 相机端

      因AIC支持将训练好的模型可直接部署至集成的相机上,该类别模块通过扫描相机特定目录/var/opt/aic_models下的模型文件,支持完成模型类型的解析,快速选择,免去下载上传的操作步骤,方便快捷。如下图所示:

  • 输出结果:

    • 模型结构信息

      • 输入形状(Input Shape)

      • 输出形状(Output Shape)

    • 图像结果

      • 展示模型推理后的中间结果图(例如特征图、分割图等)

      • 每个中间结果均可单独查看与导出

    如下图所示:

##3# DL定位

精确定位待检区域,用于确定物体位置,标记边界框。下图即为经过定位模型得到的结果。

原图

定位结果图

如下例所示步骤,使用定位模型,快速进行目标区域的框选标记。其他深度学习模块,操作类似。

  • 搭建方案流程,图像源 -> DL定位。

  • 配置DL定位,选择对应模型后,会同步展示出该模型的详细信息,包括模型名称目标平台量化精度版本等信息。点击"执行"

  • 完成目标的标记,如下图所示红色框区域。

DL分割

像素级处理,常用于检测目标表面细小缺陷,比如脏污、划痕等。下图即为经过分割模型得到的结果。

原图

分割结果图

DL模型集

在AIC直接部署模型至集成的相机中,是支持可以将多个算法模块对应的模型统一打包进行部署。针对此,支持多个模型的串行处理的模块,即为DL模型集

目前该模块仅支持选择"定位""分割"类型组合的模型集,后续会进行其他类型模型的支持,如分类目标检测OCR等。

如下图所示,

通信

通信分类下的模块主要实现相机与外部设备通讯的功能。

IO输出

该模块主要用于对输出管脚的电平控制。支持4个IO口的电平控制,其对应关系如下表所示:

I/0信号源说明对应线缆颜色参考
IO0Line4光耦隔离输出4+绿
IO1Line5光耦隔离输出5+
IO2Line3光耦隔离输出3+
IO3Line6光耦隔离输出6+
  • 参数配置

    • 输出条件:可订阅每个IO输出信号的输出条件,当前仅支持订阅前序模块的输出结果。当前序模块执行成功后,则会被触发该输出条件。

    • 持续时间(ms):当持续时间大于0时,表明在电平拉高后,持续对应时间后,自动将电平拉低。当为0时,则不做电平拉低动作。

  • 输出结果

    结果面板中展示每个通道的输出情况,0表示当前为低电平,如下图所示:

常见问题

什么操作会自动保存?什么操作需要手动保存?

  • 自动保存:左键单击节点执行、双击节点配置后点击执行/确定、执行当前工作流、导出应用

  • 需要手动保存:拖拽节点、删除节点、创建/删除连线、移动节点、新建/删除/重命名流程、清空画布、撤销/恢复等所有画布编辑操作

重要:画布编辑后请及时点击"保存到相机"按钮!

为什么点击新建流程提示功能暂未开放?

当前版本仅支持使用默认的主流程,暂不允许创建额外的流程。多流程功能将在后续版本中开放。

为什么不能拖拽第二个图像源节点?

每个流程只能有一个图像源节点(相机或静态图),这是系统限制。如果需要切换图像源类型,请双击已有的图像源节点,在配置框中切换"相机"或"静态图"。

如何选择相机还是静态图?

  1. 拖拽图像源节点到画布(默认为相机节点)

  2. 双击图像源节点打开配置框

  3. 在顶部下拉框选择"相机"或"静态图"

  4. 下方会显示对应的配置表单

如何删除节点?

  1. 右键单击节点(节点会显示虚线框高亮)

  2. 可以继续右键点击其他节点进行多选

  3. 自动弹出删除操作面板

  4. 点击删除按钮删除所有选中的节点

  5. 点击画布空白区域可取消选中

节点拖拽后是否已有默认参数?

是的,节点拖拽到画布时已自动写入默认参数(如相机默认C0等),无需等到配置后才生效。

输出图像下拉框中的选项是什么格式?

  • 相机节点:`节点名 #短ID .输出图像(C0相机) (1/1)`

  • 静态图节点:`节点名 #短ID .输出图像(静态图) (1/1)`

  • 其他处理节点:`节点名 #短ID .输出图像 (1/1)`

短ID是节点完整ID的后4位,用于区分相同类型的节点。

如何上传和管理静态图?

  1. : 双击图像源节点,选择"静态图"类型

  2. : 右侧会显示"静态图列表"面板

  3. : 点击"本地上传"按钮选择图片(支持多选)

  4. : 单击缩略图切换显示

  5. : 鼠标悬停在图片上,点击垃圾桶图标可删除单张

  6. : 点击"全部删除"按钮可删除所有图片

导出应用时如何避免覆盖已有应用?

  • 导出到SVE相机端时,系统会自动检查是否存在相同应用ID和版本

  • 如果存在,会弹出确认框:"应用已存在,是否覆盖?"

  • 选择"取消"可中断导出,修改版本号后重新导出

  • 导出到本地不会检查,直接下载zip文件

如需更多操作说明,请参考其他章节或联系开发团队。