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

一 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处,不报错,一直运行的状态

深度学习Mask_Rcnn——tensorflow环境配置_第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文件和老版本比缺失了部分代码。

深度学习Mask_Rcnn——tensorflow环境配置_第2张图片

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

 深度学习Mask_Rcnn——tensorflow环境配置_第3张图片

深度学习Mask_Rcnn——tensorflow环境配置_第4张图片

然后成功得到info.yaml文件

深度学习Mask_Rcnn——tensorflow环境配置_第5张图片

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

进一步将批处理后的文件整理成下面四个文件,pic文件放置我们拍摄的原图,labelme_json文件存放的是上一步通过通过labelme_json_to_dataset.exe转换后的文件,json文件是通过labelme标注后得到的文件,cv2_mask文件存放的是我们标注的mask图像

 深度学习Mask_Rcnn——tensorflow环境配置_第6张图片

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,这几个字母,把它删除后,就可以正常训练了

深度学习Mask_Rcnn——tensorflow环境配置_第7张图片深度学习Mask_Rcnn——tensorflow环境配置_第8张图片

4.指定好路径

        深度学习Mask_Rcnn——tensorflow环境配置_第9张图片

        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 指定的稍微小一点可以得到更多结果

运行结果如下图所示

深度学习Mask_Rcnn——tensorflow环境配置_第10张图片

二、配置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

你可能感兴趣的:(tensorflow,深度学习,python)