跳到主要内容

AI 驱动文档

您想了解什么?

裁剪的 ROI 端点(仅分类)

OV10i 注意

OV10i 仅支持 分类 模型。此页面提到的分割功能在 OV20iOV80i 相机上可用。

概述

cropped_roi 端点提供对设备上运行的 Haystack 中生成的 裁剪的感兴趣区域(ROIs) 的访问,这些 ROIs 是从 分类结果 中生成的。

仅分类

Haystack 目前不支持分割结果。此端点仅适用于分类类型的结果。如果您需要以编程方式处理分割器输出,请使用标准的检测结果 API。

基本 URL 格式为:

http://{device-ip}/edge/haystack/cropped_roi/{classification_result_id}

工作原理

当相机完成 分类捕获 时,Node-RED 流会通过配对设备 IP 和分类结果 ID 动态构建裁剪 ROI 图像的 URL:

const imageUrl = `http://${baseUrl}/edge/haystack/cropped_roi/${result.id}`;

每个 URL 提供一个对应于单个分类 ROI 的裁剪图像,通常代表一次单独的检测。


Node-RED 流概述

ROI_Crop 流执行以下操作:

  1. 提取设备 IP

    • 解析 image_url 字段以查找 IP(例如 192.168.0.101
    • 全局存储以供重用
  2. 查询最新捕获数据

    • 向设备的 PostgREST API 发送 GET 请求:

      http://{device-ip}/postgrest/captures?select=...
      &order=id.desc&limit=1
    • 检索最新的捕获和所有 classification_result 条目

  3. 仅筛选分类结果

    • 跳过分割或对齐结果

    • 遍历每个分类结果:

      classificationResults.forEach(result => {
      const roiName = result.roi_result?.inspection_region?.name || `ROI_${result.id}`;
      const imageUrl = `http://${baseUrl}/edge/haystack/cropped_roi/${result.id}`;
      imageMap[roiName] = imageUrl;
      });
  4. 输出裁剪的 ROI URLs

    • 将所有 ROI 图像链接保存到全局 imageMap
    • 返回最新裁剪 ROI 图像 URL 的列表

image1.png

image2.png


示例用法

获取裁剪的 ROI 图像

curl http://192.168.0.101/edge/haystack/cropped_roi/42 -o roi_42.jpg

在 Web 界面中使用

<img src="http://192.168.0.101/edge/haystack/cropped_roi/42" alt="Cropped ROI 42">

输出示例

{
"ROI_1": "http://192.168.0.101/edge/haystack/cropped_roi/1",
"ROI_2": "http://192.168.0.101/edge/haystack/cropped_roi/2"
}

参数

参数类型描述
device-ipstring相机的 IP 地址(例如 192.168.0.101

集成流程

  1. 通过 /postgrest/captures 获取最新的捕获元数据。
  2. 识别可用的 classification_result ID。
  3. 为每个结果构建裁剪的 ROI URL。
  4. 显示或下载这些图像以进行分析、训练数据或质量检查。

下载 Node-RED 流程

  • ROI 裁剪流程 (JSON) - 提取裁剪 ROI 图像的完整 Node-RED 流程
    • 直接将此流程导入 Node-RED 以访问裁剪的分类 ROI
    • 适用于 OV10i 和 OV80i 系统