如何在浏览器中使用带有 opencv.js 的 yolov3
how to use yolov3 with opencv.js in browser
我是 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, 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();
。
错误详细信息是“Uncaught 6575912”。
你能建议我如何解决吗?
在Yolo中,每一层都有一个输出,所以你需要指定你要转发的层。在你的情况下它会是这样的:
let outs = new cv.MatVector()
net.forward2(outs, ['yolo_82', 'yolo_94', 'yolo_106'])
不幸的是,由于 getUnconnectedOutLayersNames 未导出,因此您无法从 JavaScript 获取层名称,因此您必须对其进行硬编码或更改源代码并从源代码编译。
我是 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, 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();
。
错误详细信息是“Uncaught 6575912”。
你能建议我如何解决吗?
在Yolo中,每一层都有一个输出,所以你需要指定你要转发的层。在你的情况下它会是这样的:
let outs = new cv.MatVector()
net.forward2(outs, ['yolo_82', 'yolo_94', 'yolo_106'])
不幸的是,由于 getUnconnectedOutLayersNames 未导出,因此您无法从 JavaScript 获取层名称,因此您必须对其进行硬编码或更改源代码并从源代码编译。