基于dragonboard 410c的智能魔镜设计(6)——人脸检测及身份识别启动模块封装

CP2102 USB 转 UART 模块 PCB 设计项目 不幸的是,我的笔记本电脑只有 USB 端口,所以我需要在 USB 端口和 UART 接口之间进行转换。PCB 布局将足够小,因此我们不一定需要高速布线 USB 线路,但我们将在此将其作为一个简单的示例来实现,以展示如何在这种类型的电路板上实现它。相反,我们只使用屏幕左侧的电路。在这里,我们利用对之间的间距和到 L1 上的铜灌注的距离将差分阻抗设置为目标值。初始布局分为两个部分:USB 连接器和 USB 线路的 TVS 二极管放置在电路板左侧,带有二极管 D4 和 D5 的引脚接头放置在电路板右侧。 阅读详情

       前面blog中已经向大家介绍了如何构建用于智能魔镜的获取人脸getFac.py和检测人脸detectedIdentification.py两个模块,借助着两个模块我们可以方便的进行人脸检测保存人脸图像,和根据检测到的人脸图像读取人脸身份ID,但是在智能魔镜中,我们还需要根据超声波的状态来决定是否启动摄像头模块进行人脸检测,并且在有人来的时候还需要将检测结果告知到UI程序,启动UI程序执行相应的消息推送命令,这期blog将向大家介绍如何将这些程序模块组织起来,形成一个完整的人脸检测及身份识别模块。

      这里我们通过设计一个startPeopleDetect.py模块来实现整个功能,具体设计如下:

      1)超声波读取函数

      这里通过构建两个函数来实现,第一个函数实现对超声波设备驱动数据的读取获取超声波数据,第二个函数对第一个函数进行了封装,根据获取的超声波数据来判断人是否在镜子前面,

   def getUltrasonicData():
         ult=open("/sys/devices/platform/soc/soc:sonar/value")
         return(int(ult.read()))
         #return(random.uniform(20,120))
   def isPeopleFrontMirro(dist):
         d=getUltrasonicData()
         print(d)
         if dist<d:
            return False
         else:
            return True

     然后我们就可以构建主函数了,在主函数直接完成所有的启动和人脸检测及识别动作,通过这个函数启动维护人脸检测,并且将检测结果实时的写入到数据库中,为UI程序提供人脸检测结果数据,UI程序就可以根据该数据执行相应的显示命令,具体的主函数实现如下:

     if __name__=="__main__":
     
    sf=1
    if sys.argv[0]<1000 and sys.argv[0]>200:
        dist=sys.argv[0]
    else:
        dist=600
    
    isPeopleFront=0
    GF=getFace()
    #GF.getface(0)
    PD=peopleDetected("./usrImg")
    #PD.getPeopleID("./usrImg/002/2.jpg")
    
    while(True):
        if isPeopleFront==0:
            sf=1
            print("no people")
            MMDB=MagicMirrorDB("./db.sqlite3")
            MMDB.updateSystemStatus('peopleInfront',-1,0,'no people in front')
            time.sleep(sf)
            isPeopleFront=isPeopleFrontMirro(dist)
        else:
            
            # start getface
            rs=GF.getface(0)
            # start detectPeopleID
            if rs!=False:
                peopleID=PD.getPeopleID('./temp.jpg')
                MMDB=MagicMirrorDB("./db.sqlite3")
            else:
                peopleID=-1
            #is people in front mirro but no find user ID
            if(peopleID==-1):
                MMDB.updateSystemStatus('peopleInfront',1,0,'have people in front but no ID')
            else:
                MMDB.updateSystemStatus('peopleInfront',2,peopleID,'find user ID')
                   
            while True:
                #isPeopleFront=isPeopleFrontMirro(dist)
                if isPeopleFront==1:
                    sf=1
                    time.sleep(sf)
                else:
                    #save in database
                    break
                isPeopleFront=isPeopleFrontMirro(dist)
    
    sys.exit(0)    

    保存这个文件,然后搭建好超声波设备和插入USB摄像头,运行该文件就可以每隔1s实现人脸的检测和识别,并且将识别结果保存到数据库中,这样我们就完成了整个魔镜的人脸检测和识别功能的设计。

RK3576平台部署NanoTrack:边缘AI视觉跟踪实战指南 边缘AI部署是将深度学习模型在资源受限的嵌入式设备上高效运行的关键技术,其核心在于模型压缩、硬件适配与软件栈优化。通过INT8量化、算子融合与内存优化等原理,能显著降低模型计算量与内存占用,从而在嵌入式NPU上实现实时推理。这项技术的价值在于为安防监控、无人机视觉、工业检测等场景提供低功耗、高响应的智能感知能力。以瑞芯微RK3576平台部署轻量级视觉跟踪模型NanoTrack为例,其过程涉及模型结构分析、RKNN工具链转换、C++推理程序开发及多线程性能优化,完整展现了从算法到产品的工程化路径,为开发者提供 阅读详情

