01----嵌入式AI鸿蒙系统智能相机操作之优秀

简介: 01----嵌入式AI鸿蒙系统智能相机操作之优秀

目录


 1.1【实验目的】


1.2【实验原理】


1.3【实验步骤】


1.4 【附件】


 1.1【实验目的】

  1. 利用OpenHarmony AI Camera 基于Hi3516开发板,使用开源OpenHarmony3.0-LTS开发的应用。通过获取摄像头数据,实现预览拍照以及录视频功能。并且通过后台AI服务识别唤醒词来进行语音控制拍照及录视频。

 

1.2【实验原理】

8d1caa5e93a8417bae7bcdaf90e5a3e7.png

注意:用户对着相机说相应的唤醒词,相机收集到对应的音频,经过AI服务识别对应的文字,最后传到相机进行对应的操作。

1.3【实验步骤】

一、程序设计思路


硬件准备:


    第一个:预装windows系统的PC机。


    第二个:Hi3516DV300 IOT Camera开发板


    第三个:USB转串口线、网线(Windows工作台通过USB转串口线  )


二、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 -y


               sudo pip3 install  --upgrade  pip


五、安装LLVM


     第一个:下载LLVN工具。


     第二个:解压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 andexit

七、Hi3516开发环境准备


    第一个:将Linux shell改为bash,查看shell是否为bash,在终端运行如下命令


          命令:ls -l /bin/sh


    第二个:如果显示为/bin/sh -> bash则为正常,否则请按以下方式修改:


          命令:sudo rm -rf /bin/sh


          命令:sudo 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运行时环境


           命令:sudo apt-get install default-jre


    第三个:安装java sdk开发工具包


           命令:sudo apt-get install default-jdk


操作实现步骤:


PS:


java虚拟机是应用签名打包时才会用到的,SDK中默认的3个系统应用是需要签名打包,所以需要安装java虚拟机,没有安装的话,应用签名打包时会报如下错误:


f6e86b581471446385be6d34c453e7f5.png

第一个:源码下载与编译准备

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

OpenHarmony源码下载方法多种多样,本文重点介绍linux + repo方式下载。

下载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源码


#特别注意:请下载OpenHarmony 3.0 LTS 版本,后续会更新支持OpenHarmony其他版本

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.0-LTS --no-repo-verify

repo sync -c

repo forall -c 'git lfs pull'

十一:下载智能相机代码


第一个:具体仓库地址


   通过git命令下载:命令:git clone git@gitee.com:xxxxxxx/knowledge_demo_smart_home.git


第二个:代码复制


     命令:mkdir vendor/team_x


61808a68fea8449692b2025c09f5e8bc.png

第三个:将下载的智能中控屏代码的代码拷贝到新建的team_x下面:

命令:cp -rf ../knowledge_demo_smart_home/dev/team_x/smart_camera/ vendor/team_x/

50de376fc2e74285a944e4819135ba0c.png

874eb372e7dc43599f2b9bcc31732fb2.png

至此为止,代码准备完成,可以进行编译了。


十二:鸿蒙代码编译


第一个:代码目录结构


    在编译代码前,可以先了解一下代码目录结构,我们的demo主要包含2个部分,一个是相机(demo_cameraApp),负责相机相关功能,其次就是AI语音识别服务(demo_keyword_spotting),否则语音是采集以及识别。


    demo_cameraApp 代码目录结构:

f80779fa542f45e8857335aadc28cd8b.png

demo_keyword_spotting 代码目录结构:

e665e3ba651b466281f3bc260ab721ee.png

特别说明:AI语音识别服务是一个后台服务应用,因此我们需要通过设置让它自启动,配置文件如下


vendor/team_x/smart_camera/init_configs/init_liteos_a_3516dv300.cfg


第一个:具体修改步骤:


    1、在services服务模块最后添加以下代码


d075d9435a3f4014bd57e82a99458fc2.png

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

59e223824ba146c89fa0d5cd590a85fc.png

