yolov5_cpp_openvino icon indicating copy to clipboard operation
yolov5_cpp_openvino copied to clipboard

Segmentation fault (core dumped)

Open xyqqqfs opened this issue 3 years ago • 3 comments
trafficstars

博主的demo已经跑通了,但是换成自己的模型和数据集后,make成功了但是运行“./detect_test”时出错:“Segmentation fault (core dumped)”,其中已经把main.cpp的xml和图片路径以及detector.cpp的类别数都改了,请问有没有人遇到这样的情况?

xyqqqfs avatar Mar 27 '22 14:03 xyqqqfs

有,一模一样

gcusms avatar Apr 12 '22 12:04 gcusms

34531 Segmentation fault (core dumped)

gcusms avatar Apr 12 '22 12:04 gcusms

博主的demo已经跑通了,但是换成自己的模型和数据集后,make成功了但是运行“./detect_test”时出错:“Segmentation fault (core dumped)”,其中已经把main.cpp的xml和图片路径以及detector.cpp的类别数都改了,请问有没有人遇到这样的情况?

同样遇到此问题,问题应该出现在这,s[i]访问越界,你可以打印出blob的值(正常应为80,40,20)查看,报错时应该打印了除(80,40,20) 以外的数值

https://github.com/fb029ed/yolov5_cpp_openvino/blob/e95a9dcf814863c6dbe242ef9770f322aa64ad66/demo/detector.cpp#L126

如下是我的修改,修改完成后重新make,没有再出现报错。

    int i = 0;
    for (auto &output : _outputinfo) {
        auto output_name = output.first;
        Blob::Ptr blob = infer_request->GetBlob(output_name);
       
        const int net_grid_h = static_cast<int>(blob->getTensorDesc().getDims()[2]); 
        const int net_grid_w = static_cast<int>(blob->getTensorDesc().getDims()[3]);

        if(net_grid_h != net_grid_w){continue;};
        parse_yolov5(blob,s[i],_cof_threshold,origin_rect,origin_rect_cof, classId);
        ++i;
    }

ChesterXcw avatar Jul 05 '22 06:07 ChesterXcw