相关推荐

配置权重_高盛都在用的资产配置模型,BL贝叶斯框架改进Markowitz

前面我们说到,markoviz的均值-方差模型,第一次,用数学的方式严格证明了投资组合存在最优的权重,但它的学术意义大于实战。主要原因有两个:1,人们很难有效的预测期望收益率;2,最优资产组合配置对输入非常敏感,结果往往难以被人理解。还有就是在投资中,定量只是完成初步构建,同步的定性判断依然非常重要:第一,投资者的认知偏好:倾向于关注他们认为被低估,但有发展潜力或者可以确定相对交易价值的小部分股票...

weixin_39892309的博客 715

推荐开源项目:MMM-Facial-Recognition - 智能魔镜人脸识别模块

推荐开源项目:MMM-Facial-Recognition - 智能魔镜人脸识别模块 在智能家居和个性化用户体验的浪潮中,MagicMirror 开源项目引领了智能镜子的潮流,而今天我要向大家推荐的是一个让 MagicMirror 更加聪明的扩展——MMM-Facial-Recognition。这款模块通过人脸识别技术,能够依据当前用户的身份自动调整显示的内容。 项目介绍 MMM-Facial-R...

gitblog_00010的博客 605

从BIOS到路由器:深入拆解SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)奥秘

本文深入解析SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)技术,从BIOS到路由器的应用场景出发,详细介绍了其架构精髓、典型连接方案、时序设计及性能优化方法。通过实际案例和参数对比,帮助开发者掌握NOR Flash在嵌入式系统中的关键作用与设计技巧,提升电路设计效率与可靠性。

weixin_30522183的博客 490

基于dragonboard 410c的智能魔镜设计(5)——基于人脸的用户身份识别

根据前面的设计方案,在设计的基于dragonboard 410c的智能魔镜中,需要根据超声波检测到有人靠近的时候,通过USB摄像头采集人脸数据,然后根据数据库中的人脸数据进行人脸匹配,识别用户的身份,最终根据用户身份显示不同的消息和推送不同的内容,这期blog将重点向大家介绍智能魔镜中的人脸检测和识别处理实现的原理和过程。           需要进行基于人脸的用户身份识别,首先需要检测出人脸,

ANDYMFC的博客 1895

win11系统ping另一台电脑上VMware虚拟机的IP

我是用了两台电脑,所以刚才遇到一个问题就是两台电脑的IP 在同一局域网内ping不通。于是就找了很多资料,经过坚强的绝望后终于解决了。 下开始解决问题: VMWare提供了三种工作模式:bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。 1. bridged(桥接模式)   在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚

qq_42817360的博客 3236

altium room 布局_ALtium 16相同重复模块PCB布局,复制布局走线

自己做了实际工程以后发现PCB器件名字后缀太长了,所以文章最后写了一下后缀的调整方法。第一种方法:1、建立子原理图如下,文件名CANM 2、之后新建一个顶层文件,文件名TOP,之后design—create sheet symbol form sheet or hdl。选择CANM,并放置到TOP中,如下 3、由于我们要多次调用CANM所以使用repeat命令修改如下: 4、之后根据自己的定义,连...

weixin_39609573的博客 5749

opencv人脸识别(一)opencv基础知识与模块搭建

什么是人脸识别? 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别 人脸与人体的其它生物特征(指纹、虹膜等)一样与生俱来,它的唯一性和不易被复制的良好特性为身份鉴别提供了必要的前提,与其它类型的生物识别比较人脸识别具有如下特点:...

Better_YZQ的博客 4968

Python电商网站全站爬虫实战:以京东为例的数据采集与分析

随着电子商务的蓬勃发展,电商数据已成为市场研究、竞争分析和消费者行为研究的重要资源。本文详细介绍了如何使用Python最新技术栈构建一个高效的电商网站全站爬虫,以京东为例实现商品数据的自动化采集。文章涵盖了爬虫的法律与伦理考量、技术选型、反爬虫策略应对、分布式架构设计以及数据存储方案,并提供了完整的代码实现。本爬虫系统采用Scrapy-Redis分布式框架、Selenium动态渲染、智能代理轮换和机器学习验证码识别等先进技术,能够稳定高效地抓取京东全站商品数据,为电子商务研究提供数据支持。关键词。

