Metadata-Version: 2.1
Name: vkit-nightly
Version: 22.902.1320
Summary: A Visionary Toolkit Made With Peace & Love
Home-page: https://github.com/vkit-x/vkit
Author: Hunt Zhan
Author-email: huntzhan@vkit-x.com
License: Dual-licensed
Requires-Python: <3.11,>=3.8.0
Description-Content-Type: text/markdown
License-File: LICENSE.txt
License-File: LICENSE_COMMERCIAL.txt
License-File: LICENSE_SSPL.txt
Requires-Dist: pyclipper (>=1.2.1)
Requires-Dist: Shapely (<2.0,>=1.8.1)
Requires-Dist: intervaltree (>=3.0.0)
Requires-Dist: pytz (>=2021.3)
Requires-Dist: Faker (>=13.3.1)
Requires-Dist: freetype-py (>=2.1.0)
Requires-Dist: python-barcode (>=0.14.0)
Requires-Dist: rectpack (~=0.2.2)
Requires-Dist: psutil (>=5.9.1)
Requires-Dist: attrs (>=21.3.0)
Requires-Dist: cattrs (>=22.1.0)
Requires-Dist: fireball (>=0.9.3)
Requires-Dist: iolite (>=22.2.0)
Requires-Dist: opencv-python-headless (>=4.5.1.48) ; python_version < "3.10"
Requires-Dist: numpy (>=1.21.0) ; python_version < "3.10"
Requires-Dist: Pillow (>=8.0.0) ; python_version < "3.10"
Requires-Dist: opencv-python-headless (>=4.5.4.58) ; python_version >= "3.10"
Requires-Dist: numpy (>=1.21.2) ; python_version >= "3.10"
Requires-Dist: Pillow (>=8.3.2) ; python_version >= "3.10"
Provides-Extra: dev
Requires-Dist: build (>=0.2.1) ; extra == 'dev'
Requires-Dist: pytest (>=6.1.2) ; extra == 'dev'
Requires-Dist: pytest-parallel (>=0.1.1) ; extra == 'dev'
Requires-Dist: yapf (>=0.30.0) ; extra == 'dev'
Requires-Dist: flake8 (>=3.8.4) ; extra == 'dev'
Requires-Dist: pdoc3 (>=0.9.2) ; extra == 'dev'
Requires-Dist: twine (>=3.2.0) ; extra == 'dev'
Requires-Dist: ipython (>=7.20.0) ; extra == 'dev'
Requires-Dist: pdbpp (>=0.10.2) ; extra == 'dev'
Requires-Dist: rope (>=0.18.0) ; extra == 'dev'

# Overview

## Introduction

<div align="center">

<img alt="logo.svg" width="230" src="https://vkit.vkit-x.com/img/logo.svg" />

