Cifar100の画像の取り出しについて

どうも、ぶるめです。
最近卒業研究で機械学習をやっていますがその中で探すのに苦労した情報とか多少自分で作ったプログラムとかそういったものをブログに載せておくと後々誰かの役に立つかもしれないなあと思いとりあえず書いてみています。

今回はCifar100から画像データとしてデータを抽出する方法です。
Cifar100そのものは検索すれば出てきますしそこから自由にダウンロードすることが可能になっています。
そのデータを使って画像を100個のカテゴリーのどれに該当するかを識別することが出来るわけですが、研究に使いたい自分としてはそこに自分の学習用の画像も追加したいわけです。言うなればCifar101とか102とかにしたいわけですが、肝心のCifar100に使われているデータセットは既にLMBDの形式になっていて直接閲覧出来る状態ではありません。
そこで画像として抽出する方法を検索したわけですがそのまま動いてくれなかったりで苦労しました。
そして動いたには動いたのですがカテゴリーごとに出力してくれないんですよね、見つけたところのは。
画像の数は5万枚もあるのでこれを手作業でカテゴリーごとに分けてたらキリが無いので画像として出力する時点でカテゴリーごとにフォルダ分けしてくれるように改造しました。
参考にしたのはここのブログ様です。そこのブログが参考にしていたブログも参考にしています。


from PIL import Image
import os
import pickle

class Cifar100:
topdirname = 'cifar-100-python'
width, height = 32, 32
def __init__(self, extractedpath):
dirpath = os.path.join(extractedpath, Cifar100.topdirname)
with open(os.path.join(dirpath, 'meta'), 'rb') as fp:
self.meta = pickle.load(fp)
self.fine_label_names = self.meta['fine_label_names']
self.coarse_label_names = self.meta['coarse_label_names']
with open(os.path.join(dirpath, 'train'), 'rb') as fp:
self.train = pickle.load(fp)
with open(os.path.join(dirpath, 'test'), 'rb') as fp:
self.test = pickle.load(fp)

def _out_images(self, path, data, filename, coarse, fine):
for (d, f, cl, fl) in zip(data, filename, coarse, fine):
im = Image.new('RGB', (Cifar100.width, Cifar100.height), (0xff, 0xff, 0xff))
putdata = []
for wh in range(Cifar100.width * Cifar100.height):
r = d[wh]
g = d[wh + Cifar100.width * Cifar100.height]
b = d[wh + 2 * Cifar100.width * Cifar100.height]
putdata.append((r, g, b))
im.putdata(putdata)
super_class = cifar.coarse_label_names[cl]
sub_class = cifar.fine_label_names[fl]
if not os.path.isdir(path + "/" + super_class):
os.mkdir(path + "/" + super_class)
if not os.path.isdir(path + "/" + super_class + "/" + sub_class):
os.mkdir(path + "/" + super_class + "/" + sub_class)
im.save(os.path.join(path + "/" + super_class + "/" + sub_class, f))
print(os.path.join(path + "/" + super_class + "/" + sub_class, f))

def out_images(self, path):
trainpath = os.path.join(path, 'train')
if not os.path.isdir(trainpath):
os.mkdir(trainpath)
self._out_images(trainpath, self.train['data'], self.train['filenames'], self.train['coarse_labels'], self.train['fine_labels'])
testpath = os.path.join(path, 'test')
if not os.path.isdir(testpath):
os.mkdir(testpath)
self._out_images(testpath, self.test['data'], self.test['filenames'], self.test['coarse_labels'], self.test['fine_labels'])

if __name__ == '__main__':
cifar = Cifar100('./')
cifar.out_images('./data')

image_label.py




先ほどのコードで画像が自動的にカテゴリーごとに分類されていると思います。そこに自分の画像を加えるなりして再びLMDB化するにはファイルのリストが必要なわけですが、それも手動でやるととても面倒なのでプログラムを使います。

import os

if __name__ == "__main__":
dir = './data/train'
files = os.listdir(dir)
f = open('list0.txt', 'w')
f1 = open('list0_1.txt', 'w')
f2 = open('cifar_map.txt', 'w')
f3 = open('cifar_map_1.txt', 'w')
num = 0
num1 = 0
for file in files:
dir2 = file
f3.write(file + ",")
files2 = os.listdir(dir + '/' + file)
for file in files2:
dir3 = file
f2.write(file + ",")
files3 = os.listdir(dir + "/" + dir2 + "/" + file)
for file in files3:
f.write(dir + '/' + dir2 + '/' + dir3 + "/" + file + ' ' + str(num) + '\n')
f1.write(dir + '/' + dir2 + '/' + dir3 + "/" + file + ' ' + str(num1) + '\n')
print "wrote"
num += 1
num1 += 1

