HandProcessor
Hand processor
Hand processor estimates 21 2D and 3D hand keypoints, it locates the hand region-of-interest (ROI) and predicts the pose keypoints providing smooth, stable and accurate pose estimation fot the hand. 2D pixel hand keypoints - points in the screen coordinate space. X and Y coordinates are normalized screen coordinates (scaled by width and height of the input image), while the Z coordinate is depth within orthographic projection space, it has the same scale as X coordinate (normalized by image width). 2D points can be used for 2D overlays, math analyzes, or when using orthographic camera. 3D metric points - points within 3D space of perspective camera located at the space origin and pointed in the negative direction of the Z-axis. These points can be used for 3D model overlays or virtual try-on. Rigged and skinned models can be rendered on top of the pose aligning skeleton/armature joints with 3D keypoints. 3D and 2D points are perfectly aligned, projections of 3D points coincide with 2D pixel coordinates within the perspective camera. Additionally hand processor detects wrist 2D position and direction. Wrist detection provides 3 lines in the screen coordinate space. Middle line defines 2D wrist base/center point and unit direction vector of the wrist. Two more lines define wrist edges by 2D screen points at the end of the wrist along transversal section through the base point and associated direction vectors. Wrist detection provides for virtual try-on of accessories like watches and bands.
Extends
Constructors
new HandProcessor()
new HandProcessor():
HandProcessor
Constructor
Returns
Inherited from
Properties
cameraAngle
cameraAngle:
number
Camera vertical angle in radians
Inherited from
cameraAngleBase
readonly
cameraAngleBase:number
View angle of perspective camera along smallest side
cameraRatio
cameraRatio:
number
Camera aspect ratio
Inherited from
optimalSize
optimalSize:
number
Recommended maximum size of input
Inherited from
params
protected
params:Partial
<HandParams
>
Processor parameters
Inherited from
videoRatio
protected
videoRatio:number
Aspect ratio of input video
Inherited from
videoSize
protected
videoSize:Size
Resolution of input video
Inherited from
Methods
addListener()
addListener<
E
>(event
,listener
):this
Adds the listener function to the end of the listeners array
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
dispose()
dispose():
void
Dispose processor object
Releases resources and instances allocated by processor. Processor object cannot be used after calling dispose().
Returns
void
Overrides
emit()
emit<
E
>(event
, …args
):boolean
Synchronously calls each of the listeners registered for the event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• …args: Args
<ProcessorEvents
[E
]>
Arguments passed to the listeners
Returns
boolean
True if the event had listeners, False otherwise
Inherited from
eventNames()
eventNames(): (
string
|symbol
)[]
List of emitter’s events
Returns
(string
| symbol
)[]
List of emitter’s events
Inherited from
getMaxListeners()
getMaxListeners():
number
Maximum number of listeners per event
Returns
number
Maximum number of listeners per event
Inherited from
init()
init(
params
,size
?,ratio
?):Promise
<boolean
>
Initialize processor
Prepares all resources required for pose estimation.
Parameters
• params: HandParams
Processor parameters
• size?: Size
Resolution of input video
• ratio?: number
Aspect ration of input video
Returns
Promise
<boolean
>
Status of initialization
Overrides
listenerCount()
listenerCount<
E
>(event
):number
The number of listeners listening to the event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
Returns
number
Number of listeners
Inherited from
listeners()
listeners<
E
>(event
):Function
[]
Copy of the array of listeners for the event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
Returns
Function
[]
Copy of the listeners array
Inherited from
off()
off<
E
>(event
,listener
):this
Removes the listener from the listener array for the event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
on()
on<
E
>(event
,listener
):this
Adds the listener function to the event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
once()
once<
E
>(event
,listener
):this
Adds a one-time listener function for the event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
prependListener()
prependListener<
E
>(event
,listener
):this
Adds the listener function to the beginning of the listeners array
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
prependOnceListener()
prependOnceListener<
E
>(event
,listener
):this
Adds a one-time listener function to the beginning of the listeners array
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
Inherited from
process()
process(
input
,timestamp
?):Promise
<HandResult
>
Process the image
Hand processor detects hand and predicts keypoints.
Parameters
• input: ImageInput
Image
• timestamp?: number
Image timestamp
Returns
Promise
<HandResult
>
Hand pose detections
Overrides
rawListeners()
rawListeners<
E
>(event
):Function
[]
Copy of the array of listeners for the event including wrappers
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
Returns
Function
[]
Copy of the listeners array
Inherited from
removeAllListeners()
removeAllListeners<
E
>(event
?):this
Removes all listeners, or those of the specified event
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event?: E
The name of the event
Returns
this
This EventEmitter
Inherited from
removeListener()
removeListener<
E
>(event
,listener
):this
Removes the specified listener from the listener array
Type Parameters
• E extends keyof ProcessorEvents
Parameters
• event: E
The name of the event
• listener: ProcessorEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
reset()
reset():
void
Reset processor
Resets all processing instances to the initial state.
Returns
void
Overrides
setMaxListeners()
setMaxListeners(
n
):this
Sets maximum number of listeners per event
Parameters
• n: number
Maximum number of listeners
Returns
this
This EventEmitter
Inherited from
setupVideo()
setupVideo(
size
,ratio
?):void
Set resolution of the input video
Defines view angle according to resolution and aspect ratio. Hand processor fixes FoV for more accurate hand alignment.
Parameters
• size: Size
Resolution of input video
• ratio?: number
Aspect ration of input video
Returns
void