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.
Files changed (150) hide show
  1. package/.gitattributes +1 -0
  2. package/README.md +202 -0
  3. package/dist/core/base.d.ts +20 -0
  4. package/dist/core/base.d.ts.map +1 -0
  5. package/dist/core/base.js +40 -0
  6. package/dist/core/file.d.ts +11 -0
  7. package/dist/core/file.d.ts.map +1 -0
  8. package/dist/core/file.js +111 -0
  9. package/dist/core/modelCache.d.ts +35 -0
  10. package/dist/core/modelCache.d.ts.map +1 -0
  11. package/dist/core/modelCache.js +161 -0
  12. package/dist/core/posePostprocessing.d.ts +12 -0
  13. package/dist/core/posePostprocessing.d.ts.map +1 -0
  14. package/dist/core/posePostprocessing.js +76 -0
  15. package/dist/core/postprocessing.d.ts +10 -0
  16. package/dist/core/postprocessing.d.ts.map +1 -0
  17. package/dist/core/postprocessing.js +70 -0
  18. package/dist/core/preprocessing.d.ts +14 -0
  19. package/dist/core/preprocessing.d.ts.map +1 -0
  20. package/dist/core/preprocessing.js +79 -0
  21. package/dist/index.d.ts +27 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +31 -0
  24. package/dist/models/rtmpose.d.ts +25 -0
  25. package/dist/models/rtmpose.d.ts.map +1 -0
  26. package/dist/models/rtmpose.js +185 -0
  27. package/dist/models/rtmpose3d.d.ts +28 -0
  28. package/dist/models/rtmpose3d.d.ts.map +1 -0
  29. package/dist/models/rtmpose3d.js +184 -0
  30. package/dist/models/yolo12.d.ts +23 -0
  31. package/dist/models/yolo12.d.ts.map +1 -0
  32. package/dist/models/yolo12.js +165 -0
  33. package/dist/models/yolox.d.ts +18 -0
  34. package/dist/models/yolox.d.ts.map +1 -0
  35. package/dist/models/yolox.js +167 -0
  36. package/dist/solution/animalDetector.d.ts +229 -0
  37. package/dist/solution/animalDetector.d.ts.map +1 -0
  38. package/dist/solution/animalDetector.js +663 -0
  39. package/dist/solution/body.d.ts +16 -0
  40. package/dist/solution/body.d.ts.map +1 -0
  41. package/dist/solution/body.js +52 -0
  42. package/dist/solution/bodyWithFeet.d.ts +16 -0
  43. package/dist/solution/bodyWithFeet.d.ts.map +1 -0
  44. package/dist/solution/bodyWithFeet.js +52 -0
  45. package/dist/solution/customDetector.d.ts +137 -0
  46. package/dist/solution/customDetector.d.ts.map +1 -0
  47. package/dist/solution/customDetector.js +342 -0
  48. package/dist/solution/hand.d.ts +14 -0
  49. package/dist/solution/hand.d.ts.map +1 -0
  50. package/dist/solution/hand.js +20 -0
  51. package/dist/solution/index.d.ts +10 -0
  52. package/dist/solution/index.d.ts.map +1 -0
  53. package/dist/solution/index.js +9 -0
  54. package/dist/solution/objectDetector.d.ts +172 -0
  55. package/dist/solution/objectDetector.d.ts.map +1 -0
  56. package/dist/solution/objectDetector.js +606 -0
  57. package/dist/solution/pose3dDetector.d.ts +145 -0
  58. package/dist/solution/pose3dDetector.d.ts.map +1 -0
  59. package/dist/solution/pose3dDetector.js +611 -0
  60. package/dist/solution/poseDetector.d.ts +198 -0
  61. package/dist/solution/poseDetector.d.ts.map +1 -0
  62. package/dist/solution/poseDetector.js +622 -0
  63. package/dist/solution/poseTracker.d.ts +22 -0
  64. package/dist/solution/poseTracker.d.ts.map +1 -0
  65. package/dist/solution/poseTracker.js +106 -0
  66. package/dist/solution/wholebody.d.ts +19 -0
  67. package/dist/solution/wholebody.d.ts.map +1 -0
  68. package/dist/solution/wholebody.js +82 -0
  69. package/dist/solution/wholebody3d.d.ts +22 -0
  70. package/dist/solution/wholebody3d.d.ts.map +1 -0
  71. package/dist/solution/wholebody3d.js +75 -0
  72. package/dist/types/index.d.ts +52 -0
  73. package/dist/types/index.d.ts.map +1 -0
  74. package/dist/types/index.js +5 -0
  75. package/dist/visualization/draw.d.ts +57 -0
  76. package/dist/visualization/draw.d.ts.map +1 -0
  77. package/dist/visualization/draw.js +400 -0
  78. package/dist/visualization/skeleton/coco133.d.ts +350 -0
  79. package/dist/visualization/skeleton/coco133.d.ts.map +1 -0
  80. package/dist/visualization/skeleton/coco133.js +120 -0
  81. package/dist/visualization/skeleton/coco17.d.ts +180 -0
  82. package/dist/visualization/skeleton/coco17.d.ts.map +1 -0
  83. package/dist/visualization/skeleton/coco17.js +48 -0
  84. package/dist/visualization/skeleton/halpe26.d.ts +278 -0
  85. package/dist/visualization/skeleton/halpe26.d.ts.map +1 -0
  86. package/dist/visualization/skeleton/halpe26.js +70 -0
  87. package/dist/visualization/skeleton/hand21.d.ts +196 -0
  88. package/dist/visualization/skeleton/hand21.d.ts.map +1 -0
  89. package/dist/visualization/skeleton/hand21.js +51 -0
  90. package/dist/visualization/skeleton/index.d.ts +10 -0
  91. package/dist/visualization/skeleton/index.d.ts.map +1 -0
  92. package/dist/visualization/skeleton/index.js +9 -0
  93. package/dist/visualization/skeleton/openpose134.d.ts +357 -0
  94. package/dist/visualization/skeleton/openpose134.d.ts.map +1 -0
  95. package/dist/visualization/skeleton/openpose134.js +116 -0
  96. package/dist/visualization/skeleton/openpose18.d.ts +177 -0
  97. package/dist/visualization/skeleton/openpose18.d.ts.map +1 -0
  98. package/dist/visualization/skeleton/openpose18.js +47 -0
  99. package/docs/ANIMAL_DETECTOR.md +450 -0
  100. package/docs/CUSTOM_DETECTOR.md +568 -0
  101. package/docs/OBJECT_DETECTOR.md +373 -0
  102. package/docs/POSE3D_DETECTOR.md +458 -0
  103. package/docs/POSE_DETECTOR.md +442 -0
  104. package/examples/README.md +119 -0
  105. package/examples/index.html +746 -0
  106. package/package.json +51 -0
  107. package/playground/README.md +114 -0
  108. package/playground/app/favicon.ico +0 -0
  109. package/playground/app/globals.css +17 -0
  110. package/playground/app/layout.tsx +19 -0
  111. package/playground/app/page.tsx +1338 -0
  112. package/playground/eslint.config.mjs +18 -0
  113. package/playground/next.config.ts +34 -0
  114. package/playground/package-lock.json +6723 -0
  115. package/playground/package.json +27 -0
  116. package/playground/postcss.config.mjs +7 -0
  117. package/playground/tsconfig.json +34 -0
  118. package/src/core/base.ts +66 -0
  119. package/src/core/file.ts +141 -0
  120. package/src/core/modelCache.ts +189 -0
  121. package/src/core/posePostprocessing.ts +91 -0
  122. package/src/core/postprocessing.ts +93 -0
  123. package/src/core/preprocessing.ts +127 -0
  124. package/src/index.ts +69 -0
  125. package/src/models/rtmpose.ts +265 -0
  126. package/src/models/rtmpose3d.ts +289 -0
  127. package/src/models/yolo12.ts +220 -0
  128. package/src/models/yolox.ts +214 -0
  129. package/src/solution/animalDetector.ts +955 -0
  130. package/src/solution/body.ts +89 -0
  131. package/src/solution/bodyWithFeet.ts +89 -0
  132. package/src/solution/customDetector.ts +474 -0
  133. package/src/solution/hand.ts +52 -0
  134. package/src/solution/index.ts +10 -0
  135. package/src/solution/objectDetector.ts +816 -0
  136. package/src/solution/pose3dDetector.ts +890 -0
  137. package/src/solution/poseDetector.ts +892 -0
  138. package/src/solution/poseTracker.ts +172 -0
  139. package/src/solution/wholebody.ts +130 -0
  140. package/src/solution/wholebody3d.ts +125 -0
  141. package/src/types/index.ts +62 -0
  142. package/src/visualization/draw.ts +543 -0
  143. package/src/visualization/skeleton/coco133.ts +131 -0
  144. package/src/visualization/skeleton/coco17.ts +49 -0
  145. package/src/visualization/skeleton/halpe26.ts +71 -0
  146. package/src/visualization/skeleton/hand21.ts +52 -0
  147. package/src/visualization/skeleton/index.ts +10 -0
  148. package/src/visualization/skeleton/openpose134.ts +125 -0
  149. package/src/visualization/skeleton/openpose18.ts +48 -0
  150. package/tsconfig.json +32 -0
