Skip to content

Commit bbc0785

Browse files
remove tfjs-tiny-yolov2 dependency + bump tfjs-image-recognition-base + update dev dependencies
1 parent 8259275 commit bbc0785

40 files changed

+756
-901
lines changed

package-lock.json

Lines changed: 586 additions & 703 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,26 @@
3636
"license": "MIT",
3737
"dependencies": {
3838
"@tensorflow/tfjs-core": "0.14.2",
39-
"tfjs-image-recognition-base": "^0.3.1",
40-
"tfjs-tiny-yolov2": "^0.4.0",
39+
"tfjs-image-recognition-base": "^0.4.1",
4140
"tslib": "^1.9.3"
4241
},
4342
"devDependencies": {
44-
"@tensorflow/tfjs-node": "^0.1.21",
45-
"@types/jasmine": "^2.8.8",
46-
"@types/node": "^10.12.12",
47-
"canvas": "^2.0.1",
48-
"jasmine": "^3.3.0",
49-
"jasmine-core": "^3.2.1",
50-
"karma": "^3.0.0",
43+
"@tensorflow/tfjs-node": "^0.2.3",
44+
"@types/jasmine": "^3.3.8",
45+
"@types/node": "^10.12.18",
46+
"canvas": "2.0.1",
47+
"jasmine": "^3.3.1",
48+
"jasmine-core": "^3.3.0",
49+
"karma": "^4.0.0",
5150
"karma-chrome-launcher": "^2.2.0",
52-
"karma-jasmine": "^1.1.2",
53-
"karma-typescript": "^3.0.12",
54-
"rollup": "^0.65.0",
55-
"rollup-plugin-commonjs": "^9.1.6",
56-
"rollup-plugin-node-resolve": "^3.3.0",
57-
"rollup-plugin-typescript2": "^0.16.1",
58-
"rollup-plugin-uglify": "^4.0.0",
59-
"ts-node": "^7.0.1",
60-
"typescript": "2.8.4"
51+
"karma-jasmine": "^2.0.1",
52+
"karma-typescript": "^3.0.13",
53+
"rollup": "^1.1.2",
54+
"rollup-plugin-commonjs": "^9.2.0",
55+
"rollup-plugin-node-resolve": "^4.0.0",
56+
"rollup-plugin-typescript2": "^0.19.2",
57+
"rollup-plugin-uglify": "^6.0.2",
58+
"ts-node": "^8.0.2",
59+
"typescript": "^3.2.4"
6160
}
6261
}

src/common/fullyConnectedLayer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { FCParams } from 'tfjs-tiny-yolov2';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
33

44
export function fullyConnectedLayer(
55
x: tf.Tensor2D,
6-
params: FCParams
6+
params: TfjsImageRecognitionBase.FCParams
77
): tf.Tensor2D {
88
return tf.tidy(() =>
99
tf.add(

src/dom/drawFaceExpressions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { drawText, env, getContext2dOrThrow, getDefaultDrawOptions, resolveInput, round } from 'tfjs-image-recognition-base';
2-
import { IRect } from 'tfjs-tiny-yolov2';
2+
import { IRect } from 'tfjs-image-recognition-base';
33

44
import { DrawFaceExpressionsInput, DrawFaceExpressionsOptions } from './types';
55

src/dom/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IPoint, IRect } from 'tfjs-tiny-yolov2';
1+
import { IPoint, IRect } from 'tfjs-image-recognition-base';
22

33
import { WithFaceExpressions } from '../factories/WithFaceExpressions';
44

src/faceFeatureExtractor/denseBlock.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
33

44
import { depthwiseSeparableConv } from './depthwiseSeparableConv';
55
import { DenseBlock3Params, DenseBlock4Params } from './types';
@@ -13,10 +13,10 @@ export function denseBlock3(
1313
const out1 = tf.relu(
1414
isFirstLayer
1515
? tf.add(
16-
tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),
16+
tf.conv2d(x, (denseBlockParams.conv0 as TfjsImageRecognitionBase.ConvParams).filters, [2, 2], 'same'),
1717
denseBlockParams.conv0.bias
1818
)
19-
: depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2])
19+
: depthwiseSeparableConv(x, denseBlockParams.conv0 as TfjsImageRecognitionBase.SeparableConvParams, [2, 2])
2020
) as tf.Tensor4D
2121
const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1])
2222

