一. 概述
本樣例是基于RK3399開發(fā)板,使用OpenHarmony3.0-LTS開發(fā)的應(yīng)用。通過定時(shí)獲取攝像頭數(shù)據(jù),實(shí)現(xiàn)人臉識(shí)別比對(duì)等功能。
1. 應(yīng)用運(yùn)行效果圖:
2. 智能閘機(jī)使用示意圖
如上圖所示,用戶通過攝像頭區(qū)域時(shí),閘機(jī)應(yīng)用通過獲取攝像頭數(shù)據(jù)捕捉到人臉數(shù)據(jù),進(jìn)行人臉位置區(qū)域、角度亮度及人臉特征計(jì)算和比對(duì),返回識(shí)別結(jié)果給用戶。
二. 快速上手
應(yīng)用開發(fā)
1. 硬件環(huán)境準(zhǔn)備
- 預(yù)裝windows系統(tǒng)的PC機(jī)
- 揚(yáng)帆RK3399E開發(fā)板
- 開發(fā)板專用12V電源適配器
- USB公對(duì)公數(shù)據(jù)連接線
- USB外接攝像頭
- HDMI顯示器
2. 開發(fā)環(huán)境準(zhǔn)備
3. 功能開發(fā)
- 搭建預(yù)覽UI頁(yè)面
修改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)人臉識(shí)別業(yè)務(wù)功能
修改index.js文件
引入人臉識(shí)別庫(kù)
import seetaface from '@ohos.napi_seetaface';
在應(yīng)用初始化時(shí)清空已注冊(cè)的人臉特征
seetaface.ClearFaceDatabase()
注冊(cè)人臉特征,imgPath為注冊(cè)圖片路徑,返回值id>=0代表注冊(cè)成功
var id = seetaface.RegisterImage(imgPath)
開啟定時(shí)器調(diào)用camera的takePhoto函數(shù)進(jìn)行攝像頭數(shù)據(jù)抓取識(shí)別,通過回調(diào)函數(shù)success和fail進(jìn)行成功和失敗處理
camera.takePhoto({
quality: '',
success: (res) = > { // 識(shí)別成功
log('LABEL 9527 takePhoto success -- ' + JSON.stringify(res))
resolve(undefined)
},
fail: (err) = > { // 識(shí)別失敗,err.errorcode為錯(cuò)誤碼
log('LABEL 9527 takePhoto fail -- ' + JSON.stringify(err))
reject(parseInt(err.errorcode))
}
})
注意:1.由于外接屏幕可能不支持觸摸交互,導(dǎo)致無法手動(dòng)啟動(dòng)應(yīng)用,可以使用以下命令啟動(dò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.由于人臉識(shí)別底層業(yè)務(wù)集成在系統(tǒng)camera組件中,導(dǎo)致camera拍照功能(takePhoto)無法存儲(chǔ)圖片文件,具體業(yè)務(wù)請(qǐng)查看系統(tǒng)底層人臉識(shí)別開發(fā)模塊
系統(tǒng)鏡像編譯及燒錄
Linux編譯服務(wù)器基礎(chǔ)環(huán)境準(zhǔn)備
開發(fā)基礎(chǔ)環(huán)境由windows 工作臺(tái)和Linux 編譯服務(wù)器組成。windows 工作臺(tái)可以通過samba 服務(wù)或ssh 方式訪問Linux編譯服務(wù)器。其中windows 工作臺(tái)用來燒錄和代碼編輯,Linux編譯服務(wù)器用來編譯OpenHarmony代碼,為了簡(jiǎn)化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。
1 安裝和配置Python
- 打開Linux終端。
- 輸入如下[命令],查看python版本號(hào),需要使用python3.7以上版本,否則參考 系統(tǒng)基礎(chǔ)環(huán)境搭建。
python3 --version;
- 安裝并升級(jí)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源碼和編譯
- 代碼下載
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
- 打patch
bash device/rockchip/product/patch.sh
- 編譯
./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 中
燒錄
- 系統(tǒng)環(huán)境
window7/windows10
- 驅(qū)動(dòng)安裝包
瑞芯微軟件助手安裝包,需解壓安裝 - 燒錄工具
瑞芯微開發(fā)工具
- 燒錄鏡像
debian_update.img - 燒錄前準(zhǔn)備
拿到開發(fā)板后,第一次燒錄OpenHarmony系統(tǒng)前,要先進(jìn)行整體擦除后,對(duì)系統(tǒng)分區(qū),再燒錄鏡像 - 擦除flash
點(diǎn)擊升級(jí)固件按鈕
選擇固件
擦除flash前,要先使板子進(jìn)入燒錄模式,方法如下:
板子在燒錄OpenHarmony系統(tǒng)前,如果有其他系統(tǒng)(如安卓系統(tǒng)),上電后會(huì)顯示發(fā)現(xiàn)一個(gè)ADB設(shè)備
先長(zhǎng)按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ū)不選中
審核編輯 黃宇
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5389瀏覽量
100890 -
人臉識(shí)別
+關(guān)注
關(guān)注
76文章
4054瀏覽量
83372 -
燒錄
+關(guān)注
關(guān)注
8文章
282瀏覽量
36072 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2469瀏覽量
43642 -
OpenHarmony
+關(guān)注
關(guān)注
26文章
3804瀏覽量
17854
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Firefly-RK3399 人臉識(shí)別 SDK 發(fā)布
如何實(shí)現(xiàn)基于ncnn的RK3399上的mtcnn人臉檢測(cè)?
如何對(duì)RK3399的HDMI進(jìn)行人臉識(shí)別呢
求一種在Firefly RK3399平臺(tái)上搭建人臉識(shí)別SDK開發(fā)環(huán)境的方案
【OpenHarmony樣例】基于RK3399開發(fā)板開發(fā)的智能門禁人臉識(shí)別(JS)樣例
Firefly-RK3399開發(fā)板介紹

簡(jiǎn)單介紹RK3399開發(fā)板、RK3399主板的相關(guān)參數(shù)
淺談RK3399開發(fā)板
RK3399富設(shè)備開發(fā)板的亮點(diǎn)有哪些
RK3399開發(fā)板在Ubuntu系統(tǒng)下實(shí)現(xiàn)雙屏顯示及異觸
什么是RK3399開發(fā)板基礎(chǔ)配置
瑞迅科技RK3399 3D人臉識(shí)別系統(tǒng)應(yīng)用

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

評(píng)論