@@ -0,0 +1,229 @@
1
+ /**
2
+ * AnimalDetector - Animal detection and pose estimation API
3
+ * Supports 30 animal classes with ViTPose++ pose model
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * // Initialize with default models
8
+ * const detector = new AnimalDetector();
9
+ * await detector.init();
10
+ *
11
+ * // Detect animals
12
+ * const animals = await detector.detectFromCanvas(canvas);
13
+ * console.log(`Found ${animals.length} animals`);
14
+ *
15
+ * // With custom models
16
+ * const detector2 = new AnimalDetector({
17
+ * detModel: 'path/to/yolox_animal.onnx',
18
+ * poseModel: 'path/to/vitpose_animal.onnx',
19
+ * });
20
+ * ```
21
+ */
22
+ /**
23
+ * 30 Animal class names supported by AnimalDetector
24
+ */
25
+ export declare const ANIMAL_CLASSES: string[];
26
+ /**
27
+ * Available ViTPose++ models for animal pose estimation
28
+ * All models are trained on 6 datasets and support 30 animal classes
29
+ */
30
+ export declare const VITPOSE_MODELS: {
31
+ /** ViTPose++-s: Fastest, 74.2 AP on AP10K */
32
+ readonly 'vitpose-s': {
33
+ readonly name: "ViTPose++-s";
34
+ readonly url: "https://huggingface.co/JunkyByte/easy_ViTPose/resolve/main/onnx/apt36k/vitpose-s-apt36k.onnx";
35
+ readonly inputSize: [number, number];
36
+ readonly ap: 74.2;
37
+ readonly description: "Fastest inference, suitable for real-time applications";
38
+ };
39
+ /** ViTPose++-b: Balanced, 75.9 AP on AP10K */
40
+ readonly 'vitpose-b': {
41
+ readonly name: "ViTPose++-b";
42
+ readonly url: "https://huggingface.co/JunkyByte/easy_ViTPose/resolve/main/onnx/apt36k/vitpose-b-apt36k.onnx";
43
+ readonly inputSize: [number, number];
44
+ readonly ap: 75.9;
45
+ readonly description: "Balanced speed and accuracy";
46
+ };
47
+ /** ViTPose++-l: Most accurate, 80.8 AP on AP10K */
48
+ readonly 'vitpose-l': {
49
+ readonly name: "ViTPose++-l";
50
+ readonly url: "https://huggingface.co/JunkyByte/easy_ViTPose/resolve/main/onnx/apt36k/vitpose-h-apt36k.onnx";
51
+ readonly inputSize: [number, number];
52
+ readonly ap: 80.8;
53
+ readonly description: "Highest accuracy, slower inference";
54
+ };
55
+ };
56
+ export type VitPoseModelType = keyof typeof VITPOSE_MODELS;
57
+ /**
58
+ * Configuration options for AnimalDetector
59
+ */
60
+ export interface AnimalDetectorConfig {
61
+ /** Path to animal detection model (optional - uses default if not specified) */
62
+ detModel?: string;
63
+ /** Path to animal pose estimation model (optional - uses default if not specified) */
64
+ poseModel?: string;
65
+ /** ViTPose++ model variant (optional - uses vitpose-b if not specified) */
66
+ poseModelType?: VitPoseModelType;
67
+ /** Detection input size (default: [640, 640]) */
68
+ detInputSize?: [number, number];
69
+ /** Pose input size (default: [256, 192]) */
70
+ poseInputSize?: [number, number];
71
+ /** Detection confidence threshold (default: 0.5) */
72
+ detConfidence?: number;
73
+ /** NMS IoU threshold (default: 0.45) */
74
+ nmsThreshold?: number;
75
+ /** Pose keypoint confidence threshold (default: 0.3) */
76
+ poseConfidence?: number;
77
+ /** Execution backend (default: 'wasm') */
78
+ backend?: 'wasm' | 'webgpu';
79
+ /** Enable model caching (default: true) */
80
+ cache?: boolean;
81
+ /** Animal classes to detect (null = all) */
82
+ classes?: string[] | null;
83
+ }
84
+ /**
85
+ * Detected animal with bounding box and keypoints
86
+ */
87
+ export interface DetectedAnimal {
88
+ /** Bounding box coordinates */
89
+ bbox: {
90
+ x1: number;
91
+ y1: number;
92
+ x2: number;
93
+ y2: number;
94
+ confidence: number;
95
+ };
96
+ /** Animal class ID */
97
+ classId: number;
98
+ /** Animal class name */
99
+ className: string;
100
+ /** 17 keypoints (COCO format) */
101
+ keypoints: AnimalKeypoint[];
102
+ /** Keypoint scores (0-1) */
103
+ scores: number[];
104
+ }
105
+ /**
106
+ * Single keypoint with coordinates and visibility
107
+ */
108
+ export interface AnimalKeypoint {
109
+ x: number;
110
+ y: number;
111
+ score: number;
112
+ visible: boolean;
113
+ name: string;
114
+ }
115
+ /**
116
+ * Detection statistics
117
+ */
118
+ export interface AnimalDetectionStats {
119
+ /** Number of detected animals */
120
+ animalCount: number;
121
+ /** Detections per class */
122
+ classCounts: Record<string, number>;
123
+ /** Detection inference time (ms) */
124
+ detTime: number;
125
+ /** Pose estimation time (ms) */
126
+ poseTime: number;
127
+ /** Total processing time (ms) */
128
+ totalTime: number;
129
+ }
130
+ export declare class AnimalDetector {
131
+ private config;
132
+ private detSession;
133
+ private poseSession;
134
+ private initialized;
135
+ private classFilter;
136
+ private canvas;
137
+ private ctx;
138
+ private poseCanvas;
139
+ private poseCtx;
140
+ private poseTensorBuffer;
141
+ private detInputSize;
142
+ private poseInputSize;
143
+ constructor(config?: AnimalDetectorConfig);
144
+ /**
145
+ * Update class filter based on config
146
+ */
147
+ private updateClassFilter;
148
+ /**
149
+ * Set which animal classes to detect
150
+ */
151
+ setClasses(classes: string[] | null): void;
152
+ /**
153
+ * Get list of available animal classes
154
+ */
155
+ getAvailableClasses(): string[];
156
+ /**
157
+ * Get information about the current ViTPose++ model
158
+ */
159
+ getPoseModelInfo(): {
160
+ readonly name: "ViTPose++-s";
161
+ readonly url: "https://huggingface.co/JunkyByte/easy_ViTPose/resolve/main/onnx/apt36k/vitpose-s-apt36k.onnx";
162
+ readonly inputSize: [number, number];
163
+ readonly ap: 74.2;
164
+ readonly description: "Fastest inference, suitable for real-time applications";
165
+ } | {
166
+ readonly name: "ViTPose++-b";
167
+ readonly url: "https://huggingface.co/JunkyByte/easy_ViTPose/resolve/main/onnx/apt36k/vitpose-b-apt36k.onnx";
168
+ readonly inputSize: [number, number];
169
+ readonly ap: 75.9;
170
+ readonly description: "Balanced speed and accuracy";
171
+ } | {
172
+ readonly name: "ViTPose++-l";
173
+ readonly url: "https://huggingface.co/JunkyByte/easy_ViTPose/resolve/main/onnx/apt36k/vitpose-h-apt36k.onnx";
174
+ readonly inputSize: [number, number];
175
+ readonly ap: 80.8;
176
+ readonly description: "Highest accuracy, slower inference";
177
+ } | null;
178
+ /**
179
+ * Initialize both detection and pose models
180
+ */
181
+ init(): Promise<void>;
182
+ /**
183
+ * Detect animals from HTMLCanvasElement
184
+ */
185
+ detectFromCanvas(canvas: HTMLCanvasElement): Promise<DetectedAnimal[]>;
186
+ /**
187
+ * Detect animals from HTMLVideoElement
188
+ */
189
+ detectFromVideo(video: HTMLVideoElement, targetCanvas?: HTMLCanvasElement): Promise<DetectedAnimal[]>;
190
+ /**
191
+ * Detect animals from HTMLImageElement
192
+ */
193
+ detectFromImage(image: HTMLImageElement, targetCanvas?: HTMLCanvasElement): Promise<DetectedAnimal[]>;
194
+ /**
195
+ * Detect animals from ImageBitmap
196
+ */
197
+ detectFromBitmap(bitmap: ImageBitmap, targetCanvas?: HTMLCanvasElement): Promise<DetectedAnimal[]>;
198
+ /**
199
+ * Detect animals from File
200
+ */
201
+ detectFromFile(file: File, targetCanvas?: HTMLCanvasElement): Promise<DetectedAnimal[]>;
202
+ /**
203
+ * Detect animals from Blob
204
+ */
205
+ detectFromBlob(blob: Blob, targetCanvas?: HTMLCanvasElement): Promise<DetectedAnimal[]>;
206
+ /**
207
+ * Detect animals from raw image data
208
+ */
209
+ detect(imageData: Uint8Array, width: number, height: number): Promise<DetectedAnimal[]>;
210
+ /**
211
+ * Detect animals using YOLO
212
+ */
213
+ private detectAnimals;
214
+ /**
215
+ * Estimate pose for a single animal
216
+ */
217
+ private estimatePose;
218
+ private preprocessYOLO;
219
+ private postprocessYOLO;
220
+ private preprocessPose;
221
+ private postprocessPose;
222
+ private applyNMS;
223
+ private calculateIoU;
224
+ /**
225
+ * Dispose resources
226
+ */
227
+ dispose(): void;
228
+ }
229
+ //# sourceMappingURL=animalDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animalDetector.d.ts","sourceRoot":"","sources":["../../src/solution/animalDetector.ts"],"names":[],"mappings":"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"}