@@ -39,12 +39,14 @@ export async function stage3(
39
39
. filter ( c => c . score > scoreThreshold )
40
40
. map ( ( { idx } ) => idx )
41
41
42
- const filteredRegions = indices . map ( idx => new MtcnnBox (
43
- onetOuts [ idx ] . regions . arraySync ( ) [ 0 ] [ 0 ] ,
44
- onetOuts [ idx ] . regions . arraySync ( ) [ 0 ] [ 1 ] ,
45
- onetOuts [ idx ] . regions . arraySync ( ) [ 0 ] [ 2 ] ,
46
- onetOuts [ idx ] . regions . arraySync ( ) [ 0 ] [ 3 ]
47
- ) )
42
+ const filteredRegions = indices . map ( idx => {
43
+ const regionsData = onetOuts [ idx ] . regions . arraySync ( ) ;
44
+ return new MtcnnBox (
45
+ regionsData [ 0 ] [ 0 ] ,
46
+ regionsData [ 0 ] [ 1 ] ,
47
+ regionsData [ 0 ] [ 2 ] ,
48
+ regionsData [ 0 ] [ 3 ]
49
+ ) } )
48
50
const filteredBoxes = indices
49
51
. map ( ( idx , i ) => inputBoxes [ idx ] . calibrate ( filteredRegions [ i ] ) )
50
52
const filteredScores = indices . map ( idx => scores [ idx ] )
@@ -67,11 +69,13 @@ export async function stage3(
67
69
finalBoxes = indicesNms . map ( idx => filteredBoxes [ idx ] )
68
70
finalScores = indicesNms . map ( idx => filteredScores [ idx ] )
69
71
points = indicesNms . map ( ( idx , i ) =>
70
- Array ( 5 ) . fill ( 0 ) . map ( ( _ , ptIdx ) =>
71
- new Point (
72
- ( ( onetOuts [ idx ] . points . arraySync ( ) [ 0 ] [ ptIdx ] * ( finalBoxes [ i ] . width + 1 ) ) + finalBoxes [ i ] . left ) ,
73
- ( ( onetOuts [ idx ] . points . arraySync ( ) [ 0 ] [ ptIdx + 5 ] * ( finalBoxes [ i ] . height + 1 ) ) + finalBoxes [ i ] . top )
74
- )
72
+ Array ( 5 ) . fill ( 0 ) . map ( ( _ , ptIdx ) => {
73
+ const pointsData = onetOuts [ idx ] . points . arraySync ( )
74
+ return new Point (
75
+ ( ( pointsData [ 0 ] [ ptIdx ] * ( finalBoxes [ i ] . width + 1 ) ) + finalBoxes [ i ] . left ) ,
76
+ ( ( pointsData [ 0 ] [ ptIdx + 5 ] * ( finalBoxes [ i ] . height + 1 ) ) + finalBoxes [ i ] . top )
77
+ )
78
+ }
75
79
)
76
80
)
77
81
}
0 commit comments