projects
/
trackerpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add hungarian file
[trackerpp.git]
/
src
/
Engine.cpp
diff --git
a/src/Engine.cpp
b/src/Engine.cpp
index
82fed4a
..
49a17da
100644
(file)
--- a/
src/Engine.cpp
+++ b/
src/Engine.cpp
@@
-8,39
+8,41
@@
using namespace suanzi;
const static std::string TAG = "Engine";
static std::mutex g_mutex;
const static std::string TAG = "Engine";
static std::mutex g_mutex;
-static Engine
* g_instance = nullptr
;
+static Engine
WPtr g_instance
;
-Engine::Engine()
-{
- detector = new Detector();
-}
-Engine
*
Engine::create()
+Engine
Ptr
Engine::create()
{
LOG_DEBUG(TAG, "create");
std::lock_guard<std::mutex> lock(g_mutex);
{
LOG_DEBUG(TAG, "create");
std::lock_guard<std::mutex> lock(g_mutex);
- if (g_instance)
- return g_instance;
-
- Engine* instance (new Engine());
+ if (g_instance.lock()){
+ LOG_ERROR(TAG, "already exists");
+ return EnginePtr(); // nullptr
+ }
+ EnginePtr instance (new Engine());
g_instance = instance;
g_instance = instance;
- return
g_
instance;
+ return instance;
}
}
-
void Engine::destroy
()
+
Engine::Engine
()
{
{
- delete g_instance;
+ detector = std::make_shared<Detector>();
+ MetricsPtr m (new Metrics("model.pkl"));
+ multiTracker = std::make_shared<MultiTracker>(m);
}
Engine::~Engine()
{
}
Engine::~Engine()
{
- delete detector;
-// delete tracker;
}
}
+void Engine::destroy()
+{
+}
+
+
void Engine::setVideoSrc(VideoSrcType type, const std::string& url)
{
void Engine::setVideoSrc(VideoSrcType type, const std::string& url)
{
- videoSrc = url;
+
//
videoSrc = url;
reader = VideoReaderFactory::createVideoReader(type, url);
}
reader = VideoReaderFactory::createVideoReader(type, url);
}
@@
-48,9
+50,12
@@
void Engine::run()
{
LOG_DEBUG(TAG, "run");
cv::Mat frame;
{
LOG_DEBUG(TAG, "run");
cv::Mat frame;
+ Detection detections[128];
while (reader->read(frame)){
LOG_DEBUG(TAG, "Size: " << frame.cols << "x" << frame.rows);
while (reader->read(frame)){
LOG_DEBUG(TAG, "Size: " << frame.cols << "x" << frame.rows);
- detector->detect(frame);
+ // TODO
+ int total = detector->detect(frame, detections);
+ multiTracker->update(total, detections, frame);
}
}
}
}