0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony基于润和Hi3516开发套件

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:HarmonyOS官方合作社 2022-05-07 10:16 次阅读

概述

我们将在Hi3516DV300 SDK的基础之上进行开发,分别为手部检测+手势识别实验,垃圾分类实验。手部检测+手势识别实验以及垃圾分类实验,主要基于训练好的wk模型在板端进行部署,并充分发挥海思IVE、NNIE硬件加速能力,完成AI推理和业务处理。

目录

ai_sample在Hi3516DV300 SDK基础上进行开发,在利用媒体通路的基础上,通过捕获VPSS帧进行预处理操作,并送至NNIE进行推理,结合AI CPU算子最终得到AI Flag并进行相应业务处理,该AI sample集成了垃圾分类、手势检测识别两个基础场景,运用到媒体理论、多线程、IPC通信、IVE、NNIE等思想,实现了一个轻量级sample,方便开发者了解taurus Hi3516DV300的AI能力,ai_sample目录结构如下:

//device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample│ BUILD.gn          # 编译ohos ai_sample需要的gn文件├─ai_infer_process       # AI前处理、推理、后处理相关接口│ ├─ai_infer_process.c│ └─ai_infer_process.h├─dependency         # ai sample依赖的一些功能,如语音播报│ ├─audio_test.c│ └─audio_test.h├─ext_util                     # 常用的基础接口、可移植操作系统接口posix等│ ├─base_inteRFace.c│ ├─base_interface.h│ ├─misc_util.c│ ├─misc_util.h│ ├─posix_help.c│ └─posix_help.h├─mpp_help               # 封装的媒体相关接口│ ├─include│ │ ├─ive_img.h│ │ └─vgs_img.h│ └─src│  ├─ive_img.c│  └─vgs_img.c├─scenario│ ├─cnn_trash_classify    # 垃圾分类sample│ │  ├─cnn_trash_classify.c│ │  └─cnn_trash_classify.h│ └─hand_classify       # 手部检测+手势识别sample│   ├─hand_classify.c│   ├─hand_classify.h│   ├─yolov2_hand_detect.c│   └─yolov2_hand_detect.h└─smp                      # ai sample主入口及媒体处理文件 ├─sample_ai_main.cpp ├─sample_media_ai.c └─sample_media_ai.h

拷贝第三方库

步骤1:在源码的根目录下,分步执行下面的命令,拷贝第三方库至ai sample中

mkdir device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample/third_party/src/ -p
cp third_party/iniparser device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample/third_party/src/ -rf

951c6a8e-cd9e-11ec-bce3-dac502259ad0.png

步骤2:使用IDE打开device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample/third_party/src/iniparser/src/iniparser.c文件,把第15行的1024改成8192。

#define ASCIILINESZ     ((8192)) // (1024)

953ce552-cd9e-11ec-bce3-dac502259ad0.png

编译

在编译ai_sample之前,需确保OpenHarmony 小型系统的主干代码已经整编通过,且已经按照《修改源码及配置文件适配Taurus开发板》的内容进行修改。在单编ai_sample之前,需修改目录下的一处依赖,进入//device/soc/hisilicon/hi3516dv300/sdk_linux目录下,通过修改BUILD.gn,在deps下面新增target,"sample/taurus/ai_sample:hi3516dv300_ai_sample",如下图所示:

9556e7b8-cd9e-11ec-bce3-dac502259ad0.png

点击Deveco Device Tool工具的Build按键进行编译,具体的编译过程这里不再赘述,编译成功后,如下图所示:

957c5890-cd9e-11ec-bce3-dac502259ad0.png

编译成功后,即可在out/hispark_taurus/ipcamera_hispark_taurus_linux/rootfs/bin目录下,生成 ohos_camera_ai_demo可执行文件,如下图所示:

958d5230-cd9e-11ec-bce3-dac502259ad0.png

拷贝可执行程序和依赖文件至开发板的mnt目录下

方式一:使用SD卡进行资料文件的拷贝

首先需要自己准备一张SD卡:

步骤1:将编译后生成的可执行文件拷贝到SD卡中。

步骤2:将devicesochisiliconhi3516dv300sdk_linuxoutlib目录下的libvb_server.so和 libmpp_vbs.so拷贝至SD卡中

步骤3:将device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/目录下的models文件夹和aac_file文件夹拷贝至SD卡中。(前提是按照《获取sample依赖的资源文件到本地》文档获取了资源文件)

95ae0a5c-cd9e-11ec-bce3-dac502259ad0.png

步骤4:可执行文件拷贝成功后,将内存卡插入开发板的SD卡槽中,可通过挂载的方式挂载到板端,可选择SD卡 mount指令进行挂载。

mount -t vfat /dev/mmcblk1p1 /mnt
# 其中/dev/mmcblk1p1需要根据实际块设备号修改

挂载成功后,如下图所示:

95cfaeaa-cd9e-11ec-bce3-dac502259ad0.png

方式二:使用NFS挂载的方式进行资料文件的拷贝

首先需要自己准备一根网线:

步骤1:参考博客链接中的内容,进行nfs的环境搭建;

步骤2:将编译后生成的可执行文件拷贝到Windows的nfs共享路径下;

步骤3:将devicesochisiliconhi3516dv300sdk_linuxoutlib目录下的libvb_server.so和 libmpp_vbs.so拷贝至Windows的nfs共享路径下;

步骤4:将device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/目录下的models文件夹和aac_file文件夹拷贝至Windows的nfs共享路径下(前提是按照《获取sample依赖的资源文件到本地》文档获取了资源文件)。

95f2c4a8-cd9e-11ec-bce3-dac502259ad0.png

步骤5:依赖文件拷贝至Windows的nfs共享路径下后,执行下面的命令,将Windows的nfs共享路径挂载至开发板的mnt目录下