第二个:代码编译

    源码和环境准备完后,接下来就是编译,编译涉及的指令有2条,hb set和hb build -f 。

hb set -- 设置工程目录和选择对应的目标,通过键盘的上下键来选择。

 5fe123e22863498aa507f41aa146111e.png

hb build -f  -- 开始全量编译。(hb build 为增量编译)    

660f3cb5847f4acabb02356ad0c6c236.png

9201d2923d6e4df4ac448fafb97f8af3.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/:

586337eed8b34c8d856e9e7921939ac0.png

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

ac2f860cf00240369c53aff1f1326a13.png

对应的libsmart_camera.so在out/hispark_taurus/smart_camera/usr/lib/ 目录下:

64ec9ae5441d46f1978d59df99853c24.png

AI服务可执行程序在out/hispark_taurus/smart_camera/bin/   目录下:

5eeebf43119844a8861e14587198ae4c.png

以下表格为所有生成的固件及对应的位置:

fda656d32b884835a1a57eb8f86aedcc.png

第三个:固件烧录

      第一个:烧录工具选择

      固件编译完后,是需要烧录到单板的。这里我们用的是HiTool工具烧录的。(HiTool工具下载地址:HiHope官网)

      第二个:烧录步骤

      打开HiTool工具,如下图:

f732109b5e6f44968cc6bc66728a8e4f.png

烧写步骤按照图中标注即可。点击烧入后,烧录工具会提示重新上电,此时重启单板即可。

ba61e0d8fba4445fa5825daf15832015.png

第四个:烧录结果

烧录成功后,会弹出如下提示,单板也会自行启动。

666e85b4d5924ce0823359f46f6afdff.png

烧录失败的话需要根据失败提示查找一下原因。一般情况需要检查一下串口是否连接正常,网线是否正确插入,IP是否选择正常等。

查看IP的方法:当单板上电后并正确插入网线后,点击工具上刷新按钮,此时单板IP会自动添加到服务器IP列表中。

20d30ad1e15c4f659c1aa401dd038ab5.png

注意:IDE烧录:另外,OpenHarmony官网有提供一种通过IDE来烧录的,具体烧录步骤请参考文档:3516上快速运行Hello OHOS。


特别说明:如果是第一次烧录程序的话,单板在启动的时候需要设置bootargs,否则不能正常启动。单板第一次启动会停在hisilicon界面:


49b204ccf20d4988a03909a0e1d774db.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";

saveenv

reset

8aaef65124cc497dad183b6e8a3242be.png

到此,烧录已经完成,设备也正常启动。

2b48087fe18142b78d14fbbc57086feb.png

第五个:应用安装


   第一个:打包应用


  本demo是以安装包的形式安装到系统中启动运行的。因此,在安装应用前,需要将应用打包成安装包。


将编译好的libsmart_camera.so文件与工程目录下的res以及config.json文件通过压缩打包成zip格式(三个文件直接压缩,不能压缩文件夹),并将后缀名改为hap(smart_camera.hap)。


3d373b19e38c430f8f021663c213069e.png

  第二个:挂载NFS

   应用打包后,我们是通过NFS方式将单板挂载到本地,通过相关的指令来安装的,NFS挂载方法参照文章:Hi3516通过NFS挂载方式与Windows共享文件。

  1ac84968657f4896a1d9bf9e48321bca.png

  第三个:安装

  通过nfs是单板连接到本地电脑后,我们可以通过bm安装指令进行安装。bm安装工具在系统编译完后会自动生成,路径在:

  out/hispark_taurus/smart_camera/dev_tools/bin/

0e23bcb5b626469890640e45524a6520.png

由于bm默认安装的应用为已经签名的应用,所以我们在安装前需要先将签名去掉。

   bm set -s disable        // 去签名

   bm install -p filename      // 安装应用filename, filename需要指定路径

e8671b2a6d8f46f0920bda3f0dee51f2.png

