<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Hi3516開發板的智能相機設計方案

電子發燒友開源社區 ? 來源:HarmonyOS官方合作社區 ? 作者:HarmonyOS官方合作社 ? 2022-03-25 09:10 ? 次閱讀

1

概述

本Demo是基于Hi3516開發板,使用開源OpenHarmony3.0-LTS開發的應用。通過獲取攝像頭數據,實現預覽拍照以及路視頻等功能。并且通過后臺AI服務識別喚醒詞來進行語音控制拍照及錄視頻。

1. 應用運行效果圖:

此為相機的預覽界面。

2. 智能相機使用示意圖

7ed1e128-ab84-11ec-aa7f-dac502259ad0.png

如上圖所示,用戶對著相機說對應的喚醒詞,相機收集到對應的音頻,經過AI服務識別對應的文字,最后傳到相機進行對應的操作。

2

快速上手

1. 開發環境準備

硬件準備

  1. 預裝windows系統的PC機

  2. Hi3516DV300 IoT Camera開發板

  3. USB轉串口線、網線(Windows工作臺通過USB轉串口線、網線與Hi3516DV300 開發板連接)

Linux編譯服務器基礎環境準備

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

安裝和配置Python

  • 打開Linux終端。

  • 輸入如下命令,查看python版本號,需要使用python3.7以上版本,否則參考 系統基礎環境搭建。

python3 --version

左右滑動查看全部內容

  • 安裝并升級Python包管理工具(pip3)

sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip

左右滑動查看全部內容

安裝LLVM

  • 下載LLVM工具。

  • 解壓LLVM安裝包至~/llvm路徑下。

tar -zxvf llvm.tar -C ~/

左右滑動查看全部內容

  • 設置環境變量

vim ~/.bashrc

左右滑動查看全部內容

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

export PATH=~/llvm/bin:$PATH

左右滑動查看全部內容

  • 使環境變量生效

source ~/.bashrc

左右滑動查看全部內容

安裝hb

運行如下命令安裝hb。

python3 -m pip install --user ohos-build

左右滑動查看全部內容

設置環境變量

vim ~/.bashrc

左右滑動查看全部內容

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

export PATH=~/.local/bin:$PATH

左右滑動查看全部內容

執行如下命令更新環境變量

source ~/.bashrc

左右滑動查看全部內容

執行"hb -h",有打印以下信息即表示安裝成功

usage: hb
OHOS build system
positional arguments: {build,set,env,clean}  build        Build source code  set         OHOS build settings  env         Show OHOS build env  clean        Clean output
optional arguments: -h, --help      show this help message and exit

左右滑動查看全部內容

Hi3516開發環境準備

將Linux shell改為bash,查看shell是否為bash,在終端運行如下命令

ls -l /bin/sh

左右滑動查看全部內容

如果顯示為“/bin/sh -> bash”則為正常,否則請按以下方式修改:

sudo rm -rf /bin/shsudo ln -s /bin/bash /bin/sh

左右滑動查看全部內容