2201_76125261的博客 413

基于dragonboard 410c的智能魔镜设计(7)——UI原型设计

前面在相关的blog中已经对如何实现智能魔镜的消息检索、视频消息播放等进行了详细介绍,但是只是给出了相应的算法和设计逻辑代码,最终我们如果想在魔镜上进行消息的显示和视频播放,还需要构建UI系统来完成,这里我们前面  《Dragonbaord 410c Python交互设计》系列blog中对于在dragonboard 410c中的UI交互设计进行了介绍,并且教大家如何使用pyQt来构建自己的交互系统

ANDYMFC的博客 2872

Windows 镜像包大全(附百度云下载链接)

插入U盘,找到下载好的两个驱动软件,并安装,先打开驱动人生万能网卡版,安装好网卡驱动,可以接入wifi或者网线了,然后打开驱动精灵,按照提示,安装所有的驱动(中间要是让你重启,就先选择稍后再说,如果有的驱动安装好之后非要你重启,关不掉的那种,那你就重启吧),等全部安装好了,重启电脑。如果你有显卡,这里以英伟达举例,我是GTX960的,当你的驱动都安装好后,右键桌面,会出现一个英伟达控制面板。安装软碟通,下载之后,一直下一步就ok,啥也不用配置,到了最后一项点击“继续试用”即可。(下载里面的网卡版即可),

悦分享 7344

LVGL hal indev(porting evdev)

LVGL中对输入设备的管理是单例实现的,而在Linux的输入设备是多个的,所以需要对其进行改造成多例实现。

Bigan(安)的博客 3344

基于dragonboard 410c的智能魔镜设计(1)——整体方案设计

本系列bolg将向大家分享,如何应用dragonboard 410c平台,设计一款融入人脸识别和web通信技术的智能魔镜,在使用镜子的时候,镜子会通过自身的摄像头检测出使用者身份,根据使用者身份ID推送预先定制的备忘信息,同时还会实时的显示天气和室内外温度信息等,并且基于web技术实现镜子与其他家庭智能设备及手机的互联,用户可以将自己的提示信息和备忘信息,以及给家人的爱心贴等推送到镜子,镜子会在相

ANDYMFC的博客 3625

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台

宁波阿成的博客 900

基于dragonboard 410c的智能魔镜设计——硬件搭建

前言:就最近制作完成的一个基于dragonboard410c的智能魔镜为大家介绍一下此demo的一个硬件组成以及环境搭建过程。 先来一个成品的靓照吧! 一、准备工作

Winston 1250

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于dragonboard410c的magic mirror demo展示

前言: 此次我们开发的demo采用的是高通dragonboard410c开发板,在本篇博客中,我们可以更加直观的看到magic mirror的丰富功能。向大家展示这些功能希望能给大家带来的体验的乐趣以及demo制作过程的兴趣。 一、人脸检测及身份识别启动模块封装 在智能魔镜中,我们还需要根据超声波的状态来决定是否启动摄像头模块进行人脸检测,并且在有人来的时候还需要将检测结果告知到

Winston 713

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

基于dragonboard 410c的智能魔镜设计(2)——数据库设计与实现

本篇blog将在http://blog.youkuaiyun.com/andymfc/article/details/53926845整体方案的基础上,完成对基于dragonboard 410c的智能魔镜的数据库的设计,首先我们根据方案分析,可以知道,在智能魔镜上需要保持用户信息、保持消息信息,因此,基本可以构建一个用户表userInfo和一个消息表pushInfo两个表就可以对整个智能魔镜的数据进行管理,可

ANDYMFC的博客 2221

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

基于dragonboard 410c的智能魔镜设计(3)——文本消息检索及自动显示

在前两个blog中已经跟大家介绍了如何应用dragonbaord 410c来搭建智能魔镜,对系统的整体设计方案和数据库的构建方案进行了分析和设计,给出了详细的设计框架和部分数据库的实现代码,本节将在此基础上向大家介绍,如何实现在镜子上根据不同的用户播放不同的消息的功能。                   根据前面的设计,我们已经搭建好了数据库,并且在数据库中构建了一张pushInfo表来管理

ANDYMFC的博客 1556

基于dragonboard 410c的智能魔镜设计(4)——视频消息检索及自动播放

前面给大家介绍了如何自动的检索指定用户的文本消息,并且采用html模板方式在qt控件上自动循环的播放文本消息,但是在智能魔镜中我们还可以向指定用户推送视频消息,实时显示视频消息,这里进一步向大家介绍如何在基于dragonboard 410c的智能魔镜上实现视频消息的自动检索和播放。            与检索文本消息类似,在我们构建的智能魔镜数据库中的pushInfo表中保存了视频消息的路径

