habana_frameworks.mediapipe.fn.Brightness
habana_frameworks.mediapipe.fn.Brightness¶
- Class:
habana_frameworks.mediapipe.fn.Brightness(**kwargs)
- Define graph call:
__call__(input, brightness_tensor)
- Parameter:
input - Input tensor to operator. Supported dimensions: minimum = 1, maximum = 4. Supported data types: UINT8, UINT16, FLOAT32.
(optional) brightness_tensor - Tensor containing brightness value for each image in the batch. Supported dimensions: minimum = 1, maximum = 1. Supported data type: FLOAT32.
Description:
This operator is used to vary the brightness of the image. Brightness operator scales each pixel in image data with brightness scale. The equation for obtaining output pixel value is: output = input * brightness_scale
- Supported backend:
HPU
Keyword Arguments
kwargs |
Description |
---|---|
brightness_scale |
Brightness scale factor required for pixel manipulation.
|
dtype |
Output data type.
|
Note
Input/output tensor must be of the same data type.
Input1 and output tensor could be in any layout but both have to be same.
Input2 is one dimensional tensor of size N.
Brightness value can be provided either as scalar for all batches or 1D tensor.
Example: Brightness Operator
The following code snippet shows usage of Brightness operator:
from habana_frameworks.mediapipe import fn
from habana_frameworks.mediapipe.mediapipe import MediaPipe
from habana_frameworks.mediapipe.media_types import imgtype as it
from habana_frameworks.mediapipe.media_types import dtype as dt
import matplotlib.pyplot as plt
# Create media pipeline derived class
class myMediaPipe(MediaPipe):
def __init__(self, device, dir, queue_depth, batch_size, img_h, img_w):
super(
myMediaPipe,
self).__init__(
device,
queue_depth,
batch_size,
self.__class__.__name__)
self.input = fn.ReadImageDatasetFromDir(shuffle=False,
dir=dir,
format="jpg")
# WHCN
self.decode = fn.ImageDecoder(device="hpu",
output_format=it.RGB_P,
resize=[img_w, img_h])
self.brightness = fn.Brightness(brightness_scale=1.8,
dtype=dt.UINT8)
# WHCN -> CWHN
self.transpose = fn.Transpose(permutation=[2, 0, 1, 3],
tensorDim=4,
dtype=dt.UINT8)
def definegraph(self):
images, labels = self.input()
images = self.decode(images)
images = self.brightness(images)
images = self.transpose(images)
return images, labels
def display_images(images, batch_size, cols):
rows = (batch_size + 1) // cols
plt.figure(figsize=(10, 10))
for i in range(batch_size):
ax = plt.subplot(rows, cols, i + 1)
plt.imshow(images[i])
plt.axis("off")
plt.show()
def main():
batch_size = 6
img_width = 200
img_height = 200
img_dir = "/path/to/images"
queue_depth = 2
columns = 3
# Create media pipeline object
pipe = myMediaPipe('hpu', img_dir, queue_depth, batch_size,
img_height, img_width)
# Build media pipeline
pipe.build()
# Initialize media pipeline iterator
pipe.iter_init()
# Run media pipeline
images, labels = pipe.run()
# Copy data to host from device as numpy array
images = images.as_cpu().as_nparray()
labels = labels.as_cpu().as_nparray()
# Display images
display_images(images, batch_size, columns)
if __name__ == "__main__":
main()
Images with Changed Brightness 1
- 1
Licensed under a CC BY SA 4.0 license. The images used here are taken from https://data.caltech.edu/records/mzrjq-6wc02.