Buongiorno,
sono alle prese con il progetto che avete pubblicato al fine di poterlo realizzare e ho qui di seguito
delle informazioni da chiedere:
seguendo passo passo le istruzioni ho creato le chiavi API da Google Vision per
testarle usando una chiamata da Postman ; nella riga di comando
"content ": " IMAGE_BASE64" del listato 1 a pag.86 scrivete di sostituire al TAG "IMAGE_BASE64" con l' immagine che volete far scansionare a Google nel formato Base64.
Il problema e' che la pagina web di chiamata API di Postman non permette di fare il copia-incolla di stringhe di testo ; per problemi di sicurezza alcuni siti vietano il copia-incolla ( e' normale trovarne) ; la decodifica e' una stringa di centinaia di caratteri per cui impossibile inserirla a mano.
Premesso che e' la prima volta che uso Postman ( e non vorrei essere incorso in qualche errore) , volevo a questo punto testare l' API Google Vision con lo script di PHP proposto nell' articolo; purtroppo sono un po' arrugginito per quanto riguarda il linguaggio di programmazione PHP( dovrò riprenderlo ).Volevo sapere gentilmente dall'autore o dal forum , se possibile, quali sono le modifiche da apportare per bypassare la ESP Camera in modo tale che lo Script decodifichi il file JPEG da me creato (foto della mia targa) e lo dia in "pasto" a Google Vision. Tutti i file sono gia posizionati nel mio spazio hosting all' interno di una cartella chiamata TargaWeb . Noto che ci sono due righe di codice disabilitate:
//$data = file_get_contents("./esp32-cam-orig.jpg");
//echo 'data:image/jpg;base64,' . base64_encode($data)
oltre alla parte riguardante la connessione con MySQL .
Grazie in anticipo a tutti quelli che mi daranno una risposta.
MF
ESP32-Camera. Riconoscimento targa EI n° 252
-
- Messaggi: 1
- Iscritto il: 15/04/2021, 11:12
- Home_Page: http://
- Compleanno: 06 apr 1989
- Città: Guastalla
- Prov.: re
- Via: Pegolotti
Re: ESP32-Camera. Riconoscimento targa EI n° 252
Buongiorno,
PARTE POSTMAN
ti consiglio di utilizzare l'applicazione per Desktop di Postman, molte meno limitazioni.
Detto ciò il base64 dell'immagine puoi farlo attraverso questa pagina:
https://base64.guru/converter/encode/image
Selezioni il file e lasci "Plain text".
A questo punto clicchi su "Encode image to base64", il bottone sottostate e dopo qualche secondo appare la tua stringa.
Cliccando su questa ti consiglio di copiarla interamente (Attraverso anche il pulsante copy, a destra appena sopra la casella di testo, oppure facendo Ctrl+A e Ctrl+C) ed incollarla all'interno del json da inviare.
Ovviamente come citato nell'articolo ti consiglio di andare nella sezione raw
Qui in allegato nel link il json da importare direttamente su Postman (Desktop) per compiere la chiamata:
http://danisk89.altervista.org/GoogleAP ... ction.json
PARTE WEB
Qui bisognerebbe togliere l'if e l'upload del file e abilitare quella riga commentata che prende il file sul tuo server
Lo script diventa così
$uploaddir = "./";
$data = file_get_contents("./NOME_FILE.ESTENSIONE");
//echo 'data:image/jpg;base64,' . base64_encode($data);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://vision.googleapis.com/v1/images ... LE_API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{"requests": [
{
"features": [
{
"maxResults": 50,
"type": "OBJECT_LOCALIZATION"
},
{
"maxResults": 50,
"type": "LOGO_DETECTION"
},
{
"maxResults": 50,
"type": "LABEL_DETECTION"
},
{
"maxResults": 50,
"type": "DOCUMENT_TEXT_DETECTION"
}
],
"image": {
"content": "'.base64_encode($data).'"
},
"imageContext": {
"cropHintsParams": {
"aspectRatios": [
0.8,
1,
1.2
]
}
}
}
]
}',
CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
));
$response = curl_exec($curl);
curl_close($curl);
//echo $response;
$resObj = json_decode($response, true);
if(isset($resObj["responses"]) && count($resObj["responses"])>0 && (isset($resObj["responses"][0]["textAnnotations"]) && count($resObj["responses"][0]["textAnnotations"])>0 && isset($resObj["responses"][0]["textAnnotations"][0]["description"]))
&& (isset($resObj["responses"][0]["labelAnnotations"]) && searchCar($resObj["responses"][0]["labelAnnotations"])) ){
$tg = searchTG($resObj);
$res = explode(PHP_EOL, $tg);
if($res[0]==""){
$res = $res[1];
}else{
$res = $res[0];
}
//echo $res;
$stringLicSea = str_replace(' ', '', trim(preg_replace('/\s\s+/', ' ', $res)));
$datab = file_get_contents("./data.txt");
$datab = explode(PHP_EOL, $datab);
foreach($datab as $item){
if($stringLicSea==$item){
echo "open";
exit;
}
}
echo "close";
}else{ echo "close"; }
Ciao
Daniel
PARTE POSTMAN
ti consiglio di utilizzare l'applicazione per Desktop di Postman, molte meno limitazioni.
Detto ciò il base64 dell'immagine puoi farlo attraverso questa pagina:
https://base64.guru/converter/encode/image
Selezioni il file e lasci "Plain text".
A questo punto clicchi su "Encode image to base64", il bottone sottostate e dopo qualche secondo appare la tua stringa.
Cliccando su questa ti consiglio di copiarla interamente (Attraverso anche il pulsante copy, a destra appena sopra la casella di testo, oppure facendo Ctrl+A e Ctrl+C) ed incollarla all'interno del json da inviare.
Ovviamente come citato nell'articolo ti consiglio di andare nella sezione raw
Qui in allegato nel link il json da importare direttamente su Postman (Desktop) per compiere la chiamata:
http://danisk89.altervista.org/GoogleAP ... ction.json
PARTE WEB
Qui bisognerebbe togliere l'if e l'upload del file e abilitare quella riga commentata che prende il file sul tuo server
Lo script diventa così
$uploaddir = "./";
$data = file_get_contents("./NOME_FILE.ESTENSIONE");
//echo 'data:image/jpg;base64,' . base64_encode($data);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://vision.googleapis.com/v1/images ... LE_API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{"requests": [
{
"features": [
{
"maxResults": 50,
"type": "OBJECT_LOCALIZATION"
},
{
"maxResults": 50,
"type": "LOGO_DETECTION"
},
{
"maxResults": 50,
"type": "LABEL_DETECTION"
},
{
"maxResults": 50,
"type": "DOCUMENT_TEXT_DETECTION"
}
],
"image": {
"content": "'.base64_encode($data).'"
},
"imageContext": {
"cropHintsParams": {
"aspectRatios": [
0.8,
1,
1.2
]
}
}
}
]
}',
CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
));
$response = curl_exec($curl);
curl_close($curl);
//echo $response;
$resObj = json_decode($response, true);
if(isset($resObj["responses"]) && count($resObj["responses"])>0 && (isset($resObj["responses"][0]["textAnnotations"]) && count($resObj["responses"][0]["textAnnotations"])>0 && isset($resObj["responses"][0]["textAnnotations"][0]["description"]))
&& (isset($resObj["responses"][0]["labelAnnotations"]) && searchCar($resObj["responses"][0]["labelAnnotations"])) ){
$tg = searchTG($resObj);
$res = explode(PHP_EOL, $tg);
if($res[0]==""){
$res = $res[1];
}else{
$res = $res[0];
}
//echo $res;
$stringLicSea = str_replace(' ', '', trim(preg_replace('/\s\s+/', ' ', $res)));
$datab = file_get_contents("./data.txt");
$datab = explode(PHP_EOL, $datab);
foreach($datab as $item){
if($stringLicSea==$item){
echo "open";
exit;
}
}
echo "close";
}else{ echo "close"; }
Ciao
Daniel
-
- Messaggi: 2
- Iscritto il: 10/04/2021, 10:52
- Home_Page: http://
- Compleanno: 19 giu 1987
- Città: Padova
Re: ESP32-Camera. Riconoscimento targa EI n° 252
Grazie per la risposta.
Ti faro' sapere non appena fatte le modifiche.
Saluti
MF
Ti faro' sapere non appena fatte le modifiche.
Saluti
MF