This repo is the implementation of my graduation design.
I rewrote the code of Yolov3 and achieved the performance mentioned in this paper.
In addition, I proposed an improved NMS algorithm that adjust the threshold based on image information and validated it on Pascal VOC 2007 dataset.
-
data: Firstly, you need to prepare your Pascal VOC 2007 dataset in this folder, and you need to change the configuration in data/voc.data. Please read more in data/Data Description.txt.
-
Darknet.py: Darknet model file.
-
camera.py: video demo, real-time implementation of trained YOLOV3 model.
-
gui.py: graphical user interface to detect image, you can choose any image you like.
-
detect.py: image demo. You can make detection of an image by this file.
-
train.py: training model file.
-
utils.py: this file includes necessary utility functions.
-
voc_label.py: read voc label(xmin, ymin, xmax, ymax) .xml file, and save it as (x, y, w, h) .txt file.
-
my_eval.py: evaluate model performance.
-
test.py: my algorithm experiments(this file doesn't relate to YOLOV3 training, ignore it).
-
valid.py: validation of my algorithm(this file doesn't relate to YOLOV3 training, ignore it).
-
augmentation.py: data augmentations I tried(this file doesn't relate to YOLOV3 training, ignore it).
-
yolov1.py: I tried Yolov1 model(this file doesn't relate to YOLOV3 training, ignore it).
If you want to train a Yolov3 model on Pascal VOC 2007 dataset, take steps:
- Prepare your dataset, which including transfer label format and get image name file, refer files in data folder.
- After step 1, run train.py, pay attentation to param configuration.
- Run my_eval.py to evaluate your model performance.