Le Deep Learning est un domaine de recherche populaire ces dernières années, parmi lequel la segmentation de l'image, comme l'une des applications importantes, a attiré une grande attention. Avec l'API de segmentation d'image fournie par Baidu, les développeurs peuvent simplifier le processus de mise en œuvre de l'algorithme et expérimenter rapidement et apprendre la technologie de segmentation d'image.
Cet article présentera comment utiliser PHP pour appeler l'interface de segmentation de l'image BAIDU pour atteindre la segmentation automatique des cibles d'image. Supposons que le lecteur possède déjà les connaissances liées à la demande de base PHP et HTTP.
L'interface de segmentation d'image Baidu est une API qui fournit des services de segmentation d'image intelligents. Après que l'utilisateur a soumis l'image, l'interface sépare automatiquement différentes cibles dans l'image et renvoie les données de masque correspondantes. Il prend en charge PNG, JSON et d'autres formats de sortie.
L'adresse de demande de l'interface de segmentation d'image Baidu est la suivante:
https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg
paramètre | taper | Est-ce nécessaire | illustrer |
---|---|---|---|
Access_token | chaîne | Oui | Token d'accès obtenu via l'autorisation OAuth2.0. |
image | chaîne | Oui | La chaîne codée Base64 de l'image prend en charge les formats PNG, JPEG et BMP, et la taille ne dépasse pas 4 Mo. |
taper | chaîne | Non | Renvoie le format de résultat, Valeurs prises en charge: Foreground (par défaut), arrière-plan, score. |
seuil | flotter | Non | Le seuil de segmentation, avec une plage de 0-1, indique la proportion de zone de découpe et la valeur par défaut est de 0,5. |
Champs | taper | illustrer |
---|---|---|
premier plan | chaîne | L'image encodée de la base64 de l'objectif de prospect segmenté. |
arrière-plan | chaîne | Image codée Base64 pour la partie d'arrière-plan. |
score | flotter | Score de confiance pour les résultats de la segmentation. |
Avant d'appeler l'interface, vous devez obtenir le jeton d'accès fourni par la plate-forme de développeur Baidu. Pour des étapes spécifiques, veuillez vous référer aux documents officiels de Baidu.
$ access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
Utilisez une extension Curl intégrée de PHP pour envoyer une demande postale à l'interface de segmentation d'image BAIDU et obtenez les données de réponse au format JSON.
$ url = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg'; $ image = '/path/to/image.jpg'; $ type = 'premier plan'; $ seuil = 0,5; <p>$ data = array (<br> 'access_token' => $ Access_token,<br> 'image' => base64_encode (file_get_contents ($ image)),<br> 'type' => $ type,<br> 'threshold' => $ threshold,<br> ));</p> <p>$ Options = Array (<br> Curlopt_returntransfer => true,<br> Curlopt_post => true,<br> Curlopt_postfields => $ data,<br> ));</p> <p>$ ch = curl_init ($ url);<br> curl_setopt_array ($ ch, $ options);<br> $ result = curl_exec ($ ch);<br> curl_close ($ ch);<br>
Description du code:
Dans les données JSON renvoyées, le premier plan de champ est l'image cible segmentée et est codé dans la base64. Il peut être décodé et enregistré en tant que fichier local.
$ result_arr = json_decode ($ result, true); if (isset ($ result_arr ['Foreground'])) { $ base64_image = $ result_arr ['Foreground']; $ image_data = base64_decode ($ base64_image); file_put_contents ('/ path / to / foreground.png', $ image_data); }
Si vous avez besoin d'obtenir l'arrière-plan ou le niveau de confiance, vous pouvez ajuster le paramètre de type en arrière-plan ou score et traiter séparément les champs correspondants.
Cet article présente comment PHP peut rapidement se connecter à l'interface de segmentation d'images de Baidu et explique les paramètres d'interface, la demande de processus et l'analyse des résultats en détail, en aidant les développeurs à réaliser facilement la fonction de segmentation d'image. Le code peut être élargi en fonction des besoins réels et appliqué à plus de scénarios de traitement d'image.