はじめに
MSTARは,AIシステムの開発における有用なデータセットと言える.ここでは,MSTARの利用方法およびデータ加工のためのサンプルコードについて記事にする.
MSTARとは
SAR(合成開口レーダ)画像の有名なデータセットである.
図:2S1のレーダ画像
入手方法
1.下記でアカウントを作る
https://www.sdms.afrl.af.mil/index.php?collection=registration
2.データをダウンロードする
*一般的にSARデータによる分類・識別に関する研究では,MSTAR Public Data Productsを使う.
以下をダウンロードする.
MSTAR Clutter (CD1, CD2);
MSTAR Target Chips (CD1);
MSTAR/IU Mixed Targets (CD1, CD2)
MSTAR/IU T-72 Variants (CD1, CD2)
使い方
各ファイルの目標は次のとおりになっている.
MSTAR Clutter: ターゲットなしの雑音画像
MSTAR Target Chips: T72, BMP2, BTR70
MSTAR/IU Mixed Targets:BTR60, 2S1, BRDM2, D7, T62, ZIL131, ZSU23
MSTAR/IU T-72 Variants: 異なる型番のT-72タンク
*フォルダ内の(数字)_DEGはオフナディア角を示す.
*複素画像と強度画像がある.
データの加工
次のコードでデータセットファイルを作成してみた.
# -*- coding: utf-8 -*-
"""
Created on Sun Oct 29 15:20:09 2017
"""
from PIL import Image
import numpy as np
num = 100 # 使用する画像枚数
typenum = 2 # 目標種類数
# 適当に事前割り当てを作成(仮処置)
imgset = np.zeros((num * typenum, 200**2))
for m in range(typenum):
for l in range(num):
# 元となる画像の読み込み
img = Image.open('%s__ (%s).jpg' %(m + 1, l + 1))
print('%s__ (%s).jpg' %(m + 1, l + 1))
img = np.array(img)
# 画像ベクトル生成
k = 0
tmp = img[k]
for k in range(len(img) - 1):
tmp = np.r_[tmp,img[k + 1]]
imgvec = tmp
# ゼロ埋め(仮処置)
nnn = 200**2 - len(imgvec)
imgvec = np.r_[imgvec, np.zeros((nnn - 1,)), m + 1]
imgset[l + m * 100] = imgvec
print(imgvec)
imageData = imgset
np.savetxt('test.txt', imgset[0:3, 0:4], delimiter = ',')
注)jpgの画素数がばらばらなので少し扱いづらい
・なんでわざわざtxtファイルにしているのか?
⇒下記でtxtでデータセットを作っているため.愚直に真似してみた.train生成にはまだ成功していない...
https://qiita.com/tommyfms2/items/c3fa0cb258c17468cb30
・なんなんだこの吐き気のするコードは?
⇒ごめん.
まとめ
MSTARはつかえる.