nanodet
nanodet copied to clipboard
ncnn 推理decode_infer API crash
ncnn 推理decode_infer API 是否有问题,feats.row(idx) 会导致指针溢出。 feats mat size 是,2125*33 , num_points 是 2125 ,feats.row(idx) 的逻辑是 取idx 行 数据,我的理解这里是不是取 feats.col(idx). ?
void NanoDet::decode_infer() { const int num_points = center_priors.size(); //printf("num_points:%d\n", num_points);
//cv::Mat debug_heatmap = cv::Mat(feature_h, feature_w, CV_8UC3);
for (int idx = 0; idx < num_points; idx++)
{
const int ct_x = center_priors[idx].x;
const int ct_y = center_priors[idx].y;
const int stride = center_priors[idx].stride;
const float* scores = feats.row(idx);
float score = 0;
int cur_label = 0;
for (int label = 0; label < this->num_class; label++)
{
if (scores[label] > score)
{
score = scores[label];
...
我觉得目前的NCNN推理代码可能版本比较老,目前的模型是没办法使用的
ncnn 推理decode_infer API 是否有问题,feats.row(idx) 会导致指针溢出。 feats mat size 是,2125*33 , num_points 是 2125 ,feats.row(idx) 的逻辑是 取idx 行 数据,我的理解这里是不是取 feats.col(idx). ?
void NanoDet::decode_infer() { const int num_points = center_priors.size(); //printf("num_points:%d\n", num_points);
//cv::Mat debug_heatmap = cv::Mat(feature_h, feature_w, CV_8UC3); for (int idx = 0; idx < num_points; idx++) { const int ct_x = center_priors[idx].x; const int ct_y = center_priors[idx].y; const int stride = center_priors[idx].stride; const float* scores = feats.row(idx); float score = 0; int cur_label = 0; for (int label = 0; label < this->num_class; label++) { if (scores[label] > score) { score = scores[label];
... 内存溢出的问题可能是因为strides引起的
哪里可以找到onnx文件呢?您可以给我提供一份吗?