f.close()

filenameget.py

これで多分OKです。正直あんまり無い知識で適当に書いたのであんまり良いコードではないだろうなとは思いますがとりあえず動きます(笑)
Githubにファイルをアップしてあるのでリンクからダウンロードできます。
スポンサーサイト



  1. 2017/11/18(土) 00:25:31|
  2. IT
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:0

タイフーン

今日は台風でめっちゃ風の音うるさいですね。
元々最強()の台風とか言われてただけはあるのかな。
最近フルブで友達の冷やしスキュラがゼノン初めて中々よかったです。
最近まったく更新できていなかったのでとりあえず更新しようと思います。
とりあえず描きためていたリザードンとかリザードンとかを載せていきます。
大分量があるので続きから。 続きを読む
  1. 2014/10/14(火) 02:22:40|
  2. ブログ
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:0

オカメインコがやってきた

本日家にオカメインコがやってまいりました。
結構前から計画していたことなのですが夏休み中にインコの雛を育てようということで今日オカメインコの雛を買ってまいりました。
雛と言っても結構もう大きいのですがまだ餌を手からあげないとあまり食べない時期なので独り立ちはまだもう少しかかる状態のものです。
というわけで連れて帰ったばかりのときの写真です。
IMGP0402.jpg
IMGP0408.jpg

この時点で手にはもう乗れます。
今まで飼ってた鳥さんは大人しく手にはのってくれなかったですからね~。
腕とか肩になら乗ってくれたんですけど乗った後に噛んだりするから結構危険でした。
でも結構餌あげるのには苦労しました。
緊張しちゃって中々食べてくれなくて家来たばっかの時はケージの中でまったく動きもしなかったのでかなり心配でした。
しばらくしてから結構なごんできたようなのでもう一度餌やりをチャレンジしたところ突然良く食べるようになってようやく鳴き声も出すようになりました。
めっちゃ安心しました。
とりあえずこの調子で慣れさせていきたいと思います。
  1. 2014/08/15(金) 22:14:17|
  2. ブログ
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:0

ブログのリニューアル的なもの

かなり長い間ブログを放置してしまいました。
もう何か月も広告出っ放しでしたね。
ちょっと前にTwitterでなんとなくブログのURLを検索したら
「リザードンの絵がいっぱいあるブログがある!」
って他の人に紹介してるのがあってそれでまた頑張ってリザードン載せてこうかなと思ったわけです。

で、せっかくひさしぶりに再開するわけだからTOP絵なんかも変更して新しく初めていこうと思ったわけです。
そしてこのたびブログ名を変更となりました。
今まではZEONの青い白龍のブログとしてやってきたわけですが、
あまりにも長い上に青なのに白龍というよくわからん名前になっていたため、これからは
リザードン遅報
という名前に改めました。
名前の由来は当然リザードンなわけですが、これからもバンバンリザードン描くぞ~という意気込みも込めてこんな名前にしました。
また、速報ではなく遅報なのは別にニュースサイトをするつもりでもないし、何より僕の更新スピードの遅さも含めての遅報というわけです。

というわけでコレがリザードン遅報となってからは初の記事になるというわけです。
で、肝心のTOP絵がこちらッ!っといってもおそらくもう既に実際にTOPの方で見てるでしょうが一応ここに形式として公開しておきますw
リザードン ブログトップ文字なし

