Vision API
Vision API
This section documents the image preprocessing utilities in the framework.
Pml\Transformers\ImageVectorizer
A transformer that flattens image tensors and normalizes pixel values.
Signature
public function __construct(float $maxPixelValue = 255.0)
public function fit(Dataset $dataset): void
public function transform(Dataset $dataset): Dataset
public function fitted(): bool
What it does
- Accepts a dataset whose samples are image tensors.
- If the dataset is already 2-D, it normalizes values by
maxPixelValue. - If the dataset is 3-D or 4-D, it flattens each sample and normalizes.
Image transformer list
The repository also contains the following image-related transformers:
Pml\Transformers\ImageResizerPml\Transformers\ImageRotatorPml\Transformers\ImageCropperPml\Transformers\ImageVectorizerPml\Transformers\ColorSpaceConverter
These components are designed to work on tensorized image data before model training.
Example usage
use Pml\Dataset;
use Pml\Transformers\ImageVectorizer;
$dataset = Dataset::fromArray(
[
[[[0.0], [128.0]], [[255.0], [64.0]]],
[[[16.0], [32.0]], [[48.0], [80.0]]],
],
[0, 1]
);
$vectorizer = new ImageVectorizer(maxPixelValue: 255.0);
$vectorizer->fit($dataset);
$dataset = $vectorizer->transform($dataset);
print_r($dataset->samples()->shape());
Common mistakes
- Passing a text dataset to image transformers.
- Assuming the transformer will convert dataset labels; image transformers only modify
samples. - Forgetting to call
fit()beforetransform()when a transformer requires it.