ESP32-Camera. Riconoscimento targa EI n° 252

Richiesta di informazioni sulle scatole di montaggio
Rispondi
MaxFor
Messaggi: 2
Iscritto il: 10/04/2021, 10:52
Home_Page: http://
Compleanno: 19 giu 1987
Città: Padova

ESP32-Camera. Riconoscimento targa EI n° 252

Messaggio da MaxFor »

 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

danisk891
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

Messaggio da danisk891 »

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

MaxFor
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

Messaggio da MaxFor »

Grazie per la risposta.
Ti faro' sapere non appena fatte le modifiche.
Saluti
MF

Rispondi