Browse Source

服务化

tuon 1 year ago
parent
commit
b79013bbc9

+ 3 - 1
.gitignore

@@ -117,4 +117,6 @@ package-lock.json
 test_tipc/web/models/
 
 # EISeg
-EISeg/eiseg/config/setting.txt
+EISeg/eiseg/config/setting.txt
+
+/outputs

+ 2 - 0
main.py

@@ -30,7 +30,9 @@ def seg():
     file.save(file_path)
 
     predict.seg(file_path, save_dir)
+    return '{"code": 1}'
 
 
 if __name__ == '__main__':
+    predict.load_model()
     app.run(port=20201, host="0.0.0.0", debug=True)

BIN
outputs/20211009105824_alpha.png


BIN
outputs/20211009105824_rgba.png


BIN
outputs/cat_20_alpha.png


BIN
outputs/cat_20_rgba.png


BIN
outputs/demo111_alpha.png


BIN
outputs/demo111_rgba.png


BIN
outputs/head_120_alpha.png


BIN
outputs/head_120_rgba.png


+ 1 - 1
ppmatting/core/__init__.py

@@ -1,6 +1,6 @@
 from .val import evaluate
 from .val_ml import evaluate_ml
 from .train import train
-from .predict import predict
+from .predict import predict,load
 from .predict_video import predict_video
 from .bg_replace_video import bg_replace_video

+ 7 - 2
ppmatting/core/predict.py

@@ -107,6 +107,11 @@ def preprocess(img, transforms, trimap=None):
     return data
 
 
+def load(model, model_path):
+    utils.utils.load_entire_model(model, model_path)
+    model.eval()
+
+
 def predict(model,
             model_path,
             transforms,
@@ -127,8 +132,8 @@ def predict(model,
         trimap_list (list, optional): A list of trimap of image_list. Default: None.
         save_dir (str, optional): The directory to save the visualized results. Default: 'output'.
     """
-    utils.utils.load_entire_model(model, model_path)
-    model.eval()
+#    utils.utils.load_entire_model(model, model_path)
+#    model.eval()
     nranks = paddle.distributed.get_world_size()
     local_rank = paddle.distributed.get_rank()
     if nranks > 1:

+ 27 - 3
tools/predict.py

@@ -28,7 +28,7 @@ manager.BACKBONES._components_dict.clear()
 manager.TRANSFORMS._components_dict.clear()
 
 import ppmatting
-from ppmatting.core import predict
+from ppmatting.core import predict, load
 from ppmatting.utils import get_image_list, Config, MatBuilder
 
 current_path = os.path.abspath(os.path.dirname(__file__))
@@ -115,7 +115,10 @@ def get_rel_path(path: str):
     return "{}/../{}".format(current_path, path)
 
 
-def seg(img_path: str, save_dir: str):
+global model, transforms
+
+
+def load_model():
     cfg = Config(get_rel_path("configs/quick_start/ppmattingv2-stdc1-human_512.yml"))
     builder = MatBuilder(cfg)
 
@@ -123,9 +126,30 @@ def seg(img_path: str, save_dir: str):
     paddleseg.utils.show_cfg_info(cfg)
     paddleseg.utils.set_device("cpu")
 
+    global model, transforms
     model = builder.model
+    model_path = get_rel_path("models/ppmatting-hrnet_w18-human_512.pdparams")
+
+    paddleseg.utils.show_env_info()
+    paddleseg.utils.show_cfg_info(cfg)
+    paddleseg.utils.set_device("cpu")
+
     transforms = ppmatting.transforms.Compose(builder.val_transforms)
 
+    load(model, model_path)
+
+
+def seg(img_path: str, save_dir: str):
+    # cfg = Config(get_rel_path("configs/quick_start/ppmattingv2-stdc1-human_512.yml"))
+    # builder = MatBuilder(cfg)
+
+    # paddleseg.utils.show_env_info()
+    # paddleseg.utils.show_cfg_info(cfg)
+    # paddleseg.utils.set_device("cpu")
+
+    # model = builder.model
+    # transforms = ppmatting.transforms.Compose(builder.val_transforms)
+
     image_list, image_dir = get_image_list(img_path)
     logger.info('Number of predict images = {}'.format(len(image_list)))
 
@@ -139,7 +163,7 @@ def seg(img_path: str, save_dir: str):
         image_dir=image_dir,
         trimap_list=None,
         save_dir=save_dir,
-        fg_estimate=args.fg_estimate)
+        fg_estimate=True)
 
 
 if __name__ == '__main__':

BIN
uploads/20211009105824.jpg


BIN
uploads/cat_20.png


BIN
uploads/demo111.jpeg


BIN
uploads/head_120.png