Make DMA input optional per detector
This commit is contained in:
parent
938f3760a4
commit
53afc006c3
@ -42,6 +42,7 @@
|
||||
"rga_gate": "person_shoe_two_stage_balanced",
|
||||
"rga_max_inflight": 4,
|
||||
"dst_packed": true,
|
||||
"use_dma_input": true,
|
||||
"infer_fps": 2,
|
||||
"infer_phase_ms": 0,
|
||||
"model_path": "./models/yolov8n-640.rknn",
|
||||
@ -86,6 +87,7 @@
|
||||
"rga_gate": "person_shoe_two_stage_balanced",
|
||||
"rga_max_inflight": 4,
|
||||
"dst_packed": true,
|
||||
"use_dma_input": false,
|
||||
"infer_fps": 2,
|
||||
"infer_phase_ms": 250,
|
||||
"model_path": "./models/shoe_detector_openimages_ppe_v1.rknn",
|
||||
|
||||
@ -321,6 +321,7 @@ public:
|
||||
if (infer_interval_ms_ > 0 && infer_phase_ms_ >= infer_interval_ms_) {
|
||||
infer_phase_ms_ %= infer_interval_ms_;
|
||||
}
|
||||
use_dma_input_ = config.ValueOr<bool>("use_dma_input", use_dma_input_);
|
||||
|
||||
if (const SimpleJson* dyn = config.Find("dynamic_roi"); dyn && dyn->IsObject()) {
|
||||
dynamic_roi_.enable = dyn->ValueOr<bool>("enable", false);
|
||||
@ -597,7 +598,7 @@ private:
|
||||
? resized_frame.planes[0].stride
|
||||
: (resized_frame.stride > 0 ? resized_frame.stride : model_w_ * 3);
|
||||
const size_t packed_size = static_cast<size_t>(model_w_) * static_cast<size_t>(model_h_) * 3;
|
||||
if (resized_frame.DmaFd() >= 0 && resized_data) {
|
||||
if (use_dma_input_ && resized_frame.DmaFd() >= 0 && resized_data) {
|
||||
model_input_data = resized_data;
|
||||
model_input_size = resized_frame.data_size > 0 ? resized_frame.data_size : packed_size;
|
||||
model_input_dma_fd = resized_frame.DmaFd();
|
||||
@ -816,6 +817,7 @@ private:
|
||||
int64_t infer_interval_ms_ = 0;
|
||||
int64_t infer_phase_ms_ = 0;
|
||||
int64_t last_infer_pts_ms_ = 0;
|
||||
bool use_dma_input_ = true;
|
||||
DynamicRoiConfig dynamic_roi_;
|
||||
std::vector<DetWindow> windows_;
|
||||
std::vector<uint8_t> input_buf_;
|
||||
|
||||
@ -695,6 +695,7 @@ public:
|
||||
if (infer_interval_ms_ > 0 && infer_phase_ms_ >= infer_interval_ms_) {
|
||||
infer_phase_ms_ %= infer_interval_ms_;
|
||||
}
|
||||
use_dma_input_ = config.ValueOr<bool>("use_dma_input", use_dma_input_);
|
||||
|
||||
std::string ver = config.ValueOr<std::string>("model_version", "auto");
|
||||
if (ver == "v5") {
|
||||
@ -934,7 +935,7 @@ private:
|
||||
const int resized_stride = resized_frame.planes[0].stride > 0
|
||||
? resized_frame.planes[0].stride
|
||||
: (resized_frame.stride > 0 ? resized_frame.stride : static_cast<int>(input_row));
|
||||
if (resized_frame.DmaFd() >= 0 && resized_data) {
|
||||
if (use_dma_input_ && resized_frame.DmaFd() >= 0 && resized_data) {
|
||||
input.data = resized_data;
|
||||
input.size = resized_frame.data_size > 0 ? resized_frame.data_size : input_size;
|
||||
input.width = model_input_w_;
|
||||
@ -1334,6 +1335,7 @@ private:
|
||||
int64_t infer_interval_ms_ = 0;
|
||||
int64_t infer_phase_ms_ = 0;
|
||||
int64_t last_infer_pts_ms_ = 0;
|
||||
bool use_dma_input_ = true;
|
||||
|
||||
#if defined(RK3588_ENABLE_RKNN)
|
||||
ModelHandle model_handle_ = kInvalidModelHandle;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user