ANDYMFC的博客 1693

基于dragonboard 410c的智能魔镜设计(9)——UI交互控制逻辑实现

在http://blog.youkuaiyun.com/andymfc/article/details/54580647和http://blog.youkuaiyun.com/andymfc/article/details/54581209两个blog中已经跟大家介绍了整个智能魔镜端的交互UI的设计原型和实现的python脚本及方式,这里将进一步教大家如何实现整个UI交互的逻辑控制程序,根据http://blog.csd

ANDYMFC的博客 2119

无人机光流定位系列——(一)原理剖析

这次参加深圳的高交会,在qualcomm展区看到了多款mini无人机,大家稍微细心一点就可以发现这些无人机都使用了一种叫光流定位的技术,很多人可能都还不明白光流定位是个什么东西,是如何进行定位的,今天就带大家一起来了解一下光流定位的原理。       在无人机上光流定位通常是借助于无人机底部的一个摄像头采集图像数据,然后采用光流算法计算两帧图像的位移,进而实现对无人机的定位,这种定位手段

ANDYMFC的博客 5万+

高通DragonBoard 410c MIPI-DIS显示功能及驱动移植

为了满足部分IOT应用对显示的需求,高通DragonBoard 410c IOT平台提供了一个具有四路MIPI-DSI接口的高速扩展口用于提供显示支持,在DragonBoard 410c开发板设计中,通过一个DSI选择器与DSI-HDMI桥进行连接,该选择器搭载在410c上,如图1所示。 图1 MIPI DSI 0口连接示意图 在实际的工作过程中410c只能驱动HDMI

ANDYMFC的博客 1万+

无人机光流定位系列——(二)实践

在本系列blog中的http://blog.youkuaiyun.com/andymfc/article/details/53316404文章中,已经对光流定位的原理进行了详细的分析,详细介绍了著名的lucas-kanade光流算法,本期,将带大家一起在dragonboard 410c上来用Python编程实现光流算法,虽然Python语言编写出来的处理效率不高,但是便于我们理解整个光流算法应用方法,并且后续

ANDYMFC的博客 9454

QT+OpenCv实现在410c开发板上实现视频目标追踪预研——目标跟踪算法选择

目标跟踪算法作为一种有着非常广泛的应用的算法,在航空航天、智能交通、智能设备等领域有着非常广泛的应用。本系列博客将教大家在410c开发板上基于linux操作系统环境,采用QT+Opencv来实现视频目标跟踪,本文将首先向大家介绍常用的粒子滤波视频目标跟踪算法,对其原理进行简单的分析,为后续进一步选择和应用算法实现目标跟踪提供基础。

ANDYMFC的博客 5422

基于410c开发板和摄像头的人体姿态估计(预研分析)

最近自己想用410c来做一个运动相关的DIY,用410c开发板搭载摄像头来实现对自己的姿态的跟踪,用到健身运动中,完成对自己所作的动作的定位和标准评判,实时提醒自己所作健身动作的标准程度,前期进行了一些调研和预研究,这里将和大家一起分享一下自己在初期的预研过程对人体姿态估计算法的理解。 图1 不同运动姿态示意图         人体姿态估计算法近年来随着体感游戏、VR等热度的不断提升,

ANDYMFC的博客 4414

QT+OpenCv实现在410c开发板上实现视频目标追踪预研——(二)粒子滤波算法测试

在前一个博客中已经对机器视觉及粒子滤波算法的相关原理进行了介绍,在基于410c平台实现粒子滤波算法的前期,我们在上位机上应用QT和Opencv完成了粒子滤波算法的实现和测试。

ANDYMFC的博客 4127

基于DragonBoard 410c的家庭智能环保卫士——(7)室内栅格地图位置更新

在前面http://blog.youkuaiyun.com/andymfc/article/details/60955819中我们对整体的室内路径规划思想进行了简单介绍,其关键将室内划分为栅格地图,通过设置引导位置,然后采用路径搜索算法查询机器到引导位置的路径,但是如何确定室内栅格地图上的障碍区域,是我们采用该思想实现室内路径规划控制机器人移动的第一步,今天就结合前面给出的方案,进一步对如何实现室内栅格地图的

ANDYMFC的博客 3748
上一篇: 基于dragonboard 410c的智能魔镜设计(5)——基于人脸的用户身份识别
下一篇: 基于dragonboard 410c的智能魔镜设计(7)——UI原型设计
ANDYMFC_No1
博客等级 码龄17年 125粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值