All Projects → AgentMaker → PaTTA

AgentMaker / PaTTA

Licence: MIT license
A test times augmentation toolkit based on paddle2.0.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to PaTTA

PAPC
PAPC is a deep learning for point clouds platform based on pure PaddlePaddle
Stars: ✭ 55 (-48.11%)
Mutual labels:  paddlepaddle
PLSC
Paddle Large Scale Classification Tools,supports ArcFace, CosFace, PartialFC, Data Parallel + Model Parallel. Model includes ResNet, ViT, DeiT, FaceViT.
Stars: ✭ 113 (+6.6%)
Mutual labels:  paddlepaddle
deep-learning-platforms
deep-learning platforms,framework,data(深度学习平台、框架、资料)
Stars: ✭ 17 (-83.96%)
Mutual labels:  paddlepaddle
Visualdl
Deep Learning Visualization Toolkit(『飞桨』深度学习可视化工具 )
Stars: ✭ 4,258 (+3916.98%)
Mutual labels:  paddlepaddle
Paddle-PerceptualSimilarity
LPIPS metric on PaddlePaddle. pip install paddle-lpips
Stars: ✭ 22 (-79.25%)
Mutual labels:  paddlepaddle
Paddle-CLIP
A PaddlePaddle version implementation of CLIP of OpenAI.
Stars: ✭ 51 (-51.89%)
Mutual labels:  paddlepaddle
docs
Documentations for PaddlePaddle
Stars: ✭ 124 (+16.98%)
Mutual labels:  paddlepaddle
Paddle-SEQ
低代码序列数据处理框架,最短两行即可完成训练任务!
Stars: ✭ 13 (-87.74%)
Mutual labels:  paddlepaddle
Baidu Lane Segmentation
4th place solution in Baidu Autonomous Driving Lane Segmentation
Stars: ✭ 19 (-82.08%)
Mutual labels:  paddlepaddle
BookSource
《深度学习应用实战之PaddlePaddle》的源码
Stars: ✭ 17 (-83.96%)
Mutual labels:  paddlepaddle
Insightface
State-of-the-art 2D and 3D Face Analysis Project
Stars: ✭ 10,886 (+10169.81%)
Mutual labels:  paddlepaddle
Paddle-Image-Models
A PaddlePaddle version image model zoo.
Stars: ✭ 131 (+23.58%)
Mutual labels:  paddlepaddle
insight-face-paddle
End-to-end face detection and recognition system using PaddlePaddle.
Stars: ✭ 52 (-50.94%)
Mutual labels:  paddlepaddle
PP-YOLO
PaddlePaddle实现的目标检测模型PP-YOLO
Stars: ✭ 59 (-44.34%)
Mutual labels:  paddlepaddle
FSL-Mate
FSL-Mate: A collection of resources for few-shot learning (FSL).
Stars: ✭ 1,346 (+1169.81%)
Mutual labels:  paddlepaddle
QPT
[内测中]前向式Python环境快捷封装工具,快速将Python打包为EXE并添加CUDA、NoAVX等支持。
Stars: ✭ 308 (+190.57%)
Mutual labels:  paddlepaddle
PaddlePaddle-MTCNN
基于PaddlePaddle复现的MTCNN人脸检测模型
Stars: ✭ 23 (-78.3%)
Mutual labels:  paddlepaddle
InterpretDL
InterpretDL: Interpretation of Deep Learning Models,基于『飞桨』的模型可解释性算法库。
Stars: ✭ 121 (+14.15%)
Mutual labels:  paddlepaddle
Paddle-Adversarial-Toolbox
Paddle-Adversarial-Toolbox (PAT) is a Python library for Deep Learning Security based on PaddlePaddle.
Stars: ✭ 16 (-84.91%)
Mutual labels:  paddlepaddle
Paddle-Custom-Operators
Paddle Custom Operators.
Stars: ✭ 24 (-77.36%)
Mutual labels:  paddlepaddle

Patta

GitHub forks GitHub Repo stars GitHub Upload Python Package PaTTA Tests

