Google Cloud Vision で顔検出をしてみる

Google Cloud Vision で顔検出をしてみました。

PHPでコードを書いています。

putenv('GOOGLE_APPLICATION_CREDENTIALS='.dirname(FILE).'/XXXXXX-XXXXXXX.json');

require_once dirname(FILE) . '/vendor/autoload.php';

use Google\Cloud\Vision\VisionClient;

$vision = new VisionClient();
$imgfile = "./img/test.jpg";
$imageResource = fopen($imgfile, 'r');

$image = $vision->image($imageResource, [
'FACE_DETECTION'
], [
'maxResults' => [
'FACE_DETECTION' => 10
]
]);
$result = $vision->annotate($image);

$base = imagecreatefromjpeg($imgfile);

foreach ($result->info()['faceAnnotations'] as $annotation) {
if (isset($annotation['fdBoundingPoly'])) {
$verticies = $annotation['fdBoundingPoly']['vertices'];
$x1 = isset($verticies[0]['x']) ? $verticies[0]['x'] : 0;
$y1 = isset($verticies[0]['y']) ? $verticies[0]['y'] : 0;
$x2 = isset($verticies[2]['x']) ? $verticies[2]['x'] : 0;
$y2 = isset($verticies[2]['y']) ? $verticies[2]['y'] : 0;

$im = imagecreate($x2-$x1, $y2-$y1);
imageline ( $base , $x1 , $y1 , $x1 , $y2 , imagecolorallocate($im, 0x00, 0x33, 0xff) );
imageline ( $base , $x1 , $y1 , $x2 , $y1 , imagecolorallocate($im, 0x00, 0x33, 0xff) );
imageline ( $base , $x2 , $y1 , $x2 , $y2 , imagecolorallocate($im, 0x00, 0x33, 0xff) );
imageline ( $base , $x1 , $y2 , $x2 , $y2 , imagecolorallocate($im, 0x00, 0x33, 0xff) );
}
}

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA