2017-10-04 6 views
0

Je suis en suivant les instructions sur la façon d'obtenir des étiquettes d'image de l'API Microsoft Vision ici: https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts/phpMicrosof Vision reconnaissance d'image PHP intergration

j'ai réussi à obtenir une réponse du corps CURL valide, qui ressemble à ceci:

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

J'ai essayé d'écrire des étiquettes foreach, mais j'ai des problèmes.

$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 
} 

Je ne peux pas répercuter une étiquette. Je voudrais montrer seulement le nom d'étiquette avec la valeur au-dessus de 0.9. Quelque chose comme: si la confiance de la balise est> 0.9, faites-en l'écho, faites-en quelque chose.

Répondre

2

Vous pouvez utiliser cet extrait (en remplaçant le point final et clé d'abonnement avec votre propre):

<?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); 

?> 

Ce sorties:

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