Google OCR

dakata__92

Super Moderator
Как мога да използвам API-то за разпознаване на изображения? Дайте примерен работещ код, че нета е пълен с ненужно инфо. :)
 
dakata__92 каза:
Как мога да използвам API-то за разпознаване на изображения? Дайте примерен работещ код, че нета е пълен с ненужно инфо. :)

Разпознаване на какво? Също така за пхп ли говорим?
 
Имат страхотна документация. Може би имаш конкретен проблем? :roll:
 
Ами търся прост код за разпознаване на текстово изображение. Попаднах на това но ми изкарва грешка:
Error: https://vision.googleapis.com/v1/images:annotate?key=..... failed status 0
PHP:
<?php

$api_key = 'моят апи ключ';
$cvurl = "https://vision.googleapis.com/v1/images:annotate?key=" . $api_key;
$type = "TEXT_DETECTION";

if (isset($_POST['submit'])) {  
print $_FILES['photo']['name'].'<br>';
    if(!$_FILES['photo']['error']) {
        $valid_file = true;
        if($_FILES['photo']['size'] > (4024000)) {
            $valid_file = false;
            die('Your file\'s size is too large.');
        }

        if($valid_file) {
            //convert it to base64
            $fname = $_FILES['photo']['tmp_name'];
            $data = file_get_contents($fname);
            $base64 = base64_encode($data);

            $r_json ='{
                "requests": [
                    {
                      "image": {
                        "content":"' . $base64. '"
                      },
                      "features": [
                          {
                            "type": "' .$type. '",
                            "maxResults": 200
                          }
                      ]
                    }
                ]
            }';

            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $cvurl);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $r_json);
            $json_response = curl_exec($curl);
            $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
            curl_close($curl);

            if ( $status != 200 ) {
                die("Error: $cvurl failed status $status" );
            }

            echo $json_response;
        }
    }
    else {
        echo "Error";
        die('Drror:  '.$_FILES['photo']['error']);
    }
}
?>
<form action='' method='post' enctype="multipart/form-data">
<input type='file' name='photo'>
<input type='submit' name='submit'>
</form>
 
Стига с тоя "plain" curl. Ква е тая любов не разбирам :D

https://cloud.google.com/vision/docs/reference/libraries

7 реда код:

Код:
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Vision\VisionClient;

# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';

# Instantiates a client
$vision = new VisionClient([
    'projectId' => $projectId
]);

# The name of the image file to annotate
$fileName = __DIR__ . '/resources/wakeupcat.jpg';

# Prepare the image to be annotated
$image = $vision->image(fopen($fileName, 'r'), [
    'LABEL_DETECTION'
]);

# Performs label detection on the image file
$labels = $vision->annotate($image)->labels();

echo "Labels:\n";
foreach ($labels as $label) {
    echo $label->description() . "\n";
}

И JSON не се "билдва" така.........................
 
Fakeheal каза:
Стига с тоя "plain" curl. Ква е тая любов не разбирам :D

https://cloud.google.com/vision/docs/reference/libraries

7 реда код:

Код:
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Vision\VisionClient;

# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';

# Instantiates a client
$vision = new VisionClient([
    'projectId' => $projectId
]);

# The name of the image file to annotate
$fileName = __DIR__ . '/resources/wakeupcat.jpg';

# Prepare the image to be annotated
$image = $vision->image(fopen($fileName, 'r'), [
    'LABEL_DETECTION'
]);

# Performs label detection on the image file
$labels = $vision->annotate($image)->labels();

echo "Labels:\n";
foreach ($labels as $label) {
    echo $label->description() . "\n";
}

И JSON не се "билдва" така.........................

Кода съм го свалил, не съм го писал аз. Иначе амм имам си слабост към cURL. Това е възможно най-бързият начин за обработка на заявки в PHP.
 
dakata__92 каза:
Fakeheal каза:

Кода съм го свалил, не съм го писал аз. Иначе амм имам си слабост към cURL. Това е възможно най-бързият начин за обработка на заявки в PHP.

Аз не казвам да спреш да го ползваш. Просто ползвай някакъв wrapper като guzzlehttp, който да ти улесни живота многократно. А и може да работи не само с curl :)
 
Fakeheal каза:
dakata__92 каза:
Fakeheal каза:

Кода съм го свалил, не съм го писал аз. Иначе амм имам си слабост към cURL. Това е възможно най-бързият начин за обработка на заявки в PHP.

Аз не казвам да спреш да го ползваш. Просто ползвай някакъв wrapper като guzzlehttp, който да ти улесни живота многократно. А и може да работи не само с curl :)

Аз съм си създал свой клас по темата. Сега ще го добавя да видя дали случайно проблема не е в cURL кода.
 
Fakeheal каза:
Ползваш ли това: Google Cloud client library?
С моят клас сега получавам следният респонд. Къду трябва да настройвам сега, че ми писна вече с тези простотии на Гугъл. Ключ създадох, сега какво трябва пак да му активирам... :!:
Код:
{
  "error": {
    "code": 403,
    "message": "Google Cloud Vision API has not been used in project phpocr-170615 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=phpocr-170615 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
    "status": "PERMISSION_DENIED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developers console API activation",
            "url": "https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=phpocr-170615"
          }
        ]
      }
    ]
  }
}
 
Fakeheal каза:
Освен ключ трябва да добавиш и че искаш да ползваш тва апи.
Е ушка тръгвам да го Enable а ми иска някакви регистрации и прочие да правя. Пълна простотия. Че и кредитна карта ми иска. :D
 
Fakeheal каза:
Защото не е безплатно.

Оххх. Толкова много четене и обяснения в нета, колко безплатно е приложението и накрая нищо. :eek:
 
В крайна сметка, няма ли някаква безплатна база за OCR разпознаване с API или просто достъп с cURL?
 

Горе