语义分割数据集制作,如何制作自己的数据集合集,语义分割数据集制作,如何制作自己的数据集称为

  语义分割数据集制作,如何制作自己的数据集合集,语义分割数据集制作,如何制作自己的数据集称为

  语义快速scnn分割使用cityscapes数据集。如果您想制作自己的cityscapes数据集,请参考https://blog.csdn.net/weixin _ 45609455/article/details/106334688。

  本文提供了另一种方法。

  1.下载labelme提供的示例中的代码和地址。

  (1)打开示例文件-- semantic _ segmentation。

  (2)根据data_annotated中的文件存储格式,将标记的json和原图复制到data_annotated,删除data_dataset_voc文件夹,运行labelme2voc.py,labels.txt进行修改。您可以在终端输入以下命令

  python me 2 VOC . pydata _ annotated data_dataset_voc-label labels . txt(3)获取新创建的data _ dataset _ VOC文件,

  训练是原始图像和标签图像,原始图像放在其中。/data _ dataset _ VOC/jpe images,而标签图像放在。/data _ dataset _ VOC/segmentationclasspng。

  (4)检查生成的标签图是否为灰度图。下面的代码

  将numpy作为NP从pil导入Image img=Image . open(/* */1 _ min 6 278 . png )# Image location a=img . mode print(a)如果输出为L,可以跳过下面的灰度转换。否则需要把训练好的图片转换成灰度图像(有时候虽然是灰度图像,img.mode是p。

  Import v2 import OS input _ dir=。/label/#的文件夹。上一步保存的png图像out _ dir=。/label _ gray/ a=OS . listdir(input _ dir)import numpy作为NP for I in a:img=cv2 . im read(input _ dir / I)gray=cv2 . CVT color(img,2 .cvcolor _ rgb2gray)打印(NP。唯一(灰色))cv2。imencode(。png ,灰色)[1]。tofile (out _ dir/i)注意:生成的标签映射是8位映射,但不能直接用于训练。它仍然需要被转换成

  2.培训前的图片放置

  在fastscnn代码文件中,根据以下格式创建一个新的位置数据集

  数据集/

  城市/

  夹子/

  leftmg8bit/

  gtFine/

  注意:训练的原图放在leftmg8bit文件夹中,训练的标签图(灰度图)放在gtFine中。

  3.培训前修改代码

  (1)检查标签类别对应的值,运行代码如下。

  将numpy作为NP从pil导入image img=image . open(/* */1 _ min 6 278 . png )# image location img=NP . array(img)print(NP . unique(img))比如我的标签对应的值是0(背景),14,38,52,75。

  NUM_CLASS=7 #这加起来的背景类别数是7,所以在第59行,self的第41 #行做如下修改。_ key=np.array ([-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1- 20-1,#11 - 20 -1,-1,-1,-1,-1,-1,-1,#21 - 30 -1,-1,-1,-1,-1,-2,-1,-1,-1,- 40 -1,#31 - 40 -1,-1,-1,-1,-1,-1 #71 -1,-1,-1,-1,-1,-1,-1,5,-1,#81 -1,-1,-1,-1,-1,-1,-91-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-101-1,-1,-1,-1,#101 -1,-1,-1,6 # 111-113]]因为最大标签值是113,113 2(从-1开始)=115,对这115个位置初始化-1

  对于0(背景),14,38,52,75,89,113,需要分别给第2,16,40,54,77,89和115位赋值0,1,2,3,4,5,6。

  4.运行时遇到找不到图片的错误。

  一般是读取图片的地址有错误。单步执行def _ get _ city _ pairs (folder,split= train )函数,查看代码是否需要修改。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: