Skip to content

Commit fbb3c29

Browse files
committed
added caffe-ssd demo
1 parent 6db5357 commit fbb3c29

File tree

8 files changed

+1687
-0
lines changed

8 files changed

+1687
-0
lines changed

demo/caffe-ssd/demo.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
"use strict";
2+
3+
var caffe = require("../../bagua-caffe/build/Release/caffe.node");
4+
var SSD = require("./ssd.js");
5+
6+
var LABELS = ["---", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow",
7+
"diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"];
8+
9+
var image = caffe.io.loadImage("dog.jpg");
10+
11+
caffe.io.namedWindow("Image");
12+
13+
function show (blob) {
14+
let detections = SSD.parse(blob, image);
15+
16+
detections.forEach(o => {
17+
if (o.score > 0.3) {
18+
console.log(LABELS[o.label], o.score.toFixed(3), "@", o.xmin, o.ymin, o.xmax, o.ymax);
19+
image.rectangle(o.xmin, o.ymin, o.xmax, o.ymax);
20+
}
21+
});
22+
caffe.io.show("Image", image);
23+
caffe.io.waitKey();
24+
}
25+
26+
27+
var net = new caffe.Net('../../model-zoo/caffe/VOC0712/SSD_300x300/deploy.prototxt', '../../model-zoo/caffe/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_120000.caffemodel');
28+
29+
var transformer = new caffe.io.Transformer(net.blobs["data"].shape);
30+
transformer.setMeanValue([104, 117, 123]);
31+
32+
net.blobs["data"].data = transformer.preprocess(image);
33+
34+
// Sync call
35+
//show (net.forward()[0]);
36+
37+
38+
// Async call
39+
net.forward(output_blobs => {
40+
show (output_blobs[0]);
41+
});
42+

demo/caffe-ssd/dog.jpg

160 KB
Loading

demo/caffe-ssd/horses.jpg

130 KB
Loading

demo/caffe-ssd/person.jpg

111 KB
Loading

demo/caffe-ssd/ssd.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
exports.parse = function (blob, image) {
2+
var w = image.cols, h = image.rows;
3+
4+
var f = new Float32Array(blob.data.buffer);
5+
var num_det = blob.shape[2];
6+
var out = [];
7+
8+
for (var i = 0; i < num_det; i++) {
9+
if (f[i * 7] >= 0) {
10+
var o = {
11+
label: f[i * 7 + 1] | 0,
12+
score: f[i * 7 + 2],
13+
xmin: (f[i * 7 + 3] * w) | 0,
14+
ymin: (f[i * 7 + 4] * h) | 0,
15+
xmax: (f[i * 7 + 5] * w) | 0,
16+
ymax: (f[i * 7 + 6] * h) | 0
17+
};
18+
out.push(o);
19+
}
20+
}
21+
22+
return out;
23+
};

demo/caffe-ssd/street.jpg

437 KB
Loading

0 commit comments

Comments
 (0)