Simple to use PHP library for AWS Rekognition.
Rekognition PHP
allows to detect in images:
- Labels (using DetectLabels)
Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature.
- Text (using DetectText)
Detects text in the input image and converts it into machine-readable text.
composer require clickandmortar/rekognition-php
Before using rekognition-php
, set credentials to make requests to Amazon Web Services.
The following code will allow to retrieve the output from previous picture:
<?php
use ClickAndMortar\Rekognition\Service\DetectService;
require 'vendor/autoload.php';
$detectService = new DetectService();
$url = 'https://raw.githubusercontent.com/ClickAndMortar/rekognition-php/master/img/tshirt.png';
$rekognitionImage = $detectService->detectFromUrl($url);
$minimumConfidence = 80;
print 'Labels:' . PHP_EOL;
foreach ($rekognitionImage->getLabels($minimumConfidence) as $label) {
print $label;
}
print 'Texts:' . PHP_EOL;
foreach ($rekognitionImage->getTexts($minimumConfidence) as $text) {
print $text;
}
Output will be the same if:
$url = 'https://raw.githubusercontent.com/ClickAndMortar/rekognition-php/master/img/tshirt.png';
$rekognitionImage = $detectService->detectFromUrl($url);
is replaced with:
$filename = 'img/tshirt.png';
$handle = fopen($filename, 'r');
$image = fread($handle, filesize($filename));
fclose($handle);
$rekognitionImage = $detectService->detect($image);
or
$filename = 'img/tshirt.png';
$handle = fopen($filename, 'r');
$image = fread($handle, filesize($filename));
fclose($handle);
$base64image = base64_encode($image);
$rekognitionImage = $detectService->detectFromBase64($base64image);
Configuring Rekognition client options is optional as default values will be used if none are set with the following methods.
region
and version
are configurable using environment variables AWS_REGION
and
AWS_REKOGNITION_VERSION
.
It is also possible to pass this options to DetectService
constructor:
$detectService = new DetectService([
'region' => 'eu-west-1',
'version' => '2016-06-27',
]);
vendor/bin/phpunit
docker run --rm -it -v $PWD:/app composer install
Create main.php
with code from Usage.
docker run --rm -it -e AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" -e AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" -v "$PWD":/app -w /app php:7.1-cli php main.php
docker run --rm -it -e AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" -e AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" -v "$PWD":/app -w /app php:7.1-cli vendor/bin/phpunit