From 084eff39960af8adf8684cbfe26fa397ce756841 Mon Sep 17 00:00:00 2001 From: MikeLud <36526272+MikeLud@users.noreply.github.com> Date: Mon, 31 Mar 2025 21:33:01 -0400 Subject: [PATCH] Fixed Benchmark and Added ALPR to the Benchmark --- src/server/wwwroot/assets/explorer.js | 52 +++++++++++++++++++++------ src/server/wwwroot/explorer.html | 22 +++++++++--- 2 files changed, 60 insertions(+), 14 deletions(-) diff --git a/src/server/wwwroot/assets/explorer.js b/src/server/wwwroot/assets/explorer.js index 2b66377..3510c93 100644 --- a/src/server/wwwroot/assets/explorer.js +++ b/src/server/wwwroot/assets/explorer.js @@ -43,6 +43,20 @@ function initVideoDemo() { } } +// Function to enable/disable model selection based on selected mode +function toggleModelSelection() { + const alprSelected = document.getElementById('benchmarkModeALPR').checked; + const modelDropdown = document.getElementById('benchmarkModel'); + + if (alprSelected) { + // Disable the model dropdown when ALPR is selected + modelDropdown.disabled = true; + } else { + // Enable the model dropdown when Object Detection is selected + modelDropdown.disabled = false; + } +} + // Display server and module statuses ========================================== /** @@ -889,6 +903,9 @@ async function setBenchmarkCustomList() { customModelList.splice(1, 0, { name: "No inference: round-trip speed test only", value: "round-trip"}); setModelList("benchmarkModel", customModelList); + + // Initialize model selection state after setting the list + toggleModelSelection(); } } @@ -1139,11 +1156,18 @@ const maxBenchmarkRequests = 50; let totalBenchmarkRequests = 0; async function onBenchmark(fileChooser, model_name, parallelism) { - clearImagePreview(); let images = null; - let route = model_name ? ('custom/' + model_name) : 'detection'; + let mode = document.querySelector('input[name="benchmarkMode"]:checked').value; + + // Ignore model_name when ALPR is selected + let route; + if (mode === "alpr") { + route = "alpr"; + } else { + route = model_name ? ('custom/' + model_name) : mode; + } if (benchmarkModel.value == "round-trip") { route = "custom/list"; @@ -1154,22 +1178,30 @@ async function onBenchmark(fileChooser, model_name, parallelism) { return; } - previewImage(fileChooser.files[0]); + previewImage(fileChooser); + images = [fileChooser.files[0]]; } - // Warm up + totalBenchmarkRequests = 0; + setResultsHtml("Starting benchmark test using " + mode + " route"); + + // Perform warmup requests for (let i = 0; i < warmupCount; i++) { - let data = await submitRequest('vision', route, images); - if (data) - setResultsHtml("Warm up " + i); + try { + await submitRequest('vision', route, images); + } + catch (error) { + console.log("Warmup request failed: " + error); + } } - // Benchmark let startMilliseconds = performance.now(); - totalBenchmarkRequests = 0; - for (let i = 0; i < parallelism; i++) + + // Start actual benchmark + for (let i = 0; i < parallelism; i++) { sendBenchmarkRequest(route, images, startMilliseconds); + } } function sendBenchmarkRequest(route, images, startMilliseconds) { diff --git a/src/server/wwwroot/explorer.html b/src/server/wwwroot/explorer.html index 47d032a..62a846e 100644 --- a/src/server/wwwroot/explorer.html +++ b/src/server/wwwroot/explorer.html @@ -1,4 +1,4 @@ - + @@ -14,10 +14,10 @@ - + - - + + @@ -56,6 +56,9 @@ setInterval(setBenchmarkCustomList, customModelUpdateFreqSec * 1000); initVideoDemo(); + + // Initial state of model selection based on default radio selection + toggleModelSelection(); }); @@ -249,6 +252,17 @@ +
+ +
+ + +
+
+ + +
+