如何在基于react.js构建的项目上实现人口统计Clarify.ai模型?

时间:2019-11-20 15:57:20

标签: javascript reactjs clarifai

我试图使用基本的Clarifai.FACE_DETECT_MODEL构建一个简单的React应用,但是现在我想将其更改为更高级的“ Demographic”,也许有人知道该怎么做? 我知道我必须更改澄清模型,但idk确切地要怎么做

 onButtonClick = () =>{
    this.setState({imageUrl: this.state.input});
    app.modelsw
      .predict(
        Clarifai.FACE_DETECT_MODEL,
        this.state.input)
      .then(response =>this.displayFaceBox(this.calculateFaceLocation(response)))
      .catch(err => console.log("OOOOOOPS fix me!!!!"));}````


3 个答案:

答案 0 :(得分:0)

我认为您可以取代 Clarifai.FACE_DETECT_MODEL"c0c0ac362b03416da06ab3fa36fb58e3"一起使用人口统计模型。

我不确定Clarifai.DEMOGRAPHICS之类的东西是否可以工作(如果需要,可以尝试),但是我相信这只是一个保存代表模型的字符串的变量。您可以在Web浏览器的调试控制台中放置一个断点,并检查Clarifai对象,并以某种方式查找与人口统计特征匹配的字段,这很可能是哈希的变量。

在此指定呼叫的输出:https://www.clarifai.com/models/demographics-image-recognition-model-c0c0ac362b03416da06ab3fa36fb58e3#documentation

答案 1 :(得分:0)

现在应该是:

onButtonClick = () =>{
  this.setState({imageUrl: this.state.input});
  app.modelsw
    .predict('c0c0ac362b03416da06ab3fa36fb58e3', this.state.input)
    .then(response =>this.displayFaceBox(this.calculateFaceLocation(response)))
    .catch(err => console.log('Oops fix me!'))
}

答案 2 :(得分:0)

人口统计现在仅支持来自后端的请求。这是 nodejs 请求。

const {ClarifaiStub} = require("clarifai-nodejs-grpc");
const grpc = require("@grpc/grpc-js");

const metadata = new grpc.Metadata();
metadata.set("authorization", "{My key}");
const stub = ClarifaiStub.json()

stub.PostWorkflowResults(
    {
        workflow_id: "Demographics",
        inputs: [
            {data: {image: {url: "https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/06/06/15/Chris-Pratt.jpg"}}}
        ]
    },
    metadata,
    (err, response) => {
        if(response){
            console.log(response.results[0].outputs[2].data.regions[0].data.concepts)
        } else {
            console.log(err)
        }
    }
)