Documentation, Tutorials and examples
Tiny3D is a next generation of 3D object detection service production system.
Tiny3D solution embodies four transformative features:
- A Performance Optimization Engine for 3d object detection online/offline inference services product performance optimization. Through this engine users can easily get a high accuracy and high speed 3d object detection service/competetion result in a Data-Centeric AI way. Our Performance Optimization Engine can easily be a Plug-in to any machine learning system.
- One line of code to complete dataset editing, model training, model testing, model compression, model deployment.
- One line of code to Fine-grained data editing on different size datasets or single data.
- A user-friendly web interface for a developer team to product a 3d object detection service pictorially, in a low-code fashion. [currently not supported]
from tiny3d.data import dataset_edit
dataset_edit(dataset_input_path, dataset_output_path, denoise_method=None,
simulation_method='Snow', filter_method=None,
augmentation_method=None, qualification_method=None)
from tiny3d.deephub import Pointpillars
from tiny3d.engine import build_dataset, engine, fit
model = Pointpillars()
model = engine(model)
dataset_train = build_dataset(train_dataset_path)
dataset_val = build_dataset(val_dataset_path)
fit(dataset_train=dataset_train, dataset_val=dataset_val, torch_model=model)
from tiny3d.model.model_compressor import prune, quant
prune(model)
quant(model)
from tiny3d.model.model_deployor import deploy
backend_file = deploy(model, backend='tensorrt', output_file=output_model_path)
from tiny3d.model.model_server import payload
PyTorch_REST_API_URL = 'http://127.0.0.1:1234/'
url = PyTorch_REST_API_URL + 'transfer'
# Submit the request
requests.post(url, files=payload).json()
# obtain the potential bad case, you can also specify a real world bad case data path.
from tiny3d.engine import inference
from tiny3d.data.data_qualificator import lidar_qualificate
bad_case_data_path = './'
prediction = inference(model, dataset)
bad_case = lidar_qualificate(dataset, prediction, Topk=100, save_path=bad_case_data_path)
# Visualization
from tiny3d.data.data_visulizator import visualize
visualize(bad_case_data_path)
step-2: Edit the dataset to get more bad case data to imporove the 3d object detection service accuracy on bad case data in real world case.
from tiny3d.data import dataset_edit
dataset_edit(bad_case_data_path, dataset_output_path, denoise_method=None,
simulation_method='Snow, Rain', filter_method=None,
augmentation_method=None, qualification_method=None)
- lidar data loading
- lidar data sampling
- lidar data preprocessing/cleaning
- lidar data denoising
- lidar data outlier detection
- lidar data augmentation
- lidar data simulation
- model compression
- model deploy and serve
- model ensemble
- training
- testing
- bad case visulization
- lidar data selection
- lidar data robustion
- lidar data privacy
- lidar data domain adptation
- lidar data auto-labeling
- data drift emergency