From dfbec7ea2bf7d324fe80647dde72957683539974 Mon Sep 17 00:00:00 2001 From: AlexeyAB Date: Wed, 18 Jul 2018 15:08:34 +0300 Subject: [PATCH] PascalVOC label scripts are updated --- scripts/voc_label.py | 13 ++++++++----- scripts/voc_label_difficult.py | 8 ++++---- src/yolo_v2_class.hpp | 22 +++++++++++----------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/scripts/voc_label.py b/scripts/voc_label.py index d1e88236..679fc366 100644 --- a/scripts/voc_label.py +++ b/scripts/voc_label.py @@ -10,10 +10,10 @@ classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat" def convert(size, box): - dw = 1./size[0] - dh = 1./size[1] - x = (box[0] + box[1])/2.0 - y = (box[2] + box[3])/2.0 + dw = 1./(size[0]) + dh = 1./(size[1]) + x = (box[0] + box[1])/2.0 - 1 + y = (box[2] + box[3])/2.0 - 1 w = box[1] - box[0] h = box[3] - box[2] x = x*dw @@ -34,7 +34,7 @@ def convert_annotation(year, image_id): for obj in root.iter('object'): difficult = obj.find('difficult').text cls = obj.find('name').text - if cls not in classes or int(difficult) == 1: + if cls not in classes or int(difficult)==1: continue cls_id = classes.index(cls) xmlbox = obj.find('bndbox') @@ -54,3 +54,6 @@ for year, image_set in sets: convert_annotation(year, image_id) list_file.close() +os.system("cat 2007_train.txt 2007_val.txt 2012_train.txt 2012_val.txt > train.txt") +os.system("cat 2007_train.txt 2007_val.txt 2007_test.txt 2012_train.txt 2012_val.txt > train.all.txt") + diff --git a/scripts/voc_label_difficult.py b/scripts/voc_label_difficult.py index 93e57fe7..cfffce3d 100644 --- a/scripts/voc_label_difficult.py +++ b/scripts/voc_label_difficult.py @@ -10,10 +10,10 @@ classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat" def convert(size, box): - dw = 1./size[0] - dh = 1./size[1] - x = (box[0] + box[1])/2.0 - y = (box[2] + box[3])/2.0 + dw = 1./(size[0]) + dh = 1./(size[1]) + x = (box[0] + box[1])/2.0 - 1 + y = (box[2] + box[3])/2.0 - 1 w = box[1] - box[0] h = box[3] - box[2] x = x*dw diff --git a/src/yolo_v2_class.hpp b/src/yolo_v2_class.hpp index 3dc93866..199b1c97 100644 --- a/src/yolo_v2_class.hpp +++ b/src/yolo_v2_class.hpp @@ -1,13 +1,13 @@ #pragma once #ifdef YOLODLL_EXPORTS #if defined(_MSC_VER) -#define YOLODLL_API __declspec(dllexport) +#define YOLODLL_API __declspec(dllexport) #else #define YOLODLL_API __attribute__((visibility("default"))) #endif #else #if defined(_MSC_VER) -#define YOLODLL_API __declspec(dllimport) +#define YOLODLL_API __declspec(dllimport) #else #define YOLODLL_API #endif @@ -71,7 +71,7 @@ public: YOLODLL_API int get_net_height() const; YOLODLL_API int get_net_color_depth() const; - YOLODLL_API std::vector tracking_id(std::vector cur_bbox_vec, bool const change_history = true, + YOLODLL_API std::vector tracking_id(std::vector cur_bbox_vec, bool const change_history = true, int const frames_story = 10, int const max_dist = 150); std::vector detect_resized(image_t img, int init_w, int init_h, float thresh = 0.2, bool use_mean = false) @@ -97,14 +97,14 @@ public: { if (mat.data == NULL) return std::shared_ptr(NULL); - cv::Size s = mat.size(); - if (get_net_width() != s.width || get_net_height() != s.height) { - cv::Mat det_mat; - cv::resize(mat, det_mat, cv::Size(get_net_width(), get_net_height())); - return mat_to_image(det_mat); - } + cv::Size network_size = cv::Size(get_net_width(), get_net_height()); + cv::Mat det_mat; + if (mat.size() != network_size) + cv::resize(mat, det_mat, network_size); + else + det_mat = mat; // only reference is copied - return mat_to_image(mat); + return mat_to_image(det_mat); } static std::shared_ptr mat_to_image(cv::Mat img_src) @@ -304,7 +304,7 @@ public: std::vector result_bbox_vec; - if (err_cpu.cols == cur_bbox_vec.size() && status_cpu.cols == cur_bbox_vec.size()) + if (err_cpu.cols == cur_bbox_vec.size() && status_cpu.cols == cur_bbox_vec.size()) { for (size_t i = 0; i < cur_bbox_vec.size(); ++i) {