0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【OpenHarmony鴻蒙實(shí)戰(zhàn)】在RK3399開發(fā)板實(shí)現(xiàn)智能門禁人臉識別

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-20 17:38 ? 次閱讀

一. 概述

本樣例是基于RK3399開發(fā)板,使用OpenHarmony3.0-LTS開發(fā)的應(yīng)用。通過定時(shí)獲取攝像頭數(shù)據(jù),實(shí)現(xiàn)人臉識別比對等功能。

1. 應(yīng)用運(yùn)行效果圖:

閘機(jī)預(yù)覽界面

2. 智能閘機(jī)使用示意圖

閘機(jī)使用示意圖

如上圖所示,用戶通過攝像頭區(qū)域時(shí),閘機(jī)應(yīng)用通過獲取攝像頭數(shù)據(jù)捕捉到人臉數(shù)據(jù),進(jìn)行人臉位置區(qū)域、角度亮度及人臉特征計(jì)算和比對,返回識別結(jié)果給用戶。

二. 快速上手

應(yīng)用開發(fā)

1. 硬件環(huán)境準(zhǔn)備

  • 預(yù)裝windows系統(tǒng)的PC機(jī)
  • 揚(yáng)帆RK3399E開發(fā)板
  • 開發(fā)板專用12V電源適配器
  • USB公對公數(shù)據(jù)連接線
  • USB外接攝像頭
  • HDMI顯示器

2. 開發(fā)環(huán)境準(zhǔn)備

3. 功能開發(fā)

  • 搭建預(yù)覽UI頁面

修改index.html文件

< !--系統(tǒng)camera組件-- >
< camera id="CameraId" style="width : {{ previewAreaWidth }} px;
        height : {{ previewAreaHeight }} px;" >< /camera >

添加系統(tǒng)組件camera,寬高根據(jù)屏幕規(guī)格進(jìn)行計(jì)算,注意寬高比例為3:4

  • 實(shí)現(xiàn)人臉識別業(yè)務(wù)功能

修改index.js文件

引入人臉識別庫

import seetaface from '@ohos.napi_seetaface';

在應(yīng)用初始化時(shí)清空已注冊的人臉特征

seetaface.ClearFaceDatabase()

注冊人臉特征,imgPath為注冊圖片路徑,返回值id>=0代表注冊成功

var id = seetaface.RegisterImage(imgPath)

開啟定時(shí)器調(diào)用camera的takePhoto函數(shù)進(jìn)行攝像頭數(shù)據(jù)抓取識別,通過回調(diào)函數(shù)success和fail進(jìn)行成功和失敗處理

camera.takePhoto({
    quality: '',
    success: (res) = > { // 識別成功
        log('LABEL 9527 takePhoto success -- ' + JSON.stringify(res))
        resolve(undefined)
    },
    fail: (err) = > { // 識別失敗,err.errorcode為錯(cuò)誤碼
        log('LABEL 9527 takePhoto fail -- ' + JSON.stringify(err))
        reject(parseInt(err.errorcode))
    }
})

注意:1.由于外接屏幕可能不支持觸摸交互,導(dǎo)致無法手動啟動應(yīng)用,可以使用以下命令啟動

hdc_std shell aa start -d l -a 應(yīng)用包名.MainAbility -b 應(yīng)用包名

2.應(yīng)用覆蓋安裝導(dǎo)致相機(jī)預(yù)覽失敗,需要重啟開發(fā)板

hdc_std shell reboot 或 hdc_std target boot

3.由于人臉識別底層業(yè)務(wù)集成在系統(tǒng)camera組件中,導(dǎo)致camera拍照功能(takePhoto)無法存儲圖片文件,具體業(yè)務(wù)請查看系統(tǒng)底層人臉識別開發(fā)模塊

系統(tǒng)鏡像編譯及燒錄

Linux編譯服務(wù)器基礎(chǔ)環(huán)境準(zhǔn)備

開發(fā)基礎(chǔ)環(huán)境由windows 工作臺和Linux 編譯服務(wù)器組成。windows 工作臺可以通過samba 服務(wù)或ssh 方式訪問Linux編譯服務(wù)器。其中windows 工作臺用來燒錄和代碼編輯,Linux編譯服務(wù)器用來編譯OpenHarmony代碼,為了簡化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。

