finish inference result analysis
This commit is contained in:
parent
dce8cdb2ff
commit
ed980be104
8
package-lock.json
generated
8
package-lock.json
generated
@ -4582,7 +4582,7 @@
|
|||||||
},
|
},
|
||||||
"echarts": {
|
"echarts": {
|
||||||
"version": "5.5.1",
|
"version": "5.5.1",
|
||||||
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.1.tgz",
|
||||||
"integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
|
"integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "2.3.0",
|
"tslib": "2.3.0",
|
||||||
@ -4591,7 +4591,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
|
||||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -17581,7 +17581,7 @@
|
|||||||
},
|
},
|
||||||
"zrender": {
|
"zrender": {
|
||||||
"version": "5.6.0",
|
"version": "5.6.0",
|
||||||
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.0.tgz",
|
||||||
"integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
|
"integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "2.3.0"
|
"tslib": "2.3.0"
|
||||||
@ -17589,7 +17589,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
|
||||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,8 +37,8 @@
|
|||||||
<Option v-for="(value, key) in result" :value="key" :key="key" :label="key"><span>{{ key
|
<Option v-for="(value, key) in result" :value="key" :key="key" :label="key"><span>{{ key
|
||||||
}}</span>
|
}}</span>
|
||||||
<span style="float:right;color:#ccc">(SR=<span
|
<span style="float:right;color:#ccc">(SR=<span
|
||||||
:style="{ color: getSuccessRateColor(result[key]['success_rate']) }">{{
|
:style="{ color: getSuccessRateColor(result[key]['pred_max_coverage_rate']) }">{{
|
||||||
(result[key]["success_rate"] * 100).toFixed(2) }}%</span>)</span>
|
(result[key]["pred_max_coverage_rate"] * 100).toFixed(2) }}%</span>)</span>
|
||||||
</Option>
|
</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Col>
|
</Col>
|
||||||
@ -49,8 +49,6 @@
|
|||||||
</Col>
|
</Col>
|
||||||
<Col span="14">
|
<Col span="14">
|
||||||
|
|
||||||
<span style="font-weight: bold;">Max Coverage Rate: <span style="color: green;">{{ result[sceneName]
|
|
||||||
? (result[sceneName]["max_coverage_rate"] * 100).toFixed(2) : 0 }}%</span></span>
|
|
||||||
<Divider type="vertical" style="height: 100%;" />
|
<Divider type="vertical" style="height: 100%;" />
|
||||||
<span style="font-weight: bold;">Pred Coverage Rate: <span style="color: green;">{{
|
<span style="font-weight: bold;">Pred Coverage Rate: <span style="color: green;">{{
|
||||||
result[sceneName]
|
result[sceneName]
|
||||||
@ -119,7 +117,7 @@ export default {
|
|||||||
if (!this.sceneName || !this.result[this.sceneName]) return;
|
if (!this.sceneName || !this.result[this.sceneName]) return;
|
||||||
|
|
||||||
const coverageRateSeq = this.result[this.sceneName]["coverage_rate_seq"];
|
const coverageRateSeq = this.result[this.sceneName]["coverage_rate_seq"];
|
||||||
const maxCoverageRate = this.result[this.sceneName]["max_coverage_rate"];
|
const maxCoverageRate = this.result[this.sceneName]["pred_max_coverage_rate"];
|
||||||
const successRateSeq = coverageRateSeq.map(rate => (rate * 100 / maxCoverageRate).toFixed(2)); // 计算成功率序列
|
const successRateSeq = coverageRateSeq.map(rate => (rate * 100 / maxCoverageRate).toFixed(2)); // 计算成功率序列
|
||||||
|
|
||||||
// 初始化折线图
|
// 初始化折线图
|
||||||
@ -192,8 +190,9 @@ export default {
|
|||||||
},
|
},
|
||||||
drawCharts() {
|
drawCharts() {
|
||||||
// 提取成功率数据
|
// 提取成功率数据
|
||||||
const successRates = Object.values(this.result).map(item => item.success_rate);
|
console.log("result", this.result);
|
||||||
|
const successRates = Object.values(this.result).map(item => item.pred_max_coverage_rate);
|
||||||
|
|
||||||
// 计算平均数
|
// 计算平均数
|
||||||
const avgSuccessRate = parseFloat((successRates.reduce((sum, rate) => sum + rate, 0) / successRates.length).toFixed(4));
|
const avgSuccessRate = parseFloat((successRates.reduce((sum, rate) => sum + rate, 0) / successRates.length).toFixed(4));
|
||||||
console.log("avg", avgSuccessRate);
|
console.log("avg", avgSuccessRate);
|
||||||
@ -204,13 +203,17 @@ export default {
|
|||||||
const medianSuccessRate = parseFloat((sortedRates.length % 2 !== 0 ? sortedRates[mid] : ((sortedRates[mid - 1] + sortedRates[mid]) / 2)).toFixed(4));
|
const medianSuccessRate = parseFloat((sortedRates.length % 2 !== 0 ? sortedRates[mid] : ((sortedRates[mid - 1] + sortedRates[mid]) / 2)).toFixed(4));
|
||||||
|
|
||||||
// 定义区间
|
// 定义区间
|
||||||
const intervals = ['0-10%', '10-20%', '20-30%', '30-40%', '40-50%', '50-60%', '60-70%', '70-80%', '80-90%', '90-100%', '>=100%'];
|
const intervals = ['0-10%', '10-20%', '20-30%', '30-40%', '40-50%', '50-60%', '60-70%', '70-80%', '80-90%', '90-99%', '99-100%'];
|
||||||
const intervalCounts = new Array(intervals.length).fill(0);
|
const intervalCounts = new Array(intervals.length).fill(0);
|
||||||
|
|
||||||
// 将成功率分类到对应的区间
|
// 将成功率分类到对应的区间
|
||||||
successRates.forEach(rate => {
|
successRates.forEach(rate => {
|
||||||
let index = Math.min(Math.floor(rate * 10), 10); // 大于100%的情况归类为最后一项
|
if (rate >= 0.99) {
|
||||||
intervalCounts[index]++;
|
intervalCounts[10]++; // 99-100%的区间
|
||||||
|
} else {
|
||||||
|
let index = Math.floor(rate * 10);
|
||||||
|
intervalCounts[index]++;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 生成条形图数据
|
// 生成条形图数据
|
||||||
@ -337,7 +340,7 @@ export default {
|
|||||||
length: 30
|
length: 30
|
||||||
},
|
},
|
||||||
label: {
|
label: {
|
||||||
formatter: '{a|{a}}{abg|}\n{hr|}\n {b|{b}:}{c} {per|{d}%} ',
|
formatter: '{a|{a}}{abg|}\n{hr|}\n {b|{b}:}{c} {per|{d}%} ',
|
||||||
backgroundColor: '#F6F8FC',
|
backgroundColor: '#F6F8FC',
|
||||||
borderColor: '#8C8D8E',
|
borderColor: '#8C8D8E',
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
<Row v-for="(item, index) in seqFrameData" :key="item['frame']" style="margin-left: 20px;">
|
<Row v-for="(item, index) in seqFrameData" :key="item['frame']" style="margin-left: 20px;">
|
||||||
<p style="width: 10%;">[<span style="color: red;">{{ index }}</span>]</p>
|
<p style="width: 10%;">[<span style="color: red;">{{ index }}</span>]</p>
|
||||||
<p style="width: 30%;">frame id: <span style="color: green;">{{ item['frame_id'] }}</span></p>
|
<p style="width: 30%;">frame id: <span style="color: green;">{{ item['frame_id'] }}</span></p>
|
||||||
<p style="width: 40%;">coverage rate: <span style="color: blue;">{{ (item["data"]['coverage_rate']*100).toFixed(2) }}%</span></p>
|
<p style="width: 40%;">coverage rate: <span style="color: blue;">{{ (item["data"]['coverage_rate']).toFixed(2) }}%</span></p>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user