安装完后桌面会显示对应应用的ICON,直接点击ICON即可以启动相机的应用。

第四个:使用指南

6021b45e0c9d412fa8f5b18f7e5808b8.png

由于本demo涉及到摄像头的读写,故需要申请了相关的权限。在使用本demo前需要在setting中打开对应的权限。具体操作


第一步:点击setting--->应用--->smart_camera,然后将所有权限打开。


第二步:本demo带有相机的所有功能,包含预览,拍照,录像以及跳转到图库查看对应拍的图片和录制的视频。


第三步:在demo最主要的功能是语音控制相机,需要对准板子上的麦克风说唤醒词,目前支持2个唤醒词(Hi,xiaowen以及Nihao,wenwen),分别对应控制相机的拍照以及录像功能。

目录
相关文章
|
人工智能 自然语言处理 Devops
云效 AI 智能代码评审体验指南
云效AI智能代码评审正式上线!在合并请求时自动分析代码,精准识别问题,提升交付效率与质量。支持自定义规则、多语言评审,助力研发效能升级。立即体验AI驱动的代码评审革新,让AI成为你的代码质量伙伴!
706 7
|
7月前
|
人工智能 自然语言处理 算法
【2025云栖大会】AI 搜索智能探索:揭秘如何让搜索“有大脑”
2025云栖大会上,阿里云高级技术专家徐光伟在云栖大会揭秘 Agentic Search 技术,涵盖低维向量模型、多模态检索、NL2SQL及DeepSearch/Research智能体系统。未来,“AI搜索已从‘信息匹配’迈向‘智能决策’,阿里云将持续通过技术创新与产品化能力,为企业构建下一代智能信息获取系统。”
796 9
|
7月前
|
存储 人工智能 搜索推荐
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
本文介绍基于LangGraph构建的双层记忆系统,通过短期与长期记忆协同,实现AI代理的持续学习。短期记忆管理会话内上下文,长期记忆跨会话存储用户偏好与决策,结合人机协作反馈循环,动态更新提示词,使代理具备个性化响应与行为进化能力。
1325 10
LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
|
7月前
|
机器学习/深度学习 人工智能 算法
用于实验室智能识别的目标检测数据集(2500张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含2500张已标注实验室设备图片,涵盖空调、灭火器、显示器等10类常见设备,适用于YOLO等目标检测模型训练。数据多样、标注规范,支持智能巡检、设备管理与科研教学,助力AI赋能智慧实验室建设。
用于实验室智能识别的目标检测数据集(2500张图片已划分、已标注) | AI训练适用于目标检测任务
|
7月前
|
机器学习/深度学习 人工智能 JSON
PHP从0到1实现 AI 智能体系统并且训练知识库资料
本文详解如何用PHP从0到1构建AI智能体,涵盖提示词设计、记忆管理、知识库集成与反馈优化四大核心训练维度,结合实战案例与系统架构,助你打造懂业务、会进化的专属AI助手。
1043 6
|
7月前
|
机器学习/深度学习 人工智能 算法
阿里云视频云以 360° 实时回放技术支撑 NBA 2025 中国赛 —— AI 开启“智能观赛”新体验
NBA中国与阿里云达成合作,首发360°实时回放技术,融合AI视觉引擎,实现多视角、低延时、沉浸式观赛新体验,重新定义体育赛事观看方式。
1111 0
阿里云视频云以 360° 实时回放技术支撑 NBA 2025 中国赛 —— AI 开启“智能观赛”新体验
|
7月前
|
人工智能 编解码 搜索推荐
AI智能换背景,助力电商图片营销升级
电商产品图换背景是提升销量与品牌形象的关键。传统抠图耗时费力,AI技术则实现一键智能换背景,高效精准。本文详解燕雀光年AI全能设计、Canva、Remove.bg等十大AI工具,涵盖功能特点与选型建议,助力商家快速打造高质量、高吸引力的商品图,提升转化率与品牌价值。(238字)
729 0