华为HiLens
华为HiLens
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 快速入门
- 用户指南(基础版控制台)
- 用户指南(专业版控制台)
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
- 其他问题
- 计费问题
- 算法类问题
- 管理数据
- 管理产品
- 购买/定制技能
- 安装/启动技能
- HiLens Studio使用
- 技能开发
- 管理设备
- 注册设备
-
端侧设备HiLens Kit
- 设备介绍
- HiLens Kit硬件操作
-
HiLens Kit系统操作
- 如何使用SSH登录设备?
- 为什么更改设备系统密码后,使用新密码可以使用浏览器登录华为HiLens智能边缘管理系统,但是无法使用PuTTY登录设备?
- 如何对HiLens Kit系统进行底层操作?
- HiLens Kit可以导入自定义的Python模块吗?
- 如何在HiLens Kit安装yum?
- 如何管理设备文件?
- 如何在HiLens Kit安装软件包?
- 如何使用root登录设备,并关闭连接超时?
- 基于Python的openmv 的设备,是否支持通过调用API去调用HiLens Kit的技能?
- HiLens Kit不能显示中文怎么办?
- HiLens Kit如何清除已保存的wifi信息?
- HiLens Kit 如何使用命令行连接无线网络
- HiLens Kit如何配置永久性DNS?
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
模型适配HiLens Studio
由于HiLens Studio开发工具包升级至新版本C7X,使得目前HiLens Studio仅支持C7X版本的模型,即输出的模型是NHWC格式。而HiLens Kit设备支持C3X版本模型,即输出的模型是NCHW格式。如果您使用旧版本的开发工具包在HiLens Studio上开发技能,该技能将不能在最新版本的HiLens Studio上正常运行,同时新版本Studio将OpenCV的版本从3.4.2升级到4.2.0,因此需要对技能进行适配。适配工作如表1所示。
准备工作
由于新版本使用模型配置文件兼容不同版本的模型,端侧固件版本需要升级至1.3.0,固件升级请参见升级HiLens_Device_Agent固件版本。
如果端侧固件版本低于1.3.0,可能会导致技能无法运行。
修改技能文件
需要对“CMakeLists.txt”、“prebuild.sh”、“build.sh”、“clean.sh”文件进行修改。
- CMakeLists.txt
project(main) # 使用C++11标准 set(CMAKE_CXX_STANDARD 11) # 头文件 include_directories(${CMAKE_SOURCE_DIR}/../src/main/cpp/include) include_directories(/home/hilens/hilens_studio_sdk/include) # framework lib库 link_directories(/home/hilens/hilens_studio_sdk/lib) # 源文件 file(GLOB_RECURSE SRC_LIST "${CMAKE_SOURCE_DIR}/../src/main/cpp/*.cpp") set(lib_srcs ${SRC_LIST}) # 调试设置 if(STUDIO) # DEBUG版本 message("debug 设置") SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") else() # release版本设置 message("release 设置") SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") endif() set(LIBS hilens_m opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_calib3d opencv_videoio opencv_features2d opencv_flann opencv_photo opencv_video jsoncpp_noabi)# libm-2.24.so) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 可执行程序(不携带so) if(STUDIO) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../) else() set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/output/kit/bin) endif() add_executable(main ${lib_srcs} ${CMAKE_SOURCE_DIR}/../src/main/cpp/main.cpp) target_link_libraries(main ${LIBS})
- prebuild.sh
current_workspace=`pwd` echo "cmake..." bash build/build.sh cd $current_workspace filename=.hilens if [ ! -d $filename ];then mkdir $filename fi uuid=`cat /proc/sys/kernel/random/uuid` echo -n $uuid > ./$filename/rtmp.txt vid_src=`cat ./.hilens/rtmp_source` current_workspace=`pwd` echo "cd $current_workspace" > ~/.gdbinit echo "set environment RTMP_PATH rtmp://127.0.0.1/live/$uuid" >> ~/.gdbinit echo "set environment VID_SRC $vid_src" >> ~/.gdbinit echo "handle SIG32 nostop noprint pass" >> ~/.gdbinit
- build.sh
#!/bin/sh echo "cmake..." cd build # 清理build if [ ! -d output ]; then mkdir output fi cd output if [ ! -d studio ]; then mkdir studio fi cd studio echo "studio build..." export LD_LIBRARY_PATH=/usr/lib64/:$LD_LIBRARY_PATH cmake ../../ -DCMAKE_BUILD_TYPE=Debug -DSTUDIO=ON && make -j cp compile_commands.json ../../../ echo "kit cmake... " cd .. if [ ! -d kit ]; then mkdir kit fi cd kit cmake ../../ -DCMAKE_BUILD_TYPE=Release -DSTUDIO=OFF && make -j
- clean.sh
cd build/output export LD_LIBRARY_PATH=/usr/lib64/:$LD_LIBRARY_PATH # 清理kit BUILD_DIR="kit" if [ -d ${BUILD_DIR} ];then echo " clean and remove build..." cd $BUILD_DIR make clean cd .. rm -rf ${BUILD_DIR} fi # 清理studio BUILD_DIR="studio" if [ -d ${BUILD_DIR} ];then echo "clean and remove build..." cd $BUILD_DIR make clean cd .. rm -rf ${BUILD_DIR} fi
修改模型配置文件
模型配置文件是一个json文件,模型在加载的时候将会根据这个文件自动加载合适的模型并进行输入的预处理。建议将模型配置文件放在“model”文件夹中。模型路径为相对于当前模型配置文件的相对路径。
模型配置文件修改示例如下。配置参数设置请见模型配置文件。
{ "ModelCfgs" : [ { "DeviceType" : "D310_C3X", "ModelPath": "./mask_det_c3x.om", "FrameWorkInput": "BGR", "ModelInput": "BGR", "NetworkWidth": 512, "NetworkHeight": 288, "NetworkChannel": 2, "ScaleMeanEnable": false }, { "DeviceType" : "D310_C7X", "ModelPath": "./mask_det_c7x.om", "FrameWorkInput": "BGR", "ModelInput": "BGR", "NetworkWidth": 512, "NetworkHeight": 288, "NetworkChannel": 2, "ScaleMeanEnable": false } ] }
如果开发语言使用Python,修改如下内容:
model = hilens.Model(model_config_path) # 创建模型时传入模型配置文件的路径
父主题: 适配新版本HiLens Studio