# Yolo_mark **Repository Path**: Python_Ai_Road/Yolo_mark ## Basic Information - **Project Name**: Yolo_mark - **Description**: No description available - **Primary Language**: Unknown - **License**: Unlicense - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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 |