yolo3 ok
This commit is contained in:
+4
-3
@@ -23,7 +23,7 @@ int main(int argc, char *argv[]) {
|
|||||||
std::cout<<"detection\n";
|
std::cout<<"detection\n";
|
||||||
signal(SIGINT, sig_handler);
|
signal(SIGINT, sig_handler);
|
||||||
|
|
||||||
Yolo3Detection yolo;
|
tk::dnn::Yolo3Detection yolo;
|
||||||
yolo.init("./");
|
yolo.init("./");
|
||||||
|
|
||||||
gRun = true;
|
gRun = true;
|
||||||
@@ -39,6 +39,7 @@ int main(int argc, char *argv[]) {
|
|||||||
std::cout<<"camera started\n";
|
std::cout<<"camera started\n";
|
||||||
|
|
||||||
cv::Mat frame;
|
cv::Mat frame;
|
||||||
|
cv::Mat dnn_input;
|
||||||
cv::namedWindow("detection", cv::WINDOW_NORMAL);
|
cv::namedWindow("detection", cv::WINDOW_NORMAL);
|
||||||
cv::resizeWindow("detection", 544*1.2, 320*1.2);
|
cv::resizeWindow("detection", 544*1.2, 320*1.2);
|
||||||
|
|
||||||
@@ -48,7 +49,8 @@ int main(int argc, char *argv[]) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
yolo.update(frame);
|
dnn_input = frame.clone();
|
||||||
|
yolo.update(dnn_input);
|
||||||
|
|
||||||
// draw dets
|
// draw dets
|
||||||
for(int i=0; i<yolo.detected.size(); i++) {
|
for(int i=0; i<yolo.detected.size(); i++) {
|
||||||
@@ -64,7 +66,6 @@ int main(int argc, char *argv[]) {
|
|||||||
cv::rectangle(frame, cv::Point(x0, y0), cv::Point(x1, y1), yolo.colors[obj_class], 2);
|
cv::rectangle(frame, cv::Point(x0, y0), cv::Point(x1, y1), yolo.colors[obj_class], 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cv::imshow("detection", frame);
|
cv::imshow("detection", frame);
|
||||||
cv::waitKey(1);
|
cv::waitKey(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
#include <tkDNN/tkdnn.h>
|
#include <tkDNN/tkdnn.h>
|
||||||
|
|
||||||
|
namespace tk { namespace dnn {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Francesco Gatti
|
* @author Francesco Gatti
|
||||||
@@ -51,3 +53,5 @@ class Yolo3Detection {
|
|||||||
void update(cv::Mat &frame);
|
void update(cv::Mat &frame);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#include "Yolo3Detection.h"
|
#include "Yolo3Detection.h"
|
||||||
|
|
||||||
|
namespace tk { namespace dnn {
|
||||||
|
|
||||||
bool Yolo3Detection::init(std::string tensor_folder) {
|
bool Yolo3Detection::init(std::string tensor_folder) {
|
||||||
|
|
||||||
//const char *tensor_path = "../data/yolo3/yolo3_berkeley.rt";
|
//const char *tensor_path = "../data/yolo3/yolo3_berkeley.rt";
|
||||||
@@ -43,7 +45,9 @@ void Yolo3Detection::update(cv::Mat &imageORIG) {
|
|||||||
if(!imageORIG.data) {
|
if(!imageORIG.data) {
|
||||||
std::cout<<"YOLO: NO IMAGE DATA\n";
|
std::cout<<"YOLO: NO IMAGE DATA\n";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
float xRatio = float(imageORIG.cols) / float(netRT->input_dim.w);
|
||||||
|
float yRatio = float(imageORIG.rows) / float(netRT->input_dim.h);
|
||||||
|
|
||||||
resize(imageORIG, imageORIG, cv::Size(netRT->input_dim.w, netRT->input_dim.h));
|
resize(imageORIG, imageORIG, cv::Size(netRT->input_dim.w, netRT->input_dim.h));
|
||||||
imageORIG.convertTo(imageF, CV_32FC3, 1/255.0);
|
imageORIG.convertTo(imageF, CV_32FC3, 1/255.0);
|
||||||
@@ -83,10 +87,6 @@ void Yolo3Detection::update(cv::Mat &imageORIG) {
|
|||||||
tk::dnn::Yolo::mergeDetections(dets, ndets, classes);
|
tk::dnn::Yolo::mergeDetections(dets, ndets, classes);
|
||||||
TIMER_STOP
|
TIMER_STOP
|
||||||
|
|
||||||
|
|
||||||
float xRatio = float(imageORIG.cols) / float(netRT->input_dim.w);
|
|
||||||
float yRatio = float(imageORIG.rows) / float(netRT->input_dim.h);
|
|
||||||
|
|
||||||
// fill detected
|
// fill detected
|
||||||
detected.clear();
|
detected.clear();
|
||||||
for(int j=0; j<ndets; j++) {
|
for(int j=0; j<ndets; j++) {
|
||||||
@@ -126,3 +126,5 @@ void Yolo3Detection::update(cv::Mat &imageORIG) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user