mirror of https://github.com/vladmandic/human
add experimental nanodet object detection
parent
c4a3b6f1f9
commit
5c012ed4cc
|
@ -154,8 +154,8 @@ config = {
|
||||||
},
|
},
|
||||||
|
|
||||||
embedding: {
|
embedding: {
|
||||||
enabled: false, // to improve accuracy of face embedding extraction it is recommended
|
enabled: false, // to improve accuracy of face embedding extraction it is
|
||||||
// to enable detector.rotation and mesh.enabled
|
// highly recommended to enable detector.rotation and mesh.enabled
|
||||||
modelPath: '../models/mobileface.json',
|
modelPath: '../models/mobileface.json',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -199,6 +199,16 @@ config = {
|
||||||
modelPath: '../models/handskeleton.json',
|
modelPath: '../models/handskeleton.json',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
object: {
|
||||||
|
enabled: false,
|
||||||
|
modelPath: '../models/nanodet.json',
|
||||||
|
minConfidence: 0.15, // threshold for discarding a prediction
|
||||||
|
iouThreshold: 0.25, // threshold for deciding whether boxes overlap too much
|
||||||
|
// in non-maximum suppression
|
||||||
|
maxResults: 10, // maximum number of objects detected in the input
|
||||||
|
skipFrames: 13, // how many frames to go without re-running the detector
|
||||||
|
},
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
- Age & Gender Prediction: [**SSR-Net**](https://github.com/shamangary/SSR-Net)
|
- Age & Gender Prediction: [**SSR-Net**](https://github.com/shamangary/SSR-Net)
|
||||||
- Emotion Prediction: [**Oarriaga**](https://github.com/oarriaga/face_classification)
|
- Emotion Prediction: [**Oarriaga**](https://github.com/oarriaga/face_classification)
|
||||||
- Face Embedding: [**BecauseofAI MobileFace**](https://github.com/becauseofAI/MobileFace)
|
- Face Embedding: [**BecauseofAI MobileFace**](https://github.com/becauseofAI/MobileFace)
|
||||||
|
- ObjectDetection: [**NanoDet**](https://github.com/RangiLyu/nanodet)
|
||||||
- Image Filters: [**WebGLImageFilter**](https://github.com/phoboslab/WebGLImageFilter)
|
- Image Filters: [**WebGLImageFilter**](https://github.com/phoboslab/WebGLImageFilter)
|
||||||
- Pinto Model Zoo: [**Pinto**](https://github.com/PINTO0309/PINTO_model_zoo)
|
- Pinto Model Zoo: [**Pinto**](https://github.com/PINTO0309/PINTO_model_zoo)
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ Default models in Human library are:
|
||||||
- **Age Detection**: SSR-Net Age IMDB
|
- **Age Detection**: SSR-Net Age IMDB
|
||||||
- **Body Analysis**: PoseNet
|
- **Body Analysis**: PoseNet
|
||||||
- **Face Embedding**: BecauseofAI MobileFace Embedding
|
- **Face Embedding**: BecauseofAI MobileFace Embedding
|
||||||
|
- **Object Detection**: NanoDet
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
@ -50,6 +51,7 @@ Default models in Human library are:
|
||||||
| Sirius-AI MobileFaceNet | 125K | mobilefacenet.json | 5.0M | mobilefacenet.bin | 139 |
|
| Sirius-AI MobileFaceNet | 125K | mobilefacenet.json | 5.0M | mobilefacenet.bin | 139 |
|
||||||
| BecauseofAI MobileFace | 33K | mobileface.json | 2.1M | mobileface.bin | 75 |
|
| BecauseofAI MobileFace | 33K | mobileface.json | 2.1M | mobileface.bin | 75 |
|
||||||
| FaceBoxes | 212K | faceboxes.json | 2.0M | faceboxes.bin | N/A |
|
| FaceBoxes | 212K | faceboxes.json | 2.0M | faceboxes.bin | N/A |
|
||||||
|
| NanoDet | 255K | nanodet.json | 1.9M | nanodet.bin | 524 |
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|
12
Outputs.md
12
Outputs.md
|
@ -57,6 +57,18 @@ result = {
|
||||||
annotations, // <array of 3D landmarks [ landmark: <array of points> ]> 5 annotated landmakrs
|
annotations, // <array of 3D landmarks [ landmark: <array of points> ]> 5 annotated landmakrs
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
object: // <array of detected objects>
|
||||||
|
[
|
||||||
|
{
|
||||||
|
score, // <number>
|
||||||
|
class, // <number> class id based on coco labels
|
||||||
|
label, // <string> class label based on coco labels
|
||||||
|
center, // [<number>, <number>] x,y coordinates of the object center
|
||||||
|
box, // [<number>, <number>, <number>, <number>] x1, y1, x2, y2 coordinates of the box around the detected object
|
||||||
|
centerRaw, // same as center but normalized to range 0..1
|
||||||
|
boxRaw, // same as box, but normalized to range 0..1
|
||||||
|
}
|
||||||
|
],
|
||||||
gesture: // <array of objects object>
|
gesture: // <array of objects object>
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
|
1
Usage.md
1
Usage.md
|
@ -70,6 +70,7 @@ Additional helper functions inside `human.draw`:
|
||||||
human.draw.face(canvas, results.face) // draw face detection results to canvas
|
human.draw.face(canvas, results.face) // draw face detection results to canvas
|
||||||
human.draw.body(canvas, results.body) // draw body detection results to canvas
|
human.draw.body(canvas, results.body) // draw body detection results to canvas
|
||||||
human.draw.hand(canvas, result.hand) // draw hand detection results to canvas
|
human.draw.hand(canvas, result.hand) // draw hand detection results to canvas
|
||||||
|
human.draw.object(canvas, result.object) // draw object detection results to canvas
|
||||||
human.draw.gesture(canvas, result.gesture) // draw detected gesture results to canvas
|
human.draw.gesture(canvas, result.gesture) // draw detected gesture results to canvas
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue