From e18a303d1c17acd30c21162826c554ee770cf35a Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sat, 21 Apr 2018 12:19:58 +0000
Subject: [PATCH] Fixed utils.c for short lines.
---
src/network.c | 4 ++--
src/parser.c | 4 ++--
src/detector.c | 9 ++++++---
src/utils.c | 7 +++++--
4 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/detector.c b/src/detector.c
index 407c8be..86f6afc 100644
--- a/src/detector.c
+++ b/src/detector.c
@@ -1048,7 +1048,8 @@
while(1){
if(filename){
strncpy(input, filename, 256);
- if (input[strlen(input) - 1] == 0x0d) input[strlen(input) - 1] = 0;
+ if(strlen(input) > 0)
+ if (input[strlen(input) - 1] == 0x0d) input[strlen(input) - 1] = 0;
} else {
printf("Enter Image Path: ");
fflush(stdout);
@@ -1146,7 +1147,8 @@
char *cfg = argv[4];
char *weights = (argc > 5) ? argv[5] : 0;
if(weights)
- if (weights[strlen(weights) - 1] == 0x0d) weights[strlen(weights) - 1] = 0;
+ if(strlen(weights) > 0)
+ if (weights[strlen(weights) - 1] == 0x0d) weights[strlen(weights) - 1] = 0;
char *filename = (argc > 6) ? argv[6]: 0;
if(0==strcmp(argv[2], "test")) test_detector(datacfg, cfg, weights, filename, thresh, hier_thresh, dont_show);
else if(0==strcmp(argv[2], "train")) train_detector(datacfg, cfg, weights, gpus, ngpus, clear, dont_show);
@@ -1160,7 +1162,8 @@
char *name_list = option_find_str(options, "names", "data/names.list");
char **names = get_labels(name_list);
if(filename)
- if (filename[strlen(filename) - 1] == 0x0d) filename[strlen(filename) - 1] = 0;
+ if(strlen(filename) > 0)
+ if (filename[strlen(filename) - 1] == 0x0d) filename[strlen(filename) - 1] = 0;
demo(cfg, weights, thresh, hier_thresh, cam_index, filename, names, classes, frame_skip, prefix, out_filename,
http_stream_port, dont_show);
}
diff --git a/src/network.c b/src/network.c
index 03ad5eb..ce6d28a 100644
--- a/src/network.c
+++ b/src/network.c
@@ -800,14 +800,14 @@
int f;
for (f = 0; f < l->n; ++f)
{
- l->biases[f] = l->biases[f] - l->scales[f] * l->rolling_mean[f] / (sqrtf(l->rolling_variance[f]) + .000001f);
+ l->biases[f] = l->biases[f] - (double)l->scales[f] * l->rolling_mean[f] / (sqrt((double)l->rolling_variance[f]) + .000001f);
const size_t filter_size = l->size*l->size*l->c;
int i;
for (i = 0; i < filter_size; ++i) {
int w_index = f*filter_size + i;
- l->weights[w_index] = l->weights[w_index] * l->scales[f] / (sqrtf(l->rolling_variance[f]) + .000001f);
+ l->weights[w_index] = (double)l->weights[w_index] * l->scales[f] / (sqrt((double)l->rolling_variance[f]) + .000001f);
}
}
diff --git a/src/parser.c b/src/parser.c
index 319235a..568e540 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -291,7 +291,7 @@
for (i = 0; i < len; ++i) {
if (a[i] == ',') ++n;
}
- for (i = 0; i < n; ++i) {
+ for (i = 0; i < n && i < total*2; ++i) {
float bias = atof(a);
l.biases[i] = bias;
a = strchr(a, ',') + 1;
@@ -344,7 +344,7 @@
for(i = 0; i < len; ++i){
if (a[i] == ',') ++n;
}
- for(i = 0; i < n; ++i){
+ for(i = 0; i < n && i < num*2; ++i){
float bias = atof(a);
l.biases[i] = bias;
a = strchr(a, ',')+1;
diff --git a/src/utils.c b/src/utils.c
index 615d836..8c14fb6 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -297,8 +297,11 @@
fgets(&line[curr], readsize, fp);
curr = strlen(line);
}
- if(line[curr-2] == 0x0d) line[curr-2] = 0x00;
- if(line[curr-1] == 0x0a) line[curr-1] = 0x00;
+ if(curr >= 2)
+ if(line[curr-2] == 0x0d) line[curr-2] = 0x00;
+
+ if(curr >= 1)
+ if(line[curr-1] == 0x0a) line[curr-1] = 0x00;
return line;
}
--
Gitblit v1.10.0