提交 29d4dc9a 编写于 作者: R root 提交者: Tingquan Gao

fix: rm sys.path.append in main python file

avoid to raising error when there is a foler or python file that has same name in working directory
上级 0b1c8e93
......@@ -2,7 +2,6 @@ include LICENSE.txt
include README.md
include docs/en/whl_en.md
recursive-include deploy/python *.py
recursive-include deploy/configs *.yaml
recursive-include deploy/utils get_image_list.py config.py logger.py predictor.py
recursive-include ppcls/ *.py *.txt
\ No newline at end of file
recursive-include deploy/utils *.py
recursive-include ppcls/ *.py *.txt
recursive-include deploy/configs *.yaml
\ No newline at end of file
......@@ -11,21 +11,15 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import sys
__dir__ = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.abspath(os.path.join(__dir__, '../')))
import cv2
import numpy as np
from utils import logger
from utils import config
from utils.predictor import Predictor
from utils.get_image_list import get_image_list
from python.preprocess import create_operators
from python.postprocess import build_postprocess
from paddleclas.deploy.utils import logger, config
from paddleclas.deploy.utils.predictor import Predictor
from paddleclas.deploy.utils.get_image_list import get_image_list
from paddleclas.deploy.python.preprocess import create_operators
from paddleclas.deploy.python.postprocess import build_postprocess
class ClsPredictor(Predictor):
......
......@@ -27,9 +27,8 @@ import cv2
import numpy as np
import importlib
from PIL import Image
from paddle.vision.transforms import ToTensor, Normalize
from python.det_preprocess import DetNormalizeImage, DetPadStride, DetPermute, DetResize
from .det_preprocess import DetNormalizeImage, DetPadStride, DetPermute, DetResize
def create_operators(params):
......@@ -54,14 +53,13 @@ def create_operators(params):
class UnifiedResize(object):
def __init__(self, interpolation=None, backend="cv2", return_numpy=True):
def __init__(self, interpolation=None, backend="cv2"):
_cv2_interp_from_str = {
'nearest': cv2.INTER_NEAREST,
'bilinear': cv2.INTER_LINEAR,
'area': cv2.INTER_AREA,
'bicubic': cv2.INTER_CUBIC,
'lanczos': cv2.INTER_LANCZOS4,
'random': (cv2.INTER_LINEAR, cv2.INTER_CUBIC)
'lanczos': cv2.INTER_LANCZOS4
}
_pil_interp_from_str = {
'nearest': Image.NEAREST,
......@@ -69,26 +67,13 @@ class UnifiedResize(object):
'bicubic': Image.BICUBIC,
'box': Image.BOX,
'lanczos': Image.LANCZOS,
'hamming': Image.HAMMING,
'random': (Image.BILINEAR, Image.BICUBIC)
'hamming': Image.HAMMING
}
def _cv2_resize(src, size, resample):
if isinstance(resample, tuple):
resample = random.choice(resample)
return cv2.resize(src, size, interpolation=resample)
def _pil_resize(src, size, resample, return_numpy=True):
if isinstance(resample, tuple):
resample = random.choice(resample)
if isinstance(src, np.ndarray):
pil_img = Image.fromarray(src)
else:
pil_img = src
def _pil_resize(src, size, resample):
pil_img = Image.fromarray(src)
pil_img = pil_img.resize(size, resample)
if return_numpy:
return np.asarray(pil_img)
return pil_img
return np.asarray(pil_img)
if backend.lower() == "cv2":
if isinstance(interpolation, str):
......@@ -96,12 +81,11 @@ class UnifiedResize(object):
# compatible with opencv < version 4.4.0
elif interpolation is None:
interpolation = cv2.INTER_LINEAR
self.resize_func = partial(_cv2_resize, resample=interpolation)
self.resize_func = partial(cv2.resize, interpolation=interpolation)
elif backend.lower() == "pil":
if isinstance(interpolation, str):
interpolation = _pil_interp_from_str[interpolation.lower()]
self.resize_func = partial(
_pil_resize, resample=interpolation, return_numpy=return_numpy)
self.resize_func = partial(_pil_resize, resample=interpolation)
else:
logger.warning(
f"The backend of Resize only support \"cv2\" or \"PIL\". \"f{backend}\" is unavailable. Use \"cv2\" instead."
......@@ -109,8 +93,6 @@ class UnifiedResize(object):
self.resize_func = cv2.resize
def __call__(self, src, size):
if isinstance(size, list):
size = tuple(size)
return self.resize_func(src, size)
......@@ -155,8 +137,7 @@ class ResizeImage(object):
size=None,
resize_short=None,
interpolation=None,
backend="cv2",
return_numpy=True):
backend="cv2"):
if resize_short is not None and resize_short > 0:
self.resize_short = resize_short
self.w = None
......@@ -170,18 +151,10 @@ class ResizeImage(object):
'both 'size' and 'resize_short' are None")
self._resize_func = UnifiedResize(
interpolation=interpolation,
backend=backend,
return_numpy=return_numpy)
interpolation=interpolation, backend=backend)
def __call__(self, img):
if isinstance(img, np.ndarray):
# numpy input
img_h, img_w = img.shape[:2]
else:
# PIL image input
img_w, img_h = img.size
img_h, img_w = img.shape[:2]
if self.resize_short is not None:
percent = float(self.resize_short) / min(img_w, img_h)
w = int(round(img_w * percent))
......
......@@ -17,7 +17,7 @@ import copy
import argparse
import yaml
from utils import logger
from . import logger
__all__ = ['get_config']
......
......@@ -16,7 +16,6 @@ import os
import sys
__dir__ = os.path.dirname(__file__)
sys.path.append(os.path.join(__dir__, ""))
sys.path.append(os.path.join(__dir__, "deploy"))
from typing import Union, Generator
import argparse
......@@ -33,12 +32,16 @@ from tqdm import tqdm
from prettytable import PrettyTable
import paddle
import ppcls.arch.backbone as backbone
from ppcls.utils import logger
from deploy.python.predict_cls import ClsPredictor
from deploy.utils.get_image_list import get_image_list
from deploy.utils import config
import ppcls.arch.backbone as backbone
from ppcls.utils import logger
import deploy
import ppcls
# 'deploy.python', 'deploy.utils', 'ppcls.arch', 'ppcls.utils'
# for building model with loading pretrained weights from backbone
logger.init_logger()
......
......@@ -33,7 +33,7 @@ setup(
package_dir={'paddleclas': ''},
include_package_data=True,
entry_points={
"console_scripts": ["paddleclas= paddleclas.paddleclas:main"]
"console_scripts": ["paddleclas=paddleclas.paddleclas:main"]
},
version='0.0.0',
install_requires=requirements,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册