diff --git a/modules/image/keypoint_detection/openpose_body_estimation/module.py b/modules/image/keypoint_detection/openpose_body_estimation/module.py index bccd3c8108e98022a18a0579019b9ebe5f2956fc..248999312446e84c6c2fe41d7bf4b1d2fd7c0533 100644 --- a/modules/image/keypoint_detection/openpose_body_estimation/module.py +++ b/modules/image/keypoint_detection/openpose_body_estimation/module.py @@ -15,7 +15,6 @@ import os import time import copy -import base64 import argparse from typing import Union from collections import OrderedDict @@ -26,7 +25,7 @@ import paddle.nn as nn import numpy as np from paddlehub.module.module import moduleinfo, runnable, serving import paddlehub.vision.transforms as T -import openpose_body_estimation.processor as P +from . import processor as P @moduleinfo( @@ -36,7 +35,7 @@ import openpose_body_estimation.processor as P author_email="", summary="Openpose_body_estimation is a body pose estimation model based on Realtime Multi-Person 2D Pose \ Estimation using Part Affinity Fields.", - version="1.0.0") + version="1.1.0") class BodyPoseModel(nn.Layer): """ BodyposeModel diff --git a/modules/image/keypoint_detection/openpose_body_estimation/processor.py b/modules/image/keypoint_detection/openpose_body_estimation/processor.py index aa17240e5281bebae721f3739000cf9f1afd55ba..ba8ef998b437b38f910d3e909f73fd052dbf76b1 100644 --- a/modules/image/keypoint_detection/openpose_body_estimation/processor.py +++ b/modules/image/keypoint_detection/openpose_body_estimation/processor.py @@ -1,11 +1,10 @@ -import os import base64 import math from typing import Callable import cv2 import numpy as np -from scipy.ndimage.filters import gaussian_filter +from scipy.ndimage import gaussian_filter class PadDownRight: diff --git a/modules/image/keypoint_detection/openpose_body_estimation/readme.md b/modules/image/keypoint_detection/openpose_body_estimation/readme.md index 1ea0b295a357b4a3dc9939c10aeb59b907770f14..b64569310636e8e2ce13119d86e8ad29360fda44 100644 --- a/modules/image/keypoint_detection/openpose_body_estimation/readme.md +++ b/modules/image/keypoint_detection/openpose_body_estimation/readme.md @@ -153,8 +153,10 @@ * 1.0.0 初始发布 - + +* 1.1.0 + * ```shell - $ hub install openpose_body_estimation==1.0.0 + $ hub install openpose_body_estimation==1.1.0 ``` diff --git a/modules/image/keypoint_detection/openpose_body_estimation/test.py b/modules/image/keypoint_detection/openpose_body_estimation/test.py new file mode 100644 index 0000000000000000000000000000000000000000..7b4c13f6ebe2b1112194e52505bc342db38a50b4 --- /dev/null +++ b/modules/image/keypoint_detection/openpose_body_estimation/test.py @@ -0,0 +1,77 @@ +import os +import shutil +import unittest + +import cv2 +import requests +import paddlehub as hub + + +os.environ['CUDA_VISIBLE_DEVICES'] = '0' + + +class TestHubModule(unittest.TestCase): + @classmethod + def setUpClass(cls) -> None: + img_url = 'https://ai-studio-static-online.cdn.bcebos.com/7799a8ccc5f6471b9d56fb6eff94f82a08b70ca2c7594d3f99877e366c0a2619' + if not os.path.exists('tests'): + os.makedirs('tests') + response = requests.get(img_url) + assert response.status_code == 200, 'Network Error.' + with open('tests/test.jpg', 'wb') as f: + f.write(response.content) + cls.module = hub.Module(name="openpose_body_estimation") + + @classmethod + def tearDownClass(cls) -> None: + shutil.rmtree('tests') + shutil.rmtree('inference') + shutil.rmtree('openpose_body') + + def test_predict1(self): + results = self.module.predict( + img='tests/test.jpg', + visualization=False + ) + kps = results['candidate'].tolist() + self.assertIsInstance(kps, list) + + def test_predict2(self): + results = self.module.predict( + img=cv2.imread('tests/test.jpg'), + visualization=False + ) + kps = results['candidate'].tolist() + self.assertIsInstance(kps, list) + + def test_predict3(self): + results = self.module.predict( + img=cv2.imread('tests/test.jpg'), + visualization=True + ) + kps = results['candidate'].tolist() + self.assertIsInstance(kps, list) + + def test_predict4(self): + self.assertRaises( + AttributeError, + self.module.predict, + img='no.jpg' + ) + + def test_predict5(self): + self.assertRaises( + AttributeError, + self.module.predict, + img=['test.jpg'] + ) + + def test_save_inference_model(self): + self.module.save_inference_model('./inference/model') + + self.assertTrue(os.path.exists('./inference/model/openpose_body_estimation.pdmodel')) + self.assertTrue(os.path.exists('./inference/model/openpose_body_estimation.pdiparams')) + + +if __name__ == "__main__": + unittest.main()