1 安裝和配置Python
  • 打開Linux終端。
  • 輸入如下[命令],查看python版本號,需要使用python3.7以上版本,否則參考 系統(tǒng)基礎(chǔ)環(huán)境搭建。
    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 ~/
    
  • 設(shè)置環(huán)境變量。

    vim ~/.bashrc
    

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

    export PATH=~/llvm/bin:$PATH
    
  • 使環(huán)境變量生效。

    source ~/.bashrc
    
1. < font size="4" >source ~/.bashrc< /font >
3 安裝hc-gen
  • 打開Linux編譯服務(wù)器終端。

  • 下載hc-gen工具。點(diǎn)擊下載地址下載。

  • 解壓hc-gen安裝包到Linux服務(wù)器~/hc-gen路徑下。

    tar -xvf hc-gen-0.65-linux.tar -C
    
  • 設(shè)置環(huán)境變量。

    vim ~/.bashrc
    

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

    export PATH=~/hc-gen:$PATH
    
  • 使環(huán)境變量生效。

    source ~/.bashrc
    
4 安裝編譯依賴基礎(chǔ)軟件(僅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 源碼下載&&編譯準(zhǔn)備

環(huán)境搭完后,就該準(zhǔn)備代碼了。

  • 下載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 編譯結(jié)果

編譯產(chǎn)生boot.img在目錄 /out/KERNEL_OBJ/kernel/src_tmp/linux-4.19 中

編譯產(chǎn)生vender.img、system.img 和userdata.img 在目錄out/rk3399/packages/phone/images 中

image.png

燒錄

  • 系統(tǒng)環(huán)境

window7/windows10

  • 驅(qū)動安裝包
    瑞芯微軟件助手安裝包,需解壓安裝
  • 燒錄工具

瑞芯微開發(fā)工具

輸入圖片說明

  • 燒錄鏡像
    debian_update.img
  • 燒錄前準(zhǔn)備
    拿到開發(fā)板后,第一次燒錄OpenHarmony系統(tǒng)前,要先進(jìn)行整體擦除后,對系統(tǒng)分區(qū),再燒錄鏡像
  • 擦除flash
    點(diǎn)擊升級固件按鈕
    輸入圖片說明
    選擇固件
    輸入圖片說明

擦除flash前,要先使板子進(jìn)入燒錄模式,方法如下:

板子在燒錄OpenHarmony系統(tǒng)前,如果有其他系統(tǒng)(如安卓系統(tǒng)),上電后會顯示發(fā)現(xiàn)一個(gè)ADB設(shè)備

輸入圖片說明

先長按uboot按鈕,再按一次reset按鈕后松開,等待板子顯示“發(fā)現(xiàn)一個(gè)LOADER設(shè)備”,板子進(jìn)入燒錄模式

輸入圖片說明

點(diǎn)擊擦除flash按鈕,開始擦除

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

  • 第一次燒錄

第一次燒錄OpenHarmony系統(tǒng),要先加載全部鏡像

在空白處點(diǎn)擊右鍵,選擇導(dǎo)入配置,選擇ohos.cfg

輸入圖片說明

導(dǎo)入配置表后如下圖所示

輸入圖片說明

  • 燒錄OpenHarmony鏡像

燒錄OpenHarmony鏡像,只需選中boot、vendor、system、userdata,其他分區(qū)不選中

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4771

    瀏覽量

    96159
  • 人臉識別
    +關(guān)注

    關(guān)注

    76

    文章

    3998

    瀏覽量

    81352
  • 燒錄
    +關(guān)注

    關(guān)注

    8

    文章

    246

    瀏覽量

    35400
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42481
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3548

    瀏覽量

    15735
收藏 人收藏

    評論

    相關(guān)推薦

    Firefly-RK3399 人臉識別 SDK 發(fā)布

    ` 本帖最后由 Developer_x 于 2017-6-19 11:14 編輯 利用Firefly-RK3399核心板與底板的組合,搭配上Firefly人臉識別SDK,我們可以實(shí)現(xiàn)
    發(fā)表于 06-13 14:20

    人臉識別是用rk3288還是rk3399主板好?

    `人臉識別主板,是用rk3288還是rk3399主板好???`
    發(fā)表于 04-23 15:03

    如何實(shí)現(xiàn)基于ncnn的RK3399上的mtcnn人臉檢測?

    如何在RK3399上燒錄安卓系統(tǒng)?如何實(shí)現(xiàn)基于ncnn的RK3399上的mtcnn人臉檢測?
    發(fā)表于 03-04 07:29

    如何對RK3399的HDMI進(jìn)行人臉識別

    如何對RK3399的HDMI進(jìn)行人臉識別呢?如何對識別結(jié)果進(jìn)行模糊化處理呢?
    發(fā)表于 03-07 12:48

    求一種Firefly RK3399平臺上搭建人臉識別SDK開發(fā)環(huán)境的方案

    1、如何在Firefly RK3399平臺利用人臉識別SDK搭建實(shí)時(shí)人臉比對DEMO按要求搭建人臉識別
    發(fā)表于 06-01 16:13

    OpenHarmony樣例】基于RK3399開發(fā)板開發(fā)智能門禁人臉識別(JS)樣例

    一. 概述本樣例是基于RK3399開發(fā)板,使用OpenHarmony3.0-LTS開發(fā)的應(yīng)用。通過定時(shí)獲取攝像頭數(shù)據(jù),實(shí)現(xiàn)
    發(fā)表于 08-24 17:35

    RK3399-firefly開發(fā)板原理圖

    RK3399-firefly開發(fā)板原理圖
    發(fā)表于 09-16 09:35 ?292次下載

    Firefly-RK3399開發(fā)板介紹

    Firefly-RK3399有靈活的啟動方式。一般情況下,除非硬件損壞,F(xiàn)irefly-RK3399開發(fā)板是不會變磚的。
    的頭像 發(fā)表于 11-23 11:30 ?3263次閱讀
    Firefly-<b class='flag-5'>RK3399</b><b class='flag-5'>開發(fā)板</b>介紹

    簡單介紹RK3399開發(fā)板、RK3399主板的相關(guān)參數(shù)

    用過RK3288主板的朋友都知道,RK3399開發(fā)板延續(xù)了RK3288的linux系統(tǒng)開源!作為Rockchip旗艦級芯片,RK3399具有
    發(fā)表于 12-09 14:14 ?7134次閱讀

    淺談RK3399開發(fā)板

    聯(lián)智通達(dá)3399開發(fā)板基于聯(lián)智通達(dá)的RK3399處理器設(shè)計(jì),Rockchip RK3399是聯(lián)智通達(dá)推出的一款低功耗、高性能的應(yīng)用處理器芯片,該芯片基于Big.Little架構(gòu),即具有
    發(fā)表于 03-23 09:46 ?2010次閱讀

    RK3399富設(shè)備開發(fā)板的亮點(diǎn)有哪些

    首款搭載OpenHarmony 3.0富設(shè)備開發(fā)板,基于瑞芯微RK3399的L2級別開發(fā)板,可實(shí)現(xiàn)LCD顯示、觸摸、多媒體、上網(wǎng)等基本特性。
    的頭像 發(fā)表于 03-25 09:10 ?1300次閱讀

    RK3399開發(fā)板Ubuntu系統(tǒng)下實(shí)現(xiàn)雙屏顯示及異觸

    本文以飛凌嵌入式RK3399開發(fā)板為基礎(chǔ)講解,主要介紹了Ubuntu系統(tǒng)下雙屏顯示及異觸,其它RK3399平臺請參考使用!
    發(fā)表于 03-30 14:01 ?1472次閱讀

    什么是RK3399開發(fā)板基礎(chǔ)配置

    FireFly-RK3399自帶的kernel默認(rèn)是沒有開啟NFS服務(wù)的。因此,想要掛載到虛擬機(jī)上,必須在開發(fā)板上安裝NFS服務(wù)。而FireFly-RK3399默認(rèn)是可以直接連接無線網(wǎng)絡(luò)的,因此,就省去了配置PC網(wǎng)卡的麻煩。
    的頭像 發(fā)表于 02-17 16:10 ?1488次閱讀

    瑞迅科技RK3399 3D人臉識別系統(tǒng)應(yīng)用

    瑞迅科技RK3399 3D人臉識別系統(tǒng)應(yīng)用 目前基于RK3399的三維人臉識別產(chǎn)品具有高
    的頭像 發(fā)表于 01-12 16:49 ?782次閱讀
    瑞迅科技<b class='flag-5'>RK3399</b> 3D<b class='flag-5'>人臉</b><b class='flag-5'>識別</b>系統(tǒng)應(yīng)用

    RK3399 BOX開發(fā)板用戶指南

    電子發(fā)燒友網(wǎng)站提供《RK3399 BOX開發(fā)板用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-15 15:37 ?1次下載
    <b class='flag-5'>RK3399</b> BOX<b class='flag-5'>開發(fā)板</b>用戶指南