(cv, mats, overrides)
| 217 | return sessionState?.provider || ""; |
| 218 | }, |
| 219 | async predict(cv, mats, overrides) { |
| 220 | if (!sessionState?.session) { |
| 221 | throw new Error("Detection model session is not initialized."); |
| 222 | } |
| 223 | const params = resolveDetParams(defaultParams, overrides); |
| 224 | const batchSize = resolveRuntimeBatchSize(overrides?.batchSize, defaultBatchSize); |
| 225 | const results: DetResult[] = []; |
| 226 | const runCtx: DetRunContext = { |
| 227 | cv, |
| 228 | ort, |
| 229 | config, |
| 230 | session: sessionState.session |
| 231 | }; |
| 232 | for (const chunk of chunkArray(mats, batchSize)) { |
| 233 | const preps = preprocess({ cv, ort, config }, chunk, params); |
| 234 | const inputTensor = packDetBatchTensor(ort, preps); |
| 235 | const fullOutput = await runInference(sessionState.session, inputTensor); |
| 236 | const internals = postprocess(runCtx, fullOutput, preps, params); |
| 237 | for (const internal of internals) { |
| 238 | results.push({ |
| 239 | boxes: internal.boxes, |
| 240 | srcW: internal.prep.srcW, |
| 241 | srcH: internal.prep.srcH |
| 242 | }); |
| 243 | } |
| 244 | } |
| 245 | return results; |
| 246 | }, |
| 247 | async dispose() { |
| 248 | await releaseSessions(sessionState?.session); |
| 249 | sessionState = null; |
nothing calls this directly
no test coverage detected
searching dependent graphs…