请教一下,请问那个分割输出的数据怎么理解?我想写个nodejs的版本。
winktool opened this issue · 2 comments
winktool commented
这个是没有seg的模型的输出的。
const output0 = results[session.outputNames[0]];
const boxes = [];
for (let r = 0; r < output0.data.length; r += output0.dims[2]) {
const data = output0.data.slice(r, r + output0.dims[2]); // get rows
console.log("data", data);
const scores = data.slice(5); // classes probability scores
const confidence = data[4]; // detection confidence
const classId = scores.indexOf(Math.max(...scores)); // class id of maximum probability scores
const maxClassProb = scores[classId]; // maximum probability scores
if (confidence >= confidenceThreshold && maxClassProb >= classThreshold) {
const [x, y, w, h] = data.slice(0, 4);
boxes.push({
name: labels[classId],
score: (maxClassProb * 100).toFixed(1),
classId: classId,
probability: maxClassProb,
confidence: confidence,
bounding: [x - 0.5 * w, y - 0.5 * h, w, h],
});
}
}
winktool commented
我想获取多边形的坐标集,应该从第几个数组下标开始截取,并转换成坐标呢?
UNeedCryDear commented
详细请看https://github.com/UNeedCryDear/yolov5-seg-opencv-onnxruntime-cpp。
我没接触过nodejs,所以有些操作我也看不懂啊,只能你自己从cpp去修改了。至于分割数据什么含义,你可以看下yolact这篇论文,讲的就是预测分支和掩码以及特征矩阵的作用