diff --git a/examples/tm_yolox.cpp b/examples/tm_yolox.cpp index 401bf6d86e1f22765bb64ee0d54fb5b09248cbfb..ae0c770c708f54f81613550027493987509cd7eb 100644 --- a/examples/tm_yolox.cpp +++ b/examples/tm_yolox.cpp @@ -183,25 +183,24 @@ struct GridAndStride int stride; }; -static int generate_grids_and_stride(const int target_size, std::vector& strides, std::vector& grid_strides) +static void generate_grids_and_stride(const int target_w, const int target_h, std::vector& strides, std::vector& grid_strides) { for (auto stride : strides) { - int num_grid = target_size / stride; - for (int g1 = 0; g1 < num_grid; g1++) + int num_grid_w = target_w / stride; + int num_grid_h = target_h / stride; + for (int g1 = 0; g1 < num_grid_h; g1++) { - for (int g0 = 0; g0 < num_grid; g0++) + for (int g0 = 0; g0 < num_grid_w; g0++) { - GridAndStride ss; - ss.grid0 = g0; - ss.grid1 = g1; - ss.stride = stride; - grid_strides.push_back(ss); + GridAndStride gs; + gs.grid0 = g0; + gs.grid1 = g1; + gs.stride = stride; + grid_strides.push_back(gs); } } } - - return 0; } static void generate_yolox_proposals(std::vector grid_strides, float* feat_ptr, float prob_threshold, std::vector& objects) @@ -288,7 +287,7 @@ void get_input_data_focus(const char* image_file, float* input_data, int letterb img.convertTo(img, CV_32FC3); // Generate a gray image for letterbox using opencv - cv::Mat img_new(letterbox_cols, letterbox_rows, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); + cv::Mat img_new(letterbox_rows, letterbox_cols, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); int top = 0; int bot = letterbox_rows - resize_rows; int left = 0; @@ -496,7 +495,7 @@ int main(int argc, char* argv[]) std::vector strides = {8, 16, 32}; // might have stride=64 std::vector grid_strides; - generate_grids_and_stride(letterbox_rows, strides, grid_strides); + generate_grids_and_stride(letterbox_cols, letterbox_rows, strides, grid_strides); generate_yolox_proposals(grid_strides, p8_data, prob_threshold, proposals); qsort_descent_inplace(proposals); std::vector picked; diff --git a/examples/tm_yolox_darknet53.cpp b/examples/tm_yolox_darknet53.cpp index 3f774625a52579f217d7832fd567cf94f4d4874f..6b8529e4e488a91c8e44c48b04b6911d819b72fc 100644 --- a/examples/tm_yolox_darknet53.cpp +++ b/examples/tm_yolox_darknet53.cpp @@ -184,25 +184,24 @@ struct GridAndStride int stride; }; -static int generate_grids_and_stride(const int target_size, std::vector& strides, std::vector& grid_strides) +static void generate_grids_and_stride(const int target_w, const int target_h, std::vector& strides, std::vector& grid_strides) { for (auto stride : strides) { - int num_grid = target_size / stride; - for (int g1 = 0; g1 < num_grid; g1++) + int num_grid_w = target_w / stride; + int num_grid_h = target_h / stride; + for (int g1 = 0; g1 < num_grid_h; g1++) { - for (int g0 = 0; g0 < num_grid; g0++) + for (int g0 = 0; g0 < num_grid_w; g0++) { - GridAndStride ss; - ss.grid0 = g0; - ss.grid1 = g1; - ss.stride = stride; - grid_strides.push_back(ss); + GridAndStride gs; + gs.grid0 = g0; + gs.grid1 = g1; + gs.stride = stride; + grid_strides.push_back(gs); } } } - - return 0; } static void generate_yolox_proposals(std::vector grid_strides, float* feat_ptr, float prob_threshold, std::vector& objects) @@ -288,7 +287,7 @@ void get_input_data_letterbox(const char* image_file, float* input_data, int let img.convertTo(img, CV_32FC3); // Generate a gray image for letterbox using opencv - cv::Mat img_new(letterbox_cols, letterbox_rows, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); + cv::Mat img_new(letterbox_rows, letterbox_cols, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); int top = 0; int bot = letterbox_rows - resize_rows; int left = 0; @@ -474,7 +473,7 @@ int main(int argc, char* argv[]) std::vector strides = {8, 16, 32}; // might have stride=64 std::vector grid_strides; - generate_grids_and_stride(letterbox_rows, strides, grid_strides); + generate_grids_and_stride(letterbox_cols, letterbox_rows, strides, grid_strides); generate_yolox_proposals(grid_strides, p8_data, prob_threshold, proposals); qsort_descent_inplace(proposals); std::vector picked; diff --git a/examples/tm_yolox_int8.cpp b/examples/tm_yolox_int8.cpp index 0a645fa1abb6e04267e8b47ae02eaf3d2bd0b316..e55385dc7c317da9be5c916d43a12d2117e44de2 100644 --- a/examples/tm_yolox_int8.cpp +++ b/examples/tm_yolox_int8.cpp @@ -184,25 +184,24 @@ struct GridAndStride int stride; }; -static int generate_grids_and_stride(const int target_size, std::vector& strides, std::vector& grid_strides) +static void generate_grids_and_stride(const int target_w, const int target_h, std::vector& strides, std::vector& grid_strides) { for (auto stride : strides) { - int num_grid = target_size / stride; - for (int g1 = 0; g1 < num_grid; g1++) + int num_grid_w = target_w / stride; + int num_grid_h = target_h / stride; + for (int g1 = 0; g1 < num_grid_h; g1++) { - for (int g0 = 0; g0 < num_grid; g0++) + for (int g0 = 0; g0 < num_grid_w; g0++) { - GridAndStride ss; - ss.grid0 = g0; - ss.grid1 = g1; - ss.stride = stride; - grid_strides.push_back(ss); + GridAndStride gs; + gs.grid0 = g0; + gs.grid1 = g1; + gs.stride = stride; + grid_strides.push_back(gs); } } } - - return 0; } static void generate_yolox_proposals(std::vector grid_strides, float* feat_ptr, float prob_threshold, std::vector& objects) @@ -291,7 +290,7 @@ void get_input_data_focus_int8(const char* image_file, int8_t* input_data, int l img.convertTo(img, CV_32FC3); // Generate a gray image for letterbox using opencv - cv::Mat img_new(letterbox_cols, letterbox_rows, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); + cv::Mat img_new(letterbox_rows, letterbox_cols, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); int top = 0; int bot = letterbox_rows - resize_rows; int left = 0; @@ -518,7 +517,7 @@ int main(int argc, char* argv[]) std::vector strides = {8, 16, 32}; // might have stride=64 std::vector grid_strides; - generate_grids_and_stride(letterbox_rows, strides, grid_strides); + generate_grids_and_stride(letterbox_cols, letterbox_rows, strides, grid_strides); generate_yolox_proposals(grid_strides, p8_data.data(), prob_threshold, proposals); qsort_descent_inplace(proposals); std::vector picked; diff --git a/examples/tm_yolox_opendla.cpp b/examples/tm_yolox_opendla.cpp index 2ff274179150f5ddaf1f88d22da3c528f5974329..a0de9ee44e5e66d72f35a9ea3f9741623609b7e5 100644 --- a/examples/tm_yolox_opendla.cpp +++ b/examples/tm_yolox_opendla.cpp @@ -184,25 +184,24 @@ struct GridAndStride int stride; }; -static int generate_grids_and_stride(const int target_size, std::vector& strides, std::vector& grid_strides) +static void generate_grids_and_stride(const int target_w, const int target_h, std::vector& strides, std::vector& grid_strides) { for (auto stride : strides) { - int num_grid = target_size / stride; - for (int g1 = 0; g1 < num_grid; g1++) + int num_grid_w = target_w / stride; + int num_grid_h = target_h / stride; + for (int g1 = 0; g1 < num_grid_h; g1++) { - for (int g0 = 0; g0 < num_grid; g0++) + for (int g0 = 0; g0 < num_grid_w; g0++) { - GridAndStride ss; - ss.grid0 = g0; - ss.grid1 = g1; - ss.stride = stride; - grid_strides.push_back(ss); + GridAndStride gs; + gs.grid0 = g0; + gs.grid1 = g1; + gs.stride = stride; + grid_strides.push_back(gs); } } } - - return 0; } static void generate_yolox_proposals(std::vector grid_strides, float* feat_ptr, float prob_threshold, std::vector& objects) @@ -291,7 +290,7 @@ void get_input_data_focus_int8(const char* image_file, int8_t* input_data, int l img.convertTo(img, CV_32FC3); // Generate a gray image for letterbox using opencv - cv::Mat img_new(letterbox_cols, letterbox_rows, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); + cv::Mat img_new(letterbox_rows, letterbox_cols, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); int top = 0; int bot = letterbox_rows - resize_rows; int left = 0; @@ -525,7 +524,7 @@ int main(int argc, char* argv[]) std::vector strides = {8, 16, 32}; // might have stride=64 std::vector grid_strides; - generate_grids_and_stride(letterbox_rows, strides, grid_strides); + generate_grids_and_stride(letterbox_cols, letterbox_rows, strides, grid_strides); generate_yolox_proposals(grid_strides, p8_data.data(), prob_threshold, proposals); qsort_descent_inplace(proposals); std::vector picked; diff --git a/examples/tm_yolox_timvx.cpp b/examples/tm_yolox_timvx.cpp index ca096d9bb934b2d6a8dc3e94496f7ad5ab382f62..a305909dce0a1096187f00360ba5b194d6fb63ca 100644 --- a/examples/tm_yolox_timvx.cpp +++ b/examples/tm_yolox_timvx.cpp @@ -184,25 +184,24 @@ struct GridAndStride int stride; }; -static int generate_grids_and_stride(const int target_size, std::vector& strides, std::vector& grid_strides) +static void generate_grids_and_stride(const int target_w, const int target_h, std::vector& strides, std::vector& grid_strides) { for (auto stride : strides) { - int num_grid = target_size / stride; - for (int g1 = 0; g1 < num_grid; g1++) + int num_grid_w = target_w / stride; + int num_grid_h = target_h / stride; + for (int g1 = 0; g1 < num_grid_h; g1++) { - for (int g0 = 0; g0 < num_grid; g0++) + for (int g0 = 0; g0 < num_grid_w; g0++) { - GridAndStride ss; - ss.grid0 = g0; - ss.grid1 = g1; - ss.stride = stride; - grid_strides.push_back(ss); + GridAndStride gs; + gs.grid0 = g0; + gs.grid1 = g1; + gs.stride = stride; + grid_strides.push_back(gs); } } } - - return 0; } static void generate_yolox_proposals(std::vector grid_strides, float* feat_ptr, float prob_threshold, std::vector& objects) @@ -291,7 +290,7 @@ void get_input_data_focus_uint8(const char* image_file, uint8_t* input_data, int img.convertTo(img, CV_32FC3); // Generate a gray image for letterbox using opencv - cv::Mat img_new(letterbox_cols, letterbox_rows, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); + cv::Mat img_new(letterbox_rows, letterbox_cols, CV_32FC3, cv::Scalar(0, 0, 0) /*cv::Scalar(0.5/scale[0] + mean[0], 0.5/scale[1] + mean[1], 0.5/ scale[2] + mean[2])*/); int top = 0; int bot = letterbox_rows - resize_rows; int left = 0; @@ -527,7 +526,7 @@ int main(int argc, char* argv[]) std::vector strides = {8, 16, 32}; // might have stride=64 std::vector grid_strides; - generate_grids_and_stride(letterbox_rows, strides, grid_strides); + generate_grids_and_stride(letterbox_cols, letterbox_rows, strides, grid_strides); generate_yolox_proposals(grid_strides, p8_data.data(), prob_threshold, proposals); qsort_descent_inplace(proposals); std::vector picked;