【问题标题】:Microsof Vision image recognition PHP intergrationMicrosoft Vision 图像识别 PHP 集成
【发布时间】:2017-10-06 00:38:53
【问题描述】:

我在此处遵循有关如何从 Microsoft Vision API 获取图像标签的说明: https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts/php

我设法获得了一个有效的 CURL 正文响应,如下所示:

{
"tags": [
    {
      "name": "person",
      "confidence": 0.98979085683822632
    },
    {
      "name": "man",
      "confidence": 0.94493889808654785
    },
    {
      "name": "outdoor",
      "confidence": 0.938492476940155
    },
    {
      "name": "window",
      "confidence": 0.89513939619064331
    }
  ]
}

我尝试foreach 标签,但我遇到了麻烦。

 $response = curl_exec($curl);

 $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
 $body = substr($response, $header_size);
 $header = substr($response, 0, $header_size);
 $rows = explode("\n", $header);

 $err = curl_error($curl);

 curl_close($curl);
 $resp = json_decode( $body, true );

 if ($err) {echo $err; } else {
     // foreach thought tags, and if tag value is above 0.9, than show/echo it, do something with it
 }

我无法回显任何标签。我只想显示值大于 0.9 的标签名称。比如:如果标签置信度 > 0.9,回显它,用它做点什么。

【问题讨论】:

    标签: php azure curl microsoft-cognitive


    【解决方案1】:

    您可以使用这个 sn-p(用您自己的替换端点和订阅密钥):

    <?php
    
    $data = array("url" => "https://raw.githubusercontent.com/Microsoft/Cognitive-Face-Windows/master/Data/detection1.jpg");
    $data_string = json_encode($data);
    
    $curl = curl_init('https://<YOUR_SUBSCRIPTION-LOCATION>.api.cognitive.microsoft.com/vision/v1.0/tag');
    
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt($curl, CURLOPT_POST,           1 );
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Ocp-Apim-Subscription-Key: <YOUR-SUBSCRIPTION-KEY>'
    ));
    
    $response = curl_exec($curl);
    
    
    if(curl_error($curl)) {
        echo 'error:' . curl_error($curl);
    }
    else {
        $json_object = json_decode($response, true);
    
        $tags = $json_object["tags"];
    
        foreach($tags as $key => $value) {
            if ($value["confidence"] > 0.5) {
                echo "Tag name: ".$value["name"]." Confidence: ".$value["confidence"]."<br />";
            }
        }
    }
    
    curl_close($curl);
    
    ?>
    

    这个输出:

    Tag name: person. Confidence: 0.99900645017624
    Tag name: building. Confidence: 0.99334067106247
    Tag name: outdoor. Confidence: 0.98552924394608
    Tag name: woman. Confidence: 0.9338972568512
    Tag name: glasses. Confidence: 0.87850379943848
    Tag name: wearing. Confidence: 0.86172193288803
    Tag name: sunglasses. Confidence: 0.67616695165634
    

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多