安裝編譯依賴基礎軟件(僅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

左右滑動查看全部內容

安裝文件打包工具

打開Linux編譯服務器終端。運行如下命令,安裝dosfstools。

sudo apt-get install dosfstools

左右滑動查看全部內容

運行如下命令,安裝mtool

sudo apt-get install mtools

左右滑動查看全部內容

運行如下命令,安裝mtd-utils

sudo apt-get install mtd-utils

左右滑動查看全部內容

安裝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

左右滑動查看全部內容

安裝Java 虛擬機環境

  • 打開Linux編譯服務器終端

  • 安裝Java運行時環境(JRE)

sudo apt-get install default-jre

左右滑動查看全部內容

  • 安裝Java sdk開發工具包

sudo apt-get install default-jdk

左右滑動查看全部內容

PS:

java虛擬機是應用簽名打包時才會用到的,SDK中默認的3個系統應用是需要簽名打包,所以需要安裝java虛擬機,沒有安裝的話,應用簽名打包時會報如下錯誤:

7ee58372-ab84-11ec-aa7f-dac502259ad0.png

如果不涉及到應用的簽名打包,可以不用安裝此環境。

源碼下載&&編譯準備

環境搭完后,就該準備代碼了。

OpenHarmony源碼下載方法多種多樣,本文重點介紹linux + repo方式下載。

下載repo

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

左右滑動查看全部內容

下載OpenHarmony源碼

#特別注意:請下載OpenHarmony 3.0 LTS 版本,后續會更新支持OpenHarmony其他版本repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.0-LTS --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'

左右滑動查看全部內容

下載智能相機代碼

具體倉庫地址: knowledge_demo_smart_home

通過git命令下載(方便后期代碼上傳管理,建議先將倉庫fork到自己賬號目錄,然后再下載):

git clone git@gitee.com:xxxxxxx/knowledge_demo_smart_home.git
其中xxxxxxx為fork后相關賬號名字。

左右滑動查看全部內容

代碼拷貝

a. 在OpenHarmony的vendor目錄下新建一個team_x的目錄:

mkdir vendor/team_x

左右滑動查看全部內容

7f02f038-ab84-11ec-aa7f-dac502259ad0.png

b. 將下載的智能中控屏代碼的代碼拷貝到新建的team_x下面:

cp -rf ../knowledge_demo_smart_home/dev/team_x/smart_camera/ vendor/team_x/

左右滑動查看全部內容

7f10a610-ab84-11ec-aa7f-dac502259ad0.png

7f29262c-ab84-11ec-aa7f-dac502259ad0.png

到此,代碼就準備完成,可以進行編譯了。

2. 代碼編譯

代碼目錄結構

在編譯代碼前,可以先了解一下代碼目錄結構,我們的demo主要包含2個部分,一個是相機(demo_cameraApp),負責相機相關功能,其次就是AI語音識別服務(demo_keyword_spotting),否則語音是采集以及識別。

demo_cameraApp 代碼目錄結構:

|—— BUILD.gn       // 編譯腳本|—— resources       // 資源文件|—— config.json       // 安裝包所需要的json文件|—— include| |—— smart_camera_ability.h   // 入口類的頭文件| |—— smart_camera_ability_slice.h // 相機頁面類定義的頭文件| |—— camera_manager.h    // 相機功能封裝類的頭文件| |—— event_listener.h    // 監聽事件類的頭文件| |—— server_socket.h     // socket 服務相關接口的頭文件| |__ ui_config.h      // 相機UI相關宏定義的頭文件||__ src |—— smart_camera_ability.cpp |—— smart_camera_ability_slice.cpp // 相機頁面相關實現 |—— camera_manager.cpp    // 相機功能封裝類的實現 |__ server_socket.c     // socket 服務相關接口的實現,主要用來接收ai識別后的結果

左右滑動查看全部內容

demo_keyword_spotting 代碼目錄結構:

|—— BUILD.gn       // 編譯腳本|—— kws_app.cpp       // 應用入口|—— kws_manager.cpp      // 語音識別管理相關實現|—— kws_manager.h      // 語音識別管理頭文件|—— audio_cache.cpp      // 語音采集相關實現|—— audio_cache.h      // 語音采集頭文件|—— client_socket.c      // socket 服務相關接口的實現,主要用來發送識別后的結果|__ client_socket.h      // socket 服務相關接口的頭文件

左右滑動查看全部內容

特別說明:AI語音識別服務是一個后臺服務應用,因此我們需要通過設置讓它自啟動,配置文件如下

vendor/team_x/smart_camera/init_configs/init_liteos_a_3516dv300.cfg

左右滑動查看全部內容

具體修改步驟:

  • 在services服務模塊最后添加以下代碼

"services" : [ . . . {  "name" : "kws_app",  "path" : ["/bin/smart_kws_app"],  "uid" : 2,  "gid" : 2,  "once" : 0,  "importance" : 0,  "caps" : [] }]

左右滑動查看全部內容

在jobs模塊中找到"name" : "post-init",在"cmd"的最后加上”start kws_app“

 { "name" : "post-init", "cmds" : [  .  .  .  "start kws_app" ]}

左右滑動查看全部內容

代碼編譯

源碼和環境準備完后,接下來就是編譯,編譯涉及的指令有2條,hb set和hb build -f 。

hb set -- 設置工程目錄和選擇對應的目標,通過鍵盤的上下鍵來選擇。

7f3d31d0-ab84-11ec-aa7f-dac502259ad0.png

hb build -f -- 開始全量編譯。(hb build 為增量編譯)

7f5e53d8-ab84-11ec-aa7f-dac502259ad0.png

編譯完后會生成對應整個系統固件(u-boot-hi3516dv300.bin,OHOS_Image.bin,rootfs_vfat.img, userfs_vfat.img)以及我們應用對應的so文件。

其中u-boot-hi3516dv300.bin在device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/:

7f85b40a-ab84-11ec-aa7f-dac502259ad0.png

OHOS_Image.bin,rootfs_vfat.img,以及userfs_vfat.img在out目錄下:

7f9d29d2-ab84-11ec-aa7f-dac502259ad0.png

對應的libsmart_camera.so在out/hispark_taurus/smart_camera/usr/lib/ 目錄下:

7fb2c828-ab84-11ec-aa7f-dac502259ad0.png

AI服務可執行程序在out/hispark_taurus/smart_camera/bin/ 目錄下:

7fc4c4ba-ab84-11ec-aa7f-dac502259ad0.png

以下表格為所有生成的固件及對應的位置:

7fd4a4e8-ab84-11ec-aa7f-dac502259ad0.png

3. 固件燒錄

燒錄工具選擇

固件編譯完后,是需要燒錄到單板的。這里我們用的是HiTool工具燒錄的。(HiTool工具下載地址:HiHope官網)

燒錄步驟

打開HiTool工具,如下圖:

7feb7d1c-ab84-11ec-aa7f-dac502259ad0.png

燒寫步驟按照圖中標注即可。點擊燒入后,燒錄工具會提示重新上電,此時重啟單板即可。

80022eea-ab84-11ec-aa7f-dac502259ad0.png

燒錄結果

燒錄成功后,會彈出如下提示,單板也會自行啟動。

8015c540-ab84-11ec-aa7f-dac502259ad0.png

燒錄失敗的話需要根據失敗提示查找一下原因。一般情況需要檢查一下串口是否連接正常,網線是否正確插入,IP是否選擇正常等。

查看IP的方法:當單板上電后并正確插入網線后,點擊工具上刷新按鈕,此時單板IP會自動添加到服務器IP列表中。

802bbd1e-ab84-11ec-aa7f-dac502259ad0.png

IDE燒錄

另外,OpenHarmony官網有提供一種通過IDE來燒錄的,具體燒錄步驟請參考文檔:3516上快速運行Hello OHOS。

特別說明

如果是第一次燒錄程序的話,單板在啟動的時候需要設置bootargs,否則不能正常啟動。單板第一次啟動會停在hisilicon界面:

804c11ae-ab84-11ec-aa7f-dac502259ad0.png

我們需要輸入以下指令:

setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";saveenvreset

左右滑動查看全部內容

8063d730-ab84-11ec-aa7f-dac502259ad0.png

到此,燒錄已經完成,設備也正常啟動。

4. 應用安裝

打包應用

本demo是以安裝包的形式安裝到系統中啟動運行的。因此,在安裝應用前,需要將應用打包成安裝包。

將編譯好的libsmart_camera.so文件與工程目錄下的res以及config.json文件通過壓縮打包成zip格式(三個文件直接壓縮,不能壓縮文件夾),并將后綴名改為hap(smart_camera.hap)。

807933b4-ab84-11ec-aa7f-dac502259ad0.png

掛載NFS

應用打包后,我們是通過NFS方式將單板掛載到本地,通過相關的指令來安裝的,NFS掛載方法參照社區文章:Hi3516通過NFS掛載方式與Windows共享文件。

8095248e-ab84-11ec-aa7f-dac502259ad0.png

安裝

通過nfs是單板連接到本地電腦后,我們可以通過bm安裝指令進行安裝。bm 安裝工具在系統編譯完后會自動生成,路徑在:

out/hispark_taurus/smart_camera/dev_tools/bin/

左右滑動查看全部內容

80a5fc96-ab84-11ec-aa7f-dac502259ad0.png

由于bm默認安裝的應用為已經簽名的應用,所以我們在安裝前需要先將簽名去掉。

 bm set -s disable    // 去簽名 bm install -p filename   // 安裝應用filename, filename需要指定路徑

左右滑動查看全部內容

80b72ca0-ab84-11ec-aa7f-dac502259ad0.png

安裝完后桌面會顯示對應應用的ICON,直接點擊ICON即可以啟動相機的應用。

5. 使用指南

80d98e58-ab84-11ec-aa7f-dac502259ad0.gif

由于本demo涉及到攝像頭的讀寫,故需要申請了相關的權限。在使用本demo前需要在setting中打開對應的權限。具體操作:

  • 點擊 setting-->應用-->smart_camera,然后將所有權限打開。

  • 本demo帶有相機的所有功能,包含預覽,拍照,錄像以及跳轉到圖庫查看對應拍的圖片和錄制的視頻。

  • 本demo最主要的功能是語音控制相機,需要對準板子上的mic風說喚醒詞,目前支持2個喚醒詞(Hi,xiaowen以及Nihao,wenwen),分別對應控制相機的拍照以及錄像功能。

原文標題:OpenHarmony開發樣例:智能相機

文章出處:【微信公眾號:HarmonyOS官方合作社區】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 智能相機
    +關注

    關注

    0

    文章

    73

    瀏覽量

    12581
  • 開發板
    +關注

    關注

    25

    文章

    4429

    瀏覽量

    93991
  • OpenHarmony
    +關注

    關注

    23

    文章

    3284

    瀏覽量

    15159

原文標題:OpenHarmony開發樣例:智能相機

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Hi3516開發板介紹

    Hi3516DV300在低碼率、高畫質、智能處理和分析、低功耗等方面引領行業水平。圖 1 Hi3516單板正面外觀圖開發板規格表 1 Hi3516
    發表于 09-21 17:26

    【燒錄指引】Hi3861、Hi3516、Hi3518 新手指引

    /jishu_1991413_1_1.html Hi3516開發板環境搭建:https://bbs.elecfans.com/jishu_1991415_1_1.html開發Hi3516
    發表于 09-22 19:03

    【HiSpark系列】 Hi3861、Hi3516、Hi3518 新手指引

    本帖最后由 l_xy 于 2020-10-18 18:41 編輯 Hi3861開發板介紹:https://bbs.elecfans.com
    發表于 09-23 11:06

    Hi3861、Hi3516、Hi3518 新手指引

    一、Hi3861 WiFi-IoTHi3861開發板介紹Hi3861開發板環境搭建Hi3861開發板
    發表于 11-03 22:33

    【HarmonyOS HiSpark AI Camera試用連載 】Hi3516開發板燒錄方法

    一、燒錄說明 本文記錄的是基于Hi3516芯片的HarmonyOS AI Camera開發板燒錄方法?;?b class='flag-5'>Hi3516開發板可采用海思自研的燒錄工具Hitool。
    發表于 01-30 23:22

    請問在海思Hi3516開發板上能跑鴻蒙liteos嗎

    請問在海思Hi3516開發板上能跑鴻蒙liteos嗎
    發表于 03-02 15:18

    Hi3516開發板介紹

    ,使得Hi3516DV300在低碼率、高畫質、智能處理和分析、低功耗等方面引領行業水平。圖 1Hi3516單板正面外觀圖開發板規格表 1Hi3516
    發表于 08-19 11:23

    Hi3516開發板環境搭建

    連線圖軟件要求 須知:本節描述安裝包方式搭建編譯環境的操作步驟。如果是Docker方式安裝編譯環境,請跳過此章節以及下述安裝Linux服務器工具章節。Hi3516開發板對Linux服務器通用環境配置
    發表于 08-19 11:36

    【OpenHarmony樣例】基于Hi3516開發板開發智能油煙機

    本Demo是基于Hi3516開發板,使用開源OpenHarmony開發的應用。本應用主要功能有:?1)可以搜索本地指定目錄的圖片和視頻文件,并可進行點擊播放。?2)可以通過wifi接收來自手機的美食
    發表于 03-21 15:59

    【OpenHarmony開發樣例】基于Hi3516開發板開發智能貓眼

    一 概述本Demo是基于Hi3516開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3516開發板中攝像頭獲取
    發表于 03-25 16:31

    【鴻蒙系統學習筆記】Hi3516開發板燒錄總結

    文章轉載自:liangkz上周在研究Hi3861平臺的軟總線組件,周末的時候,購買的Hi3516開發板到貨,就著手研究了一下Hi3516開發板
    發表于 04-13 11:11

    【OpenHarmony教程】完成Hi3516開發板的燒錄

    。點擊Open打開工程或源碼。燒錄完成源碼導入后,通過以下步驟進行燒錄:請連接好電腦和待燒錄開發板,需要連接USB口和串口,具體可參考Hi3516DV300開發板介紹。根據Hi3516
    發表于 07-27 15:33

    海思HI3516高清IPCAM設計原理圖免費下載

    本文檔的主要內容詳細介紹的是海思HI3516高清IPCAM設計原理圖免費下載。
    發表于 02-12 08:00 ?159次下載
    海思<b class='flag-5'>HI3516</b>高清IPCAM設計原理圖免費下載

    基于Hi3516開發板智能貓眼設計

    本Demo是基于Hi3516開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用,達到將Hi3516開發板中攝像頭獲取的數據通
    的頭像 發表于 03-30 10:30 ?2546次閱讀

    OpenHarmony鴻蒙南向開發案例:【智能貓眼(基于3516開發板)】

    基于Hi3516開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3516開發板中攝像頭獲取的數據通過RTSP協
    的頭像 發表于 04-19 22:01 ?36次閱讀
    OpenHarmony鴻蒙南向<b class='flag-5'>開發</b>案例:【<b class='flag-5'>智能</b>貓眼(基于<b class='flag-5'>3516</b><b class='flag-5'>開發板</b>)】
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>