语义分割学习之SegNet的C++编译

Abstract

       安装好Segnet并使用Python进行训练和测试之后,考虑项目的应用,需要在C++的工程环境下进行继续开发,所以这里的主要内容是用C++建立工程,使用相应的数据集和权重参数文件进行测试。


       Caffe本身就是用C++开发的,所以也提供了相应的C++接口。作为简单的测试和学习,这里采用开源代码里的SegNet_with_C++进行测试,主要熟悉相关流程。在SegNet的目录下,examples/SegNet_with_C++里包含test_segmentation.cpp。可以使用该文件,建立C++工程。下面是相应步骤。

  1. 建立一个新的文件夹MySegNet,内部再建立src文件夹,将上述cpp文件copy到src文件夹里。同时将caffe里src下的其他cpp按源目录结构拷贝至此src下。
  2. 对应的include文件夹也拷贝到MySegNet下。
  3. 新建一个build文件夹。
  4. 新建一个CMakeLists.txt。按以下编辑相应的内容。
    CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
    PROJECT(MySegnet)
    SET(CMAKE_BUILD_TYPE Debug)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -march=native -O3 -pthread")
    set(build_libraries
            ${Caffe_LIBRARIES}
            ${OpenCV_LIBS}
            ${BOOST_LIBRARIES}
            )
    add_executable(MySegnet
            test_segmentation.cpp
            )
    INCLUDE_DIRECTORIES(/home/SegNet/MySegnet/include
        /home/SegNet/MySegnet/include/caffe
        /home/SegNet/MySegnet/include/caffe/layer
        /home/SegNet/MySegnet/include/caffe/util
        /home/SegNet/MySegnet/include/caffe/test
        /usr/local/include  
        /usr/local/cuda/include
        )
    target_link_libraries(MySegnet /home/SegNet/caffe-segnet-cudnn5-master/build/lib/libcaffe.so
        /usr/local/lib/libopencv_highgui.so  
        /usr/local/lib/libopencv_core.so  
        /usr/local/lib/libopencv_imgproc.so  
        /usr/lib/x86_64-linux-gnu/libglog.so  
        /usr/lib/x86_64-linux-gnu/libboost_system.so
        /usr/local/lib/libopencv_imgcodecs.so.3.4
        )

    上面可能有多余,也可能有不够的,按需添加。注意相应路径的修改。在路径使用上,可以使用绝对路径,也可以使用相对路径。

  5. 进入build文件夹,在终端打开。
    cmake (之前CMakeLists.txt所在的路径)
    make
    make成功建立target文件就好的,有什么错误对应解决,一般是缺东西,添加相应的内容即可。
  6. 这时可以看到生成的可执行文件,直接执行是没有什么作用的,需要带参数执行。由cpp中main函数代码可知,基本的执行语句是:
    sudo ./MySegnet /home/SegNet/MySegnet/bin/segnet_sun.prototxt /home/SegNet/MySegnet/bin/segnet_sun.caffemodel /home/SegNet/MySegnet/image/cat_gray.jpg /home/SegNet/MySegnet/img/sun.png
       (exe) (model_file) (trained_file) (test_img) (colors_img)

    部分文件或图片在caffe_segnet_cudnn5-master里能找到,部分可以去Github上下载。附网址。

  7. 需要测试更多图片的,可以在main函数中做相应的修改,重新make。测试新的分割,可以自己更改网络,重新训练并使用自己的model_file和trained_file

附相关文章链接:Segnet学习

 

转载于:https://www.cnblogs.com/minskychu/p/9209372.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值