Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions ppocr/data/imaug/operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import numpy as np
import math
from PIL import Image
from paddle import get_device


class DecodeImage(object):
Expand Down Expand Up @@ -231,6 +232,8 @@ def __call__(self, data):
img, [ratio_h, ratio_w] = self.resize_image_type1(img)
data["image"] = img
data["shape"] = np.array([src_h, src_w, ratio_h, ratio_w])
if "iluvatar_gpu" in get_device():
data["shape"] = np.array([src_h, src_w, ratio_h, ratio_w]).astype(np.float32)
return data

def image_padding(self, im, value=0):
Expand Down
3 changes: 3 additions & 0 deletions ppocr/data/imaug/random_crop_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import numpy as np
import cv2
import random
from paddle import get_device


def is_poly_in_rect(poly, x, y, w, h):
Expand Down Expand Up @@ -179,6 +180,8 @@ def __call__(self, data):
texts_crop.append(text)
data["image"] = img
data["polys"] = np.array(text_polys_crop)
if "iluvatar_gpu" in get_device():
data["polys"] = np.array(text_polys_crop).astype(np.float32)
data["ignore_tags"] = ignore_tags_crop
data["texts"] = texts_crop
return data
Expand Down
15 changes: 15 additions & 0 deletions ppocr/data/imaug/rec_img_aug.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
SVTRDeterioration,
ParseQDeterioration,
)
from paddle import get_device
from paddle.vision.transforms import Compose


Expand Down Expand Up @@ -305,6 +306,8 @@ def __call__(self, data):
norm_img, valid_ratio = resize_norm_img(img, self.image_shape, self.padding)
data["image"] = norm_img
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data


Expand Down Expand Up @@ -338,6 +341,8 @@ def __call__(self, data):

data["image"] = norm_img
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data


Expand Down Expand Up @@ -366,6 +371,8 @@ def __call__(self, data):
)
data["image"] = norm_img
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data


Expand Down Expand Up @@ -407,6 +414,8 @@ def __call__(self, data):
data["resized_shape"] = resize_shape
data["pad_shape"] = pad_shape
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data


Expand Down Expand Up @@ -539,6 +548,8 @@ def __call__(self, data):
norm_img, valid_ratio = resize_norm_img_abinet(img, self.image_shape)
data["image"] = norm_img
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data


Expand All @@ -553,6 +564,8 @@ def __call__(self, data):
norm_img, valid_ratio = resize_norm_img(img, self.image_shape, self.padding)
data["image"] = norm_img
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data


Expand All @@ -574,6 +587,8 @@ def __call__(self, data):
data["resized_shape"] = resize_shape
data["pad_shape"] = pad_shape
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
data["word_positons"] = word_positons
return data

Expand Down
3 changes: 3 additions & 0 deletions ppocr/data/simple_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import traceback
from paddle.io import Dataset
from .imaug import transform, create_operators
from paddle import get_device


class SimpleDataSet(Dataset):
Expand Down Expand Up @@ -203,6 +204,8 @@ def resize_norm_img(self, data, imgW, imgH, padding=True):
valid_ratio = min(1.0, float(resized_w / imgW))
data["image"] = padding_im
data["valid_ratio"] = valid_ratio
if "iluvatar_gpu" in get_device():
data["valid_ratio"] = np.float32(valid_ratio)
return data

def __getitem__(self, properties):
Expand Down
7 changes: 5 additions & 2 deletions tools/program.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def merge_config(config, opts):
return config


def check_device(use_gpu, use_xpu=False, use_npu=False, use_mlu=False, use_gcu=False):
def check_device(use_gpu, use_xpu=False, use_npu=False, use_mlu=False, use_gcu=False, use_iluvatar_gpu=False):
"""
Log error and exit when set use_gpu=true in paddlepaddle
cpu version.
Expand Down Expand Up @@ -833,6 +833,7 @@ def preprocess(is_train=False):
use_npu = config["Global"].get("use_npu", False)
use_mlu = config["Global"].get("use_mlu", False)
use_gcu = config["Global"].get("use_gcu", False)
use_iluvatar_gpu = config["Global"].get("use_iluvatar_gpu", False)

alg = config["Architecture"]["algorithm"]
assert alg in [
Expand Down Expand Up @@ -896,9 +897,11 @@ def preprocess(is_train=False):
device = "mlu:{0}".format(os.getenv("FLAGS_selected_mlus", 0))
elif use_gcu: # Use Enflame GCU(General Compute Unit)
device = "gcu:{0}".format(os.getenv("FLAGS_selected_gcus", 0))
elif use_iluvatar_gpu:
device = "iluvatar_gpu:{0}".format(dist.ParallelEnv().dev_id)
else:
device = "gpu:{}".format(dist.ParallelEnv().dev_id) if use_gpu else "cpu"
check_device(use_gpu, use_xpu, use_npu, use_mlu, use_gcu)
check_device(use_gpu, use_xpu, use_npu, use_mlu, use_gcu, use_iluvatar_gpu)

device = paddle.set_device(device)

Expand Down