MCPcopy Create free account
hub / github.com/Faceplugin-ltd/FaceRecognition-LivenessDetection-Javascript / decodeBBox

Function decodeBBox

lib/fr_detect.js:202–248  ·  view source on GitHub ↗
(bbox, priors, onnx_config)

Source from the content-addressed store, hash-verified

200}
201
202function decodeBBox(bbox, priors, onnx_config) {
203 var variances = onnx_config.variance
204 var loc = ndarray(bbox.data, [4420, 4]);
205 // console.log(bbox, priors);
206 var before_prior = priors.hi(null, 2),
207 after_prior = priors.lo(null, 2);
208
209 var before_loc = loc.hi(null, 2),
210 after_loc = loc.lo(null, 2);
211
212 var before_result = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
213 var before_temp = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
214 var before_temp2 = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
215
216 var after_result = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
217 var after_temp = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
218 var after_temp2 = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
219 var after_temp3 = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
220 var after_temp4 = ndarray(new Float32Array(before_loc.shape[0] * before_loc.shape[1]), [before_loc.shape[0], 2]);
221
222 var boxes = ndarray(new Float32Array(before_loc.shape[0] * 4), [before_loc.shape[0], 4]);
223
224 // Before
225 ops.mul(before_temp, before_loc, after_prior);
226 ops.muls(before_temp2, before_temp, variances[0]);
227 ops.add(before_result, before_temp2, before_prior);
228
229 // After
230 ops.muls(after_temp, after_loc, variances[1]);
231 ops.exp(after_temp2, after_temp);
232 ops.mul(after_temp3, after_temp2, after_prior);
233
234 for (var index = 0; index < 4; index++)
235 ops.assign(after_result.pick(null, index), after_temp3.pick(null, index));
236
237 ops.divs(after_temp4, after_temp3, -2);
238 ops.addeq(before_result, after_temp4);
239
240 ops.addeq(after_result, before_result);
241
242 ops.assign(boxes.pick(null, 0), before_result.pick(null, 0));
243 ops.assign(boxes.pick(null, 1), before_result.pick(null, 1));
244 ops.assign(boxes.pick(null, 2), after_result.pick(null, 0));
245 ops.assign(boxes.pick(null, 3), after_result.pick(null, 1));
246
247 return boxes;
248}
249
250function scaleMultiplyBBox(boxes_arr, scale) {
251 var total_result = boxes_arr.shape[0];

Callers 1

detectFaceImageFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected