建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

Shine_yzhao

发帖: 3粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020年10月14日 12:22:41 127 2
直达本楼层的链接
楼主
显示全部楼层
[问题求助] 【Atlas200dk】【acl dvpp】运行时dvpp初始化失败 交叉编译

【功能模块】


本项目通过dvpp采集camera,通过opencv进行预处理,acl进行推理,opencv后处理,通过presenteragent发送结果展示。

由于项目需要用到机器人操作系统ROS,ROS的部分功能依赖自带的对应版本的opencv3.2,因此将原项目opencv4.3的库换为opencv3.2,编译成功,运行报错。

【操作步骤&问题现象】


CMakeLists.txt

include_directories(
    ../inc/
#    $ENV{HOME}/ascend_ddk/arm/usr/include         #opencv 3.2.0
    $ENV{HOME}/ascend_ddk/arm/include/opencv4/     #opencv 4.3.0

    ${INC_PATH}/acllib/include/
    $ENV{HOME}/ascend_ddk/arm/include/
    $ENV{HOME}/ascend_ddk/arm/include/ascenddk
    $ENV{HOME}/Ascend/

#    $ENV{HOME}/ascend_ddk/arm/ros/melodic/include     #ROS include
)


if(target STREQUAL "Simulator_Function")
    add_compile_options(-DFUNC_SIM)
endif()


# add host lib path
link_directories(
    /usr/local/lib
    ${LIB_PATH}
#    $ENV{HOME}/ascend_ddk/arm/lib/   #该路径下包含libpresenteragent.so 和 libopencv_xxx.so.4.3相关库文件,此处注释,后面通过绝对路径链接
    $ENV{HOME}/Ascend/driver/
    $ENV{HOME}/Ascend/
    ${INC_PATH}/atc/lib64/

#    $ENV{HOME}/ascend_ddk/arm/ros/melodic/lib   #ROS lib

)

### Cross Compile depth_acl
add_executable(main
        utils.cpp
        camera.cpp
        model_process.cpp
        depth_map.cpp
        dvpp_process.cpp
        dvpp_resize.cpp
        dvpp_jpege.cpp
        main.cpp)


target_link_libraries(main ascendcl acl_dvpp stdc++ c_sec slog media_mini pthread protobuf
                      /home/ascend/ascend_ddk/arm/lib/libpresenteragent.so                   #libpresenteragent.so

            #OPENCV 4.3 in ascend_ddk/arm
            /home/ascend/ascend_ddk/arm/lib/libopencv_core.so.4.3
            /home/ascend/ascend_ddk/arm/lib/libopencv_imgproc.so.4.3
            /home/ascend/ascend_ddk/arm/lib/libopencv_imgcodecs.so.4.3

             #OPENCV 3.2 copyed from atlas, automatically installed by ROS
#            /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2
#            /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_core.so.3.2
#            /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.3.2
#            /home/ascend/ascend_ddk/arm/usr/lib/libgdal.so.20
#            /home/ascend/ascend_ddk/arm/usr/lib/libarmadillo.so.8
#            /home/ascend/ascend_ddk/arm/usr/lib/libmfhdfalt.so.0
#            /home/ascend/ascend_ddk/arm/usr/lib/libdfalt.so.0
#            /home/ascend/ascend_ddk/arm/usr/lib/libogdi.so.3.2
#            /home/ascend/ascend_ddk/arm/usr/lib/libPocoFoundation.so.50
    )

以上CMakeLists.txt 在host侧的MindStudio中交叉编译并在Atlas成功运行(OpenCV 4.3)。

WeChat Image_20201013163545.png


二、

由于本项目需要用到ROS,因此通过apt在Atlas侧安装了ROS Melodic版本

ROS的相关库文件、头文件安装在Atlas侧 /opt/ros/melodic/路径下,如下ls所示


HwHiAiUser@davinci-mini:~$ ls /opt/ros/melodic/

.catkin           _setup_util.py    env.sh            include/          local_setup.bash  local_setup.zsh   setup.sh          share/            

.rosinstall       bin/              etc/              lib/              local_setup.sh    setup.bash        setup.zsh


ROS安装时会同时会 自动安装 OpenCV 3.2 版本在Atlas侧(因为ros需要依赖opencv)

.h头文件的路径     /usr/include/opencv2

.so库文件路径     /usr/lib/aarch64-linux-gnu


三、

由于项目需要用到ROS的相关功能,需要依赖到OpenCV 3.2的一些so文件,因此将以上ROS 和OpenCV 3.2 通过scp 到Host电脑侧

ROS:Atlas侧  /opt/ros/melodic/ 拷贝到 Host侧   $ENV{HOME}/ascend_ddk/arm/ros/melodic

头文件:$ENV{HOME}/ascend_ddk/arm/ros/melodicinclude

库文件:$ENV{HOME}/ascend_ddk/arm/ros/melodic/lib/

OpenCV 3.2

头文件:Atlas侧   /usr/include 拷贝到 Host侧(opencv3.2头文件在该路径下的include中)                         $ENV{HOME}/ascend_ddk/arm/usr/include/opencv2         