mount -o nolock,addr=192.168.200.1 -t nfs 192.168.200.1:/d/nfs /mnt

拷贝mnt目录下的文件至正确的目录下

执行下面的命令,拷贝mnt目录下面的ohos_camera_ai_demo至userdata目录,拷贝mnt目录下面的libvb_server.so和 libmpp_vbs.so至/usr/lib/目录下,再将models和aac_file文件夹拷贝至userdata目录下

cp /mnt/ohos_camera_ai_demo /userdata/
cp /mnt/*.so /usr/lib/
cp /mnt/models /userdata/ -rf
cp /mnt/aac_file /userdata/ -rf

960a1202-cd9e-11ec-bce3-dac502259ad0.png

执行下面的命令,给ohos_camera_ai_demo文件可执行权限

chmod 777 /userdata/ohos_camera_ai_demo

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10816

    浏览量

    210954
  • 手势识别
    +关注

    关注

    8

    文章

    225

    浏览量

    47764
  • 图像识别
    +关注

    关注

    9

    文章

    519

    浏览量

    38216

原文标题:OpenHarmony AI图像识别开发—基于润和Hi3516开发套件

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【基于Hi3516DV300开发板(时钟应用开发)】

    如何快速搭建基于OpenHarmony标准系统(Hi3516DV300开发板)的应用开发环境,并基于一个时钟APP示例逐步展示应用的创建、开发
    的头像 发表于 05-08 15:27 1108次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【基于<b class='flag-5'>Hi3516</b>DV300<b class='flag-5'>开发</b>板(时钟应用<b class='flag-5'>开发</b>)】

    鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

    除小型系统外,Hi3516DV300开发板还支持标准系统。此章节简要介绍如何使用命令行在Hi3516DV300开发板上进行标准系统的开发
    的头像 发表于 05-08 09:26 805次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3516</b>标准系统入门(命令行方式)】

    鸿蒙OpenHarmony南向:【Hi3516开发板介绍】

    Hi3516DV300作为新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器以及高性能NNIE引擎,具备低码率、高画质、低功耗等特点,并具备强劲的智能处理和分析能力。
    的头像 发表于 05-06 16:13 538次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3516</b><b class='flag-5'>开发</b>板介绍】

    鸿蒙OpenHarmony【小型系统 烧录】(基于Hi3516开发板)

    针对Hi3516DV300开发板,除了DevEco Device Tool(操作方法请参考烧录))外,还可以使用HiTool进行烧录。
    的头像 发表于 04-28 15:03 1202次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【小型系统 烧录】(基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发</b>板)

    HarmonyOS开发:【基于命令行(开发环境)】

    支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,建议使用Ubuntu的编译环境对源码进行编译。同时,开发板的烧录需要在Windows环境中进行。
    的头像 发表于 04-25 17:54 1221次阅读
    HarmonyOS<b class='flag-5'>开发</b>:【基于命令行(<b class='flag-5'>开发</b>环境)】

    鸿蒙OpenHarmony【小型系统运行案例】 (基于Hi3516开发板)

    在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。
    的头像 发表于 04-23 21:00 399次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【小型系统运行案例】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发</b>板)

    鸿蒙OpenHarmony【小型系统编译】 (基于Hi3516开发板)

    DevEco Device Tool支持Hi3516DV300开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。
    的头像 发表于 04-23 15:53 481次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【小型系统编译】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发</b>板)

    OpenHarmony开发实例:【电话簿联系人Contacts】

    Contacts应用是基于OpenHarmony SDK开发的安装在和HiSpark Taurus AI Camera(Hi3516d)开发
    的头像 发表于 04-23 09:44 708次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>开发</b>实例:【电话簿联系人Contacts】

    OpenHarmony开发实例:【 待办事项TodoList】

    TodoList应用是基于OpenHarmony SDK开发的安装在和HiSpark Taurus AI Camera(Hi3516d)开发
    的头像 发表于 04-22 22:00 663次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>开发</b>实例:【 待办事项TodoList】

    OpenHarmony鸿蒙南向开发案例:【智能猫眼(基于3516开发板)】

    基于Hi3516开发板,使用开源OpenHarmony开发的RTSP协议流媒体应用。达到将Hi3516
    的头像 发表于 04-19 22:01 538次阅读
    <b class='flag-5'>OpenHarmony</b>鸿蒙南向<b class='flag-5'>开发</b>案例:【智能猫眼(基于<b class='flag-5'>3516</b><b class='flag-5'>开发</b>板)】

    鸿蒙OpenHarmony【搭建Ubuntu环境】

    支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,建议使用Ubuntu的编译环境对源码进行编译。
    的头像 发表于 04-19 16:53 1228次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【搭建Ubuntu环境】

    鸿蒙OpenHarmony【搭建Windows环境】

    支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,建议使用Ubuntu的编译环境对源码进行编译。
    的头像 发表于 04-19 15:42 569次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【搭建Windows环境】

    OpenHarmony南向开发案例:【智能照相机】

    基于Hi3516开发板,使用OpenHarmony3.0-LTS开发的应用。通过获取摄像头数据,实现预览拍照以及路视频等功能。并且通过后台AI服务识别唤醒词来进行语音控制拍照及录制视频
    的头像 发表于 04-18 22:19 399次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【智能照相机】

    OpenHarmony南向开发案例:【智能油烟机】

    基于Hi3516开发板,使用开源OpenHarmony开发的应用。
    的头像 发表于 04-18 15:54 980次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【智能油烟机】

    OpenHarmony南向开发案例:【智能中控屏】

    基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过控制面板可以控制同一局域网内的空调,窗帘,灯等智能家居设备。
    的头像 发表于 04-17 16:12 349次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【智能中控屏】