Test outil azure computer vision pour détection ouverture volet piscine via analyse image d'une camera

Bonsoir,

suite aux discussion dans ce thread : Analyse d'une photo pour déterminer si volet piscine ouvert ou fermé

J’ai fait un test avec l’outil azure computer vision.
l’utilisation et l’apprentissage sont assez bluffant pour déterminer via une photo l’état du volet
Je souhaite faire un test sur l’envoi d’une photo via un bloc code, mais je calle sur le code à mettre en place :

voilà ce que azure m’indique pour mettre en place la prediction :

How to use the Prediction API
If you have an image URL:
https://voletpiscine1-prediction.cognitiveservices.azure.com/customvision/v3.0/Prediction/blablablablablablablablablabla/classify/iterations/Iteration2/url
Set Prediction-Key Header to : blibliblibliblibliblibliblibli
Set Content-Type Header to : application/json
Set Body to : {"Url": "https://example.com/image.png"}

avec ces éléments et l’entrainement à la prédiction, il doit me faire un retour de type « Ouvert », « Fermé » ou « En cours »
mais je ne sais pas comment utilisé les infos

Norbert

Hello @ngrataloup,
dans le bloc code de ton scénario:

$token = ""; // token dans l'url azure cognitive
$predictionKey = ""; // Prediction key utilisé dans l'entête de la demande
$url = ""; // url de l'image
$azureUrl = "https://voletpiscine1-prediction.cognitiveservices.azure.com/customvision/v3.0/Prediction/" . $token . "/classify/iterations/Iteration2/url";

$r = shell_exec('curl -X POST ' . $azureUrl . ' -H "Content-Type: application/json" -H "Prediction-Key: ' . $predictionKey . '"  -d \'{"Url": "' . $url . '"}\''); 

il manque quelques éléments et je ne peux tester, mais je pense que ça devrait fonctionner de cette manière ou pas loin :wink:
il n’y a qu’à mettre les infos dans les 3 premières lignes.

:star_struck:
Merci @ddelec24

ca marche nickel, juste le $asureUrl qu’il convient de sortir des quotes dans le shell_exec :
retour :

{"id":"56e0b972-b31b-4927-af01-d1efa6870899","project":"bf82c27d-f97f-4609-a74a-320a04f379d5","iteration":"af3685e5-f3ad-4048-90c3-973347569f85","created":"2022-05-25T08:09:53.025Z","predictions":[{"probability":0.9835586,"tagId":"1f535a31-b371-450e-b001-e7ccd3bb32a3","tagName":"Fermé"},{"probability":0.016426321,"tagId":"2ea25c99-1268-40c0-aae9-f072eef59f9b","tagName":"En cours"},{"probability":1.5134986E-05,"tagId":"014eb68b-4c06-4876-90ab-783024b96f3b","tagName":"Ouvert"}]}

Soit en terme de prédiction pour l’état du volet de piscine :

  • Fermé : 98.35%
  • En cours : 1.64%
  • Ouvert : 0.01%

J’ose abuser, comment extraire les % de la chaine retournée (je ne sais pas faire) afin de les mettre dans un virtuel (ca je sais faire)

Norbert

1 « J'aime »

Bon, du coup, en cherchant, j’ai trouvé :wink:

voilà le script complet (pour ceux que ca intéresse d’utiliser cet outil pour avoir des prises de decision sur la base de l’analyse (via du computer vision) d’une image issue d’une camera :

$token = "<token>"; // token dans l'url azure cognitive
$predictionKey = "<predictionKey>"; // Prediction key utilisé dans l'entête de la demande
$url = "URL image"; // url de l'image
$azureUrl = "https://voletpiscine1-prediction.cognitiveservices.azure.com/customvision/v3.0/Prediction/" . $token . "/classify/iterations/Iteration2/url";

$result = shell_exec('curl -X POST '.$azureUrl.' -H "Content-Type: application/json" -H "Prediction-Key: ' . $predictionKey . '"  -d \'{"Url": "' . $url . '"}\''); 
$parsed_result = json_decode($result);
for ($i = 0; $i <= 2; $i++) {
  $prediction[$parsed_result->{'predictions'}[$i]->{'tagName'}] = $parsed_result->{'predictions'}[$i]->{'probability'} ;
}

$scenario->setLog('Predictions ouverture volet piscine :') ;
$scenario->setLog('    Ouvert   -->'. str_pad(round($prediction['Ouvert']*100,0), 3, ' ', STR_PAD_LEFT) .'%');
$scenario->setLog('    En cours -->'. str_pad(round($prediction['En cours']*100,0), 3, ' ', STR_PAD_LEFT) .'%');
$scenario->setLog('    Fermé    -->'. str_pad(round($prediction['Fermé']*100,0), 3, ' ', STR_PAD_LEFT) .'%');

et voilà donc le resultat :

[2022-05-25 12:19:47][SCENARIO] -- Start : Scenario lance manuellement.
[2022-05-25 12:19:47][SCENARIO] - Exécution du sous-élément de type [action] : code
[2022-05-25 12:19:47][SCENARIO] Exécution d'un bloc code 
[2022-05-25 12:19:49][SCENARIO] Predictions ouverture volet piscine :
[2022-05-25 12:19:49][SCENARIO]     Ouvert   --> 91%
[2022-05-25 12:19:49][SCENARIO]     En cours --> 8%
[2022-05-25 12:19:49][SCENARIO]     Fermé    --> 0%
[2022-05-25 12:19:49][SCENARIO] Fin correcte du scénario
3 « J'aime »

exact pour la quote j’ai pas relu désolé :stuck_out_tongue:

bien joué!

je ne connaissais pas ce service, je vais garder ça dans un coin si un jour j’en ai l’utilité :slight_smile:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.