kaggle Airbus Ship Detection Challenge 船舶检测实战(1):提取正样本

报名参加了kaggle 8月的最新比赛 Airbus Ship Detection Challenge
发现有人已经开源把准确率提高到了84%
怀着“知其不可而为之“的勇气,还是把这个比赛当作了kaggle比赛的首战

第一天的工作:

提取正样本
从给定train中提取出正样本,减少训练样本,毕竟GPU不想选太好的
大概从10万张训练样本中提取了2.7万的正样本

import pandas as pd
import os
import numpy as np
import csv
import shutil

file_read = open("train_ship_segmentations.csv", "r")
reader = csv.reader(file_read)

fileHeader = ["ImageId", "EncodedPixels"] # 建立表头
file_write = open("positive_example.csv", "w")
writer = csv.writer(file_write)
writer.writerow(fileHeader)

positive_example_dic = {}

# 生成保存 positive examples 信息的 csv
for item in reader:
    if reader.line_num == 1: # 忽略第一行表头
        continue
    else:
        if item[1] != '':
            writer.writerow(item) 
            positive_example_dic[item[0]] = item[1] # 生成保存 positive examples 图片名的字典,不用列表,因为字典查找更快

file_read.close()
print('csv done!')

# 把 postive examples 移动到一个文件夹
original_sample_path = './train'
positive_sample_path = './positive_samples'
file_set = os.listdir(original_sample_path)
count = 0 # 记录positive example个数

for i in file_set:
    if i in positive_example_dic:
        example = os.path.join(original_sample_path,i)
        count += 1

        shutil.copy(example, positive_sample_path)

print('copy positive samples successfully, there are '+ str(count)+' postive examples!')

得到一个之保存正样本信息的 csv 和保存所有正样本图片的文件夹

第二天的工作:

处理 csv 为训练格式

因为毕竟是比赛,所以接下来的博客我会设置为私密模式,待比赛结束后一齐公布,如果有兴趣的同学可以留下联系方式,我们一起探讨
比赛目标:争取能超过84.7%那堆吧,哈哈哈哈哈哈
更新一下,提交了一个demo,效果已经超过目前所有kernel上提供的效果了,怎么优化估计会略让人头疼。

你可能感兴趣的:(kaggle,船舶检测)