Skip to content
This repository was archived by the owner on Dec 4, 2021. It is now read-only.

Commit 8884fee

Browse files
Added aws Rekognition
1 parent 813f349 commit 8884fee

12 files changed

Lines changed: 1579 additions & 40 deletions

client/api/AWSRekognition.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const express = require('express');
2+
const router = express.Router();
3+
const { detectFace } = require('../aws_rekognition/aws_rekognition_client');
4+
const { OK, BAD_REQUEST, NOT_FOUND } = require('../config/config');
5+
const { addSignLog } = require('../util/logging-helpers');
6+
7+
router.post('/AWS_rekognition', (req, res) => {
8+
const { base64bytes } = req.body;
9+
// const base64bytes = getBase64Image(faceImage);
10+
// detectFace(faceImage)
11+
detectFace(base64bytes)
12+
.then((response) => {
13+
return res.status(OK).send({ ...response });
14+
})
15+
.catch((error) => {
16+
return res.status(BAD_REQUEST).send({ ...error });
17+
});
18+
});
19+
20+
// function getBase64Image(img) {
21+
// let canvas = document.createElement('canvas');
22+
// canvas.width = img.width;
23+
// canvas.height = img.height;
24+
// let ctx = canvas.getContext('2d');
25+
// ctx.drawImage(img, 0, 0);
26+
27+
// let dataURL = canvas.toDataURL('image/png');
28+
29+
// return dataURL.replace(/^data:image\/(png|jpg);base64,/, '');
30+
// }
31+
32+
module.exports = router;

client/api/SceRpcApiServer.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ class SceRpcApiServer {
2929
bodyParser.json({
3030
// support JSON-encoded request bodies
3131
limit: '50mb',
32-
strict: true
32+
strict: true,
3333
})
3434
);
3535
this.app.use(
3636
bodyParser.urlencoded({
3737
// support URL-encoded request bodies
3838
limit: '50mb',
39-
extended: true
39+
extended: true,
4040
})
4141
);
4242
}
@@ -64,7 +64,7 @@ class SceRpcApiServer {
6464
openConnection() {
6565
this.server = http.createServer(this.app);
6666
const { port } = this;
67-
this.server.listen(port, function() {
67+
this.server.listen(port, function () {
6868
console.debug(`Now listening on port ${port}`);
6969
});
7070
}
@@ -93,10 +93,10 @@ if (typeof module !== 'undefined' && !module.parent) {
9393
const apiRoutes = [
9494
__dirname + '/2DPrinting.js',
9595
__dirname + '/3DPrinting.js',
96-
__dirname + '/LedSign.js'
96+
__dirname + '/LedSign.js',
97+
__dirname + '/AWSRekognition.js',
9798
];
98-
const server = new SceRpcApiServer(
99-
apiRoutes, 8083, '/SceRpcApi/');
99+
const server = new SceRpcApiServer(apiRoutes, 8083, '/SceRpcApi/');
100100
server.initializeEndpoints().then(() => {
101101
server.openConnection();
102102
});

client/aws_rekognition/aws_rekognition_client copy.js

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const grpc = require('grpc');
2+
const messages = require('./aws_rekognition_pb');
3+
const services = require('./aws_rekognition_grpc_pb');
4+
5+
function detectFace(faceImageBytes) {
6+
const client = new services.FaceImageClient(
7+
'localhost:50051',
8+
grpc.credentials.createInsecure()
9+
);
10+
11+
const faceCoordinateRequest = new messages.FaceCoordinateRequest();
12+
faceCoordinateRequest.setFaceimage(faceImageBytes);
13+
return new Promise((resolve, reject) => {
14+
client.requestFaceCoordinate(faceCoordinateRequest, (err, response) => {
15+
if (err || !response) {
16+
reject({ message: err, error: true });
17+
} else {
18+
resolve({ message: response, error: false });
19+
}
20+
});
21+
});
22+
}
23+
24+
module.exports = { detectFace };
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// GENERATED CODE -- DO NOT EDIT!
2+
3+
'use strict';
4+
var grpc = require('grpc');
5+
var aws_rekognition_pb = require('./aws_rekognition_pb.js');
6+
7+
function serialize_FaceCoordinateRequest(arg) {
8+
if (!(arg instanceof aws_rekognition_pb.FaceCoordinateRequest)) {
9+
throw new Error('Expected argument of type FaceCoordinateRequest');
10+
}
11+
return Buffer.from(arg.serializeBinary());
12+
}
13+
14+
function deserialize_FaceCoordinateRequest(buffer_arg) {
15+
return aws_rekognition_pb.FaceCoordinateRequest.deserializeBinary(new Uint8Array(buffer_arg));
16+
}
17+
18+
function serialize_FaceCoordinateResponse(arg) {
19+
if (!(arg instanceof aws_rekognition_pb.FaceCoordinateResponse)) {
20+
throw new Error('Expected argument of type FaceCoordinateResponse');
21+
}
22+
return Buffer.from(arg.serializeBinary());
23+
}
24+
25+
function deserialize_FaceCoordinateResponse(buffer_arg) {
26+
return aws_rekognition_pb.FaceCoordinateResponse.deserializeBinary(new Uint8Array(buffer_arg));
27+
}
28+
29+
30+
var FaceImageService = exports.FaceImageService = {
31+
requestFaceCoordinate: {
32+
path: '/FaceImage/RequestFaceCoordinate',
33+
requestStream: false,
34+
responseStream: false,
35+
requestType: aws_rekognition_pb.FaceCoordinateRequest,
36+
responseType: aws_rekognition_pb.FaceCoordinateResponse,
37+
requestSerialize: serialize_FaceCoordinateRequest,
38+
requestDeserialize: deserialize_FaceCoordinateRequest,
39+
responseSerialize: serialize_FaceCoordinateResponse,
40+
responseDeserialize: deserialize_FaceCoordinateResponse,
41+
},
42+
};
43+
44+
exports.FaceImageClient = grpc.makeGenericClientConstructor(FaceImageService);

0 commit comments

Comments
 (0)