finish inference result analysis

This commit is contained in:
hofee 2024-11-26 14:47:01 +08:00
parent dce8cdb2ff
commit ed980be104
3 changed files with 19 additions and 16 deletions

8
package-lock.json generated
View File

@ -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=="
} }
} }

View File

@ -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,7 +190,8 @@ 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));
@ -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[10]++; // 99-100%
} else {
let index = Math.floor(rate * 10);
intervalCounts[index]++; 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,

View File

@ -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>