谷动谷力

 找回密码
 立即注册
查看: 1801|回复: 0
打印 上一主题 下一主题
收起左侧

【OpenHarmony】基于RK3399开发板开发的智能门禁人脸识别(JS)...

[复制链接]
跳转到指定楼层
楼主
发表于 2022-8-25 23:18:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【OpenHarmony】基于RK3399开发板开发的智能门禁人脸识别(JS)样例


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

1. 应用运行效果图:


2. 智能闸机使用示意图


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

二. 快速上手

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


2. 开发环境准备
  • 下载DevEco Studio 3.0 Beta1及以上版本
  • 配置OpenHarmonySDK
  • 创建OpenHarmony工程
  • 配置OpenHarmony应用签名信息
  • 安装运行OpenHarmony应用


3. 功能开发
  • 搭建预览UI页面

修改index.html文件
<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)无法存储图片文件,具体业务请查看系统底层人脸识别开发模块
./sdcard/dev_tools/bin/bm set -s disable
(左右移动查看全部内容)

系统镜像编译及烧录
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/binPATH
(左右移动查看全部内容)

  • 使环境变量生效。


source ~/.bashrc
(左右移动查看全部内容)

<font size="4">source ~/.bashrc</font>
(左右移动查看全部内容)

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-genPATH
(左右移动查看全部内容)

  • 使环境变量生效。


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

chmod a+x /usr/local/bin/repo
(左右移动查看全部内容)

  • 下载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 中

烧录
  • 系统环境:window7/windows10
  • 驱动安装包:瑞芯微软件助手安装包,需解压安装
  • 烧录工具:瑞芯微开发工具



  • 烧录镜像:debian_update.img
  • 烧录前准备:拿到开发板后,第一次烧录OpenHarmony系统前,要先进行整体擦除后,对系统分区,再烧录镜像
  • 擦除flash:点击升级固件按钮


选择固件


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

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


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


点击擦除flash按钮,开始擦除
擦除完成后,界面显示擦除成功

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

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


导入配置表后如下图所示


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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-12-28 00:11 , Processed in 0.097004 second(s), 44 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表