human/dist/human-nobundle.cjs.map

8 lines
207 KiB
Plaintext
Raw Normal View History

2020-10-14 02:52:30 +02:00
{
"version": 3,
2020-10-15 00:22:38 +02:00
"sources": ["../src/facemesh/blazeface.js", "../src/facemesh/keypoints.js", "../src/facemesh/box.js", "../src/facemesh/util.js", "../src/facemesh/pipeline.js", "../src/facemesh/uvcoords.js", "../src/facemesh/triangulation.js", "../src/facemesh/facemesh.js", "../src/ssrnet/ssrnet.js", "../src/emotion/emotion.js", "../src/posenet/modelBase.js", "../src/posenet/modelMobileNet.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/box.js", "../src/handpose/handdetector.js", "../src/handpose/keypoints.js", "../src/handpose/util.js", "../src/handpose/pipeline.js", "../src/handpose/handpose.js", "../src/config.js", "../src/index.js"],
2020-10-15 15:43:16 +02:00
"sourcesContent": ["const tf = require('@tensorflow/tfjs');\n\nconst ANCHORS_CONFIG = {\n strides: [8, 16],\n anchors: [2, 6],\n};\n\nconst NUM_LANDMARKS = 6;\nfunction generateAnchors(width, height, outputSpec) {\n const anchors = [];\n for (let i = 0; i < outputSpec.strides.length; i++) {\n const stride = outputSpec.strides[i];\n const gridRows = Math.floor((height + stride - 1) / stride);\n const gridCols = Math.floor((width + stride - 1) / stride);\n const anchorsNum = outputSpec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.detector.inputSize;\n this.height = config.detector.inputSize;\n this.maxFaces = config.detector.maxFaces;\n this.anchorsData = generateAnchors(config.detector.inputSize, config.detector.inputSize, ANCHORS_CONFIG);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSizeData = [config.detector.inputSize, config.detector.inputSize];\n this.inputSize = tf.tensor1d([config.detector.inputSize, config.detector.inputSize]);\n this.iouThreshold = config.detector.iouThreshold;\n this.scoreThreshold = config.detector.scoreThreshold;\n }\n\n async getBoundingBoxes(inputImage) {\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n const prediction = batchedPrediction.squeeze();\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.maxFaces, this.iouThreshold, this.scoreThreshold);\n const boxIndices = await boxIndicesTensor.array();\n boxIndicesTensor.dispose();\n let boundingBoxes = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n boundingBoxes = await Promise.all(boundingBoxes.map(async (boundingBox) => {\n
"mappings": "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
2020-10-14 02:52:30 +02:00
"names": []
}