Maison >développement back-end >tutoriel php >Méthode pour réaliser la reconnaissance faciale et la recherche d'images à l'aide de PHP et de l'interface de stockage cloud Qiniu

Méthode pour réaliser la reconnaissance faciale et la recherche d'images à l'aide de PHP et de l'interface de stockage cloud Qiniu

PHPz
PHPzoriginal
2023-07-05 08:19:391047parcourir

Méthode d'utilisation de l'interface de stockage cloud PHP et Qiniu pour réaliser la reconnaissance faciale et la recherche d'images d'images

Introduction :
Avec le développement rapide d'Internet, la technologie de traitement d'image est devenue de plus en plus mature, et la reconnaissance faciale et la recherche d'images sont devenues notre Une partie intégrante de la vie quotidienne. Cet article expliquera comment utiliser le langage de programmation PHP et l'interface de stockage cloud Qiniu pour implémenter les fonctions de reconnaissance faciale et de recherche d'images sur les images. Des exemples de codes correspondants seront également fournis.

1. Travail de préparation :
1. Demandez un compte de stockage cloud Qiniu et obtenez la clé d'accès et la clé secrète ;
2. Installez et configurez l'environnement PHP.

2. Implémentation de la fonction de reconnaissance faciale :
1. Téléchargez des images sur Qiniu Cloud Storage :

require_once('qiniu/autoload.php');

use QiniuAuth;
use QiniuStorageUploadManager;

$accessKey = '<your-access-key>';
$secretKey = '<your-secret-key>';
$bucket = '<your-bucket-name>';

$auth = new Auth($accessKey, $secretKey);

$token = $auth->uploadToken($bucket);

$uploadMgr = new UploadManager();

list($ret, $err) = $uploadMgr->putFile($token, 'uploadKey', 'localFilePath');

if ($err !== null) {
    exit('上传失败:' . $err);
}

2. Appelez l'API de reconnaissance faciale de Qiniu Cloud Storage :

$accessKeyId = '<your-access-key>';
$accessKeySecret = '<your-access-key-secret>';
$url = 'https://api.qiniu.com/face/detection/detect';

$body = array(
    'data' => array(
        'uri' => $ret['key'],
    ),
);

$content = json_encode($body);

$timestamp = time();

$signStr = $url . "
" . $content . "
" . $timestamp;

$sign = hash_hmac('sha1', $signStr, $accessKeySecret);

$header = array(
    'AccessKey: ' . $accessKeyId,
    'Content-Type: application/json',
    'Timestamp: ' . $timestamp,
    'Sign: ' . $sign,
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);

$response = curl_exec($ch);

if (curl_errno($ch) !== 0) {
    exit('请求失败:' . curl_error($ch));
}

curl_close($ch);

$result = json_decode($response, true);

if ($result['code'] !== 0) {
    exit('人脸识别失败:' . $result['message']);
}

3. implémentation de la fonction :

1. Téléchargez des images sur Qiniu Cloud Storage :

(Identique au téléchargement d'images dans l'implémentation de la fonction de reconnaissance faciale)

2. Appelez l'API de recherche d'images de Qiniu Cloud Storage :

$faces = $result['result']['faces'];

foreach ($faces as $face) {
    $position = $face['position'];
    $age = $face['age'];
    $gender = $face['gender'];
    //....
}

3 .Analysez les résultats de la recherche d'images :

$accessKeyId = '<your-access-key>';
$accessKeySecret = '<your-access-key-secret>';
$url = 'https://api.qiniu.com/image/v2/search';

$body = array(
    'data' => array(
        'uri' => $ret['key'],
        'limit' => 10, // 设置返回结果的数量
    ),
);

$content = json_encode($body);

$timestamp = time();

$signStr = $url . "
" . $content . "
" . $timestamp;

$sign = hash_hmac('sha1', $signStr, $accessKeySecret);

$header = array(
    'AccessKey: ' . $accessKeyId,
    'Content-Type: application/json',
    'Timestamp: ' . $timestamp,
    'Sign: ' . $sign,
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);

$response = curl_exec($ch);

if (curl_errno($ch) !== 0) {
    exit('请求失败:' . curl_error($ch));
}

curl_close($ch);

$result = json_decode($response, true);

if ($result['code'] !== 0) {
    exit('图像搜索失败:' . $result['message']);
}

Conclusion : 

En utilisant PHP et l'interface de stockage cloud Qiniu, nous pouvons facilement implémenter des fonctions de reconnaissance faciale et de recherche d'images d'images. Grâce aux exemples de code ci-dessus, nous pouvons apprendre à télécharger des images sur Qiniu Cloud Storage et à mettre en œuvre des fonctions de reconnaissance faciale et de recherche d'images en appelant les API pertinentes. J'espère que cet article pourra aider les lecteurs à comprendre et à utiliser l'interface PHP et Qiniu Cloud Storage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn