DIY
搜索 分类
200美元“造”出一台可由语音控制外加能进行人脸识别的自主飞行无人机
来源:Parrot派诺特2016-11-182016-11-18

    从网页上控制无人机飞行

为无人机开发一个基于网页的控制页面挺简单且效果不错。用如下所示的express.js框架就可以搭建一个很小巧的网页服务器。

var express = require(‘express’);

app.get(‘/’, function (req, res) {

res.sendFile(path.join(__dirname + ‘/index.html’));

});

app.get(‘/land’, function(req, res) {

client.land();

});

app.get(‘/takeoff’, function(req, res) {

client.takeoff();

});

app.listen(3000, function () {

});

我用下面的代码来通过一个按钮发送AJAX请求。

<html>

<script language=’javascript’>

function call(name) {

var xhr = new XMLHttpRequest();

xhr.open(‘GET’, name, true);

xhr.send();

}

</script>

<body>

<a”call(‘takeoff’);”>Takeoff</a>

<a”call(‘land’);”>Land</a>

</body>

</html>

    从无人机上导出视频流

我发现把无人机上的摄像头拍摄的视频导出的最佳方法就是:建立一个持续的连接,并把摄像头拍摄的PNG图片发送到我的网站的网页上。通过使用AR无人机的库(见下面的代码),网页服务器不断地把无人机摄像头拍摄的PNG画面拉取出来。

var pngStream = client.getPngStream();

pngStream

.on(‘error’, console.log)

.on(‘data’, function(pngBuffer) {

sendPng(pngBuffer);

}

function sendPng(buffer) {

res.write(‘–daboundary\nContent-Type: image/png\nContent-length: ‘ + buff

er.length + ‘\n\n’);

res.write(buffer);

});

    对从无人机获取的图像进行人脸识别

微软的Azure Face API系统很容易上手,且功能强大。你上传你朋友的照片给它,这个系统就能识别出他们是谁。它也能猜测人物的年龄和性别。我发现这两个功能的识别准确率是惊人的高。整个识别的延迟大概是200毫秒。识别1000次请求花费1.5美元。对我而言,这个价格对于这种应用是相当合理的。下面是我的代码,它实现了发送图片给API来做人脸识别的功能。

var oxford = require(‘project-oxford’),

oxc = new oxford.Client(CLIENT_KEY);

loadFaces = function() {

chris_url = “https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAALyAAAAJGMyNmIzNWM0LTA5MTYtNDU4Mi05YjExLTgyMzVlMTZjYjEwYw.jpg”;

lukas_url = “https://media.licdn.com/mpr/mpr/shrinknp_400_400/p/3/000/058/147/34969d0.jpg”;

oxc.face.faceList.create(‘myFaces’);

oxc.face.faceList.addFace(‘myFaces’, {url => chris_url, name=> ‘Chris’});

oxc.face.faceList.addFace(‘myFaces’, {url => lukas_url, name=> ‘Lukas’});

}

oxc.face.detect({

path: ‘camera.png’,

analyzesAge: true,

analyzesGender: true

}).then(function (response) {

if (response.length > 0) {

drawFaces(response, filename)

}

});

我用了ImageMagick库来对我收集的PNG图片做打标签,效果相当好。对于这个部分其实可以有很多的扩展可能。比如用一个情感API来识别人脸所表现出来的情感。
2/3 下一页 上一页 首页 尾页

相关技术

更多技术
分享好友