From 457fa1409c0e6b08dd7485c0d749c35f807f351b Mon Sep 17 00:00:00 2001 From: Octavio Arriaga Date: Fri, 22 Apr 2022 11:12:00 +0200 Subject: [PATCH 1/5] Add version directly from core library --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 90385bc02..e91b65217 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import paz setup(name='pypaz', - version='0.1.7', + version=paz.__version__, description='Perception for Autonomous Systems', author='Octavio Arriaga', author_email='octavio.arriaga@dfki.de', From ac46a9adf96081020446c6997c4db3c36e1724c1 Mon Sep 17 00:00:00 2001 From: Octavio Arriaga Date: Mon, 25 Apr 2022 09:55:31 +0200 Subject: [PATCH 2/5] Rearrange import order --- paz/pipelines/keypoints.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/paz/pipelines/keypoints.py b/paz/pipelines/keypoints.py index 05a192f14..a6052be26 100644 --- a/paz/pipelines/keypoints.py +++ b/paz/pipelines/keypoints.py @@ -1,20 +1,15 @@ from tensorflow.keras.utils import get_file -from ..abstract import SequentialProcessor, Processor -from .. import processors as pr from .renderer import RenderTwoViews -from ..models import KeypointNet2D -from ..models import DetNet +from .image import PreprocessImageHigherHRNet +from .heatmaps import GetHeatmapsAndTags from .. import processors as pr from ..abstract import SequentialProcessor, Processor -from ..models import KeypointNet2D, HigherHRNet -from ..backend.image import get_affine_transform +from ..models import KeypointNet2D, HigherHRNet, DetNet + +from ..backend.image import get_affine_transform, flip_left_right from ..datasets import JOINT_CONFIG, FLIP_CONFIG -from .image import PreprocessImageHigherHRNet -from .heatmaps import GetHeatmapsAndTags -from .renderer import RenderTwoViews -from ..backend.image import flip_left_right class KeypointNetSharedAugmentation(SequentialProcessor): @@ -257,7 +252,7 @@ def call(self, image): image = self.draw_skeleton(image, keypoints) keypoints = self.extract_keypoints_locations(keypoints) return self.wrap(image, keypoints, scores) - + class HandPoseEstimation(Processor): """Hand keypoints detection pipeline. @@ -293,4 +288,4 @@ class MinimalHandPoseEstimation(HandPoseEstimation): """ def __init__(self): detect_hand = DetNet() - super(MinimalHandPoseEstimation, self).__init__(detect_hand) \ No newline at end of file + super(MinimalHandPoseEstimation, self).__init__(detect_hand) From b5d65cec12ad4030c841d53e908c25326105dfe4 Mon Sep 17 00:00:00 2001 From: Octavio Arriaga Date: Mon, 25 Apr 2022 10:37:43 +0200 Subject: [PATCH 3/5] Change image of 6D pose estimation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 30cf03dd8..f39ee380e 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ PAZ is used in the following examples (links to **real-time demos** and training |---------------------------|--------------------------| -----------------------| || | | -| [3D keypoint discovery](https://github.com/oarriaga/paz/tree/master/examples/discovery_of_latent_keypoints) | [Haar Cascade detector](https://github.com/oarriaga/paz/tree/master/examples/haar_cascade_detectors) | 6D pose estimation | +| [3D keypoint discovery](https://github.com/oarriaga/paz/tree/master/examples/discovery_of_latent_keypoints) | [Haar Cascade detector](https://github.com/oarriaga/paz/tree/master/examples/haar_cascade_detectors) | [6D pose estimation](https://github.com/oarriaga/paz/tree/master/examples/pix2pose) | |---------------------------|-----------------------| --------------------------| -| | | | +| | | | | [Implicit orientation](https://github.com/oarriaga/paz/tree/master/examples/implicit_orientation_learning) | [Attention (STNs)](https://github.com/oarriaga/paz/tree/master/examples/spatial_transfomer_networks) | [Eigenfaces](https://github.com/oarriaga/paz/blob/master/examples/eigenfaces/eigenfaces.py) | |---------------------------|-----------------------|-----------------| From bace6b483881c0651e6b6880bf497f62cfab9c77 Mon Sep 17 00:00:00 2001 From: Octavio Arriaga Date: Mon, 25 Apr 2022 11:08:21 +0200 Subject: [PATCH 4/5] Add minimal hand example --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f39ee380e..3359a912e 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ PAZ is used in the following examples (links to **real-time demos** and training |---------------------------|-----------------------|-----------------| || | | -|[Semantic segmentation](https://github.com/oarriaga/paz/tree/master/examples/semantic_segmentation) | | | +|[Semantic segmentation](https://github.com/oarriaga/paz/tree/master/examples/semantic_segmentation) | Hand pose estimation | | |---------------------------|-----------------------|-----------------| -| | | | +| | | | All models can be re-trained with your own data (except for Mask-RCNN, we are working on it [here](https://github.com/oarriaga/paz/tree/mask_rcnn)). From 0dc168fdf4ccef9de301398fcf986cdce33a4bc1 Mon Sep 17 00:00:00 2001 From: Octavio Arriaga Date: Mon, 25 Apr 2022 11:16:32 +0200 Subject: [PATCH 5/5] Add new models to README --- README.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3359a912e..c51c3ffd5 100644 --- a/README.md +++ b/README.md @@ -189,26 +189,21 @@ The following models are implemented in PAZ and they can be trained with your ow |[Detection and Segmentation](https://github.com/oarriaga/paz/tree/mask_rcnn/examples/mask_rcnn) |[MaskRCNN (in progress)](https://arxiv.org/abs/1703.06870) | |[Keypoint estimation](https://github.com/oarriaga/paz/blob/master/paz/models/keypoint/hrnet.py)|[HRNet](https://arxiv.org/abs/1908.07919)| |[Semantic segmentation](https://github.com/oarriaga/paz/blob/master/paz/models/segmentation/unet.py)|[U-NET](https://arxiv.org/abs/1505.04597)| -|[6D Pose estimation](https://github.com/oarriaga/paz/blob/master/paz/models/keypoint/keypointnet.py) |[KeypointNet2D](https://arxiv.org/abs/1807.03146) | +|[6D Pose estimation](https://github.com/oarriaga/paz/blob/master/paz/models/keypoint/keypointnet.py) |[Pix2Pose](https://arxiv.org/abs/1908.07433) | |[Implicit orientation](https://github.com/oarriaga/paz/blob/master/examples/implicit_orientation_learning/model.py) |[AutoEncoder](https://arxiv.org/abs/1902.01275) | |[Emotion classification](https://github.com/oarriaga/paz/blob/master/paz/models/classification/xception.py) |[MiniXception](https://arxiv.org/abs/1710.07557) | |[Discovery of Keypoints](https://github.com/oarriaga/paz/blob/master/paz/models/keypoint/keypointnet.py) |[KeypointNet](https://arxiv.org/abs/1807.03146) | |[Keypoint estimation](https://github.com/oarriaga/paz/blob/master/paz/models/keypoint/keypointnet.py) |[KeypointNet2D](https://arxiv.org/abs/1807.03146)| |[Attention](https://github.com/oarriaga/paz/blob/master/examples/spatial_transfomer_networks/STN.py) |[Spatial Transformers](https://arxiv.org/abs/1506.02025) | -|[Object detection](https://github.com/oarriaga/paz/blob/master/paz/models/detection/haar_cascade.py) |[HaarCascades](https://link.springer.com/article/10.1023/B:VISI.0000013087.49260.fb) | +|[Object detection](https://github.com/oarriaga/paz/blob/master/paz/models/detection/haar_cascade.py) |[HaarCascades](https://link.springer.com/article/10.1023/B:VISI.0000013087.49260.fb) | +|[Hand pose estimation](https://github.com/oarriaga/paz/blob/refactor_readme/paz/models/keypoint/detnet.py) |[DetNet](https://vcai.mpi-inf.mpg.de/projects/2020-cvpr-hands/) | + ## Motivation Even though there are multiple high-level computer vision libraries in different deep learning frameworks, I felt there was not a consolidated deep learning library for robot-perception in my framework of choice (Keras). -### Why Keras over other frameworks/libraries? -In simple terms, I have always felt the API of Keras to be more mature. -It allowed me to express my ideas at the level of complexity that was required. -Keras was often misinterpreted as an inflexible or a beginners framework; however, once you learn to abstract `Layer`, `Callbacks`, `Loss`, `Metrics` or `Model`, the API remained intact and helpful for more complicated ideas. -It allowed me to automate and write down experiments with no extra boilerplate. -Furthermore, one could always have created a custom training loop. - As a final remark, I would like to mention, that I feel that we might tend to forget the great effort and emotional status behind every (open-source) project. -I feel it's easy to blurry a company name with the individuals behind their project, and we forget that there is someone feeling our criticism and our praise. +I feel it's easy to blurry a company name with the individuals behind their work, and we forget that there is someone feeling our criticism and our praise. Therefore, whatever good code you can find here, is all dedicated to the software-engineers and contributors of open-source projects like Pytorch, Tensorflow and Keras. You put your craft out there for all of us to use and appreciate, and we ought first to give you our thankful consideration.