【OpenHarmony鸿蒙实战】在RK3399开发板实现智能门禁人脸识别

一. 概述

本样例是基于RK3399开发板,使用OpenHarmony3.0-LTS开发的应用。通过定时获取摄像头数据,实现人脸识别比对等功能。.

1. 应用运行效果图:

闸机预览界面

2. 智能闸机使用示意图

闸机使用示意图

如上图所示,用户通过摄像头区域时,闸机应用通过获取摄像头数据捕捉到人脸数据,进行人脸位置区域、角度亮度及人脸特征计算和比对,返回识别结果给用户。

二. 快速上手

应用开发

1. 硬件环境准备
  • 预装windows系统的PC机
  • 扬帆RK3399E开发板
  • 开发板专用12V电源适配器
  • USB公对公数据连接线
  • USB外接摄像头
  • HDMI显示器
2. 开发环境准备
3. 功能开发
  • 搭建预览UI页面

修改index.html文件

<!--系统camera组件-->
<camera id="CameraId" style="width : {{ previewAreaWidth }} px;
        height : {{ previewAreaHeight }} px;"></camera>

添加系统组件camera,宽高根据屏幕规格进行计算,注意宽高比例为3:4

  • 实现人脸识别业务功能

修改index.js文件

引入人脸识别库

import seetaface from '@ohos.napi_seetaface';

在应用初始化时清空已注册的人脸特征

seetaface.ClearFaceDatabase()

注册人脸特征,imgPath为注册图片路径,返回值id>=0代表注册成功

var id = seetaface.RegisterImage(imgPath)

开启定时器调用camera的takePhoto函数进行摄像头数据抓取识别,通过回调函数success和fail进行成功和失败处理

camera.takePhoto({
    quality: '',
    success: (res) => { // 识别成功
        log('LABEL 9527 takePhoto success -- ' + JSON.stringify(res))
        resolve(undefined)
    },
    fail: (err) => { // 识别失败,err.errorcode为错误码
        log('LABEL 9527 takePhoto fail -- ' + JSON.stringify(err))
        reject(parseInt(err.errorcode))
    }
})

注意:1.由于外接屏幕可能不支持触摸交互,导致无法手动启动应用,可以使用以下命令启动

hdc_std shell aa start -d l -a 应用包名.MainAbility -b 应用包名

2.应用覆盖安装导致相机预览失败,需要重启开发板

hdc_std shell reboot 或 hdc_std target boot

3.由于人脸识别底层业务集成在系统camera组件中,导致camera拍照功能(takePhoto)无法存储图片文件,具体业务请查看系统底层人脸识别开发模块

系统镜像编译及烧录

Linux编译服务器基础环境准备

开发基础环境由windows 工作台和Linux 编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

1 安装和配置Python
  • 打开Linux终端。

  • 输入如下[命令],查看python版本号,需要使用python3.7以上版本,否则参考 系统基础环境搭建。

    python3 --version;
    
  • 安装并升级Python包管理工具(pip3)。

    sudo apt-get install python3-setuptools python3-pip -y
    sudo pip3 install --upgrade pip
    
2 安装LLVM
  • 下载LLVM工具。

  • 解压LLVM安装包至~/llvm路径下。

    tar -zxvf llvm.tar -C ~/
    
  • 设置环境变量。

    vim ~/.bashrc
    

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/llvm/bin:$PATH
    
  • 使环境变量生效。

    source ~/.bashrc
    
1. &lt;font size=&quot;4&quot;&gt;source ~/.bashrc&lt;/font&gt;
3 安装hc-gen
  • 打开Linux编译服务器终端。

  • 下载hc-gen工具。点击下载地址下载。

  • 解压hc-gen安装包到Linux服务器~/hc-gen路径下。

    tar -xvf hc-gen-0.65-linux.tar -C
    
  • 设置环境变量。

    vim ~/.bashrc
    

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/hc-gen:$PATH
    
  • 使环境变量生效。

    source ~/.bashrc
    
4 安装编译依赖基础软件(仅Ubuntu 20+需要)
sudo apt-get install build-essential
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make 
sudo apt-get install zlib
sudo apt-get install libffi-dev
5 源码下载&&编译准备

环境搭完后,就该准备代码了。

  • 下载repo
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
  • 下载OpenHarmony源码和编译
  1. 代码下载

    ssh方式:repo init -u ssh://git@gitee.com/openharmony-is/manifest.git -b master -m devboard_rk3399.xml --no-repo-verify
    http方式:repo init -u  https://gitee.com/openharmony-is/manifest.git -b master -m devboard_rk3399.xml --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    bash build/prebuilts_download.sh
    
  2. 打patch

    bash device/rockchip/product/patch.sh
    
  3. 编译

    ./build.sh --product-name rk3399 --ccache
    
6 编译结果

编译产生boot.img在目录 /out/KERNEL_OBJ/kernel/src_tmp/linux-4.19 中

编译产生vender.img、system.img 和userdata.img 在目录out/rk3399/packages/phone/images 中

鸿蒙NEXT开发知识已更新gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md可参考学习更多

image.png

烧录
  • 系统环境

window7/windows10

  • 驱动安装包

    瑞芯微软件助手安装包,需解压安装

  • 烧录工具

瑞芯微开发工具

