我正在使用GCP Cloud Vision API和Python从图像中检索一些信息。具体来说,我正在向此API发送产品照片,并检索与其相关的网络实体;其中一个几乎总是品牌。
我完成这项工作的基本Python脚本如下:
import io
from google.cloud import vision
from google.cloud.vision import types
import os
import cv2
import numpy as np
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/Users/User/PycharmProjects/Project_name.json"
def detect_text(file):
client = vision.ImageAnnotatorClient()
with io.open(file, 'rb') as image_file:
content = image_file.read()
image = types.Image(content=content)
web_detection = client.web_detection(image=image).web_detection
print(web_detection)
file_name = "/Users/User/Desktop/Image.jpg"
img = cv2.imread(file_name)
detect_text(file_name)
Project_name.json
文件包含一些授权凭据,以便我可以访问Google Cloud API客户端。
我想用PHP做同样的事情。因此我到目前为止编写了以下PHP脚本:
<?php
namespace Google\Cloud\Samples\Vision;
use Google\Cloud\Vision\V1\ImageAnnotatorClient;
function detect_web($path)
{
$imageAnnotator = new ImageAnnotatorClient();
$image = file_get_contents($path);
$response = $imageAnnotator->webDetection($image);
$web = $response->getWebDetection();
print($web);
}
$path = '/Users/User/Desktop/Image.jpg';
detect_web($path);
?>
但是当我运行这个时,我收到以下错误:
Fatal error: Uncaught Error: Class 'Google\Cloud\Vision\V1\ImageAnnotatorClient' not found in /opt/lampp/htdocs/index.php:12 Stack trace: #0 /opt/lampp/htdocs/index.php(26): Google\Cloud\Samples\Vision\detect_web('/Users/User...') #1 {main} thrown in /opt/lampp/htdocs/index.php on line 12
显然,出现此错误是因为(首先)我没有像上面的Python(os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/Users/User/PycharmProjects/Project_name.json"
)那样提供Google授权凭证。
如何获取相应的Google库并通过我的PHP脚本访问它以获得与我的Python脚本完全相同的结果?
答案 0 :(得分:0)
您可以create a service account并选择JSON作为验证yo Cloud Vision API的密钥类型。提供了设置身份验证的步骤here。获得JSON密钥文件后,可以使用指向JSON密钥文件的“export GOOGLE_APPLICATION_CREDENTIALS”命令设置环境变量。您可以将客户端库的PHP version用于Cloud Vision API。此处还有PHP API Reference documentation以获得更多帮助。