Appearance
PEKAT(表面检测)
效果预览
提示
使用此示例,您需要先准备一个PEKAT VISION的License授权
打开完整的PEKAT工程,并设置好相应的通信参数,即可通过AI-Vision进行调用。 
(一)准备Pekat
提前训练一个PEKAT表面检测的工程(详细过程请参考本文最后一节,PekatVision使用介绍)
[0] 打开PEKAT工程
[1] 通信设置
[a] 勾选数据处理:AI-Vision需要获取PEKAT处理之后的数据
[b] 选择提供者设置为API:AI-Vision将通过调用API的方式与PEKAT通信
[c] Host设置为运行AI-Vision工程的PC机的网络地址,
如果PEKAT和AI-Vision在同一台PC上,可以设置为127.0.0.1,如果在不同的PC上,需要确保网络通讯正常
(二)AI-Vision工程
[0] 加载图片:加载需要检测的图片至指定IM上
[1] Pekat表面检测
输入参数:
输入图像:选择需要进行操作的图像,图像序号与IM序号一致。
计算参数
主机:设置PekatVision所在的PC机的IP地址
端口号:设置Pekat对应工程的端口号
显示标签:输出图像上显示Pekat检测的结果标签
输出窗口:推送窗口到寄存器,用于AI-Vision工程上的后续处理,
举例:进一步测量该窗口中的几何尺寸
[2] 脚本处理(可选)
脚本绑定PekatVision输出的Json作为变量。PekatVision表面检测算子输出变量包括PekatVision输出的Json字符串
通过脚本获取全局变量并显示检测框以及检测结果
确认需要检测的模型modelId,获取对应检测数据x, y, height, width,根据获取的结果将检测框显示到对应IM窗口
lua
data = ConvertJsonToTable(json)
-- 获取检测框数量
number = #data.detectedRectangles
local x = {}
local y = {}
local width = {}
local height = {}
-- 根据模型id获取检测结果,这里的modelId要和pekat中的保持一致
for i = 1, number, 1 do
if(string.format("%d",data.detectedRectangles[i].source.modelId) == "1708506619") then
table.insert(x, data.detectedRectangles[i].x)
table.insert(y, data.detectedRectangles[i].y)
table.insert(width, data.detectedRectangles[i].width)
table.insert(height, data.detectedRectangles[i].height)
end
end
--输出检测框及结果
for i = 1, #x, 1 do
DrawWindow2D(0,"red",x[i],y[i],x[i]+width[i],y[i]+height[i])
DrawText2D(0, "red", x[i], y[i] - 25, 20, "脏污")
end
脚本修改输出窗口的颜色后,如下图:
PekatVision使用介绍
标注训练
[0] 创建并打开工程
[1] 导入图片
选择导入图片或文件夹来导入数据集
[2] 选择模组
选择检测对应模组
表面检测:适用于检测已知表面缺陷
检测器:适用于已知缺陷的检测与分类
异常检测器:适用于表面背景有重复的缺陷检测(只需要OK合格图训练)
[3] 缺陷标注及训练
进入训练界面,对缺陷进行标注并分类,点击开始训练训练模型。
结果查看
检查
在检查界面查看对应模型检测结果
检视
在检视界面查看每张图检测完毕后的检测结果json字符串
json字符串包含内容
缺陷位置:x, y, height, width
缺陷检测模型id:modelId
缺陷标签:label