Лазурь — распознавание изображений от Microsoft Vision PHP интеграция

Я следую инструкциям о том, как получить теги изображений из Microsoft Vision API здесь:
https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts/php

Мне удалось получить правильный ответ CURL body, который выглядит так:

{
"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, повторить его, сделать что-то с ним.

0

Решение

Вы можете использовать этот фрагмент (заменив конечную точку и ключ подписки своим собственным):

<?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
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]