Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AlexeyAB/Yolo_mark
GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2
https://github.com/AlexeyAB/Yolo_mark
darknet dnn labeling marking-bounded-boxes object-detection training-yolo yolo
Last synced: about 1 month ago
JSON representation
GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2
- Host: GitHub
- URL: https://github.com/AlexeyAB/Yolo_mark
- Owner: AlexeyAB
- License: unlicense
- Created: 2016-12-17T21:25:07.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-12-11T00:29:20.000Z (about 4 years ago)
- Last Synced: 2024-10-29T17:42:08.322Z (about 1 month ago)
- Topics: darknet, dnn, labeling, marking-bounded-boxes, object-detection, training-yolo, yolo
- Language: C++
- Homepage: https://github.com/AlexeyAB/darknet
- Size: 4.14 MB
- Stars: 1,807
- Watchers: 71
- Forks: 681
- Open Issues: 147
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-object-detection-datasets - AlexeyAB/Yolo_mark
- awesome-dataset-tools - Yolo_mark - GUI for marking bounded boxes of objects in images (Labeling Tools / Images)
- awesome-yolo-object-detection - AlexeyAB/Yolo_mark
- awesome-yolo-object-detection - AlexeyAB/Yolo_mark
README
# Yolo_mark
**Windows** & **Linux** GUI for marking bounded boxes of objects in images for training Yolo v3 and v2* To compile on **Windows** open `yolo_mark.sln` in MSVS2013/2015, compile it **x64 & Release** and run the file: `x64/Release/yolo_mark.cmd`. Change paths in `yolo_mark.sln` to the OpenCV 2.x/3.x installed on your computer:
* (right click on project) -> properties -> C/C++ -> General -> Additional Include Directories: `C:\opencv_3.0\opencv\build\include;`
* (right click on project) -> properties -> Linker -> General -> Additional Library Directories: `C:\opencv_3.0\opencv\build\x64\vc14\lib;`* To compile on **Linux** type in console 3 commands:
```
cmake .
make
./linux_mark.sh
```Supported both: OpenCV 2.x and OpenCV 3.x
--------
1. To test, simply run
* **on Windows:** `x64/Release/yolo_mark.cmd`
* **on Linux:** `./linux_mark.sh`2. To use for labeling your custom images:
* delete all files from directory `x64/Release/data/img`
* put your `.jpg`-images to this directory `x64/Release/data/img`
* change numer of classes (objects for detection) in file `x64/Release/data/obj.data`: https://github.com/AlexeyAB/Yolo_mark/blob/master/x64/Release/data/obj.data#L1
* put names of objects, one for each line in file `x64/Release/data/obj.names`: https://github.com/AlexeyAB/Yolo_mark/blob/master/x64/Release/data/obj.names
* run file: `x64\Release\yolo_mark.cmd`3. To training for your custom objects, you should change 2 lines in file `x64/Release/yolo-obj.cfg`:
* set number of classes (objects): https://github.com/AlexeyAB/Yolo_mark/blob/master/x64/Release/yolo-obj.cfg#L230
* set `filter`-value
* For Yolov2 `(classes + 5)*5`: https://github.com/AlexeyAB/Yolo_mark/blob/master/x64/Release/yolo-obj.cfg#L224
* For Yolov3 `(classes + 5)*3`3.1 Download pre-trained weights for the convolutional layers (76 MB): http://pjreddie.com/media/files/darknet19_448.conv.23
3.2 Put files: `yolo-obj.cfg`, `data/train.txt`, `data/obj.names`, `data/obj.data`, `darknet19_448.conv.23` and directory `data/img` near with executable `darknet`-file, and start training: `darknet detector train data/obj.data yolo-obj.cfg darknet19_448.conv.23`For a detailed description, see: https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects
----
#### How to get frames from videofile:
To get frames from videofile (save each N frame, in example N=10), you can use this command:
* on Windows: `yolo_mark.exe data/img cap_video test.mp4 10`
* on Linux: `./yolo_mark x64/Release/data/img cap_video test.mp4 10`Directory `data/img` should be created before this. Also on Windows, the file `opencv_ffmpeg340_64.dll` from `opencv\build\bin` should be placed near with `yolo_mark.exe`.
As a result, many frames will be collected in the directory `data/img`. Then you can label them manually using such command:
* on Windows: `yolo_mark.exe data/img data/train.txt data/obj.names`
* on Linux: `./yolo_mark x64/Release/data/img x64/Release/data/train.txt x64/Release/data/obj.names`----
#### Here are:
* /x64/Release/
* `yolo_mark.cmd` - example hot to use yolo mark: `yolo_mark.exe data/img data/train.txt data/obj.names`
* `train_obj.cmd` - example how to train yolo for your custom objects (put this file near with darknet.exe): `darknet.exe detector train data/obj.data yolo-obj.cfg darknet19_448.conv.23`
* `yolo-obj.cfg` - example of yoloV3-neural-network for 2 object
* /x64/Release/data/
* `obj.names` - example of list with object names
* `obj.data` - example with configuration for training Yolo v3
* `train.txt` - example with list of image filenames for training Yolo v3
* /x64/Release/data/img/`air4.txt` - example with coordinates of objects on image `air4.jpg` with aircrafts (class=0)![Image of Yolo_mark](https://habrastorage.org/files/229/f06/277/229f06277fcc49279342b7edfabbb47a.jpg)
### Instruction manual
#### Mouse control
Button | Description |
--- | --- |
Left | Draw box
Right | Move box#### Keyboard Shortcuts
Shortcut | Description |
--- | --- |
→ | Next image |
← | Previous image |
r | Delete selected box (mouse hovered) |
c | Clear all marks on the current image |
p | Copy previous mark |
o | Track objects |
ESC | Close application |
n | One object per image |
0-9 | Object id |
m | Show coords |
w | Line width |
k | Hide object name |
h | Help |