From 84cdbaa1f14b4f2ca73b370c6db6a4dc9571fd07 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sun, 29 Oct 2017 15:34:55 +0000
Subject: [PATCH] Fixed for Linux: detection for batch > 1 and 0x0d at command line
---
src/demo.c | 2 +-
src/parser.c | 8 ++++++++
src/detector.c | 4 +++-
src/parser.h | 1 +
4 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/demo.c b/src/demo.c
index c88c1d9..eece00a 100644
--- a/src/demo.c
+++ b/src/demo.c
@@ -125,7 +125,7 @@
demo_classes = classes;
demo_thresh = thresh;
printf("Demo\n");
- net = parse_network_cfg(cfgfile);
+ net = parse_network_cfg_custom(cfgfile, 1);
if(weightfile){
load_weights(&net, weightfile);
}
diff --git a/src/detector.c b/src/detector.c
index 44f715d..dcb0dd2 100644
--- a/src/detector.c
+++ b/src/detector.c
@@ -461,7 +461,7 @@
char **names = get_labels(name_list);
image **alphabet = load_alphabet();
- network net = parse_network_cfg(cfgfile);
+ network net = parse_network_cfg_custom(cfgfile, 1);
if(weightfile){
load_weights(&net, weightfile);
}
@@ -475,6 +475,7 @@
while(1){
if(filename){
strncpy(input, filename, 256);
+ if (input[strlen(input) - 1] == 0x0d) input[strlen(input) - 1] = 0;
} else {
printf("Enter Image Path: ");
fflush(stdout);
@@ -561,6 +562,7 @@
int classes = option_find_int(options, "classes", 20);
char *name_list = option_find_str(options, "names", "data/names.list");
char **names = get_labels(name_list);
+ if (filename[strlen(filename) - 1] == 0x0d) filename[strlen(filename) - 1] = 0;
demo(cfg, weights, thresh, cam_index, filename, names, classes, frame_skip, prefix, out_filename);
}
}
diff --git a/src/parser.c b/src/parser.c
index 6b8965e..08b2df7 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -584,6 +584,11 @@
network parse_network_cfg(char *filename)
{
+ return parse_network_cfg_custom(filename, 0);
+}
+
+network parse_network_cfg_custom(char *filename, int batch)
+{
list *sections = read_cfg(filename);
node *n = sections->front;
if(!n) error("Config file has no sections");
@@ -600,6 +605,7 @@
params.w = net.w;
params.c = net.c;
params.inputs = net.inputs;
+ if (batch > 0) net.batch = batch;
params.batch = net.batch;
params.time_steps = net.time_steps;
params.net = net;
@@ -699,6 +705,8 @@
return net;
}
+
+
list *read_cfg(char *filename)
{
FILE *file = fopen(filename, "r");
diff --git a/src/parser.h b/src/parser.h
index 6cff4fb..b760116 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -3,6 +3,7 @@
#include "network.h"
network parse_network_cfg(char *filename);
+network parse_network_cfg_custom(char *filename, int batch);
void save_network(network net, char *filename);
void save_weights(network net, char *filename);
void save_weights_upto(network net, char *filename, int cutoff);
--
Gitblit v1.10.0