输入图片说明

  • 烧录镜像

    debian_update.img

  • 烧录前准备

    拿到开发板后,第一次烧录OpenHarmony系统前,要先进行整体擦除后,对系统分区,再烧录镜像

  • 擦除flash

    点击升级固件按钮

    输入图片说明

    选择固件

    输入图片说明

擦除flash前,要先使板子进入烧录模式,方法如下:

板子在烧录OpenHarmony系统前,如果有其他系统(如安卓系统),上电后会显示发现一个ADB设备

输入图片说明

先长按uboot按钮,再按一次reset按钮后松开,等待板子显示“发现一个LOADER设备”,板子进入烧录模式

输入图片说明

点击擦除flash按钮,开始擦除

擦除完成后,界面显示擦除成功

  • 第一次烧录

第一次烧录OpenHarmony系统,要先加载全部镜像

在空白处点击右键,选择导入配置,选择ohos.cfg

输入图片说明

导入配置表后如下图所示

输入图片说明

  • 烧录OpenHarmony镜像

烧录OpenHarmony镜像,只需选中boot、vendor、system、userdata,其他分区不选中

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: RK3399开发板是一款功能强大的开发板,适用于高级用户。下面是使用手册的详细说明: 首先,RK3399开发板是一款基于Rockchip公司自主设计的开发板,搭载了RK3399芯片,支持六核心架构,包括两个Cortex-A72高性能核心和四个Cortex-A53低功耗核心,主频高达1.8GHz,同时还配备了Mali-T860MP4的高性能图像处理单元,可以满足高性能计算和图像处理的需求。 为了方便高级用户使用,RK3399开发板提供了丰富的接口和扩展能力。包括USB 3.0接口、USB 2.0接口、HDMI接口、DisplayPort接口、以太网接口、SD卡槽以及GPIO等接口,用户可以通过这些接口来连接外设设备、外部存储、显示器等,实现更多功能的扩展和应用。 在软件方面,RK3399开发板支持多种操作系统,包括Android、Linux等,并提供了相关的SDK和工具链,方便用户进行开发和调试。用户可以使用C、C++、Java等编程语言进行开发,还可以利用硬件编码解码的能力来实现音视频播放、图像处理等功能。 对于高级用户而言,RK3399开发板提供了丰富的技术支持和资源,用户可以参考开发板的原理图、芯片手册等文档,深入了解RK3399芯片的工作原理和特性,以便更好地进行二次开发和优化。 总之,作为高级用户,使用RK3399开发板可以充分发挥其强大的性能和扩展能力,实现更丰富的功能和应用。同时,得益于丰富的技术支持和资源,高级用户可以充分发挥创造力和想象力,开发出更具实用性和创新性的应用。 ### 回答2: RK3399开发板是一款强大的嵌入式处理器,拥有广泛的应用领域。以下是对RK3399开发板高级用户使用手册的回答。 RK3399开发板高级用户使用手册包含详细的硬件和软件配置信息,以及一些高级功能的使用说明。首先,该手册提供了对开发板的硬件组件的详细介绍,包括处理器、内存、存储、显示接口、传感器和外部接口等。 其次,手册介绍了RK3399开发板的软件配置信息。用户可以找到如何安装和配置操作系统的详细步骤,包括Linux和Android。手册还提供了一些常用工具和驱动程序的安装方法,以及一些高级功能的设置,如网络连接、声音设置和外设的使用。 除此之外,手册还包含了一些开发板的高级功能的使用说明。比如,RK3399开发板支持GPU加速,用户可以了解如何配置和使用GPU进行图形加速。此外,手册还介绍了如何进行开发板的调试和测试,以及如何进行固件的升级。 最后,手册还提供了一些实用的开发工具和示例代码的使用指南。用户可以了解如何使用开发环境进行应用程序的开发和调试,以及如何使用编程接口和库函数来编写应用程序。 总之,RK3399开发板高级用户使用手册是一份详细的参考文档,能够帮助用户更好地了解和使用该开发板的硬件和软件功能,并且提供了一些高级功能的设置和开发指南。 ### 回答3: RK3399开发板是一款高性能的ARM开发板,适用于高级用户进行项目开发和定制。以下是其使用手册的详细内容: 1. 硬件介绍:说明RK3399开发板的硬件架构、接口布局和主要功能,包括处理器、内存、存储等信息,以便用户全面了解开发板的硬件配置。 2. 系统安装:介绍如何从零开始搭建RK3399开发板开发环境,包括系统的烧录和启动,操作系统的安装和配置。 3. 开发环境:详细介绍如何配置开发环境,包括交叉编译工具链的安装和配置,SDK的下载和配置,以及常用开发工具的使用。 4. 应用开发:提供基于RK3399开发板的应用开发指南,包括编写和调试应用程序,使用硬件接口进行输入输出控制,以及使用外部设备进行测试和调试。 5. 驱动开发:介绍如何开发和调试驱动程序,包括设备驱动程序的编写,设备树的配置,以及相关驱动程序的加载和测试。 6. 系统调优:提供系统性能调优的指南,包括如何进行内存管理、调度优化、电源管理和硬件加速等方面的优化,以提高系统的性能和稳定性。 7. 故障排除:列举一些常见的故障和解决方法,包括系统启动故障、应用程序崩溃、硬件接口失效等问题的排查和解决方案。 总之,RK3399开发板高级用户使用手册提供了全面的指南和教程,帮助用户更好地理解和使用开发板实现自己的项目开发和定制需求。无论是应用开发还是驱动开发,用户都能够通过该手册获得良好的指导和支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值