Joseph Redmon
2015-08-14 e625b32e060753e2029d52bc0150637f2a14cb72
src/detection.c
@@ -5,6 +5,9 @@
#include "parser.h"
#include "box.h"
#ifdef OPENCV
#include "opencv2/highgui/highgui_c.h"
#endif
char *class_names[] = {"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"};
@@ -79,7 +82,7 @@
    paths = (char **)list_to_array(plist);
    pthread_t load_thread = load_data_detection_thread(imgs, paths, plist->size, classes, net.w, net.h, side, side, background, &buffer);
    clock_t time;
    while(i*imgs < N*120){
    while(i*imgs < N*130){
        i += 1;
        time=clock();
        pthread_join(load_thread, 0);
@@ -95,7 +98,7 @@
        printf("%d: %f, %f avg, %lf seconds, %d images\n", i, loss, avg_loss, sec(clock()-time), i*imgs);
        if((i-1)*imgs <= N && i*imgs > N){
            fprintf(stderr, "Starting second stage...\n");
            fprintf(stderr, "First stage done\n");
            net.learning_rate *= 10;
            char buff[256];
            sprintf(buff, "%s/%s_first_stage.weights", backup_directory, base);
@@ -109,6 +112,13 @@
            save_weights(net, buff);
            return;
        }
        if((i-1)*imgs <= 120*N && i*imgs > N*120){
            fprintf(stderr, "Third stage done.\n");
            char buff[256];
            sprintf(buff, "%s/%s_third_stage.weights", backup_directory, base);
            net.layers[net.n-1].rescore = 1;
            save_weights(net, buff);
        }
        if(i%1000==0){
            char buff[256];
            sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
@@ -176,7 +186,7 @@
    srand(time(0));
    char *base = "results/comp4_det_test_";
    list *plist = get_paths("data/voc.2012test.list");
    list *plist = get_paths("/home/pjreddie/data/voc/test/2007_test.txt");
    char **paths = (char **)list_to_array(plist);
    int classes = layer.classes;