Image Test Time Augmentation with Paddle2.0!

           Input
             |           # input batch of images 
        / / /|\ \ \      # apply augmentations (flips, rotation, scale, etc.)
       | | | | | | |     # pass augmented batches through model
       | | | | | | |     # reverse transformations for each batch of masks/labels
        \ \ \|/ / /      # merge predictions (mean, max, gmean, etc.)
             |           # output batch of masks/labels
           Output

Table of Contents

  1. Quick Start
  1. Transforms
  2. Aliases
  3. Merge modes
  4. Installation

Quick start (Default Transforms)

Test

We support that you can use the following to test after defining the network.

Segmentation model wrapping [docstring]:
import patta as tta
tta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')
Classification model wrapping [docstring]:
tta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())
Keypoints model wrapping [docstring]:
tta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)

Note: the model must return keypoints in the format Tensor([x1, y1, ..., xn, yn])

Predict

We support that you can use the following to test when you have the static model: *.pdmodel*.pdiparams*.pdiparams.info.

Load model [docstring]:
import patta as tta
model = tta.load_model(path='output/model')
Segmentation model wrapping [docstring]:
tta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')
Classification model wrapping [docstring]:
tta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())
Keypoints model wrapping [docstring]:
tta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)

Use-Tools

Segmentation model [docstring]:

Note: Usually, we recommend that the picture's shape is [**, **, 3].

We recommend modifying the file seg.py according to your own model.

python seg.py --model_path='output/model' \
                 --batch_size=16 \
                 --test_dataset='test.txt'

Note: Related to paddleseg

Advanced-Examples (DIY Transforms)

Custom transform:
# defined 2 * 2 * 3 * 3 = 36 augmentations !
transforms = tta.Compose(
    [
        tta.HorizontalFlip(),
        tta.Rotate90(angles=[0, 180]),
        tta.Scale(scales=[1, 2, 4]),
        tta.Multiply(factors=[0.9, 1, 1.1]),        
    ]
)

tta_model = tta.SegmentationTTAWrapper(model, transforms)
Custom model (multi-input / multi-output)
# Example how to process ONE batch on images with TTA
# Here `image`/`mask` are 4D tensors (B, C, H, W), `label` is 2D tensor (B, N)

for transformer in transforms: # custom transforms or e.g. tta.aliases.d4_transform() 
    
    # augment image
    augmented_image = transformer.augment_image(image)
    
    # pass to model
    model_output = model(augmented_image, another_input_data)
    
    # reverse augmentation for mask and label
    deaug_mask = transformer.deaugment_mask(model_output['mask'])
    deaug_label = transformer.deaugment_label(model_output['label'])
    
    # save results
    labels.append(deaug_mask)
    masks.append(deaug_label)
    
# reduce results as you want, e.g mean/max/min
label = mean(labels)
mask = mean(masks)

Optional Transforms

Transform Parameters Values
HorizontalFlip - -
VerticalFlip - -
HorizontalShift shifts List[float]
VerticalShift shifts List[float]
Rotate90 angles List[0, 90, 180, 270]
Scale scales
interpolation
List[float]
"nearest"/"linear"
Resize sizes
original_size
interpolation
List[Tuple[int, int]]
Tuple[int,int]
"nearest"/"linear"
Add values List[float]
Multiply factors List[float]
FiveCrops crop_height
crop_width
int
int
AdjustContrast factors List[float]
AdjustBrightness factors List[float]
AverageBlur kernel_sizes List[Union[Tuple[int, int], int]]
GaussianBlur kernel_sizes
sigma
List[Union[Tuple[int, int], int]]
Optional[Union[Tuple[float, float], float]]
Sharpen kernel_sizes List[int]

Aliases (Combos)

  • flip_transform (horizontal + vertical flips)
  • hflip_transform (horizontal flip)
  • d4_transform (flips + rotation 0, 90, 180, 270)
  • multiscale_transform (scale transform, take scales as input parameter)
  • five_crop_transform (corner crops + center crop)
  • ten_crop_transform (five crops + five crops on horizontal flip)

Merge-modes

Installation

PyPI:

# Use pip install PaTTA
$ pip install patta

or

# After downloading the whole dir
$ git clone https://github.com/AgentMaker/PaTTA.git
$ pip install PaTTA/

Run tests

python -m pytest

Contact us

Email : [email protected]
QQ Group : 1005109853

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].