[![license](https://img.shields.io/badge/license-dual--licensed-green?color=2fbf43?link=https://github.com/vkit-x/vkit/blob/master/LICENSE.txt)](https://github.com/vkit-x/vkit/blob/master/LICENSE.txt)
[![schedule](https://github.com/vkit-x/vkit/actions/workflows/schedule.yaml/badge.svg)](https://github.com/vkit-x/vkit/actions/workflows/schedule.yaml)

</div>

**NOTICE: Documentation is out-of-date. Will be updated in version `22.3.1`.**

[vkit](https://github.com/vkit-x/vkit) is a toolkit designed for CV (Computer Vision) developers, especially targeting document image analysis and optical character recognition workloads:

* Supporting rich data augmentation strategies:
  * Common [photometric distortion](https://vkit.vkit-x.com/feature/photometric-distortion/interface) strategies such as various colorspace manipulation methods and image noise related techniques
  * ⭐ Common [geometric distortion](https://vkit.vkit-x.com/feature/geometric-distortion/interface) strategies such as various affine transformations and non-linear transformations (e.g. [similarity MLS](https://vkit.vkit-x.com/feature/geometric-distortion/mls#similarity_mls), [camera-model based 3D surface curving](https://vkit.vkit-x.com/feature/geometric-distortion/camera#camera_cubic_curve), [folding effect](https://vkit.vkit-x.com/feature/geometric-distortion/camera#camera_plane_line_fold), etc.)
  * ⭐ Simultaneously transforming labeled data while performing geometric distortion. As an example, while an image was rotated, vkit will rotate the corresponding positional label (e.g. image mask, polygons) at the same time without manual intervention.
* Supporting comprehensive data type encapsulation and the corresponding visualization:
  * [Image type](https://vkit.vkit-x.com/utility/image) (encapsulation based on PIL, supporting reading/writing various image file types)
  * [Labeled data type](https://vkit.vkit-x.com/utility/label): mask, score map, box, polygon and so on
* Industrial-grade code quality:
  * Auto-completion and type hint friendly, making it practical to be used in production
  * Matured package and dependency management
  * Automated code style enforcement (based on flake8) and static type checker (based on pyright)

Remarks: ⭐ Highlights (features that other similar projects have not, or not elegantly supported)

### Demo!

[camera_cubic_curve](https://vkit.vkit-x.com/feature/geometric-distortion/camera#camera_cubic_curve):

<div align="center">
    <img alt="home_page_camera_cubic_curve.gif" width="230" src="https://vkit.vkit-x.com/homepage/home_page_camera_cubic_curve.gif" />
</div>

[rotate](https://vkit.vkit-x.com/feature/geometric-distortion/affine#rotate):

<div align="center">
    <img alt="home_page_camera_cubic_curve.gif" width="230" src="https://vkit.vkit-x.com/homepage/home_page_rotate.gif" />
</div>

## Objectives

The author, as a CV/NLP engineer, wishes to bring the convenience to developers in the aforementioned disciplines through this project:

* To free developers from the tedious data governance tasks, therefore more time can be spent on actual high-value work such as the data governance strategies, model designing and fine tuning
* To consolidate common data augmentation techniques, aiming to aid document image analysis and recognition researches, and their industrial practices. The author wishes to make the "secret sauce", i.e. the industrial grade data augmentation methods, available to public
* To construct open-source industrial document image analysis and recognition solutions powered by vkit:
  * Distortion correction
  * Hyper resolution
  * OCR
  * Layout Analysis
  * ...

## Installation

CPython version requirement: 3.8 or above

To install the stable release:

```bash
pip install vkit
```

To install the nightly version (tracking the latest commit in main branch):

```bash
pip install vkit-nightly
```

(click [here](https://vkit-nightly.vkit-x.com/) to visit the nightly documentation)

## Recent release plans

* 22.3.0
  - [ ] Support dataset pipeline for OCR text detection
  - [ ] Support dataset pipeline for OCR text recognition
* 22.3.1
  - [ ] Refactoring
  - [ ] Improve documentation
  - [ ] Release resources for pipelines

## Recent stable releases

* 22.2.0
  - Improve element classes design.
  - Improve element visualization.
  - Support dataset pipeline for OCR text detection (`adaptive_scaling`)
  - Support CPython 3.10
* 22.1.0
  - Use the CalVer versioning convention
  - Complete CI testing pipeline
  - Redesign project structure
  - Support font rendering
  - Add more data augmentation methods
  - Support data augmentation policy
* 0.1.2
  - Remove strict dependency versioning
* 0.1.1
  - User manual (English version)
  - GitHub Page for serving user manual
* 0.1.0
  - Support CPython 3.9
  - Support CPython 3.8
  - Image type encapsulation
  - Labeled data type encapsulation
  - Common photometric distortion strategies
  - Common geometric distortion strategies
  - User manual

## Communication

* Question, or requesting for new feature: [Discussions](https://github.com/vkit-x/vkit/discussions)
* Bug reporting: [Issues](https://github.com/vkit-x/vkit/issues)

Your kind understanding will be greatly appreciated if the response is slow on these forums as the author is busy with his work while he cannot devote his full time into this project