文字は外してあります。
ちなみに一番右側の子はアニメポケットモンスターにも登場している♀のリザードンのリサちゃんです。
ということで左側はサトシのリザードンということにしておこう(適当
真ん中のメガシンカした2匹は特になんの設定もありません。
どっかのリザードンです。
喧嘩するほど仲がいいです。(意味不明

また、これに合わせて(?)背景なども変更になりました。
それがこちらになります。
クリックするとかなり縦に長い画像が表示されてしまうので注意してください。
ブログ背景0806

みんな飛んでます。
とりあえず今までに描いたことのある飛べるドラゴンたちを描いてみました。
リザードンはドラゴンじゃないけど。
そして追加でオンバーンが実は初描きで一番下にいます。
ちょっと難しかったですね~なんだか色々細かいとこが。
まあでもそこそこのデキになったとは思っています。
小さいから分からんってのもあるでしょうが。

そして背景のタイルはかなーり適当に作ってあるのでここで公開するほどでもないかなということでスルーです。

以上の3つが今回から新しく使用することになった絵たちです。
今まではアナログで描いた線をデジタルで色を塗ったものを使用していましたが流石にもう何年前の絵だよって感じですね。
今回は完全に最初からデジタルで描いてます。
あのころは・・・いちいちスキャンしてて面倒だったな(コナミ

というわけでこれからもリザードン遅報をよろしくお願いします!

続きの方にブログを休止していた間に描いた絵を載せていくのでよかったら見てください。 続きを読む
  1. 2014/08/10(日) 23:09:52|
  2. ブログ
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:0

ポケモンセンター行ってきました

4月19日にメガリザードンのグッズが発売されたのでポケモンセンター行ってきました。
発売日当日にお買い物とか初めてです多分。
買ったやつです。
HI3G0118.jpg
メガリザードンXY2匹両方連れて帰りました!
これはGETせねばと発売日にポケセンに行ってきました。
すべてはこれの為なのです^q^
ちなみにぬいぐるみをポケモンで買うのも初めてです。

HI3G0119.jpg
でポケセン内で偶然見つけたコレ。
というかぬいぐるみの方と同時発売だったようです。
これも見つけたからにはGETせねばと手に入れてきました。
普通のリザードンのポーズもちゃんと2種類ついてます。
あとはメガストーンですがコレはつけてもなあって感じですね・・・w

HI3G0120.jpg
あとはクリアファイルですね。
これは多分前からあったやつだと思います。
ポケモンカードの最強メガシンカの奴だと思うので。

HI3G0122.jpg
コレに入れてもらいました。
大きいもの買うとこんな袋に入れてもらえるんですねー。
そういえばメガシンカ系のぬいぐるみを10体ずつ位で何種類も買ってってる外人お父さんっぽい人いました。
すげーなおい、何人家族ですかァ~?

HI3G0123.jpg
こっち裏面です。
もっとこの2匹の絡みが見てみたいのぉ・・・
今年の映画に期待ですねー。

HI3G0124.jpg
そしてぬいぐるみ2体で対になっているのだからッ!
絡ませないと!
でキスでもさせるかー^q^と思ったらどう見ても噛みついてます。
でもこれはこれでイイ・・・
とくにメガリザードンYの表情とか・・・

メガリザタグ_convert_20140426212053
ちなみにこれがぬいぐるみについてたタグ的なやつです。
結構いいのぉ。


あとはいつも通り最近描いたやつ貼ってきます。
リザゲッコバトル
スマブラ参戦記念に描いたヤツです。
ゲッコウガ初描きですね。
リザードンの角度に対してゲッコウガの角度がおかしいですが気にしてはいけない(戒め

リザードンZ
これは僕のかんがえたさいきょうのリザードン・・・
メガリザードンZですw
色思いつかなかったんでノーマルから拝借。

Zドラゴン
これはZガンダムをドラゴンにしてみようと思って描いた奴です。
まあ一応オリジナルドラゴンということにしよう(提案

こっからはフルブコックピット画像シリーズ。
満足クワトロ
満足同盟に入ってた時代のクワトロ大尉。

ばーにぃ
バニーガールのバーニィ。
描いた順番としては一番最初。

リザードンコクピット
でついでにコックピットに座ってるっポイリザードン。
魔王様にうんこ我慢してるって言われました。
  1. 2014/04/22(火) 09:06:54|
  2. ブログ
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:2

明日から新学期&絵とか

ついにクッソ長い休みも終わって新学期が明日から始まることになりました。
でもいざ終わるってなるとつらいです。
あと休み中にもう少し色々できればよかったなあとも。
な・・・夏休みは頑張るから(震え声
一応JAVAの資格の勉強とかはしてるけどあんまり進んでないしねー。
なんとか終わらせなとおもって一日8ページずつやるとかいう僕らしくない方法で進めております。
学校始まったらちゃんと進められるだろうか・・・。
絵ももうちょっと色々描きたかったかも。
というかアレな絵ばっか描いてる感あります。
でもそういう方がやる気結構でるんだよなあw

とりあえず描いた絵でも載せてきます。アレじゃないやつ限定で。
細線リザードン
これは細い線でリザードンが描きたかっただけの絵。

じょじょりざーどん
これはエイプリルフールのときにこれからはこの絵柄でいきます!とか言って描いた奴ですなー。

シロン
レジェンズ10周年ということで描いたシロンさん。
普段あんま描かないからね。一応頑張って描いたよ。
でもシロンさんなんか上手く描けないんだよなあ。

Zガンダム
Zガンダム。初めてガンダム描きました。
まあ散々Zガンダム好きだって言っておいてまだ一回も描いてなかったから顔だけ描きました。
ガンプラとアニメの絵見ながらだからチョイチョイアニメとガンプラのデザインが混ざってたり。
影のつけ方は映画版Zのを参考に。
ロボットアニメは影のつけ方がイケメンだなと思った(コナミ


↓あとはね・・・こういう系の絵ばっか描いてたんでもうここに載せるのは限界があったり。
ふりゃがぶみになし
ふりゃがぶなし
リザルギHなし
とりあえずギリチョンおkなのを載せてます。
おkっていうかアレを外しておkにしただけだけど。
最初の2枚のガブリアスは使い回しとか言ってはいけない(戒め
元々2枚目を描くつもりがフライゴンが予想外に小さく描けちゃったから1枚目もついでに完成させただけなのよ。
1枚目は2枚目の副産物なんだよ。
個人的には1枚目のが線画上手く描けたなって思ったけどね!
まあ工口好きな人はpixivで見てやってください。

で描いた絵は大体載せましたがもうちっとだけ続くんじゃ。
今回は長いね。更新あんましてなかったからね。
先日ケロロ軍曹のドラゴンウォリアーズ見たんで感想とスクショでも載せときます。
元々前から気にはなってたんですよ。
それはアッシマーが出るって聞いたからなんですけどね。
だからちゃんとアッシマーのスクショはばっちりとってあります。
1
これOPのスクショです。
画面右上にアッシマーが小さく映っております。
OPにまで出張ってくるなんてさすがだね。
2
遂に出た!アッシマーがッ!
家割って登場とは・・・。
ちなみにこれはアッシマー型旅客機のようです。
4
ドラゴンに襲われて変形するアッシマー・・・のはずだが客室は変形できず足だけ。
ナレーションのZ世代残念!はふいた。
5
アッシマーがッ!
墜落して犬上家になってしまいました。
ここまでアッシマーがいっぱい出てくるなんて思ってなかったんでちょっとびっくりです。
3
6
8
そのほかガンダムネタ。
F91はちゃんと残像も出てるね。
7
でせっかくのドラゴン映画なのにドラゴン関連の小ネタはこれだけという悲しみ。
しかも渡してるのガンプラの箱だし。
結局ガンダムネタしかねえぞ!

とまあ銀魂とかに比べるとネタのバリエーションがガンダムに寄りまくりですが微妙にATフィールドとかも出てたんでさり気ないパロディはチョイチョイあるようです。
小隊ドラゴンはまあ中々いいデザインでしたな。
個人的にはもっとドラゴンが色々してるところが見たかったけど元が蛙漫画だからしょうがないね。

とりあえずこんなところで。
まあ学校始まったらまた何か書けることもできるかもなんでその時にまた更新したいと思っとります。
  1. 2014/04/08(火) 20:58:53|
  2. ブログ
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:3

春休み終盤

こんばんわ。
もう春休みがほぼ終わりかけてます。
明日は学校の健康診断なんですねー。
それ終わってしばらくしたらもう学校始まっちゃいます。
長かったけど大体寝てた感ある悲しみ。
少しでも休み中に何か出来ればだから何かセントナー。

で今回もいくつか絵描いてきました。
最近えってぃなのばっか描いてたんで全部は載せらんないですけどね。
リザードン3 1
変なポーズのリザードン。
Twitterで見たフライゴンのポーズを参考にしようとした結果のポーズ。
ちなみに完成品はここでは乗せられない状態になりました。

リザバンtnなし
こちらも完成品h(ry
イメージとしてはポケダンのチームFLBのあの2匹です。リザードンとバンギラスは本当可愛いからもっと絡んでほしかった・・・グフッ

斜め上リザードン_convert_20140326234343
今日描いたクッソまじめなリザードン。
いつも同じようなアングル&ポーズなのでいつもと違う視点に挑戦、場のピアニスト(お通語
線の細さがいい感じになったかなと思った(こなみ
サイズがかなり大きいのでここでは圧縮してます。

リザードン尻尾ふり
最後はリザードンの尻尾をふるGIFアニメーション。
クリックで動きます。
枚数は3枚ですが今回はあいだに補完フレーム的なものをいれてみました。
ちょっとはそれっぽくなっただろうか。


以上の4つです。
他の絵や完成品が見たい方やむらむらしてる方はpixivの方も見てやってください。
  1. 2014/03/26(水) 23:53:23|
  2. ブログ
  3. | トラックバック:0
  4. web拍手 by FC2 | コメント:0