You Only Show Once
==================
YOSO is a GUI application providing a means of creating training data set for
`YOLO `_, a state-of-the-art, real-time object detection system.
It can be useful for other computer vision systems, because I believe that YOLO's
label file format is quite a good and flexible choice.
Requirements
============
YOSO is written in `Python 3 `_ with
the `PyQt5 `_
application framework. If you have Python 3 and PyQt5 (and subsequently `Qt5 `_ itself)
installed, you can run YOSO by simply executing ``python3 yoso.py``.
Alternatively you can install YOSO with the `pip `_ package manager
(which can be called ``pip3`` for Python 3).
Data Directory Structure
========================
YOSO should be pointed to a data directory having this structure:
::
data
|\_ classes
| \_ "0 - roy.jpg"
| \_ "1 - poli.jpg"
| \_ ...
|\_ images
| |\_ poli
| | \_ poli-001.jpg
| | \_ ...
| | \_ poli-009.jpg
| | \_ ...
| |\_ roy
| | \_ roy-1.jpg
| | \_ ...
| | \_ roy-99.jpg
| | \_ ...
| \_ ...
\_ labels
|\_ poli
| \_ poli-001.jpg.txt
| \_ ...
| \_ poli-009.jpg.txt
| \_ ...
|\_ roy
| \_ roy-1.jpg.txt
| \_ ...
| \_ roy-99.jpg.txt
| \_ ...
\_ ...
``data/classes`` must contain JPEG files describing object classes in format: `` - .jpg``
``data/images`` has arbitrary structure and contains JPEG or PNG images (``*.jpg``, or ``*.jpeg``, ``*.png``).
This is a training set of hundreds or thousands of images.
``data/labels`` is managed by YOSO and has the same structure as ``data/images``.
All missed subdirectories will be created automatically.
Note that label files create by YOSO have different naming scheme, so you might have to update
`Darknet `_ sources.
Controls
========
- To add a bounding box select a region with the mouse pointer.
Newly added bounding box will have object class currently selected
in the list on the right.
- To delete a bounding box double click on it.
- To change object class drag an item from the list on the right
and drop it into existing bounding box.
Whenever a bounding box is added, deleted or changed, the result is automatically saved.
Screenshots
===========
.. image:: screenshots/yoso-roy-1.png
Video
=====
https://www.youtube.com/watch?v=upPbaXq8wm0