库文件:Atlas侧   /usr/lib 拷贝到 Host侧 (opencv3.2库文件在该路径下的aarch64-linux-gnu中)              $ENV{HOME}/ascend_ddk/arm/usr/lib/aarch64-linux-gnu

以供交叉编译

四、

将以上CMakeLists.txt中的include_directories 和link_directories中 分别替换为 opencv 3.2的头文件和so文件进行编译会报错找不到 libgdal.so.20

Warning:/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: warning: libgdal.so.20, needed by /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2, not found (try using -rpath or -rpath-link)Screenshot from 2020-10-13 17-11-51.png

通过find命令找到libgdal.so.20的路径

Screenshot from 2020-10-13 17-13-45.png

在链接库中添加 host侧  /home/ascend/ascend_ddk/arm/usr/lib/libgdal.so.20

Screenshot from 2020-10-13 17-24-56.png

进而报错找不到libarmadillo.so.8  libmfhdfalt.so.0  libdfalt.so.0  libogdi.so.3.2

Screenshot from 2020-10-13 17-26-43.png

找到路径并添加

Screenshot from 2020-10-13 17-28-02.png

MindStudio编译成功。

Screenshot from 2020-10-13 17-30-36.png

最终CMakeLists.txt

# Header path
include_directories(
    ../inc/
    $ENV{HOME}/ascend_ddk/arm/usr/include         #opencv 3.2.0
#    $ENV{HOME}/ascend_ddk/arm/include/opencv4/     #opencv 4.3.0

    ${INC_PATH}/acllib/include/
    $ENV{HOME}/ascend_ddk/arm/include/
    $ENV{HOME}/ascend_ddk/arm/include/ascenddk
    $ENV{HOME}/Ascend/

#    $ENV{HOME}/ascend_ddk/arm/ros/melodic/include     #ROS include
)


if(target STREQUAL "Simulator_Function")
    add_compile_options(-DFUNC_SIM)
endif()


# add host lib path
link_directories(
    /usr/local/lib
    ${LIB_PATH}
#    $ENV{HOME}/ascend_ddk/arm/lib/  #该路径下包含libpresenteragent.so 和 libopencv_xxx.so.4.3相关库文件,此处注释,后面通过绝对路径链接
    $ENV{HOME}/Ascend/driver/
    $ENV{HOME}/Ascend/
    ${INC_PATH}/atc/lib64/

#    $ENV{HOME}/ascend_ddk/arm/ros/melodic/lib   #ROS lib

)

### Cross Compile depth_acl
add_executable(main
        utils.cpp
        camera.cpp
        model_process.cpp
        depth_map.cpp
        dvpp_process.cpp
        dvpp_resize.cpp
        dvpp_jpege.cpp
        main.cpp)

target_link_libraries(main ascendcl acl_dvpp stdc++ c_sec slog media_mini pthread protobuf
                      /home/ascend/ascend_ddk/arm/lib/libpresenteragent.so                   #libpresenteragent.so

            #OPENCV 4.3 in ascend_ddk/arm
#            /home/ascend/ascend_ddk/arm/lib/libopencv_core.so.4.3
#            /home/ascend/ascend_ddk/arm/lib/libopencv_imgproc.so.4.3
#            /home/ascend/ascend_ddk/arm/lib/libopencv_imgcodecs.so.4.3

             #OPENCV 3.2 copyed from atlas, automatically installed by ROS
            /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2
            /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_core.so.3.2
            /home/ascend/ascend_ddk/arm/usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.3.2
            /home/ascend/ascend_ddk/arm/usr/lib/libgdal.so.20
            /home/ascend/ascend_ddk/arm/usr/lib/libarmadillo.so.8
            /home/ascend/ascend_ddk/arm/usr/lib/libmfhdfalt.so.0
            /home/ascend/ascend_ddk/arm/usr/lib/libdfalt.so.0
            /home/ascend/ascend_ddk/arm/usr/lib/libogdi.so.3.2
#            /home/ascend/ascend_ddk/arm/usr/lib/libPocoFoundation.so.50
    )


上传atlas200dk运行出错,报错为dvpp初始化出错?

Screenshot from 2020-10-13 17-39-12.png



【日志信息】(可选,上传日志内容或者附件)

见附件


device-0_20201013102139566.txt 164 Bytes,下载次数:3

host-0_20201013102126182.txt 15.94 KB,下载次数:7

举报
分享

分享文章到朋友圈

分享文章到微博

L_y

发帖: 7粉丝: 22

级别 : 版主

发消息 + 关注

发表于2020年10月14日 15:22:17
直达本楼层的链接
沙发
显示全部楼层

你好 这个问题正在分析中 请耐心等待,稍后给您答复

点赞 评论 引用 举报

Shine_yzhao

发帖: 3粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020年10月14日 16:15:18
直达本楼层的链接
板凳
显示全部楼层

附上 两个版本 的 ldd链接信息 


分别对应以上使用opencv4.3 和 3.2


编译链接记录.txt 16.21 KB,下载次数:3

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册