Google Cloud Vision / PHP - сделать один запрос с обнаружением метки и безопасного поиска - PullRequest
0 голосов
/ 14 февраля 2019

В облачном видении Google вы получаете плату за запрос.Если вы делаете «Обнаружение метки», вы получаете бесплатный «Безопасный поиск», но он должен быть включен в тот же запрос.У меня есть рабочий код как для Обнаружения меток, так и для Обнаружения безопасного поиска, но я не уверен, как объединить их в один запрос.

Кто-то ответил на этот вопрос в Python, но не знает, как перевести его в PHP.

Как одновременно вызывать «Обнаружение меток» и «Обнаружение безопасного поиска»Google Cloud Vision API

Кто-нибудь знает, как я могу назвать их в PHP?Любое понимание будет оценено.Спасибо.


# imports the Google Cloud client library
use Google\Cloud\Vision\V1\ImageAnnotatorClient;

# instantiates a client
$imageAnnotator = new ImageAnnotatorClient();

# the name of the image file to annotate
$fileName = 'images/d4aed5533322946.jpg';

# prepare the image to be annotated
$image = file_get_contents($fileName);

# performs label detection on the image file
$response = $imageAnnotator->labelDetection($image);
$labels = $response->getLabelAnnotations();

if ($labels) {
    echo("Labels:" . PHP_EOL);
    foreach ($labels as $label) {
        echo($label->getDescription() . PHP_EOL);
    }
} 
######### Безопасный поиск будет выглядеть следующим образом
function detect_safe_search($path)
{
    $imageAnnotator = new ImageAnnotatorClient();

    # annotate the image
    $image = file_get_contents($path);
    $response = $imageAnnotator->safeSearchDetection($image);
    $safe = $response->getSafeSearchAnnotation();

    $adult = $safe->getAdult();
    $medical = $safe->getMedical();
    $spoof = $safe->getSpoof();
    $violence = $safe->getViolence();
    $racy = $safe->getRacy();

    # names of likelihood from google.cloud.vision.enums
    $likelihoodName = ['UNKNOWN', 'VERY_UNLIKELY', 'UNLIKELY',
    'POSSIBLE','LIKELY', 'VERY_LIKELY'];

echo "Adult $adult\n";
    printf("Adult: %s" . PHP_EOL, $likelihoodName[$adult]);
    printf("Medical: %s" . PHP_EOL, $likelihoodName[$medical]);
    printf("Spoof: %s" . PHP_EOL, $likelihoodName[$spoof]);
    printf("Violence: %s" . PHP_EOL, $likelihoodName[$violence]);
    printf("Racy: %s" . PHP_EOL, $likelihoodName[$racy]);

    $imageAnnotator->close();
}

$path = 'images/d4aed5533322946.jpg';
detect_safe_search($path);

echo "\n";
$path = 'images/5.jpg.6f23b929dcc008f3bc394b0b6b0c6e5e.jpg';
detect_safe_search($path);

1 Ответ

0 голосов
/ 14 февраля 2019

Использование ImageAnnotatorClient::annotateImage:

use Google\Cloud\Vision\V1\Feature\Type;
$res = $v->annotateImage(file_get_contents($fileName), [
    Type::LABEL_DETECTION,
    Type::SAFE_SEARCH_DETECTION
]);

$labels = $res->getLabelAnnotations();
$safeSearch = $res->getSafeSearchAnnotation();
...