Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
face
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Кубота
face
Commits
b9588f96
Commit
b9588f96
authored
Jun 17, 2018
by
vincent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
build dist
parent
4a1a9629
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
112 additions
and
57 deletions
+112
-57
Point.d.ts
dist/Point.d.ts
+9
-1
Point.js
dist/Point.js
+12
-0
Point.js.map
dist/Point.js.map
+2
-2
Rect.d.ts
dist/Rect.d.ts
+1
-0
Rect.js
dist/Rect.js
+3
-0
Rect.js.map
dist/Rect.js.map
+2
-2
extractFaceTensors.js
dist/extractFaceTensors.js
+1
-1
extractFaceTensors.js.map
dist/extractFaceTensors.js.map
+2
-2
extractFaces.js
dist/extractFaces.js
+1
-1
extractFaces.js.map
dist/extractFaces.js.map
+2
-2
face-api.js
dist/face-api.js
+44
-23
face-api.min.js
dist/face-api.min.js
+0
-0
FaceDetection.d.ts
dist/faceDetectionNet/FaceDetection.d.ts
+2
-0
FaceDetection.js
dist/faceDetectionNet/FaceDetection.js
+7
-1
FaceDetection.js.map
dist/faceDetectionNet/FaceDetection.js.map
+2
-2
FaceLandmarks.d.ts
dist/faceLandmarkNet/FaceLandmarks.d.ts
+3
-1
FaceLandmarks.js
dist/faceLandmarkNet/FaceLandmarks.js
+8
-3
FaceLandmarks.js.map
dist/faceLandmarkNet/FaceLandmarks.js.map
+2
-2
index.js
dist/faceLandmarkNet/index.js
+5
-10
index.js.map
dist/faceLandmarkNet/index.js.map
+2
-2
utils.js.map
dist/utils.js.map
+2
-2
No files found.
dist/Point.d.ts
View file @
b9588f96
export
declare
class
Point
{
export
interface
IPoint
{
x
:
number
;
y
:
number
;
}
export
declare
class
Point
implements
IPoint
{
x
:
number
;
y
:
number
;
constructor
(
x
:
number
,
y
:
number
);
add
(
pt
:
IPoint
):
Point
;
sub
(
pt
:
IPoint
):
Point
;
mul
(
pt
:
IPoint
):
Point
;
div
(
pt
:
IPoint
):
Point
;
}
dist/Point.js
View file @
b9588f96
...
...
@@ -3,6 +3,18 @@ var Point = /** @class */ (function () {
this
.
x
=
x
;
this
.
y
=
y
;
}
Point
.
prototype
.
add
=
function
(
pt
)
{
return
new
Point
(
this
.
x
+
pt
.
x
,
this
.
y
+
pt
.
y
);
};
Point
.
prototype
.
sub
=
function
(
pt
)
{
return
new
Point
(
this
.
x
-
pt
.
x
,
this
.
y
-
pt
.
y
);
};
Point
.
prototype
.
mul
=
function
(
pt
)
{
return
new
Point
(
this
.
x
*
pt
.
x
,
this
.
y
*
pt
.
y
);
};
Point
.
prototype
.
div
=
function
(
pt
)
{
return
new
Point
(
this
.
x
/
pt
.
x
,
this
.
y
/
pt
.
y
);
};
return
Point
;
}());
export
{
Point
};
...
...
dist/Point.js.map
View file @
b9588f96
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../src/Point.ts"],"names":[],"mappings":"AAAA;IAIE,eAAY,CAAS,EAAE,CAAS;QAC9B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IACH,YAAC;AAAD,CAAC,AARD,IAQC"}
\ No newline at end of file
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../src/Point.ts"],"names":[],"mappings":"AAKA;IAIE,eAAY,CAAS,EAAE,CAAS;QAC9B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IAEM,mBAAG,GAAV,UAAW,EAAU;QACnB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAEM,mBAAG,GAAV,UAAW,EAAU;QACnB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAEM,mBAAG,GAAV,UAAW,EAAU;QACnB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAEM,mBAAG,GAAV,UAAW,EAAU;QACnB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IACH,YAAC;AAAD,CAAC,AAxBD,IAwBC"}
\ No newline at end of file
dist/Rect.d.ts
View file @
b9588f96
...
...
@@ -4,4 +4,5 @@ export declare class Rect {
width
:
number
;
height
:
number
;
constructor
(
x
:
number
,
y
:
number
,
width
:
number
,
height
:
number
);
floor
():
Rect
;
}
dist/Rect.js
View file @
b9588f96
...
...
@@ -5,6 +5,9 @@ var Rect = /** @class */ (function () {
this
.
width
=
width
;
this
.
height
=
height
;
}
Rect
.
prototype
.
floor
=
function
()
{
return
new
Rect
(
Math
.
floor
(
this
.
x
),
Math
.
floor
(
this
.
y
),
Math
.
floor
(
this
.
width
),
Math
.
floor
(
this
.
height
));
};
return
Rect
;
}());
export
{
Rect
};
...
...
dist/Rect.js.map
View file @
b9588f96
{"version":3,"file":"Rect.js","sourceRoot":"","sources":["../src/Rect.ts"],"names":[],"mappings":"AAAA;IAME,cAAY,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC7D,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IACH,WAAC;AAAD,CAAC,AAZD,IAYC"}
\ No newline at end of file
{"version":3,"file":"Rect.js","sourceRoot":"","sources":["../src/Rect.ts"],"names":[],"mappings":"AAAA;IAME,cAAY,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC7D,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEM,oBAAK,GAAZ;QACE,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAA;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AArBD,IAqBC"}
\ No newline at end of file
dist/extractFaceTensors.js
View file @
b9588f96
...
...
@@ -17,7 +17,7 @@ export function extractFaceTensors(image, detections) {
// TODO handle batches
var
_a
=
imgTensor
.
shape
,
batchSize
=
_a
[
0
],
imgHeight
=
_a
[
1
],
imgWidth
=
_a
[
2
],
numChannels
=
_a
[
3
];
var
faceTensors
=
detections
.
map
(
function
(
det
)
{
var
_a
=
det
.
forSize
(
imgWidth
,
imgHeight
).
getBox
(),
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
var
_a
=
det
.
forSize
(
imgWidth
,
imgHeight
).
getBox
()
.
floor
()
,
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
return
tf
.
slice
(
imgTensor
,
[
0
,
y
,
x
,
0
],
[
1
,
height
,
width
,
numChannels
]);
});
return
faceTensors
;
...
...
dist/extractFaceTensors.js.map
View file @
b9588f96
{"version":3,"file":"extractFaceTensors.js","sourceRoot":"","sources":["../src/extractFaceTensors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;;;;;;;;;GAUG;AACH,MAAM,6BACJ,KAAuC,EACvC,UAA2B;IAE3B,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QAEvC,sBAAsB;QAChB,IAAA,oBAA+D,EAA9D,iBAAS,EAAE,iBAAS,EAAE,gBAAQ,EAAE,mBAAW,CAAmB;QAErE,IAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG;YAC9B,IAAA,8CAAmE,EAAjE,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAA8C;YACzE,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
{"version":3,"file":"extractFaceTensors.js","sourceRoot":"","sources":["../src/extractFaceTensors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;;;;;;;;;GAUG;AACH,MAAM,6BACJ,KAAuC,EACvC,UAA2B;IAE3B,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QAEvC,sBAAsB;QAChB,IAAA,oBAA+D,EAA9D,iBAAS,EAAE,iBAAS,EAAE,gBAAQ,EAAE,mBAAW,CAAmB;QAErE,IAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG;YAC9B,IAAA,sDAA2E,EAAzE,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAAsD;YACjF,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
dist/extractFaces.js
View file @
b9588f96
...
...
@@ -9,7 +9,7 @@ import { createCanvas, getContext2dOrThrow } from './utils';
export
function
extractFaces
(
image
,
detections
)
{
var
ctx
=
getContext2dOrThrow
(
image
);
return
detections
.
map
(
function
(
det
)
{
var
_a
=
det
.
forSize
(
image
.
width
,
image
.
height
).
getBox
(),
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
var
_a
=
det
.
forSize
(
image
.
width
,
image
.
height
).
getBox
()
.
floor
()
,
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
var
faceImg
=
createCanvas
({
width
:
width
,
height
:
height
});
getContext2dOrThrow
(
faceImg
)
.
putImageData
(
ctx
.
getImageData
(
x
,
y
,
width
,
height
),
0
,
0
);
...
...
dist/extractFaces.js.map
View file @
b9588f96
{"version":3,"file":"extractFaces.js","sourceRoot":"","sources":["../src/extractFaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,uBACJ,KAAwB,EACxB,UAA2B;IAE3B,IAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAEtC,OAAO,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG;QACjB,IAAA,oDAAyE,EAAvE,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAAoD;QAE/E,IAAM,OAAO,GAAG,YAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAC/C,mBAAmB,CAAC,OAAO,CAAC;aACzB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5D,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
{"version":3,"file":"extractFaces.js","sourceRoot":"","sources":["../src/extractFaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,uBACJ,KAAwB,EACxB,UAA2B;IAE3B,IAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAEtC,OAAO,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG;QACjB,IAAA,4DAAiF,EAA/E,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAA4D;QACvF,IAAM,OAAO,GAAG,YAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAC/C,mBAAmB,CAAC,OAAO,CAAC;aACzB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5D,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
dist/face-api.js
View file @
b9588f96
...
...
@@ -714,6 +714,9 @@
this
.
width
=
width
;
this
.
height
=
height
;
}
Rect
.
prototype
.
floor
=
function
()
{
return
new
Rect
(
Math
.
floor
(
this
.
x
),
Math
.
floor
(
this
.
y
),
Math
.
floor
(
this
.
width
),
Math
.
floor
(
this
.
height
));
};
return
Rect
;
}());
...
...
@@ -723,7 +726,7 @@
this
.
_imageWidth
=
width
;
this
.
_imageHeight
=
height
;
this
.
_score
=
score
;
this
.
_box
=
new
Rect
(
Math
.
floor
(
relativeBox
.
x
*
width
),
Math
.
floor
(
relativeBox
.
y
*
height
),
Math
.
floor
(
relativeBox
.
width
*
width
),
Math
.
floor
(
relativeBox
.
height
*
height
)
);
this
.
_box
=
new
Rect
(
relativeBox
.
x
*
width
,
relativeBox
.
y
*
height
,
relativeBox
.
width
*
width
,
relativeBox
.
height
*
height
);
}
FaceDetection
.
prototype
.
getScore
=
function
()
{
return
this
.
_score
;
...
...
@@ -731,6 +734,12 @@
FaceDetection
.
prototype
.
getBox
=
function
()
{
return
this
.
_box
;
};
FaceDetection
.
prototype
.
getImageWidth
=
function
()
{
return
this
.
_imageWidth
;
};
FaceDetection
.
prototype
.
getImageHeight
=
function
()
{
return
this
.
_imageHeight
;
};
FaceDetection
.
prototype
.
getRelativeBox
=
function
()
{
return
new
Rect
(
this
.
_box
.
x
/
this
.
_imageWidth
,
this
.
_box
.
y
/
this
.
_imageHeight
,
this
.
_box
.
width
/
this
.
_imageWidth
,
this
.
_box
.
height
/
this
.
_imageHeight
);
};
...
...
@@ -1019,6 +1028,26 @@
};
}
var
Point
=
/** @class */
(
function
()
{
function
Point
(
x
,
y
)
{
this
.
x
=
x
;
this
.
y
=
y
;
}
Point
.
prototype
.
add
=
function
(
pt
)
{
return
new
Point
(
this
.
x
+
pt
.
x
,
this
.
y
+
pt
.
y
);
};
Point
.
prototype
.
sub
=
function
(
pt
)
{
return
new
Point
(
this
.
x
-
pt
.
x
,
this
.
y
-
pt
.
y
);
};
Point
.
prototype
.
mul
=
function
(
pt
)
{
return
new
Point
(
this
.
x
*
pt
.
x
,
this
.
y
*
pt
.
y
);
};
Point
.
prototype
.
div
=
function
(
pt
)
{
return
new
Point
(
this
.
x
/
pt
.
x
,
this
.
y
/
pt
.
y
);
};
return
Point
;
}());
function
extractConvParamsFactory
(
extractWeights
)
{
return
function
(
channelsIn
,
channelsOut
,
filterSize
)
{
var
filters
=
tensor4d
(
extractWeights
(
channelsIn
*
channelsOut
*
filterSize
*
filterSize
),
[
filterSize
,
filterSize
,
channelsIn
,
channelsOut
]);
...
...
@@ -1068,27 +1097,21 @@
};
}
var
Point
=
/** @class */
(
function
()
{
function
Point
(
x
,
y
)
{
this
.
x
=
x
;
this
.
y
=
y
;
}
return
Point
;
}());
var
FaceLandmarks
=
/** @class */
(
function
()
{
function
FaceLandmarks
(
relativeFaceLandmarkPositions
,
imageDims
)
{
function
FaceLandmarks
(
relativeFaceLandmarkPositions
,
imageDims
,
shift
)
{
if
(
shift
===
void
0
)
{
shift
=
new
Point
(
0
,
0
);
}
var
width
=
imageDims
.
width
,
height
=
imageDims
.
height
;
this
.
_imageWidth
=
width
;
this
.
_imageHeight
=
height
;
this
.
_faceLandmarks
=
relativeFaceLandmarkPositions
.
map
(
function
(
pt
)
{
return
new
Point
(
pt
.
x
*
width
,
pt
.
y
*
height
);
});
this
.
_shift
=
shift
;
this
.
_faceLandmarks
=
relativeFaceLandmarkPositions
.
map
(
function
(
pt
)
{
return
pt
.
mul
(
new
Point
(
width
,
height
)).
add
(
shift
);
});
}
FaceLandmarks
.
prototype
.
getPositions
=
function
()
{
return
this
.
_faceLandmarks
;
};
FaceLandmarks
.
prototype
.
getRelativePositions
=
function
()
{
var
_this
=
this
;
return
this
.
_faceLandmarks
.
map
(
function
(
pt
)
{
return
new
Point
(
pt
.
x
/
_this
.
_imageWidth
,
pt
.
y
/
_this
.
_imageHeight
);
});
return
this
.
_faceLandmarks
.
map
(
function
(
pt
)
{
return
pt
.
sub
(
_this
.
_shift
).
div
(
new
Point
(
_this
.
_imageWidth
,
_this
.
_imageHeight
)
);
});
};
FaceLandmarks
.
prototype
.
getJawOutline
=
function
()
{
return
this
.
_faceLandmarks
.
slice
(
0
,
17
);
...
...
@@ -1114,6 +1137,9 @@
FaceLandmarks
.
prototype
.
forSize
=
function
(
width
,
height
)
{
return
new
FaceLandmarks
(
this
.
getRelativePositions
(),
{
width
:
width
,
height
:
height
});
};
FaceLandmarks
.
prototype
.
shift
=
function
(
x
,
y
)
{
return
new
FaceLandmarks
(
this
.
getRelativePositions
(),
{
width
:
this
.
_imageWidth
,
height
:
this
.
_imageHeight
},
new
Point
(
x
,
y
));
};
return
FaceLandmarks
;
}());
...
...
@@ -1134,19 +1160,14 @@
var
params
=
extractParams$1
(
weights
);
function
detectLandmarks
(
input
)
{
return
__awaiter$1
(
this
,
void
0
,
void
0
,
function
()
{
var
adjustRelativeX
,
adjustRelativeY
,
imageDimensions
,
outTensor
,
faceLandmarksArray
,
_a
,
_b
,
xCoords
,
yCoords
;
var
imageDimensions
,
outTensor
,
faceLandmarksArray
,
_a
,
_b
,
xCoords
,
yCoords
;
return
__generator$1
(
this
,
function
(
_c
)
{
switch
(
_c
.
label
)
{
case
0
:
adjustRelativeX
=
0
;
adjustRelativeY
=
0
;
outTensor
=
tidy
(
function
()
{
var
imgTensor
=
getImageTensor
(
input
);
var
_a
=
imgTensor
.
shape
.
slice
(
1
),
height
=
_a
[
0
],
width
=
_a
[
1
];
imageDimensions
=
{
width
:
width
,
height
:
height
};
imgTensor
=
padToSquare
(
imgTensor
,
true
);
adjustRelativeX
=
(
height
>
width
)
?
imgTensor
.
shape
[
2
]
/
(
2
*
width
)
:
0
;
adjustRelativeY
=
(
width
>
height
)
?
imgTensor
.
shape
[
1
]
/
(
2
*
height
)
:
0
;
// work with 128 x 128 sized face images
if
(
imgTensor
.
shape
[
1
]
!==
128
||
imgTensor
.
shape
[
2
]
!==
128
)
{
imgTensor
=
image
.
resizeBilinear
(
imgTensor
,
[
128
,
128
]);
...
...
@@ -1171,10 +1192,10 @@
return
[
4
/*yield*/
,
outTensor
.
data
()];
case
1
:
faceLandmarksArray
=
_b
.
apply
(
_a
,
[
_c
.
sent
()]);
xCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
(
i
-
1
)
%
2
;
}).
map
(
function
(
x
)
{
return
x
+
adjustRelativeX
;
});
yCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
i
%
2
;
}).
map
(
function
(
y
)
{
return
y
+
adjustRelativeY
;
});
outTensor
.
dispose
();
return
[
2
/*return*/
,
new
FaceLandmarks
(
Array
(
68
).
fill
(
0
).
map
(
function
(
_
,
i
)
{
return
({
x
:
xCoords
[
i
],
y
:
yCoords
[
i
]
});
}),
imageDimensions
)];
xCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
(
i
-
1
)
%
2
;
});
yCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
i
%
2
;
});
return
[
2
/*return*/
,
new
FaceLandmarks
(
Array
(
68
).
fill
(
0
).
map
(
function
(
_
,
i
)
{
return
new
Point
(
xCoords
[
i
],
yCoords
[
i
]);
}),
imageDimensions
)];
}
});
});
...
...
@@ -1400,7 +1421,7 @@
function
extractFaces
(
image
,
detections
)
{
var
ctx
=
getContext2dOrThrow
(
image
);
return
detections
.
map
(
function
(
det
)
{
var
_a
=
det
.
forSize
(
image
.
width
,
image
.
height
).
getBox
(),
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
var
_a
=
det
.
forSize
(
image
.
width
,
image
.
height
).
getBox
()
.
floor
()
,
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
var
faceImg
=
createCanvas
({
width
:
width
,
height
:
height
});
getContext2dOrThrow
(
faceImg
)
.
putImageData
(
ctx
.
getImageData
(
x
,
y
,
width
,
height
),
0
,
0
);
...
...
@@ -1425,7 +1446,7 @@
// TODO handle batches
var
_a
=
imgTensor
.
shape
,
batchSize
=
_a
[
0
],
imgHeight
=
_a
[
1
],
imgWidth
=
_a
[
2
],
numChannels
=
_a
[
3
];
var
faceTensors
=
detections
.
map
(
function
(
det
)
{
var
_a
=
det
.
forSize
(
imgWidth
,
imgHeight
).
getBox
(),
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
var
_a
=
det
.
forSize
(
imgWidth
,
imgHeight
).
getBox
()
.
floor
()
,
x
=
_a
.
x
,
y
=
_a
.
y
,
width
=
_a
.
width
,
height
=
_a
.
height
;
return
slice
(
imgTensor
,
[
0
,
y
,
x
,
0
],
[
1
,
height
,
width
,
numChannels
]);
});
return
faceTensors
;
...
...
dist/face-api.min.js
View file @
b9588f96
This source diff could not be displayed because it is too large. You can
view the blob
instead.
dist/faceDetectionNet/FaceDetection.d.ts
View file @
b9588f96
...
...
@@ -8,6 +8,8 @@ export declare class FaceDetection {
constructor
(
score
:
number
,
relativeBox
:
Rect
,
imageDims
:
Dimensions
);
getScore
():
number
;
getBox
():
Rect
;
getImageWidth
():
number
;
getImageHeight
():
number
;
getRelativeBox
():
Rect
;
forSize
(
width
:
number
,
height
:
number
):
FaceDetection
;
}
dist/faceDetectionNet/FaceDetection.js
View file @
b9588f96
...
...
@@ -5,7 +5,7 @@ var FaceDetection = /** @class */ (function () {
this
.
_imageWidth
=
width
;
this
.
_imageHeight
=
height
;
this
.
_score
=
score
;
this
.
_box
=
new
Rect
(
Math
.
floor
(
relativeBox
.
x
*
width
),
Math
.
floor
(
relativeBox
.
y
*
height
),
Math
.
floor
(
relativeBox
.
width
*
width
),
Math
.
floor
(
relativeBox
.
height
*
height
)
);
this
.
_box
=
new
Rect
(
relativeBox
.
x
*
width
,
relativeBox
.
y
*
height
,
relativeBox
.
width
*
width
,
relativeBox
.
height
*
height
);
}
FaceDetection
.
prototype
.
getScore
=
function
()
{
return
this
.
_score
;
...
...
@@ -13,6 +13,12 @@ var FaceDetection = /** @class */ (function () {
FaceDetection
.
prototype
.
getBox
=
function
()
{
return
this
.
_box
;
};
FaceDetection
.
prototype
.
getImageWidth
=
function
()
{
return
this
.
_imageWidth
;
};
FaceDetection
.
prototype
.
getImageHeight
=
function
()
{
return
this
.
_imageHeight
;
};
FaceDetection
.
prototype
.
getRelativeBox
=
function
()
{
return
new
Rect
(
this
.
_box
.
x
/
this
.
_imageWidth
,
this
.
_box
.
y
/
this
.
_imageHeight
,
this
.
_box
.
width
/
this
.
_imageWidth
,
this
.
_box
.
height
/
this
.
_imageHeight
);
};
...
...
dist/faceDetectionNet/FaceDetection.js.map
View file @
b9588f96
{"version":3,"file":"FaceDetection.js","sourceRoot":"","sources":["../../src/faceDetectionNet/FaceDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;IAME,uBACE,KAAa,EACb,WAAiB,EACjB,SAAqB;QAEb,IAAA,uBAAK,EAAE,yBAAM,CAAc;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAClB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,EACjC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,EAClC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,EACrC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,CACxC,CAAA;IACH,CAAC;IAEM,gCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEM,8BAAM,GAAb;QACE,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,sCAAc,GAArB;QACE,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAClC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CACrC,CAAA;IACH,CAAC;IAEM,+BAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,EAAE,EACrB,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAC,CACjB,CAAA;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA/CD,IA+CC"}
\ No newline at end of file
{"version":3,"file":"FaceDetection.js","sourceRoot":"","sources":["../../src/faceDetectionNet/FaceDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;IAME,uBACE,KAAa,EACb,WAAiB,EACjB,SAAqB;QAEb,IAAA,uBAAK,EAAE,yBAAM,CAAc;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAClB,WAAW,CAAC,CAAC,GAAG,KAAK,EACrB,WAAW,CAAC,CAAC,GAAG,MAAM,EACtB,WAAW,CAAC,KAAK,GAAG,KAAK,EACzB,WAAW,CAAC,MAAM,GAAG,MAAM,CAC5B,CAAA;IACH,CAAC;IAEM,gCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEM,8BAAM,GAAb;QACE,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,qCAAa,GAApB;QACE,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEM,sCAAc,GAArB;QACE,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAEM,sCAAc,GAArB;QACE,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAClC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CACrC,CAAA;IACH,CAAC;IAEM,+BAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,EAAE,EACrB,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAC,CACjB,CAAA;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAvDD,IAuDC"}
\ No newline at end of file
dist/faceLandmarkNet/FaceLandmarks.d.ts
View file @
b9588f96
...
...
@@ -4,7 +4,8 @@ export declare class FaceLandmarks {
private
_faceLandmarks
;
private
_imageWidth
;
private
_imageHeight
;
constructor
(
relativeFaceLandmarkPositions
:
Point
[],
imageDims
:
Dimensions
);
private
_shift
;
constructor
(
relativeFaceLandmarkPositions
:
Point
[],
imageDims
:
Dimensions
,
shift
?:
Point
);
getPositions
():
Point
[];
getRelativePositions
():
Point
[];
getJawOutline
():
Point
[];
...
...
@@ -15,4 +16,5 @@ export declare class FaceLandmarks {
getRightEye
():
Point
[];
getMouth
():
Point
[];
forSize
(
width
:
number
,
height
:
number
):
FaceLandmarks
;
shift
(
x
:
number
,
y
:
number
):
FaceLandmarks
;
}
dist/faceLandmarkNet/FaceLandmarks.js
View file @
b9588f96
import
{
Point
}
from
'../Point'
;
var
FaceLandmarks
=
/** @class */
(
function
()
{
function
FaceLandmarks
(
relativeFaceLandmarkPositions
,
imageDims
)
{
function
FaceLandmarks
(
relativeFaceLandmarkPositions
,
imageDims
,
shift
)
{
if
(
shift
===
void
0
)
{
shift
=
new
Point
(
0
,
0
);
}
var
width
=
imageDims
.
width
,
height
=
imageDims
.
height
;
this
.
_imageWidth
=
width
;
this
.
_imageHeight
=
height
;
this
.
_faceLandmarks
=
relativeFaceLandmarkPositions
.
map
(
function
(
pt
)
{
return
new
Point
(
pt
.
x
*
width
,
pt
.
y
*
height
);
});
this
.
_shift
=
shift
;
this
.
_faceLandmarks
=
relativeFaceLandmarkPositions
.
map
(
function
(
pt
)
{
return
pt
.
mul
(
new
Point
(
width
,
height
)).
add
(
shift
);
});
}
FaceLandmarks
.
prototype
.
getPositions
=
function
()
{
return
this
.
_faceLandmarks
;
};
FaceLandmarks
.
prototype
.
getRelativePositions
=
function
()
{
var
_this
=
this
;
return
this
.
_faceLandmarks
.
map
(
function
(
pt
)
{
return
new
Point
(
pt
.
x
/
_this
.
_imageWidth
,
pt
.
y
/
_this
.
_imageHeight
);
});
return
this
.
_faceLandmarks
.
map
(
function
(
pt
)
{
return
pt
.
sub
(
_this
.
_shift
).
div
(
new
Point
(
_this
.
_imageWidth
,
_this
.
_imageHeight
)
);
});
};
FaceLandmarks
.
prototype
.
getJawOutline
=
function
()
{
return
this
.
_faceLandmarks
.
slice
(
0
,
17
);
...
...
@@ -37,6 +39,9 @@ var FaceLandmarks = /** @class */ (function () {
FaceLandmarks
.
prototype
.
forSize
=
function
(
width
,
height
)
{
return
new
FaceLandmarks
(
this
.
getRelativePositions
(),
{
width
:
width
,
height
:
height
});
};
FaceLandmarks
.
prototype
.
shift
=
function
(
x
,
y
)
{
return
new
FaceLandmarks
(
this
.
getRelativePositions
(),
{
width
:
this
.
_imageWidth
,
height
:
this
.
_imageHeight
},
new
Point
(
x
,
y
));
};
return
FaceLandmarks
;
}());
export
{
FaceLandmarks
};
...
...
dist/faceLandmarkNet/FaceLandmarks.js.map
View file @
b9588f96
{"version":3,"file":"FaceLandmarks.js","sourceRoot":"","sources":["../../src/faceLandmarkNet/FaceLandmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC;IAKE,uBACE,6BAAsC,EACtC,SAAqB;QAEb,IAAA,uBAAK,EAAE,yBAAM,CAAc;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC,GAAG,CACrD,UAAA,EAAE,IAAI,OAAA,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,EAAtC,CAAsC,CAC7C,CAAA;IACH,CAAC;IAEM,oCAAY,GAAnB;QACE,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAEM,4CAAoB,GAA3B;QAAA,iBAIC;QAHC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,UAAA,EAAE,IAAI,OAAA,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,KAAI,CAAC,YAAY,CAAC,EAA5D,CAA4D,CACnE,CAAA;IACH,CAAC;IAEM,qCAAa,GAApB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAEM,sCAAc,GAArB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,uCAAe,GAAtB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,+BAAO,GAAd;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,kCAAU,GAAjB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,mCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,gCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,+BAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAC1E,CAAC;IACH,oBAAC;AAAD,CAAC,AA1DD,IA0DC"}
\ No newline at end of file
{"version":3,"file":"FaceLandmarks.js","sourceRoot":"","sources":["../../src/faceLandmarkNet/FaceLandmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,MAAM,UAAU,CAAC;AAGzC;IAME,uBACE,6BAAsC,EACtC,SAAqB,EACrB,KAA8B;QAA9B,sBAAA,EAAA,YAAmB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtB,IAAA,uBAAK,EAAE,yBAAM,CAAc;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC,GAAG,CACrD,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAA3C,CAA2C,CAClD,CAAA;IACH,CAAC;IAEM,oCAAY,GAAnB;QACE,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAEM,4CAAoB,GAA3B;QAAA,iBAIC;QAHC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAC5B,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,GAAG,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAI,CAAC,WAAW,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC,EAAvE,CAAuE,CAC9E,CAAA;IACH,CAAC;IAEM,qCAAa,GAApB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAEM,sCAAc,GAArB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,uCAAe,GAAtB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,+BAAO,GAAd;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,kCAAU,GAAjB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,mCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,gCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,+BAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,oBAAoB,EAAE,EAC3B,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAClB,CAAA;IACH,CAAC;IAEM,6BAAK,GAAZ,UAAa,CAAS,EAAE,CAAS;QAC/B,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,oBAAoB,EAAE,EAC3B,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EACtD,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAChB,CAAA;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAxED,IAwEC"}
\ No newline at end of file
dist/faceLandmarkNet/index.js
View file @
b9588f96
...
...
@@ -2,7 +2,7 @@ import * as tslib_1 from "tslib";
import
*
as
tf
from
'@tensorflow/tfjs-core'
;
import
{
convLayer
}
from
'../commons/convLayer'
;
import
{
getImageTensor
}
from
'../getImageTensor'
;
import
{
padToSquare
}
from
'../padToSquare
'
;
import
{
Point
}
from
'../Point
'
;
import
{
extractParams
}
from
'./extractParams'
;
import
{
FaceLandmarks
}
from
'./FaceLandmarks'
;
import
{
fullyConnectedLayer
}
from
'./fullyConnectedLayer'
;
...
...
@@ -17,19 +17,14 @@ export function faceLandmarkNet(weights) {
var
params
=
extractParams
(
weights
);
function
detectLandmarks
(
input
)
{
return
tslib_1
.
__awaiter
(
this
,
void
0
,
void
0
,
function
()
{
var
adjustRelativeX
,
adjustRelativeY
,
imageDimensions
,
outTensor
,
faceLandmarksArray
,
_a
,
_b
,
xCoords
,
yCoords
;
var
imageDimensions
,
outTensor
,
faceLandmarksArray
,
_a
,
_b
,
xCoords
,
yCoords
;
return
tslib_1
.
__generator
(
this
,
function
(
_c
)
{
switch
(
_c
.
label
)
{
case
0
:
adjustRelativeX
=
0
;
adjustRelativeY
=
0
;
outTensor
=
tf
.
tidy
(
function
()
{
var
imgTensor
=
getImageTensor
(
input
);
var
_a
=
imgTensor
.
shape
.
slice
(
1
),
height
=
_a
[
0
],
width
=
_a
[
1
];
imageDimensions
=
{
width
:
width
,
height
:
height
};
imgTensor
=
padToSquare
(
imgTensor
,
true
);
adjustRelativeX
=
(
height
>
width
)
?
imgTensor
.
shape
[
2
]
/
(
2
*
width
)
:
0
;
adjustRelativeY
=
(
width
>
height
)
?
imgTensor
.
shape
[
1
]
/
(
2
*
height
)
:
0
;
// work with 128 x 128 sized face images
if
(
imgTensor
.
shape
[
1
]
!==
128
||
imgTensor
.
shape
[
2
]
!==
128
)
{
imgTensor
=
tf
.
image
.
resizeBilinear
(
imgTensor
,
[
128
,
128
]);
...
...
@@ -54,10 +49,10 @@ export function faceLandmarkNet(weights) {
return
[
4
/*yield*/
,
outTensor
.
data
()];
case
1
:
faceLandmarksArray
=
_b
.
apply
(
_a
,
[
_c
.
sent
()]);
xCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
(
i
-
1
)
%
2
;
}).
map
(
function
(
x
)
{
return
x
+
adjustRelativeX
;
});
yCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
i
%
2
;
}).
map
(
function
(
y
)
{
return
y
+
adjustRelativeY
;
});
outTensor
.
dispose
();
return
[
2
/*return*/
,
new
FaceLandmarks
(
Array
(
68
).
fill
(
0
).
map
(
function
(
_
,
i
)
{
return
({
x
:
xCoords
[
i
],
y
:
yCoords
[
i
]
});
}),
imageDimensions
)];
xCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
(
i
-
1
)
%
2
;
});
yCoords
=
faceLandmarksArray
.
filter
(
function
(
c
,
i
)
{
return
i
%
2
;
});
return
[
2
/*return*/
,
new
FaceLandmarks
(
Array
(
68
).
fill
(
0
).
map
(
function
(
_
,
i
)
{
return
new
Point
(
xCoords
[
i
],
yCoords
[
i
]);
}),
imageDimensions
)];
}
});
});
...
...
dist/faceLandmarkNet/index.js.map
View file @
b9588f96
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/faceLandmarkNet/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/faceLandmarkNet/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
dist/utils.js.map
View file @
b9588f96
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment