rtmlib-ts 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +1 -0
- package/README.md +202 -0
- package/dist/core/base.d.ts +20 -0
- package/dist/core/base.d.ts.map +1 -0
- package/dist/core/base.js +40 -0
- package/dist/core/file.d.ts +11 -0
- package/dist/core/file.d.ts.map +1 -0
- package/dist/core/file.js +111 -0
- package/dist/core/modelCache.d.ts +35 -0
- package/dist/core/modelCache.d.ts.map +1 -0
- package/dist/core/modelCache.js +161 -0
- package/dist/core/posePostprocessing.d.ts +12 -0
- package/dist/core/posePostprocessing.d.ts.map +1 -0
- package/dist/core/posePostprocessing.js +76 -0
- package/dist/core/postprocessing.d.ts +10 -0
- package/dist/core/postprocessing.d.ts.map +1 -0
- package/dist/core/postprocessing.js +70 -0
- package/dist/core/preprocessing.d.ts +14 -0
- package/dist/core/preprocessing.d.ts.map +1 -0
- package/dist/core/preprocessing.js +79 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/models/rtmpose.d.ts +25 -0
- package/dist/models/rtmpose.d.ts.map +1 -0
- package/dist/models/rtmpose.js +185 -0
- package/dist/models/rtmpose3d.d.ts +28 -0
- package/dist/models/rtmpose3d.d.ts.map +1 -0
- package/dist/models/rtmpose3d.js +184 -0
- package/dist/models/yolo12.d.ts +23 -0
- package/dist/models/yolo12.d.ts.map +1 -0
- package/dist/models/yolo12.js +165 -0
- package/dist/models/yolox.d.ts +18 -0
- package/dist/models/yolox.d.ts.map +1 -0
- package/dist/models/yolox.js +167 -0
- package/dist/solution/animalDetector.d.ts +229 -0
- package/dist/solution/animalDetector.d.ts.map +1 -0
- package/dist/solution/animalDetector.js +663 -0
- package/dist/solution/body.d.ts +16 -0
- package/dist/solution/body.d.ts.map +1 -0
- package/dist/solution/body.js +52 -0
- package/dist/solution/bodyWithFeet.d.ts +16 -0
- package/dist/solution/bodyWithFeet.d.ts.map +1 -0
- package/dist/solution/bodyWithFeet.js +52 -0
- package/dist/solution/customDetector.d.ts +137 -0
- package/dist/solution/customDetector.d.ts.map +1 -0
- package/dist/solution/customDetector.js +342 -0
- package/dist/solution/hand.d.ts +14 -0
- package/dist/solution/hand.d.ts.map +1 -0
- package/dist/solution/hand.js +20 -0
- package/dist/solution/index.d.ts +10 -0
- package/dist/solution/index.d.ts.map +1 -0
- package/dist/solution/index.js +9 -0
- package/dist/solution/objectDetector.d.ts +172 -0
- package/dist/solution/objectDetector.d.ts.map +1 -0
- package/dist/solution/objectDetector.js +606 -0
- package/dist/solution/pose3dDetector.d.ts +145 -0
- package/dist/solution/pose3dDetector.d.ts.map +1 -0
- package/dist/solution/pose3dDetector.js +611 -0
- package/dist/solution/poseDetector.d.ts +198 -0
- package/dist/solution/poseDetector.d.ts.map +1 -0
- package/dist/solution/poseDetector.js +622 -0
- package/dist/solution/poseTracker.d.ts +22 -0
- package/dist/solution/poseTracker.d.ts.map +1 -0
- package/dist/solution/poseTracker.js +106 -0
- package/dist/solution/wholebody.d.ts +19 -0
- package/dist/solution/wholebody.d.ts.map +1 -0
- package/dist/solution/wholebody.js +82 -0
- package/dist/solution/wholebody3d.d.ts +22 -0
- package/dist/solution/wholebody3d.d.ts.map +1 -0
- package/dist/solution/wholebody3d.js +75 -0
- package/dist/types/index.d.ts +52 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/visualization/draw.d.ts +57 -0
- package/dist/visualization/draw.d.ts.map +1 -0
- package/dist/visualization/draw.js +400 -0
- package/dist/visualization/skeleton/coco133.d.ts +350 -0
- package/dist/visualization/skeleton/coco133.d.ts.map +1 -0
- package/dist/visualization/skeleton/coco133.js +120 -0
- package/dist/visualization/skeleton/coco17.d.ts +180 -0
- package/dist/visualization/skeleton/coco17.d.ts.map +1 -0
- package/dist/visualization/skeleton/coco17.js +48 -0
- package/dist/visualization/skeleton/halpe26.d.ts +278 -0
- package/dist/visualization/skeleton/halpe26.d.ts.map +1 -0
- package/dist/visualization/skeleton/halpe26.js +70 -0
- package/dist/visualization/skeleton/hand21.d.ts +196 -0
- package/dist/visualization/skeleton/hand21.d.ts.map +1 -0
- package/dist/visualization/skeleton/hand21.js +51 -0
- package/dist/visualization/skeleton/index.d.ts +10 -0
- package/dist/visualization/skeleton/index.d.ts.map +1 -0
- package/dist/visualization/skeleton/index.js +9 -0
- package/dist/visualization/skeleton/openpose134.d.ts +357 -0
- package/dist/visualization/skeleton/openpose134.d.ts.map +1 -0
- package/dist/visualization/skeleton/openpose134.js +116 -0
- package/dist/visualization/skeleton/openpose18.d.ts +177 -0
- package/dist/visualization/skeleton/openpose18.d.ts.map +1 -0
- package/dist/visualization/skeleton/openpose18.js +47 -0
- package/docs/ANIMAL_DETECTOR.md +450 -0
- package/docs/CUSTOM_DETECTOR.md +568 -0
- package/docs/OBJECT_DETECTOR.md +373 -0
- package/docs/POSE3D_DETECTOR.md +458 -0
- package/docs/POSE_DETECTOR.md +442 -0
- package/examples/README.md +119 -0
- package/examples/index.html +746 -0
- package/package.json +51 -0
- package/playground/README.md +114 -0
- package/playground/app/favicon.ico +0 -0
- package/playground/app/globals.css +17 -0
- package/playground/app/layout.tsx +19 -0
- package/playground/app/page.tsx +1338 -0
- package/playground/eslint.config.mjs +18 -0
- package/playground/next.config.ts +34 -0
- package/playground/package-lock.json +6723 -0
- package/playground/package.json +27 -0
- package/playground/postcss.config.mjs +7 -0
- package/playground/tsconfig.json +34 -0
- package/src/core/base.ts +66 -0
- package/src/core/file.ts +141 -0
- package/src/core/modelCache.ts +189 -0
- package/src/core/posePostprocessing.ts +91 -0
- package/src/core/postprocessing.ts +93 -0
- package/src/core/preprocessing.ts +127 -0
- package/src/index.ts +69 -0
- package/src/models/rtmpose.ts +265 -0
- package/src/models/rtmpose3d.ts +289 -0
- package/src/models/yolo12.ts +220 -0
- package/src/models/yolox.ts +214 -0
- package/src/solution/animalDetector.ts +955 -0
- package/src/solution/body.ts +89 -0
- package/src/solution/bodyWithFeet.ts +89 -0
- package/src/solution/customDetector.ts +474 -0
- package/src/solution/hand.ts +52 -0
- package/src/solution/index.ts +10 -0
- package/src/solution/objectDetector.ts +816 -0
- package/src/solution/pose3dDetector.ts +890 -0
- package/src/solution/poseDetector.ts +892 -0
- package/src/solution/poseTracker.ts +172 -0
- package/src/solution/wholebody.ts +130 -0
- package/src/solution/wholebody3d.ts +125 -0
- package/src/types/index.ts +62 -0
- package/src/visualization/draw.ts +543 -0
- package/src/visualization/skeleton/coco133.ts +131 -0
- package/src/visualization/skeleton/coco17.ts +49 -0
- package/src/visualization/skeleton/halpe26.ts +71 -0
- package/src/visualization/skeleton/hand21.ts +52 -0
- package/src/visualization/skeleton/index.ts +10 -0
- package/src/visualization/skeleton/openpose134.ts +125 -0
- package/src/visualization/skeleton/openpose18.ts +48 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pose3DDetector - 3D Pose Estimation API
|
|
3
|
+
* Combines YOLOX detector with RTMW3D 3D pose model
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* // Initialize with default models
|
|
8
|
+
* const detector = new Pose3DDetector();
|
|
9
|
+
* await detector.init();
|
|
10
|
+
*
|
|
11
|
+
* // From canvas
|
|
12
|
+
* const result = await detector.detectFromCanvas(canvas);
|
|
13
|
+
* console.log(result.keypoints[0][0]); // [x, y, z] - 3D coordinates
|
|
14
|
+
*
|
|
15
|
+
* // With custom models
|
|
16
|
+
* const detector2 = new Pose3DDetector({
|
|
17
|
+
* detModel: 'path/to/yolox.onnx',
|
|
18
|
+
* poseModel: 'path/to/rtmw3d.onnx',
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import { Wholebody3DResult } from './wholebody3d';
|
|
23
|
+
/**
|
|
24
|
+
* Configuration options for Pose3DDetector
|
|
25
|
+
*/
|
|
26
|
+
export interface Pose3DDetectorConfig {
|
|
27
|
+
/** Path to YOLOX detection model (optional - uses default if not specified) */
|
|
28
|
+
detModel?: string;
|
|
29
|
+
/** Path to RTMW3D 3D pose estimation model (optional - uses default if not specified) */
|
|
30
|
+
poseModel?: string;
|
|
31
|
+
/** Detection input size (default: [640, 640]) */
|
|
32
|
+
detInputSize?: [number, number];
|
|
33
|
+
/** Pose input size (default: [384, 288]) */
|
|
34
|
+
poseInputSize?: [number, number];
|
|
35
|
+
/** Detection confidence threshold (default: 0.45) */
|
|
36
|
+
detConfidence?: number;
|
|
37
|
+
/** NMS IoU threshold (default: 0.7) */
|
|
38
|
+
nmsThreshold?: number;
|
|
39
|
+
/** Pose keypoint confidence threshold (default: 0.3) */
|
|
40
|
+
poseConfidence?: number;
|
|
41
|
+
/** Execution backend (default: 'webgpu') */
|
|
42
|
+
backend?: 'wasm' | 'webgpu';
|
|
43
|
+
/** Enable model caching (default: true) */
|
|
44
|
+
cache?: boolean;
|
|
45
|
+
/** Z-axis range in meters (default: 2.1744869) */
|
|
46
|
+
zRange?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 3D Person result with 3D keypoints
|
|
50
|
+
*/
|
|
51
|
+
export interface Person3D {
|
|
52
|
+
/** Bounding box coordinates */
|
|
53
|
+
bbox: {
|
|
54
|
+
x1: number;
|
|
55
|
+
y1: number;
|
|
56
|
+
x2: number;
|
|
57
|
+
y2: number;
|
|
58
|
+
confidence: number;
|
|
59
|
+
};
|
|
60
|
+
/** 17 3D keypoints [x, y, z] in meters */
|
|
61
|
+
keypoints: number[][];
|
|
62
|
+
/** Keypoint scores (0-1) */
|
|
63
|
+
scores: number[];
|
|
64
|
+
/** 2D projection of keypoints */
|
|
65
|
+
keypoints2d: number[][];
|
|
66
|
+
/** Normalized SimCC coordinates */
|
|
67
|
+
keypointsSimcc: number[][];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Detection statistics
|
|
71
|
+
*/
|
|
72
|
+
export interface Pose3DStats {
|
|
73
|
+
/** Number of detected people */
|
|
74
|
+
personCount: number;
|
|
75
|
+
/** Detection inference time (ms) */
|
|
76
|
+
detTime: number;
|
|
77
|
+
/** 3D Pose estimation time (ms) */
|
|
78
|
+
poseTime: number;
|
|
79
|
+
/** Total processing time (ms) */
|
|
80
|
+
totalTime: number;
|
|
81
|
+
}
|
|
82
|
+
export declare class Pose3DDetector {
|
|
83
|
+
private config;
|
|
84
|
+
private detSession;
|
|
85
|
+
private poseSession;
|
|
86
|
+
private initialized;
|
|
87
|
+
private outputNamesLogged;
|
|
88
|
+
private canvas;
|
|
89
|
+
private ctx;
|
|
90
|
+
private poseCanvas;
|
|
91
|
+
private poseCtx;
|
|
92
|
+
private poseTensorBuffer;
|
|
93
|
+
private detInputSize;
|
|
94
|
+
private poseInputSize;
|
|
95
|
+
private srcPoseCanvas;
|
|
96
|
+
private srcPoseCtx;
|
|
97
|
+
constructor(config?: Pose3DDetectorConfig);
|
|
98
|
+
/**
|
|
99
|
+
* Initialize both detection and 3D pose models
|
|
100
|
+
*/
|
|
101
|
+
init(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Detect 3D poses from HTMLCanvasElement
|
|
104
|
+
*/
|
|
105
|
+
detectFromCanvas(canvas: HTMLCanvasElement): Promise<Wholebody3DResult>;
|
|
106
|
+
/**
|
|
107
|
+
* Detect 3D poses from HTMLVideoElement
|
|
108
|
+
*/
|
|
109
|
+
detectFromVideo(video: HTMLVideoElement, targetCanvas?: HTMLCanvasElement): Promise<Wholebody3DResult>;
|
|
110
|
+
/**
|
|
111
|
+
* Detect 3D poses from HTMLImageElement
|
|
112
|
+
*/
|
|
113
|
+
detectFromImage(image: HTMLImageElement, targetCanvas?: HTMLCanvasElement): Promise<Wholebody3DResult>;
|
|
114
|
+
/**
|
|
115
|
+
* Detect 3D poses from ImageBitmap
|
|
116
|
+
*/
|
|
117
|
+
detectFromBitmap(bitmap: ImageBitmap, targetCanvas?: HTMLCanvasElement): Promise<Wholebody3DResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Detect 3D poses from File
|
|
120
|
+
*/
|
|
121
|
+
detectFromFile(file: File, targetCanvas?: HTMLCanvasElement): Promise<Wholebody3DResult>;
|
|
122
|
+
/**
|
|
123
|
+
* Detect 3D poses from Blob
|
|
124
|
+
*/
|
|
125
|
+
detectFromBlob(blob: Blob, targetCanvas?: HTMLCanvasElement): Promise<Wholebody3DResult>;
|
|
126
|
+
/**
|
|
127
|
+
* Detect 3D poses from raw image data
|
|
128
|
+
*/
|
|
129
|
+
detect(imageData: Uint8Array, width: number, height: number): Promise<Wholebody3DResult>;
|
|
130
|
+
/**
|
|
131
|
+
* Detect people using YOLOX
|
|
132
|
+
*/
|
|
133
|
+
private detectPeople;
|
|
134
|
+
/**
|
|
135
|
+
* Estimate 3D pose for a single person
|
|
136
|
+
*/
|
|
137
|
+
private estimatePose3D;
|
|
138
|
+
private preprocessYOLO;
|
|
139
|
+
private postprocessYOLO;
|
|
140
|
+
private preprocessPose;
|
|
141
|
+
private postprocessPose3D;
|
|
142
|
+
private applyNMS;
|
|
143
|
+
private calculateIoU;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=pose3dDetector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pose3dDetector.d.ts","sourceRoot":"","sources":["../../src/solution/pose3dDetector.ts"],"names":[],"mappings":"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"}
|