基于mask rcnn的三维物体分割

本文介绍如何基于Mask R-CNN开源项目进行三维物体分割的实践,包括数据准备、训练过程和源代码解析,适用于工件检测等应用。
摘要由CSDN通过智能技术生成

原文地址:http://siligence.ai/article-446-1.html
前言
最近迷上了mask rcnn,也是由于自己工作需要吧,特意研究了其源代码,并基于自己的数据进行训练~
本博客参考https://blog.csdn.net/disiwei1012/article/details/79928679#commentsedit

实验目的在这里插入图片描述在这里插入图片描述在这里插入图片描述哎~说多了都是泪,谁让我是工科生呢?只能检测工件了。。。做不了高大上的东西了,哈哈!

主要参考及工具

基于Mask RCNN开源项目:https://github.com/matterport/Mask_RCNN

图片标记工具基于开源项目:https://github.com/wkentaro/labelme

训练工具:win10+GTX1060+cuda9.1+cudnn7+tensorflow-gpu-1.6.0+keras-2.1.6,140幅图像,一共3类,1小时左右

有关labelme的使用可以参考:https://blog.csdn.net/shwan_ma/article/details/77823281](https://blog.csdn.net/shwan_ma/article/details/77823281

有关mask-rcnn和Faster RCNN算法可以参考:

https://blog.csdn.net/linolzhang/article/details/71774168](https://blog.csdn.net/linolzhang/article/details/71774168

https://blog.csdn.net/lk123400/article/details/54343550/](https://blog.csdn.net/lk123400/article/details/54343550/

准备训练数据集
这是我简历的四个文件夹,下面一一道来~
1.pic
在这里插入图片描述 这是训练的图像 ,一共700幅
2.json
在这里插入图片描述这是通过labelme处理训练图像后生成的文件
3.labelme_json

在这里插入图片描述在这里插入图片描述
这个是处理.json文件后产生的数据,使用方法为labelme_json_to_dataset+空格+文件名称.json,这个前提是labelme要准确安装并激活。但是这样会产生一个问题,对多幅图像这样处理,太麻烦,在这里提供一个工具,可以直接在.json文件目录下转换所有的json文件,链接:https://download.csdn.net/download/qq_29462849/10540381。
4.cv2_mask文件
由于labelme生成的掩码标签 label.png为16位存储,opencv默认读取8位,需要将16位转8位,可通过C++程序转化,代码请参考这篇博文:http://blog.csdn.net/l297969586/article/details/79154150
在这里插入图片描述 一团黑,不过不要怕,正常的~

源代码

运行该代码,需要安装pycocotools,在windows下安装该工具非常烦,有的可以轻松的安装成功,有的重装系统也很难成功,哎,都是坑~~关于Windows下安装pycocotools请参考:
https://blog.csdn.net/chixia1785/article/details/80040172]
(https://blog.csdn.net/chixia1785/article/details/80040172,
https://blog.csdn.net/gxiaoyaya/article/details/78363391]
(https://blog.csdn.net/gxiaoyaya/article/details/78363391
测试的源代码

Github上开源的代码,是基于ipynb的,我直接把它转换成.py文件,首先做个测试,基于coco数据集上训练好的模型,可以调用摄像头~~~

[代码]py代码:`import os
import sys
import random
import math
import numpy as np
import skimage.io
import matplotlib
import matplotlib.pyplot as plt
import cv2
import time

Root directory of the project

ROOT_DIR = os.path.abspath("…/")

Import Mask RCNN

sys.path.append(ROOT_DIR) # To find local version of the library
from mrcnn import utils
import mrcnn.model as modellib
from mrcnn import visualize

Import COCO config

sys.path.append(os.path.join(ROOT_DIR, “samples/coco/”)) # To find local version
import coco

Directory to save logs and trained model

MODEL_DIR = os.path.join(ROOT_DIR, “logs”)

Local path to trained we

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值