图像语义分割代码实现(2)

本文档详细介绍了在CamVid数据集上使用SegNet进行图像语义分割的全过程,包括SegNet框架安装、数据准备、模型训练以及测试。提供训练脚本和测试脚本的修改说明,适合实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对《图像语义分割(2)- SegNet》介绍的 SegNet 算法,主要参考官方项目主页,在 CamVid 数据集上做训练和测试


框架安装

官方 SegNet 包含两个部分,一个是 SegNet 框架,一个是修改的 Caffe

1)clone SegNet-Tutorial

git clone https://github.com/alexgkendall/SegNet-Tutorial.git SegNet

里面包含了 CamVid 的训练数据集

2)clone caffe-segnet

git clone https://github.com/TimoSaemann/caffe-segnet-cudnn5.git caffe-segnet

这里有不支持 cudnn v2 的 caffe-segnet

3)将 caffe-segnet 移到 SegNet 里面,文件树如图1所示

       这里写图片描述
                        图1. SegNet 的代码框架


数据准备及训练

1)训练前的数据准备

  • 修改 CamVid/train.txt 和 CamVid/test.txt 里面的图片路径换成绝对路径
  • 修改 Models/segnet_train.prototxt 和 Models/segnet_inference.prototxt 第一层的 data 路径为绝对路径,batch_size 按显卡能力调整
  • 修改 Models/segnet_solver.protxt 修改 snapshot_prefix 为绝对路径
  • 编写训练脚本 train_it.sh
#!/bin/bash

./caffe-segnet-cudnn5/build/tools/caffe train -gpu 0 -solver Models/segnet_solver.prototxt

2)编译 caffe-segnet 并开始训练

  • 修改 Makefile.config,取消 USE_CUDNN 和 WITH_PYTHON_LAYER 注释;添加 hdf5 的路径
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
  • make -j8 && make pycaffe
  • python train_it.py 开始训练

    3)测试 webcam_demo (可选)
    官方给了个 webcam 的 demo ,插上usb相机就能用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值