基于虹软人脸识别Demo和Python Django后台开发,实现android人脸识别

参加一个比赛,指定用虹软的人脸识别功能,奈何虹软人脸识别要自己建人脸库,不然就只能离线用,总不能装个样子,简单看了下虹软Demo,下面决定用这种简单方法实现在线人脸识别:

    Android端(虹软Demo)取出人脸信息和姓名,人脸信息写入.data文件,存入手机本地------>取出文件上传至Python Djano后台,后台把文件保存在工程下并把路径存入数据库------>Android端访问后台接口,遍历所有数据库中文件路径然后作为参数再次访问后台,得到所有人脸信息文件和姓名,使用识别功能时,就可以开始和所有人脸信息比对,得到效果


Django 后台代码:

在工程下新建一个文件夹uploads,用来存放人脸数据.data文件

为简单实现,在setting.py中注释

#'django.middleware.csrf.CsrfViewMiddleware',
不然post请求被拦截,认真做工程不建议这样做

app.urls:

from django.conf.urls import url, include
from . import views

urlpatterns = [
    url(r'^posts',views.posttest),
    url(r'^getallface',views.getface),
    url(r'^filedown',views.file_download),
]
views.py
#coding:utf-8
import json
from imp import reload
import sys
import os
from django.http import HttpResponse, HttpResponseRedirect, StreamingHttpResponse
from django.shortcuts import render, render_to_response
from django.template import RequestContext
from faceproject.settings import BASE_DIR, MEDIA_ROOT
reload(sys)
from faceapp.models import face, Faceinfos, FaceinfoForm


def getface(request):
    if request.method=='GET':
        WbAgreementModel = Faceinfos.objects.all()
        cflist = []
        cfdata = {}
        cfdata["coding"] = 1
        cfdata['message'] = 'success'
        for wam in WbAgreementModel:
            wlist = {}
            wlist['name'] = wam.username
            wlist['faceinfo']=wam.fileinfo
            cflist.append(wlist)
        cfdata['data'] = cflist
        return HttpResponse(json.dumps(cfdata, ensure_ascii=False), content_type="application/json")

def posttest(request):
    if request.method=='POST':
        files=request.FILES['fileinfo']
        if not files:
            return HttpResponse("no files for upload!")
        Faceinfos(
            username=request.POST['username'],
            fileinfo=MEDIA_ROOT+'/'+files.name
        ).save()
        f = open(os.path.join('uploads', files.name), 'wb')
        for line in files.chunks():
            f.write(line)
            f.close()
    return HttpResponseRedirect('/face/')

def file_download(request):
    global dirs
    if request.method=='GET':
        dirs=request.GET['dirs'
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值