Command line for example of usage DLL/SO

pull/355/head
AlexeyAB 7 years ago
parent aeb15b3cb9
commit ea09a6e0b3
  1. 20
      src/yolo_console_dll.cpp
  2. 12
      src/yolo_v2_class.hpp

@ -11,7 +11,6 @@
#ifdef _WIN32 #ifdef _WIN32
#define OPENCV #define OPENCV
//#include "windows.h"
#endif #endif
//#define TRACK_OPTFLOW //#define TRACK_OPTFLOW
@ -91,15 +90,24 @@ std::vector<std::string> objects_names_from_file(std::string const filename) {
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
std::string names_file = "data/voc.names";
std::string cfg_file = "cfg/yolo-voc.cfg";
std::string weights_file = "yolo-voc.weights";
std::string filename; std::string filename;
if (argc > 1) filename = argv[1];
//Detector detector("cfg/yolo-voc.cfg", "yolo-voc.weights"); if (argc > 4) { //voc.names yolo-voc.cfg yolo-voc.weights test.mp4
Detector detector("tiny-yolo-voc_air.cfg", "backup/tiny-yolo-voc_air_5000.weights"); names_file = argv[1];
cfg_file = argv[2];
weights_file = argv[3];
filename = argv[4];
}
else if (argc > 1) filename = argv[1];
Detector detector(cfg_file, weights_file);
auto obj_names = objects_names_from_file("data/voc.names"); auto obj_names = objects_names_from_file(names_file);
std::string out_videofile = "result.avi"; std::string out_videofile = "result.avi";
bool const save_output_videofile = false; bool const save_output_videofile = true;
#ifdef TRACK_OPTFLOW #ifdef TRACK_OPTFLOW
Tracker_optflow tracker_flow; Tracker_optflow tracker_flow;
detector.wait_stream = true; detector.wait_stream = true;

@ -95,8 +95,6 @@ public:
{ {
cv::Mat img; cv::Mat img;
cv::cvtColor(img_src, img, cv::COLOR_RGB2BGR); cv::cvtColor(img_src, img, cv::COLOR_RGB2BGR);
//std::cout << "\n img_rgb: " << img_rgb.size() << ", " << img_rgb.type() << ", " << img_rgb.channels() << std::endl;
//std::cout << "\n img: " << img.size() << ", " << img.type() << ", " << img.channels() << std::endl;
std::shared_ptr<image_t> image_ptr(new image_t, [](image_t *img) { free_image(*img); delete img; }); std::shared_ptr<image_t> image_ptr(new image_t, [](image_t *img) { free_image(*img); delete img; });
std::shared_ptr<IplImage> ipl_small = std::make_shared<IplImage>(img); std::shared_ptr<IplImage> ipl_small = std::make_shared<IplImage>(img);
*image_ptr = ipl_to_image(ipl_small.get()); *image_ptr = ipl_to_image(ipl_small.get());
@ -115,20 +113,14 @@ private:
image_t out = make_image_custom(w, h, c); image_t out = make_image_custom(w, h, c);
int count = 0; int count = 0;
//std::vector<unsigned char> tmp(w*h*c);
for (int k = 0; k < c; ++k) { for (int k = 0; k < c; ++k) {
for (int i = 0; i < h; ++i) { for (int i = 0; i < h; ++i) {
int i_step = i*step; int i_step = i*step;
for (int j = 0; j < w; ++j) { for (int j = 0; j < w; ++j) {
out.data[count++] = data[i_step + j*c + k] / 255.; out.data[count++] = data[i_step + j*c + k] / 255.;
//tmp[count++] = data[i_step + j*c + k];
} }
} }
} }
//cv::Mat wrapped_8bit(cv::Size(w, h), CV_8UC3, tmp.data());
//cv::Mat wrapped_32float(cv::Size(w, h), CV_32FC3, out.data);
//wrapped_8bit.convertTo(wrapped_32float, CV_32FC3, 1 / 255.);
return out; return out;
} }
@ -172,7 +164,7 @@ public:
sync_PyrLKOpticalFlow_gpu = cv::cuda::SparsePyrLKOpticalFlow::create(); sync_PyrLKOpticalFlow_gpu = cv::cuda::SparsePyrLKOpticalFlow::create();
sync_PyrLKOpticalFlow_gpu->setWinSize(cv::Size(21, 21)); // 15, 21, 31 sync_PyrLKOpticalFlow_gpu->setWinSize(cv::Size(21, 21)); // 15, 21, 31
sync_PyrLKOpticalFlow_gpu->setMaxLevel(3); // +- 5 ptx sync_PyrLKOpticalFlow_gpu->setMaxLevel(3); // +- 3 pt
sync_PyrLKOpticalFlow_gpu->setNumIters(2000); // def: 30 sync_PyrLKOpticalFlow_gpu->setNumIters(2000); // def: 30
cv::cuda::setDevice(old_gpu_id); cv::cuda::setDevice(old_gpu_id);
@ -238,8 +230,6 @@ public:
return cur_bbox_vec; return cur_bbox_vec;
} }
//return cur_bbox_vec;
cv::Mat prev_pts, prev_pts_flow_cpu, cur_pts_flow_cpu; cv::Mat prev_pts, prev_pts_flow_cpu, cur_pts_flow_cpu;
for (auto &i : cur_bbox_vec) { for (auto &i : cur_bbox_vec) {

Loading…
Cancel
Save