微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在浏览器中将yolov3与opencv.js一起使用

如何解决如何在浏览器中将yolov3与opencv.js一起使用

我是opencv.js的新手,遇到了如下问题:

let utils = new Utils('errorMessage');
    let cfg = 'yolo_file/test.cfg';
    let weights = 'yolo_file/test.weights';
    utils.createFileFromUrl('cfg',cfg,() => {
      utils.createFileFromUrl('weights',weights,() => {
        let img=cv.imread('imageSrc');
        let blob = cv.blobFromImage(img,1/255,new cv.Size(800,800),new cv.Scalar(0,0),true,false);
        let net = cv.readNet('cfg','weights');
        net.setInput(blob);
        let prob = net.forward();
        console.log(prob);
        //console.log(blob);
        //net.setInput(blob);
        //outs = net.forward(['yolo_82','yolo_94','yolo_106']);

      });
});

代码将在此行let prob = net.forward();上出错。 错误详细信息为“未捕获6575912”。

您能建议我如何解决吗?

解决方法

在Yolo中,每个图层都有一个输出,因此您需要指定要转发的图层。在您的情况下,可能是这样的:

let outs = new cv.MatVector()
net.forward2(outs,['yolo_82','yolo_94','yolo_106'])

但是,不幸的是,由于无法导出getUnconnectedOutLayersNames,因此无法从JavaScript获取图层名称,因此您必须对其进行硬编码或更改源代码并从源代码进行编译。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。