CRF(条件随机场)是否仍在语义分割任务中积极使用,还是当前的深度神经网络使它们变得不必要?我已经在学术论文中看到了这两个答案,并且由于实施和推断似乎相当复杂,我想在尝试之前对它们发表意见。
谢谢
我有一个 U-Net 模型,带有来自自动编码器的预训练权重,自动编码器构建了包含 1400 张图像的图像数据集。我正在尝试使用临床数据集的 1400 个标记图像执行语义分割。该模型在我的测试图像数据集上表现良好iou_score=0.97,但是当我尝试在数据集之外的随机图像上测试它时,我得到了非常糟糕的分割结果。我不明白其中的原因。请检查我的代码并建议我哪里错了。
对我的数据集和标签进行训练:
import cv2
import numpy as np
from matplotlib import pyplot as plt
#########################################################################
#Load data for U-net training.
#################################################################
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
os.environ["SM_FRAMEWORK"] = "tf.keras"
import glob
import cv2
import os
import numpy as np
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
train_images = []
#Resizing images is optional, CNNs are ok with large images
SIZE_X = 256 #Resize images (height = X, width = …Run Code Online (Sandbox Code Playgroud) python image-segmentation keras tensorflow semantic-segmentation
我想使用 yolo8 分割图像,然后为图像中具有特定类别的所有对象创建一个掩码。
我开发了这段代码:
img=cv2.imread('images/bus.jpg')
model = YOLO('yolov8m-seg.pt')
results = model.predict(source=img.copy(), save=False, save_txt=False)
class_ids = np.array(results[0].boxes.cls.cpu(), dtype="int")
for i in range(len(class_ids)):
if class_ids[i]==0:
empty_image = np.zeros((height, width,3), dtype=np.uint8)
res_plotted = results[0][i].plot(boxes=0, img=empty_image)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,res_plotted是一个对象的遮罩,采用 RGB 格式。我想将所有这些图像相互添加,并为所有 0 类对象创建一个掩码(在本例中是行人)
我的问题:
我正在研究" Mask R-CNN用于对象检测和分割".因此,我已阅读呈现原始研究论文Mask R-CNN为目标检测,也发现了我的几个实现Mask R-CNN,在这里和这里(被Facebook人工智能研究小组称为detectron).但他们都使用coco数据集进行测试.
但是,对于使用具有大量图像的自定义数据集进行上述实现的培训,我有点困惑,并且对于每个图像,存在用于在相应图像中标记对象的掩模图像的子集.
所以,如果有人可以为此任务发布有用的资源或代码示例,我很高兴.
注意:我的数据集具有以下结构,
它包含大量图像,每个图像都有单独的图像文件,将对象突出显示为黑色图像中的白色色块.
这是一个示例图像和它的掩码:
图片;
面具;
python machine-learning object-detection computer-vision semantic-segmentation