深度学习Mask_Rcnn——tensorflow环境配置

  • Post author:
  • Post category:其他


一 maskrcnn—tensorflow环境配置(若没有gpu,仅看 一,若需要配置gpu ,在完成一的基础上,配置二。)

1. 下载anaconda 及 pycharm

2. 在anaconda中创建python3.6虚拟环境

conda create -n Tensorflow_envs python=3.6

查看环境:conda info –envs

进入环境:activate envs_name

退出环境:deactivate

3.  创建包

—-tensorflow   1.11(1.13应该行)

—-keras    2.1.6

在安装keras2.0.8版本时,会出现下列错误,epoch一直挂在1处,不报错,一直运行的状态

—-h5py      2.10.0

—-opencv  4.5.3.56

如果出现cv2的某些函数无法读取的情况,原因可能是由于opencv库函数的版本导致的

使用终端安装依赖包时,可能会出现如下图所示的错误,其原因是,更新包的时候没有关闭pycharm

4. 配置数据集

使用labelme进行标注后,所得到的时.json文件,这时需要使用

labelme_json_to_dataset.exe(在安装的labelme文件夹下的一个文件)可执行文件对得到的json文件进行转换,正确的结果应该是得到五个文件,而labelme版本更新以后,只能得到四个文件,如下图所示,主要原因是labelme新版本的labelme_json_to_dataset.py文件和老版本比缺失了部分代码。


这时我们需要对labelme_json_to_dataset.py源码进行修改,将labelme3.2版本的labelme_json_to_dataset.py源文件后部分复制粘贴到新版本对应的源文件,并在新版本文件中导入import  yaml,然后保存。

然后成功得到info.yaml文件


通过labelme_json_to_dataset.exe,每次只能转变一个json文件,可以通过一个批处理文件一次生成(或者自己写一个代码,也可以在网上收一下,网上有很多)

进一步将批处理后的文件整理成下面四个文件,pic文件放置我们拍摄的原图,labelme_json文件存放的是上一步通过

通过labelme_json_to_dataset.exe转换后的文件,json文件是通过labelme标注后得到的文件,cv2_mask文件存放的是我们标注的mask图像

5. 源代码修改

  1. NUM_CLASSES:表示类别的个数
  2. self.add_class(“shapes”, 1, “category1”) ,self.add_class(“shapes”, 2, “category2”)  self.add_class(“shapes”, 3, “category3”) 添加标签中定义的类别
  3. #第三处,在上一步步骤2处,增加了标记的类别名后就多加elif

    for i in range(len(labels)):

    if labels[i].find(”

    category1

    “) != -1:

    # print “car”

    labels_form.append(”

    category1

    “)


    elif

    labels[i].find(“category2”) != -1:

    # print “leg”

    labels_form.append(”

    category2

    “)


    elif

    labels[i].find(”

    category3

    “) != -1:

    # print “leg”

    labels_form.append(“category3”)

    原文链接:https://blog.csdn.net/qq_24594197/article/details/109565152

这里如果没有指定的话,会报如下所示的错误

IndexError:

boolean

index did not match indexed array along dimension 0; dimension is 0 but corresponding boolean dimension is 1

本人自己做的时候,报了上述错误,修改完之后呢,部分数据可以训练,但是有部分图片呢,报错误说没有找到cv2_mask/图片的名字,后面发现是有部分图片属性里面有_json,这几个字母,把它删除后,就可以正常训练了


4.指定好路径

dataset_root_path=”mydata/”(存放打包好了的训练数据的根目录)

img_floder = dataset_root_path + “pic”

mask_floder = dataset_root_path + “cv2_mask”

imglist = os.listdir(img_floder)

count = len(imglist)

5.DETECTION_MIN_CONFIDENCE 指定的稍微小一点可以得到更多结果

运行结果如下图所示

二、配置2080GPU(2080-3090都可),详细步骤请看我的另一篇文章


http://t.csdn.cn/ui67n

注:步骤一配置的是tensorflow1.x版本,步骤二配置的是tensorflow2.x版本(如果显卡支持cuda10.0的话,相同的步骤,可以配置tensorflow1.x版本,但2080显卡支持的cuda11.5,因此在这里配置的tensorflow2.x版本),如果想用2080配置的tensorflow训练tensorflow1.x框架的maskrcnn,需要在github上下载maskrcnn_tf2源码,将mrcnn文件和tensorflow1.x里的maskrcnn文件替换,替换后可能会出现某些错误,详情请看另一篇文章


http://t.csdn.cn/ISo1m



版权声明:本文为weixin_67859995原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。