LoginSignup
0
0

More than 1 year has passed since last update.

google cloud vision api で 人物、顔、QRコード(バーコード)判定

Last updated at Posted at 2022-09-04

Google cloud vision api で 人物判定をしよう

性別判定はできるの?
→ 不可

色々な判定方法があるが、[faceAnnotations]があるかどうか
で判断するのがベスト。
※イラストまで人物判定されるときがあるので。

また仮に人物であってもエッチ及び不適切な画像の場合があるので、
dangerフラグをオンにするように設定

hoge.php
$vision = new VisionClient([
    'projectId' => config('app.gcp_project_id'),
    'keyFile' => json_decode(file_get_contents(config_path('gcp.json')), true)
]);

//ノーマル
$img = "https://twikon.club/img/topmodel.png";

$image = $vision->image(file_get_contents($img), ['FACE_DETECTION','SAFE_SEARCH_DETECTION']);

$result = $vision->annotate($image);

$info = $result->info();

$flag = [
    'danger' => [],
    'person' => 0
];

foreach ($info['safeSearchAnnotation'] as $key => $v) {

    if(!preg_match("/un/i",$v)){
        $flag['danger'][$key] = 1;
    }

}

if(!empty($info['faceAnnotations'])){
    $flag['person'] = 1;
}

print_r($flag);

safeSearchAnnotation の値について

adult
エッチな画像か

spoof
おもしろ加工されているか
(顔隠しや、顔を大きく、小さくしたり)

medical
医療画像か

violence
暴力的な画像か

racy
際どい水着画像か(エッチ系)

値。普通の画像でもPOSSIBLEになるときがけっこうある。

0 UNKNOWN 未知の可能性。
1 VERY_UNLIKELY それは非常にありそうもないです。
2 UNLIKELY ありそうもありません。
3 POSSIBLE 可能です。
4 LIKELY それは可能性があります。
5 VERY_LIKELY その可能性は非常に高いです。

QRコード(バーコード)判定

hoge.php
<?php
$image = $vision->image(file_get_contents($img), ['OBJECT_LOCALIZATION','FACE_DETECTION','SAFE_SEARCH_DETECTION']);
$result = $vision->annotate($image);
$info = $result->info();

//            qrコードにマッチ
if(!empty($info['localizedObjectAnnotations'])){

    if(preg_match("/barcode/",$info['localizedObjectAnnotations'][0]['name'])){
        echo "qrコードです";
    }
    
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0