Skip to content

Commit d03f561

Browse files
authored
Updating docs for preview release (microsoft#520)
1 parent 1627fa7 commit d03f561

10 files changed

+189
-34
lines changed

.nvmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
10.15.1

CONTRIBUTING.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
We welcome [issues](https://github.com/Microsoft/VoTT/issues) and [pull requests](https://github.com/Microsoft/VoTT/pulls) into the project. We ask that you follow these simple guidelines:
2+
3+
### Issues
4+
5+
- Look for duplicate issues & comment on thread if experiencing something similar
6+
- Fill in template information (platform, OS, version, screenshots, etc.)
7+
8+
### Pull Requests
9+
10+
1. Find an issue to work on, or create a new one
11+
2. Fork repo, make sure you have latest changes from `v2`
12+
3. Create branch following naming convention: `git checkout -b issue-<###>-<short-description>`.
13+
4. Write code
14+
5. Add unit tests
15+
6. Verify linting and unit tests by running `npm test`
16+
7. Update docs if needed
17+
8. Rebase on `v2` and resolve conflicts
18+
9. Submit PR to `v2` branch
19+
20+
Try to keep PRs small to decrease the time required to review and merge.
21+
22+
### Style
23+
24+
1. This repo uses [EditorConfig](https://editorconfig.org/) to maintain consistent styles across multiple platforms and IDEs., please refer to
25+
this [guide](docs/STYLE.md) for more information.

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License
2+
3+
Copyright (c) 2016-2019 Microsoft Commercial Software Engineering
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

README.md

+142-34
Original file line numberDiff line numberDiff line change
@@ -2,63 +2,171 @@
22

33
[![Build Status](https://dev.azure.com/msft-vott/VoTT/_apis/build/status/VoTT-CI?branchName=v2)](https://dev.azure.com/msft-vott/VoTT/_build/latest?definitionId=6?branchName=v2) [![Code Coverage](https://codecov.io/gh/Microsoft/VoTT/branch/v2/graph/badge.svg)](https://codecov.io/gh/Microsoft/VoTT)
44

5-
[CODE COMPLEXITY](https://microsoft.github.io/VoTT/)
5+
[Current Complexity Analysis Report](https://microsoft.github.io/VoTT/)
66

7-
The `v2` branch is a complete reboot of the original VoTT, and currently don't share git histories. The purpose of `v2` is to create a more extensible version of the original application while leveraging more recent frameworks such as React/Redux.
7+
## **NOTE:** this is a Preview release of VoTT. Features may be incomplete or behave incorrectly (bugs! 🐞). [Feedback is appreciated!](https://github.com/Microsoft/VoTT/issues)
8+
----------
89

9-
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). For available scripts and other related info, see [our docs](docs/REACTAPP.md).
10+
An open source annotation and labeling tool for image and video assets.
1011

11-
## Contributing Guidelines
12+
VoTT is a React + Redux Web application, written in [TypeScript](https://github.com/Microsoft/TypeScript). This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
1213

13-
We welcome [issues](https://github.com/Microsoft/VoTT/issues) and [pull requests](https://github.com/Microsoft/VoTT/pulls) into the project. We ask that you follow these simple guidelines:
14+
Features include:
1415

15-
### Issues
16+
* The ability to label images or video frames
17+
* Extensible model for importing data from local or cloud storage providers
18+
* Extensible model for exporting labeled data to local or cloud storage providers
1619

17-
- Look for duplicate issues & comment on thread if experiencing something similar
18-
- Fill in template information (platform, OS, version, screenshots, etc.)
20+
VoTT helps facilitate an end-to-end machine learning pipeline:
1921

20-
### Pull Requests
22+
![alt text](docs/images/ml-workflow.png "Machine Learning Workflow")
2123

22-
1. Find an issue to work on, or create a new one
23-
2. Fork repo, make sure you have latest changes from `v2`
24-
3. Create branch following naming convention: `git checkout -b issue-<###>-<short-description>`.
25-
4. Write code
26-
5. Add unit tests
27-
6. Verify linting and unit tests by running `npm test`
28-
7. Update docs if needed
29-
8. Rebase on `v2` and resolve conflicts
30-
9. Submit PR to `v2` branch
24+
## Table of Contents
25+
<!-- generated using: https://www.npmjs.com/package/markdown-toc-->
26+
<!-- command: `markdown-toc -i README.md`-->
3127

32-
Try to keep PRs small to decrease the time required to review and merge
28+
<!-- toc -->
3329

34-
### Style
30+
- [Getting Started](#getting-started)
31+
* [Running VoTT](#running-vott)
32+
+ [Download and install a release package for your platform (recommended)](#download-and-install-a-release-package-for-your-platform-recommended)
33+
+ [Build and run from source](#build-and-run-from-source)
34+
- [V1 & V2](#v1--v2)
35+
* [Where is V1?](#where-is-v1)
36+
- [Using VoTT](#using-vott)
37+
* [Creating Connections](#creating-connections)
38+
* [Creating a New Project](#creating-a-new-project)
39+
+ [Project Settings](#project-settings)
40+
- [Security Tokens](#security-tokens)
41+
* [Labeling an Image](#labeling-an-image)
42+
* [Labeling a Video](#labeling-a-video)
43+
* [Exporting Labels](#exporting-labels)
44+
- [Collaborators](#collaborators)
45+
- [Contributing to VoTT](#contributing-to-vott)
3546

36-
1. This repo use EditorConfig to maintain consistent style, please refer to
37-
this [guide](docs/STYLE.md) for more information.
47+
<!-- tocstop -->
3848

39-
### Code complexity
49+
# Getting Started
4050

41-
1. You can view the latest code analysis report [here](https://microsoft.github.io/VoTT/)
42-
1. More info about the analysi tool [here](docs/PLATO.md)
51+
## Running VoTT
4352

44-
## Usage
53+
VoTT can be installed as as native application or run from source.
4554

46-
For those who just want to use VoTT rather than contributing to it, you have two options:
55+
### Download and install a release package for your platform (recommended)
4756

48-
### Download and install release package for your environment (recommended)
57+
VoTT is available for Windows, Linux and OSX. Download the appropriate platform package/installer from [GitHub Releases](https://github.com/Microsoft/VoTT/releases). `v2` releases will be prefixed by `2.x`.
4958

50-
Find our [most recent release](https://github.com/Microsoft/VoTT/releases), download and run. `v2` releases will be prefixed by `2.x`.
59+
### Build and run from source
5160

52-
#### Clone repo and run from terminal using `npm`
53-
54-
Run the following commands in your terminal:
61+
VoTT requires [NodeJS (>= 10.x, Dubnium) and NPM](https://github.com/nodejs/Release)
5562

5663
```bash
57-
git clone https://github.com/Microsoft/VoTT
64+
git clone https://github.com/Microsoft/VoTT.git
5865
cd VoTT
5966
git checkout v2
6067
npm install
6168
npm start
6269
```
70+
**Important:** When running locally with `npm`, both the electron and the browser versions of the application will start. One major difference is that electron can access the local file system.
71+
72+
# V1 & V2
73+
74+
VoTT V2 is a refactor and refresh of the original Electron-based application. As the usage and demand for VoTT grew, V2 was started as an initiative to improve and make VoTT more extensible and maintainable. In addition, V2 uses more modern development frameworks and patterns (React, Redux) and is authored in TypeScript.
75+
76+
A number of code quality practices have been adopted, including:
77+
78+
* Code Linting
79+
* Unit tests & mocks (Jest, Enzyme)
80+
* [Code coverage](https://codecov.io/gh/Microsoft/VoTT) ([CodeCov.io](https://codecov.io/))
81+
* [Complexity analysis](https://microsoft.github.io/VoTT/) ([Plato](docs/PLATO.md))
82+
83+
All V2 efforts are on the [v2](https://github.com/Microsoft/VoTT/tree/v2) branch. The git history for V1 and V2 have significantly diverged; when V2 is complete, master will be updated to reflect V2.
84+
85+
## Where is V1?
86+
87+
Master still reflects The V1 codebase - any fixes or updates can still be made there. Likewise, all 1.x releases can still be found under [GitHub Releases](https://github.com/Microsoft/VoTT/releases).
88+
89+
# Using VoTT
90+
91+
## Creating Connections
92+
93+
VoTT is a 'Bring Your Own Data' (BYOD) application. In VoTT, connections are used to configure and manage source (assets to labeled) and target (where labels should be exported to) data sources.
94+
95+
Connections can be setup and shared across projects. Connections have been designed using an extensible provider model -- new source/target provides can easily be added. Currently, VOTT supports:
96+
97+
* Azure Blob Storage
98+
* [Bing Image Search](https://azure.microsoft.com/en-us/services/cognitive-services/bing-image-search-api/)
99+
* Local File System
100+
101+
To create a new connection, click the 'New Connection' icon, in the left hand navigation bar:
102+
103+
![alt text](docs/images/new-connection.png "New Connection")
104+
105+
## Creating a New Project
106+
107+
Labeling workflows in VoTT revolve around projects - a collection of configuration and settings that are persisted. Projects define a source and target connection, as well as project metadata - including tags to be used when labeling source assests.
108+
109+
As mentioned above, all projects require a source and target connection:
110+
111+
* **Source Connection** - Where to pull assests from
112+
* **Target Connection** - Where project files and exported data are stored
113+
114+
![alt text](docs/images/new-project.png "New Project")
115+
116+
### Project Settings
117+
118+
Project settings can be modified after a project has been created, by clicking on the 'Project Setting' icon in the left hand navigation bar.
119+
120+
#### Security Tokens
121+
122+
Some project settings can include sensitive values, such as API keys or other shared secrets. Each project has will generate a security token that can be used to encrypt/decrypt sensitive project settings.
123+
124+
Security tokens can be found under 'Application Settings' by clicking the gear icon in the lower corner of the left hand navigation bar.
125+
126+
**NOTE:** Project files can be shared among multiple people. In order to share sensitive project settings, *all parties must have/use the same security token.*
127+
128+
The token name and key *must* match in order for sensitive values to successfully be decrypted.
129+
130+
![alt text](docs/images/security-tokens.png "Security Tokens")
131+
132+
## Labeling an Image
133+
134+
When a project is created or opened, the main tag editor window opens. The tag editor consists of of two main parts:
135+
136+
* A preview pane that contains a scrollable list of images and videos, from the source target
137+
* The main editor tool that allows tags to be applied to drawn regions
138+
139+
Selecting an image/video on the left will load that image in the main tag editor. Regions can then be drawn on the loaded asset and a tag can be applied.
140+
141+
As desired, repeat this process for any additional assets.
142+
143+
![alt text](docs/images/label-image.png "Image Tagging")
144+
145+
## Labeling a Video
146+
147+
Coming soon!
148+
149+
## Exporting Labels
150+
151+
Once assets have been labeled, they can be exported into a variety of formats:
152+
153+
* [Azure Custom Vision Service](https://azure.microsoft.com/en-us/services/cognitive-services/custom-vision-service/)
154+
* TensorFlow (Pascal VOC and TFRecords)
155+
* VoTT (generic JSON schema)
156+
157+
In addition, all assets can be exported or only visisted/tagged assets can be exported. Click on the 'Export' icon in the left hand navigation. Select the appropriate export provider and which assets to export.
158+
159+
![alt text](docs/images/export-labels.png "Export Labels")
160+
161+
162+
# Collaborators
163+
164+
VoTT was originally developed by the [Commercial Software Engineering (CSE) group at Microsoft](https://www.microsoft.com/developerblog/), in Israel.
165+
166+
# Contributing to VoTT
167+
168+
There are many ways to contribute to VoTT -- please review our [contribution guidelines](CONTRIBUTING.md).
63169

64-
**Important to note that when running with `npm`, both the electron and the browser versions of the application will start. One major difference is that electron can access the local file system.**
170+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see
171+
the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [[email protected]](mailto:[email protected])
172+
with any additional questions or comments.

docs/images/export-labels.png

243 KB
Loading

docs/images/label-image.png

2.89 MB
Loading

docs/images/ml-workflow.png

217 KB
Loading

docs/images/new-connection.png

252 KB
Loading

docs/images/new-project.png

363 KB
Loading

docs/images/security-tokens.png

359 KB
Loading

0 commit comments

Comments
 (0)