|
@@ -1,6 +1,7 @@
|
|
-#include "infer/trt/yolo.hpp"
|
|
|
|
#include <vector>
|
|
#include <vector>
|
|
|
|
+#include <mutex>
|
|
#include <memory>
|
|
#include <memory>
|
|
|
|
+#include "infer/trt/yolo/yolo.hpp"
|
|
#include "infer/slice/slice.hpp"
|
|
#include "infer/slice/slice.hpp"
|
|
#include "infer/trt/affine.hpp"
|
|
#include "infer/trt/affine.hpp"
|
|
#include "common/check.hpp"
|
|
#include "common/check.hpp"
|
|
@@ -399,12 +400,14 @@ bool YoloModelImpl::load(const std::string &engine_file, ModelType model_type, c
|
|
|
|
|
|
data::BoxArray YoloModelImpl::forward(const tensor::Image &image, int slice_width, int slice_height, float overlap_width_ratio, float overlap_height_ratio, void *stream)
|
|
data::BoxArray YoloModelImpl::forward(const tensor::Image &image, int slice_width, int slice_height, float overlap_width_ratio, float overlap_height_ratio, void *stream)
|
|
{
|
|
{
|
|
|
|
+ std::lock_guard<std::mutex> lock(mutex_); // 自动加锁/解锁
|
|
slice_->slice(image, slice_width, slice_height, overlap_width_ratio, overlap_height_ratio, stream);
|
|
slice_->slice(image, slice_width, slice_height, overlap_width_ratio, overlap_height_ratio, stream);
|
|
return forwards(stream);
|
|
return forwards(stream);
|
|
}
|
|
}
|
|
|
|
|
|
data::BoxArray YoloModelImpl::forward(const tensor::Image &image, void *stream)
|
|
data::BoxArray YoloModelImpl::forward(const tensor::Image &image, void *stream)
|
|
{
|
|
{
|
|
|
|
+ std::lock_guard<std::mutex> lock(mutex_); // 自动加锁/解锁
|
|
slice_->autoSlice(image, stream);
|
|
slice_->autoSlice(image, stream);
|
|
return forwards(stream);
|
|
return forwards(stream);
|
|
}
|
|
}
|