@@ -37,10 +37,10 @@ export function denseBlock4(
3737
const out1 = tf.relu(
3838
isFirstLayer
3939
? tf.add(
40-
tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),
40+
tf.conv2d(x, (denseBlockParams.conv0 as TfjsImageRecognitionBase.ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),
4141
denseBlockParams.conv0.bias
4242
)
43-
: depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1])
43+
: depthwiseSeparableConv(x, denseBlockParams.conv0 as TfjsImageRecognitionBase.SeparableConvParams, isScaleDown ? [2, 2] : [1, 1])
4444
) as tf.Tensor4D
4545
const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1])
4646

src/faceFeatureExtractor/depthwiseSeparableConv.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { SeparableConvParams } from 'tfjs-tiny-yolov2';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
33

44
export function depthwiseSeparableConv(
55
x: tf.Tensor4D,
6-
params: SeparableConvParams,
6+
params: TfjsImageRecognitionBase.SeparableConvParams,
77
stride: [number, number]
88
): tf.Tensor4D {
99
return tf.tidy(() => {

src/faceFeatureExtractor/extractParams.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';
21

32
import { extractorsFactory } from './extractorsFactory';
43
import { FaceFeatureExtractorParams } from './types';
4+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
55

6-
export function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {
6+
export function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: TfjsImageRecognitionBase.ParamMapping[] } {
77

8-
const paramMappings: ParamMapping[] = []
8+
const paramMappings: TfjsImageRecognitionBase.ParamMapping[] = []
99

1010
const {
1111
extractWeights,
1212
getRemainingWeights
13-
} = extractWeightsFactory(weights)
13+
} = TfjsImageRecognitionBase.extractWeightsFactory(weights)
1414

1515
const {
1616
extractDenseBlock4Params

src/faceFeatureExtractor/extractParamsFromWeigthMap.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { disposeUnusedWeightTensors, ParamMapping } from 'tfjs-image-recognition-base';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
33

44
import { loadParamsFactory } from './loadParamsFactory';
55
import { FaceFeatureExtractorParams } from './types';
66

77
export function extractParamsFromWeigthMap(
88
weightMap: tf.NamedTensorMap
9-
): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {
9+
): { params: FaceFeatureExtractorParams, paramMappings: TfjsImageRecognitionBase.ParamMapping[] } {
1010

11-
const paramMappings: ParamMapping[] = []
11+
const paramMappings: TfjsImageRecognitionBase.ParamMapping[] = []
1212

1313
const {
1414
extractDenseBlock4Params
@@ -21,7 +21,7 @@ export function extractParamsFromWeigthMap(
2121
dense3: extractDenseBlock4Params('dense3')
2222
}
2323

24-
disposeUnusedWeightTensors(weightMap, paramMappings)
24+
TfjsImageRecognitionBase.disposeUnusedWeightTensors(weightMap, paramMappings)
2525

2626
return { params, paramMappings }
2727
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { disposeUnusedWeightTensors, ParamMapping } from 'tfjs-image-recognition-base';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
33

44
import { loadParamsFactory } from './loadParamsFactory';
55
import { TinyFaceFeatureExtractorParams } from './types';
66

77
export function extractParamsFromWeigthMapTiny(
88
weightMap: tf.NamedTensorMap
9-
): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {
9+
): { params: TinyFaceFeatureExtractorParams, paramMappings: TfjsImageRecognitionBase.ParamMapping[] } {
1010

11-
const paramMappings: ParamMapping[] = []
11+
const paramMappings: TfjsImageRecognitionBase.ParamMapping[] = []
1212

1313
const {
1414
extractDenseBlock3Params
@@ -20,7 +20,7 @@ export function extractParamsFromWeigthMapTiny(
2020
dense2: extractDenseBlock3Params('dense2')
2121
}
2222

23-
disposeUnusedWeightTensors(weightMap, paramMappings)
23+
TfjsImageRecognitionBase.disposeUnusedWeightTensors(weightMap, paramMappings)
2424

2525
return { params, paramMappings }
2626
}

src/faceFeatureExtractor/extractParamsTiny.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';
1+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
22

33
import { extractorsFactory } from './extractorsFactory';
44
import { TinyFaceFeatureExtractorParams } from './types';
55

6-
export function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {
76

8-
const paramMappings: ParamMapping[] = []
7+
export function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: TfjsImageRecognitionBase.ParamMapping[] } {
8+
9+
const paramMappings: TfjsImageRecognitionBase.ParamMapping[] = []
910

1011
const {
1112
extractWeights,
1213
getRemainingWeights
13-
} = extractWeightsFactory(weights)
14+
} = TfjsImageRecognitionBase.extractWeightsFactory(weights)
1415

1516
const {
1617
extractDenseBlock3Params

src/faceFeatureExtractor/extractorsFactory.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';
3-
import { extractConvParamsFactory, FCParams, SeparableConvParams } from 'tfjs-tiny-yolov2';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
43

54
import { DenseBlock3Params, DenseBlock4Params } from './types';
65

7-
export function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {
6+
export function extractorsFactory(extractWeights: TfjsImageRecognitionBase.ExtractWeightsFunction, paramMappings: TfjsImageRecognitionBase.ParamMapping[]) {
87

9-
function extractSeparableConvParams(channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams {
8+
function extractSeparableConvParams(channelsIn: number, channelsOut: number, mappedPrefix: string): TfjsImageRecognitionBase.SeparableConvParams {
109
const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1])
1110
const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut])
1211
const bias = tf.tensor1d(extractWeights(channelsOut))
@@ -17,14 +16,14 @@ export function extractorsFactory(extractWeights: ExtractWeightsFunction, paramM
1716
{ paramPath: `${mappedPrefix}/bias` }
1817
)
1918

20-
return new SeparableConvParams(
19+
return new TfjsImageRecognitionBase.SeparableConvParams(
2120
depthwise_filter,
2221
pointwise_filter,
2322
bias
2423
)
2524
}
2625

27-
const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings)
26+
const extractConvParams = TfjsImageRecognitionBase.extractConvParamsFactory(extractWeights, paramMappings)
2827

2928
function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {
3029

src/faceFeatureExtractor/loadParamsFactory.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';
3-
import { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
43

54
import { DenseBlock3Params, DenseBlock4Params } from './types';
65

7-
export function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {
6+
export function loadParamsFactory(weightMap: any, paramMappings: TfjsImageRecognitionBase.ParamMapping[]) {
87

9-
const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)
8+
const extractWeightEntry = TfjsImageRecognitionBase.extractWeightEntryFactory(weightMap, paramMappings)
109

11-
function extractConvParams(prefix: string): ConvParams {
10+
function extractConvParams(prefix: string): TfjsImageRecognitionBase.ConvParams {
1211
const filters = extractWeightEntry<tf.Tensor4D>(`${prefix}/filters`, 4)
1312
const bias = extractWeightEntry<tf.Tensor1D>(`${prefix}/bias`, 1)
1413

1514
return { filters, bias }
1615
}
1716

18-
function extractSeparableConvParams(prefix: string): SeparableConvParams {
17+
function extractSeparableConvParams(prefix: string): TfjsImageRecognitionBase.SeparableConvParams {
1918
const depthwise_filter = extractWeightEntry<tf.Tensor4D>(`${prefix}/depthwise_filter`, 4)
2019
const pointwise_filter = extractWeightEntry<tf.Tensor4D>(`${prefix}/pointwise_filter`, 4)
2120
const bias = extractWeightEntry<tf.Tensor1D>(`${prefix}/bias`, 1)
2221

23-
return new SeparableConvParams(
22+
return new TfjsImageRecognitionBase.SeparableConvParams(
2423
depthwise_filter,
2524
pointwise_filter,
2625
bias

src/faceFeatureExtractor/types.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
3-
import { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';
2+
import { NetInput, NeuralNetwork, TNetInput, TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
43

54
export type ConvWithBatchNormParams = BatchNormParams & {
65
filter: tf.Tensor4D
@@ -19,13 +18,13 @@ export type SeparableConvWithBatchNormParams = {
1918
}
2019

2120
export type DenseBlock3Params = {
22-
conv0: SeparableConvParams | ConvParams
23-
conv1: SeparableConvParams
24-
conv2: SeparableConvParams
21+
conv0: TfjsImageRecognitionBase.SeparableConvParams | TfjsImageRecognitionBase.ConvParams
22+
conv1: TfjsImageRecognitionBase.SeparableConvParams
23+
conv2: TfjsImageRecognitionBase.SeparableConvParams
2524
}
2625

2726
export type DenseBlock4Params = DenseBlock3Params & {
28-
conv3: SeparableConvParams
27+
conv3: TfjsImageRecognitionBase.SeparableConvParams
2928
}
3029

3130
export type TinyFaceFeatureExtractorParams = {

src/faceProcessor/extractParams.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';
2-
import { extractFCParamsFactory } from 'tfjs-tiny-yolov2';
1+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
32

43
import { NetParams } from './types';
54

6-
export function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {
5+
export function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: TfjsImageRecognitionBase.ParamMapping[] } {
76

8-
const paramMappings: ParamMapping[] = []
7+
const paramMappings: TfjsImageRecognitionBase.ParamMapping[] = []
98

109
const {
1110
extractWeights,
1211
getRemainingWeights
13-
} = extractWeightsFactory(weights)
12+
} = TfjsImageRecognitionBase.extractWeightsFactory(weights)
1413

15-
const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings)
14+
const extractFCParams = TfjsImageRecognitionBase.extractFCParamsFactory(extractWeights, paramMappings)
1615

1716
const fc = extractFCParams(channelsIn, channelsOut, 'fc')
1817

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import * as tf from '@tensorflow/tfjs-core';
2-
import { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';
3-
import { FCParams } from 'tfjs-tiny-yolov2';
2+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
43

54
import { NetParams } from './types';
65

76
export function extractParamsFromWeigthMap(
87
weightMap: tf.NamedTensorMap
9-
): { params: NetParams, paramMappings: ParamMapping[] } {
8+
): { params: NetParams, paramMappings: TfjsImageRecognitionBase.ParamMapping[] } {
109

11-
const paramMappings: ParamMapping[] = []
10+
const paramMappings: TfjsImageRecognitionBase.ParamMapping[] = []
1211

13-
const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)
12+
const extractWeightEntry = TfjsImageRecognitionBase.extractWeightEntryFactory(weightMap, paramMappings)
1413

15-
function extractFcParams(prefix: string): FCParams {
14+
function extractFcParams(prefix: string): TfjsImageRecognitionBase.FCParams {
1615
const weights = extractWeightEntry<tf.Tensor2D>(`${prefix}/weights`, 2)
1716
const bias = extractWeightEntry<tf.Tensor1D>(`${prefix}/bias`, 1)
1817
return { weights, bias }
@@ -22,7 +21,7 @@ export function extractParamsFromWeigthMap(
2221
fc: extractFcParams('fc')
2322
}
2423

25-
disposeUnusedWeightTensors(weightMap, paramMappings)
24+
TfjsImageRecognitionBase.disposeUnusedWeightTensors(weightMap, paramMappings)
2625

2726
return { params, paramMappings }
2827
}

src/faceProcessor/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { FCParams } from 'tfjs-tiny-yolov2';
1+
import { TfjsImageRecognitionBase } from 'tfjs-image-recognition-base';
22

33
export type NetParams = {
4-
fc: FCParams
4+
fc: TfjsImageRecognitionBase.FCParams
55
}
66

0 commit comments

Comments
 (0)