paddle 关于图像分割七日打卡心得
坚持了七天,把百度的打卡内容大概完成了,说实话,这次的内容并不简单,涉及到的知识对于一个大二的人来说具有挑战性!
下面我就总结性的写一下培训的大纲
图像分割的定义:
简单理解就是在一张图片中把不同类别用不同的色块显示出来,并且能通过算法把物体的类别判断出来。这就是我们这七天要学习并且能够实现的东西。
既然涉及到判别,那么我们就需要分割的概念
基本可以分为5类:图像分割,语义分割,实例分割,视频分割,应用场景分割
具体得分割概念呢,你们可以去百度,这里就不一一列出来,因为后面得内容才是本次课程得精华哟!
FCN网络搭建
全卷积FCN网络----intro
这里看一下老师得ppt来帮助我们理解
https://www.cnblogs.com/gujianhan/p/6030639.html
这个链接有助于大家理解全卷积FCN得概念
下面就开始我们的代码部分
import os
import random
import numpy as np
import cv2
import paddle.fluid as fluid
class Transform(object):
def init(self,size=256):
self.size = size
def call(self,inputs,label):
inputs = cv2.resize(inputs,(self.size,self.size),interpolation=cv2.INTER_LINEAR)
label = cv2.resize(label,(self.size,self.size),interpolation=cv2.INTER_NEAREST)
return inputs,label
class BasicDataLoader(object):
def init(self,
image_folder,
image_list_file,
transform=None,
shuffle=True):
self.image_folder=image_folder
self.image_list_file=image_list_file
self.transform=transform
self.shuffle=shuffle
self.data_list = self.read_list()
def read_list(self):
data_list = []
with open(self.image_list_file) as infile:
for line in infile:
data_path = os.path.join(self.image_folder,line.split()[0])
label_path = os.path.join(self.image_folder,line.split()[1])
data_list.append((data_path,label_path))
random.shuffle(data