天眼人脸识别系统-用户轨迹分析案例

步骤一:sourceai/model/face/db/face_query.py添加及修改如下代码:

from sourceai.model.face.db import face_storage
from sourceai.model.face.db import face_obj


def query(imgid, name=''):
    dbconn = face_storage.MySQL_Query()
    res = ''
    if (name == 'user'):
        res = query_userinfo(dbconn, imgid)
    elif (name == 'resume'):
        res = query_resume_info(dbconn, imgid)
    elif (name == 'travel'):
        res = query_travel_info(dbconn, imgid)
    elif (name == 'medical'):
        res = query_medical_info(dbconn, imgid)
    elif (name == 'diet'):
        res = query_diet_info(dbconn, imgid)
    elif (name == 'catagory'):
        res = query_diet_catagory(dbconn, imgid)
    elif (name == 'consume_month'):
        res = query_consume_info(dbconn, imgid)
    elif (name == 'consume_year'):
        res = query_consume_year(dbconn, imgid)
    elif (name == 'trajectory'):
        res = query_trajectory(dbconn, imgid)
  
    # print(res)
    dbconn.disconnect()
    return res
    
 def query_trajectory(dbconn, imgid):
    sql = "select  n.f_long,n.f_lat from tb_user m,tb_trajectory n where m.f_id = n.f_userid and m.f_faceid ='" + imgid + "'"
    results = dbconn.query(sql)
    datas = []

    for row in results:
        item = [row[0],row[1]]
        datas.append(item)

    res = list_track(datas)

    return res

def list_track(data):
    data_copy = data.copy()
    last = data_copy[len(data_copy) - 1]
    data_copy.pop(0)
    data_copy.append(last)
    res = list(zip(data, data_copy))
    res = [list(item) for item in res]
    res.pop()
    print(res)
    return res

步骤二:在sourceai/controller/portrait_views.py文件中添加如下内容:

def earthdata(request):
    faceid = request.POST.get('userid')
    datas = face_query.query(faceid, 'trajectory')
    return HttpResponse(json.dumps(datas))

步骤三:修改前端static/index.html文件中轨迹访问数据代码

$.ajax({
        url: 'http://localhost:8000/earthdata',
        type: 'POST',
        data: {
            userid: user_id,
        },
        dataType: 'JSON',
        success: function (res) {
            // console.log(res);
            //参考航站信息
            //https://fastly.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/data-gl/asset/data/flights.json
            var chartDom_e = document.getElementById('earth');
            var myChart_e = echarts.init(chartDom_e);
            var option_e;

             myChart_e.setOption({
                    backgroundColor: '',
                    globe: {
                        baseTexture: 'img/map01.jpg',
                        heightTexture: 'img/map02.jpg',
                        shading: 'lambert',
                        light: {
                            ambient: {
                                intensity: 0.8
                            },
                            main: {
                                intensity: 0.4
                            }
                        },
                        viewControl: {
                            autoRotate: true
                        },
                        globeRadius: 60
                    },
                    series: {
                        type: 'lines3D',
                        coordinateSystem: 'globe',
                        blendMode: 'lighter',
                        lineStyle: {
                            width: 2,
                            color: 'rgb(50, 50, 150)',
                            opacity: 0.9
                        },
                        data: res
                    }
                });

            option_e && myChart_e.setOption(option_e);
        }
    })

步骤四:启动项目,进行人脸识别后,结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值