**
问题1: 语义分割的groundtruth是一个灰度图片,如何把它作为label来用?**
1)可制作两个lmdb文件,一个Data项是原始图像,Label可为0,另一个Data项为分割后的标注图像,Label为0。使用中caffe是支持多个lmdb输入的。
2)将原始图像(如3通道),标注图像(1通道),合在一起成4通道,然后写在一个lmdb中,然后导入后使用Slice层将其切开。这种方法就不能直接使用现有的convert_imageset来转换了,可参考其实现自己写一下。
这个问题没有彻底解决,对image 和label 生成两个lmdb,我没有找到如何使用的方法,待后续了。。。
问题2:如何批量把.jpg 转化为 .png 或者其他格式?
使用imagemagic 即可解决:用linux脚本处理
for file in *.pngdo convert $file ${
file%%.*}.jpg
done
解释一下${file%%.*}
的用法:${name%%word}
从name的尾部开始删除与word匹配的最长部分,然后返回剩余部分
当然也可以写成一行:for file in *.png; do convert $file ${file%%.*}.jpg;done
问题3:如何批量修改图片大小?
方法类似于问题2
1.保持比例缩放
for file in *.jpgdo convert -resize 600x600 ${
file} ${
file}
done
2.不保持比例缩放:
for file in *.jpgdo convert -resize 600x600! ${
file} ${
file}
done
问题4 :如何生成groundtruth 图片?
1) 安装 labelme (https://github.com/wkentaro/labelme)
//Ubuntu 14.04 / Ubuntu 16.04
// Python2
//sudo apt-get install python-qt4 # PyQt4
sudo apt-get install python-pyqt5 # PyQt5
sudo pip install labelme
// Python3
sudo apt-get install python3-pyqt5 # PyQt5
sudo pip3 install labelme
2) labelme 标注,保存生成.json 文件
3)生成dataset 文件夹:
labelme_json_to_dataset 你的路径/你的json文件名.json //这里的文件名根据自己的实际情况更改
即可得到一个文件夹,有四个文件,*.png, info.yaml , label.png, label_viz.png。 其中label.png即是我们要的label_data.
这是一个bug:lableme 标注的图片,标签与颜色不一致,如下图,没有找到解决办法,有办法的同学请私信我:
把彩色图片转化为灰度图:convert image.jpg -colorspace Gray image-bw.jpg
先写到这里。。。