0

我正在尝试使用人口统计模型https://www.clarifai.com/blog/socially-responsible-pixels-a-look-inside-clarifais-new-demographics-recognition-model

但我很困惑,因为 Demographics 是模型还是工作流程?

我尝试在仪表板的模型模式中搜索人口统计数据,但它不存在。

App Workflows 中有一个 Demographics 工作流,但是当我访问它时,我会收到错误通知。这可能就是为什么当我运行服务器以使用 Demographics 检测图像时,它会导致“模型不存在”错误。

A model with ID '6c276d1ee3cac072fad9d6d850b4a429' not found. Check the url of your request.

这是一个屏幕截图Clarifai 网页仪表板错误,错误包含:找不到 ID 为“6c276d1ee3cac072fad9d6d850b4a429”的模型。 检查您的请求的网址。

这是代码,我正在使用nodejs。

const { ClarifaiStub, grpc } = require("clarifai-nodejs-grpc");

const stub = ClarifaiStub.grpc();

const metadata = new grpc.Metadata();
metadata.set("authorization", "Key {MY_SECRET_KEY}");

const inputs = [
  {
    data: {
      image: {
        url:
          "https://www.gannett-cdn.com/-mm-/b2b05a4ab25f4fca0316459e1c7404c537a89702/c=0-0-1365-768/local/-/media/2020/08/19/USATODAY/usatsports/GettyImages-1147443912.jpg?width=660&height=372&fit=crop&format=pjpg&auto=webp",
      },
    },
  },
];

stub.PostModelOutputs(
  {
    workflow_id: "Demographics", 
    inputs,
  },
  metadata,
  (err: any, response: any) => {
    if (err) {
      console.log("Error: " + err);
      return;
    }
    console.log(response); // Model doesn't exist
  }
);

响应输出

{
  outputs: [],
  status: {
    stack_trace: [],
    code: 21200,
    description: 'Model does not exist',
    details: "Model '' does not exist.",
    percent_completed: 0,
    time_remaining: 0,
    req_id: 'a9575417a32a4e2597443f4b400be39b',
    internal_details: ''
  }
}
4

1 回答 1

0

简而言之,是的,这是一个工作流程。在 App Details 页面下的 App Workflows 中找到的“Demographics”是一个工作流。对于工作流,应该使用thestub.PostWorkflowResults和 the 。service_pb2.PostWorkflowResultsRequest以下是 Clarifai 网站的示例:https ://docs.clarifai.com/api-guide/workflows/workflow-predict

更长的版本:人口统计模型(多元文化外观、性别外观和年龄外观)仅用于面部图像。人脸检测器 (model_id: '6c276d1ee3cac072fad9d6d850b4a429') 将在查询图像中的人脸周围绘制边界框,裁剪器将提取边界框中的部分并将它们作为输入传递给三个人口统计模型。

使用我的社区计划帐户(在“计费”下),“人口统计”工作流程在我自动生成的第一个应用程序中可见。下面是 Python API 调用,使用应用程序 API_KEY 作为授权元数据。我能够检索有意义的结果使用带有人脸的查询图像。

channel = ClarifaiChannel.get_grpc_channel()
stub = service_pb2_grpc.V2Stub(channel)
metadata = (('authorization', f'Key {API_KEY}'),)

# Call Workflow Predict API
post_workflow_results_response = stub.PostWorkflowResults(
    service_pb2.PostWorkflowResultsRequest(
        workflow_id="Demographics",
        inputs=[
            resources_pb2.Input(
                data=resources_pb2.Data(
                    image=resources_pb2.Image(
                        url=f"{QUERY_IMAGE_URL}"
                    )
                )
            )
        ]
    ),
    metadata=metadata
)

# Display Results
results = post_workflow_results_response.results[0]

for output in results.outputs:
    model = output.model
    
    # Want appearance models results
    if 'detector' not in model.name and 'Cropper' not in model.name:
        print("Predicted concepts for the model `%s`" % model.name)
        for concept in output.data.regions[0].data.concepts:
            print("\t%s %.2f" % (concept.name, concept.value))
于 2021-02-15T09:47:58.243 回答