アプリとサービスのすすめ

アプリやIT系のサービスを中心に書いていきます。たまに副業やビジネス関係の情報なども気ままにつづります

川田まみの全ベストシングル、アルバムを聴いた僕がオススメする良曲26選【シャナ系あり】

f:id:trafalbad:20160827153041j:plain
川田まみさんの曲はアニメ界では有名で、アップテンポ系からバラードまで心が動かされる曲ばかり。

川田まみは2001年から活動を開始し、音楽制作プロダクション「I’ve」のメンバーとして、アニメやゲーム関連の楽曲を多くリリース。2016年5月21日の「MAMI KAWADA FINAL F∀N FESTIVAL "F"」を最後に引退しました。

とても悲しかったのですが、残された名曲はどれも心に残るものばかりで、良質なインスピレーションをかき立ててくれます。今回は川田まみの曲を全曲聴いた自分が、その中からベストの26曲を選曲して紹介します
*個人的な好みが色濃く出てしまって、どの人にも好みが合うとは限りませんが、どれも自信をもってオススメできる曲構成にしたつもりです。

目次
クールでカッコイイ系
アップテンポ系
バラード系
聴いてて心地いい曲

クールでカッコイイ系

1. U/N

u/n

u/n

灼眼のシャナFinal Ⅲの15話の挿入歌。サビから徐々に盛り上がり、曲の1番のクライマックスの場面でアニメにぴったりのカッコイイシーンを想起させる。灼眼のシャナのオープニングと一緒に見ても鳥肌ものですが、個人的には漫画の「ハンターハンター」のシュールな場面をこの曲を聴きながら読むのが最高です。川田まみさんの中で1番好きな曲の1つ。



linkage

linkage

linkage


『LINKAGE』は、川田まみの3作目のオリジナルアルバムの中の一曲。曲自体は切ない流れになってますが、その中に含まれるサビのシュールさ、かっこよさは秀逸。なぜアニソンにならなかったのか不思議なくらいです。個人的には漫画「ONE PIECE」の新世界、パンクハザード編と合わせて読むのが好き。カッコいいバトル漫画との相性は抜群です。



PSI-missing

PSI-missing

PSI-missing


PSI-missing』とは、川田まみメジャー6thシングルで、アニメ『とある魔術の禁書目録』オープニングテーマ。タイトルを和訳するなら「サイ消失」でこれは超心理学(超能力、超常現象)の用語。曲自体はアニソンに抜擢されるだけあってクオリティも抜群です。始めからかっこいいテンポで始まり中盤のサビでかっこよさは最高潮になります。曲自体はかなり川田まみの中でレベルが高い方だと思います。





parablepsia

parablepsia

parablepsia


川田まみ 5thアルバム「PARABLEPSIA」
の一曲。序盤は曲としてのインパクトは弱めですが、1:17秒からの「回りめぐる世界〜」から突然カッコよくなります。アルバム「PARABLEPSIA」の中では代表曲であり、個人的にかなりの名曲の部類に入る。全体として盛り上がりは少なく、サビでクールに決めるところが特徴といえます。




serment

Serment

Serment


表題曲の「Serment」は、テレビアニメ『灼眼のシャナⅢ-FINAL-』の後期オープニングテーマ。動画で見れば分かる通り、切ない⇨カッコいいという流れで、アニメの映像との相性は抜群。数の多い川田まみの曲の中で、アニメのオープニングに選曲されるのはかなりユーザーからの支持率は高いのが特徴です。「sermant」はアマゾンレビューでも抜群の支持率でした。



going back to square

Going back to square one

Going back to square one


2012年8月8日にジュネオン・ユニバーサル・エンターテイメントジャパンより発売された川田まみの4枚目のオリジナルアルバム『SQUARE THE CIRCLE』の一曲。中盤のサビはシュールに決める流れで、全体的にテンポの良いリズムとカッコいいメロディが融合しています。個人的にこちらも数ある川田まみの曲の中で、アニメに起用されてもおかしくないレベル。



Enchantress

Enchantress

Enchantress


TVアニメ「ヨルムンガンド」OPテーマ。序盤はテンポの低いメロディが流れますが、中盤から一気にカッコよくなります。特に 1:14秒からの「胸を突く雷鳴〜」の部分がクールでカッコよく、アニメのオープニングと見ると鳥肌もの。収録アルバム「PARABLEPSIA」の中ではかなりクールな面でいい曲の部類に入ります。





HOWL

HOWL

HOWL


「CRブラックラグーン2」テーマソング。タイヨーエレックのパチンコ機『CRブラックラグーン2』のテーマソングとしてアルバム『parablepsia』でCD化された。序盤から容赦なく、カッコイイテンポで曲が展開していきます。中盤からテンポが早くなり、テーマソングとしてはかなり相性がいい。収録アルバム『parablepsia』はかなり川田まみの曲では名曲が多く、このHOWLもその中で名曲の1つだと思います。


TRILL

TRILL

TRILL

川田まみ、2年ぶりとなる待望の2ndアルバムSAVIAに収録。序盤からじょじょにテンポが上がっていくが、全体としてとてもクールな曲。パドル漫画のシュールなワンシーンがピッタリです。個人的にはテニプリの全国大会仁王戦vs不二戦のときに聴くのが好き。






masterpiece

masterpiece

masterpiece


ロックテイストと打ち込みを多用したデジタルサウンド、エフェクトの使用、途中にコーラスがあるといった複雑な曲構成は、「科学」と「魔術」が交錯する『とある魔術の禁書目録』の世界観や登場キャラクターの全体的な複雑さをイメージしたものとのこと[2]。「masterpiece」は、テレビアニメで使用される以前の2008年12月末頃より、『とある“ラジオ”の禁書目録』、『井口裕香の超ラジ!Girls』などで先行オンエアされていた。



CLIMAX

CLIMAX

CLIMAX

linkageに収録されている曲。どちらかといえばちょっとテンポ低めだが、シュールな部分は特に際立っている。サビの部分から一気に盛り上がるのが一番印象に残ってます。1:03からのサビの一気に盛り上がるところが印象に残る曲。




アップテンポ系


緋色の空

緋色の空

緋色の空


川田まみの2枚目のシングル収録曲。テレビアニメ『灼眼のシャナ』の前期オープニングテーマとして制作された楽曲。言うまでも無いですが、アニメに選曲されるということは名曲でユーザーの支持率も高いです。

アニメのオープニングのスピード感と、曲のスピード感のマッチングは絶妙。全体的なアップテンポ調が強く出ていて、盛り上がらずにはいられない一曲。





Break a spell

Break a spell

Break a spell


TVアニメ「東京レイヴンズ」新EDテーマ。序盤からだんだん盛り上がり、中盤のサビで、もっともヒートアップする構成になっています。「東京レイヴンズ」は若年齢層向けのライトノベルで「Break a spell」のテンポとは相性抜群。実はカラオケで歌いにくい。個人的に漫画「食戟のソーマ」の秋の選抜のシーンとのマッチングが気に入ってます。




JOINT

JOINT

JOINT


川田まみの5作目のシングル収録曲。 2007年10月31日のテレビアニメ『灼眼のシャナII』前期オープニングテーマ。『灼眼のシャナ』系の曲はアップテンポで、それに起用される川田まみの曲もまたアップテンポです。アップテンポでもかっこよさがにじみ出て、聴いてるだけで盛り上がること間違いなし。テンポの早いバトル漫画を読みながら聴くと、臨場感がアップしますよ。



Eager eyes

Eager Eyes

Eager Eyes


アルバム「PARABLEPSIA」収録曲。ユーモラスなメロディからアップテンポ展開する構成。1:03秒から特に盛り上がる展開に。アニメ『灼眼のシャナ』系の曲と比べて、若干テンポは劣るものの、充分アンプテンポといえる名曲です。




I civilization

I...civilization

I...civilization

アルバム「PARABLEPSIA」(作曲:高瀬一矢、編曲:HARD STUFF) に収録されている曲。序盤はとてもテンポが低くから始めるが、じょじょにテンションが上がる。


「PARABLEPSIA」は全アルバムの中でとてもいいタイプだと思います。曲はどちらかといえばクールな方だけど、とても澄んでいるのにテンションが上がる曲。



バラード系


悲しみの森

悲しみの森

悲しみの森


2006年3月、川田まみの1作目のオリジナルアルバム『SEED』の収録曲。バラードとはいえ、要所にカッコイイ要素の入る川田まみの曲の中では最も純粋なバラード。神秘的ともいえるそのメロディは、感傷に浸りたいときにはグッド。1:46秒の「深くなるこの傷口をさらに深く〜」の部分が、曲の中で最も純粋なバラードだと思います。





see visions

See visionS

See visionS


とある魔術の禁書目録Ⅱ」のオープニングテーマ。序盤では怖いイメージの曲が流れますが、サビからアニメのオープニング映像にぴったりのバラード調になります。特に第2サビからは、アニメのオープニングでは聴けないような勇気づけられるような曲調になっています。


言葉、心の声

言葉、心の声

言葉、心の声


linkageのCDに収録されている曲。バラードの中でも多分ベスト3に入る曲調。雨の日に聴いたり、物思いにふけるときに聴く曲に抜群。サビからの「今その胸の〜」部分が一番その部分が強調される。

序盤からバラードとわかる曲で全体にわたりそれが一貫してる。聴き終わった後にとても気持ちいい。



PIST

PIST

PIST


アルバム「PARABLEPSIA」収録曲。序盤に重低音の曲から、中盤のテンポの早いバラードに展開していくのが特長。川田まみの中では、かなり平凡なバラードと言えるかもしれません。若干カッコいい要素が入っているのですが、全体的にバラード調なのでバラード系に分類しました。


in answer

in answer

in answer

川田まみの3作目のオリジナルアルバム『LINKAGE』に収録されている。バラードというか曲のタイプを分けづらいが、シュール&バラードという感じ。サビのあたりが一番盛り上がるが、サビ前の方が個人的に好き。



Replica_nt

Replica_nt

Replica_nt


川田まみの5作目のシングル収録曲。序盤は平凡な流れですが、バラードとしての味が出てくるのは1:30秒あたりからです。川田まみのバラード系としては落ち着いていて、他のバラード曲とは若干、趣が違う曲となっています。個人的には「一回で曲の良さがわかる」というより、「何回か聴いてるうちにわかる」タイプの曲でした





another planet

another planet

another planet


川田まみの2枚目のシングル『緋色の空』収録曲。0:45秒「ほほえむ満月〜」からバラード調が絡みはじめ、2:03秒の「遥か遠くへ〜」からバラードとしては最も静かで最高潮になります。川田まみの曲としてはカッコイイ要素がなく、全体的な切ないメロディ構成の典型的なバラードですね。




聴いてて心地いい曲

TOY

TOY

TOY

『LINKAGE』(リンケイジ)に収録されてる曲。シュールでもアップテンポでもないが聴いてて悪くない。序盤からは曲調がわかりにくいだが、サビから本調子になってくる。

聴いた後に気持ちよくなる曲なので良曲に分類しました。




radiance

radiance

radiance

アニメ『スターシップオペレーターズ』のオープニング・テーマ、エンディング・テーマを収録したシングルの一曲。2005年2月23日に発表された1stシングル「radiance」。とてもクールな曲だが、カッコいい。曲の中では端っこの存在っぽいと思いきや聴いてみて全然悪くない一曲。




live a lie

live a lie

live a lie

SQUARE THE CIRCLEに収録されている一曲。とてもカッコいい曲でスピード感、テンポともに悪くない。曲全体の統一感が素晴らしく、シャナ系と違うタイプの名曲。

サビの前やサビに入ってからもとても澄んでる。個人的にナルトのラストバトルシーンに聴くのが一番好き。






川田まみの曲は今後リリースされることはないので、備忘録がてらまとめてみました。他のアーティストも良曲が多いので、機会があればまとめてみたいと思います。

料理でインスタグラムのフォロワー1000人超えの人に聞いた-フォロワーを増やす方法、料理のコツ、基本、レシピ管理術etc.

インスタグラムで趣味の料理を投稿してる知り合いがいる。フォロワーは1000人以上いて、企業とのコラボレーションもしている。ノウハウとかいろいろ知っていたので、興味があったことを根ボリはぼり聞いてみた。今回はその質問と回答内容をまとめていこうと思う。

目次(質問一覧)

・Q.1 インスタに投稿する写真にコンセプトってある?
・Q.2 写真の撮り方はどうしてる?
・Q.3 フォロワーを増やすためのアクションはしてるの?コツを教えて
・Q.4 ハッシュタグの付け方は?
・Q.5 レシピは載せるの?
・Q.6 コメントにリプはしてる?
・Q.7 企業とコラボしてるけど、その経緯を教えて
・Q.8 フォロワーはどのくらいで1000人にいった?
・Q.9 ターゲット層とかいるの?
・Q.10 料理の基本って何?
・Q.11 料理が面倒と感じる人が長続きするコツを教えて
・Q.12 本とかは買いますか?
・Q.13 レシピはどうやって管理してるの?
・Q.14 レシピの集め方は?
・Q.15 料理系のアプリは何を使ってる?
・Q.16 作る料理のヘルシー要素って何?
・Q.17 自分でレシピを考えるコツってあるの?
・Q.18 食材を日持ちさせる方法について教えて


f:id:trafalbad:20171029212831j:plain


Q.1

インスタに投稿する写真にコンセプトってある?

テーマは「お弁当」ですね。それもキレイな写真を載せます。料理にはいろんな種類があるんですが、個人的にお弁当が好きだからという理由が大きいです。

キレイな写真を載せるのはフォロワーは増やしたいから。なので写真のコンセプトは「お弁当+キレイ」になるんでしょうか。


また投稿する写真一枚一枚にコンセプトはないです。よくできた料理で、キレイな写真なら投稿しちゃいます。



Q.2

写真の撮り方はどうしてる?

まず写真に余計なものは入れないこと。部屋も小さいし、テーブルも小さいので写真を撮るなら、注目させたいもの以外は映さないようにしてます。


そして自然光で撮ること。変に照明とか使うのではなく、自然光に当てた方が写すものの見栄えが、本当にキレイに写るので。

あとはスマホで撮ったやつをインスタの機能で多少、加工するだけです。

別に一眼レフとかでなくても、最近のスマホはカメラ機能も充実してるので、スマホのカメラで十分な写真が撮れます。



全体のレイアウトは意識してる?

全部の写真が同じようになるように工夫してます。まずインスタにログインして、写真の一覧が出てきたときの統一感とか、美しさとかを意識してる感じ。

f:id:trafalbad:20171029213505j:plain


ユーザーは、まず全体の見栄えでアカウントの印象を決めがちなので、全体のレイアウトは特に大事だと思います。




Q.3

フォロワーを増やすためのアクションはしてるの?コツを教えて

特にしてないですね。ハッシュタグをつけて、キレイな写真を投稿すれば、勝手にイイねとかされてフォロワーは増えますから。
もちろんイイねを仕返したり、コメントしたり、なにかしらアクションをした方がフォロワーは増えます。


なので、フォロワーを増やすコツは、やっぱりこちらからも積極的にコメントやイイねなどのアクションすること。

でもそれだと互助会みたいな感じのフォロワーが増えてしまうので、純粋に自分のアカウントを見にきてくれるフォロワーを増やすなら、特にアクションはいらないと思います。


あと2〜3日ペースで頻度を上げて投稿することでしょうか。1ヶ月くらい投稿しないとフォロワーも少しは減るかそのままだし、逆に頻繁に投稿してるとフォロワーも増えます。



Q.4

ハッシュタグの付け方は?

有名なアカウントのハッシュタグを真似してます。トレンドとか、投稿する内容に一致するものならほとんどつけますね。だいたい写真一枚で20こぐらい。


有名アカウントとか、インフルエンサーがつけてるハッシュタグはユーザーの目に入りやすいので、真似するだけでもかなり効果的です。



Q.5

レシピは載せるの?

レシピは載せないですが、メニューは載せてます。レシピは載せた方がいいとは思うんです。

だいたいそういうアカウントも多いし。ユーザー重視なら、やっぱり載せた方がいいですね。



Q.6

コメントにリプはしてる?

余裕のあるときはコメントしてますが、全無視してる時もあります。普段忙しいのもあるし、趣味の部分大きいので。

できるだけコメントには返信しますが、逆にすべてのコメントに返信したりはしてないですね。それでリムーブされても別に気にしてません。



Q.7

企業とコラボしてるけど、その経緯を教えて


もともとその企業の主催する料理教室に通ってて、そこで作った料理を企業名を載せたハッシュタグと一緒に投稿してました。

そしたら企業側から「250人以上フォロワーがいて、諸々の条件を満たしてる人」を対象に企業を広めてくれる人を募集してて、それに応募しました。その特典として、イベントに優先的に招待してくれたりします。


他に企業からの特典とかあるの?

特に写真を加工してもらうとかもなく、自由にやらせてもらってますね。ただ、企業側のことを宣伝することはやってほしいと言われてます。




他に重要な企業のアプローチ方法って?

コラボしたい企業に関連のある写真を載せること、ハッシュタグに企業名を載せることですかね。こちら側から、企業の主催する教室やイベントに参加することも重要です。


あとなんといってもフォロワーが多いこと。フォロワーが多くて、企業のことを十分認知できるくらいのアカウントであれば、コラボは比較的容易だと思います。


Q.8

フォロワーはどのくらいで1000人にいった?

2016年の10月から始めて、だいたい1年で900人くらい増えました。あと急激に増えたりはしなくて、地道に増えてきましたね。


1ヶ月くらい家空けてて、料理できないときはフォロワーも減ったり、そのままだったりしました。やっぱり毎日やってる方が増えることが多かったです。



Q.9

ターゲット層とかいるの?

投稿してるとのがほぼ「お弁当」の写真なので、あえていうなら20代〜30代女性、特に主婦学生ですかね。お弁当を作ってそうな人のアカウントにフォローされることが多いです。


あとやっぱり日本人が多い。外人がフォローしてくるのは、一目で写真が「キレイ」と伝わるとき、英語のハッシュタグを入れてるときの方が多い気がします。





f:id:trafalbad:20171029213026j:plain


Q.10

料理の基本って何?

料理を作るまでの手順をきちんとできることです。どんな料理でも、例えばチャーハンなら、野菜をカットする大きさ、炒める時間とか、全ての作業を的確に行うことで味がしっかりします。

料理の基本といえば、やっぱりそうした当たり前の作業がきちんとこなせることです。

包丁を使えるとか、調味料を入れる順番を間違えないとか、
料理を作るまでの当たり前の作業が当たり前にできること=基本

だと思います。


上達するコツはある?

やっぱり毎日やることですね。運動と同じで料理も慣れのところが大きいので、思考錯誤したりして、経験値を積むのが上達するコツです。



Q.11

料理が面倒と感じる人が長続きするコツを教えて

やっぱり面倒くさい人って何が一番嫌いかというと、レシピを考えることだと思うんです。一人暮らしで面倒だとメニュー豊富なコンビニに行くじゃないですか?


そういう点を考えれば、レシピが事前にあると一番楽かなと思いますね。あらかじめ作るものが決まってれば、あとは作るだけなので、レシピが手元にあるだけでも十分、料理が面倒くさくなくなるキーポイントになるかと。



Q.12

本とかは買いますか?

本は買います。料理教室でも月刊誌はもらいますし、雑誌以外にも10冊くらい持ってます。テレビも結構みててNHKの「今日の料理」は参考なるし、その雑誌も買います。



初心者向け、上級者向けの本ってありますか?

本を買う人って何かしら目的があるんですよね。だから料理を作るために必ずしも本を買う必要はないです。

ただこれから料理作る初心者向けなら「基本の〜」みたいなテーマの本がいいし、上級者向けならテーマを絞ったより専門的な本でしょうか



Q.13

レシピはどうやって管理してるの?

まず、ネットのレシピで気に入ったやつ、オススメのやつは印刷して、ファイリングしてます。
いいなと思ったやつは一回作ってみて、気に入ったら、ファイリングして保存しときます。



Q.14

レシピの集め方は?

最近はネット上から集めるレシピでもすごく質の高いのがあるので、コピーしてファイリングするのが管理のコツです。いつでも見れるし。

また雑誌に載ってるのもかなりいいやつがあるときは、そこだけ切り取ってファイリングしてます。
あと料理アプリを5こくらいインストールしてるので、そこからも集めてます。


Q.15

料理系のアプリは何を使ってる?


クックパッド - No.1料理レシピ検索アプリ - Cookpad Inc.

レシピブログ - 料理ブログの無料アプリ - Ai-Land Co.,Ltd

Nadia プロの人気レシピを簡単検索 - 株式会社Ocean's

ペコリ - CyberAgent, Inc.


ですね。どれもプロの人のレシピが定期的に見れるので、レシピ集めに重宝してます。


Q.16

作る料理のヘルシー要素って何?

野菜を多めに入れることでしょうか?いちいち成分量まで調整してられないので、野菜多めがヘルシーな要素で1番簡単、かつベストだと思います。



Q.17

自分でレシピを考えるコツってあるの?

やっぱり経験値。
まず料理を作るときは他人の真似から入るのは当たり前で、そこからいろんな味の処理や組み合わせを覚えて、自分で真似試してみるのがいいと思います。



レシピ考案のための時間はとってるの?


特にしてないですね。

仕事ではなく、あくまで趣味なので、そこまで時間はとらない。けど思いついたやつはメモるし、作ったりしてますね。

レシピを作るコツは、経験値に基づいたひらめきと勘。



Q.18

食材を日持ちさせる方法について教えて

日持ちさせるのに使う食材は、冷凍保存した食材が多い。日曜に作って、月曜以降のお弁当にするのがお決まりのパターンです。


普通の食材、特に新鮮なやつ(魚とか)だと、調理して調味料につけておいても3、4日くらいが限界です。


なので日持ちさせるのは冷凍保存されてる食材が一番やりやすい。あと日持ち系の料理情報は雑誌にそういうコーナーがあるので、それを参考にしてます。

DCGANで生成した訓練画像を使ってCNNで画像分類してみた【Deep learning】

以前からDCGANで生成した画像でデータセットを作ろうと思い、画像生成をしていたが、ようやくそれっぽい画像ができた。


f:id:trafalbad:20171028214149p:plain

今回はDCGANで作成した画像を「訓練画像」に、DCGANに食わせた元画像を「テスト画像」にして、CNNで分類してみることにした。CNNは以前、VGGNetモデルのCNNで画像分類したやつを使用。
「DCGANで作成した画像は、データセットに使えるのか」という試みで、その結果を書いていきたい。

trafalbad.hatenadiary.jp


目次
・全体の行程
・DCGANで訓練画像生成
・CNNでテスト画像分類


全体の行程
まず全体の作業行程のポイントは次の通り



・523枚のマンションの外観画像(外から見たマンションの建物の画像)を増幅した34860枚を、DCGANに読み込ませ画像を生成


・生成画像の中から、よさげな画像7040枚を訓練画像に採用


・DCGANに読み込ませた元画像523枚をテスト画像にする


・DCGANで生成した訓練画像をCNNで学習、テスト画像を分類できるか試す




これが全体の行程だ。CNNは以前、VGGNetを参考にマンション画像分類をしたものを使用し、それに今回新しく作った「マンションの外観」の訓練画像とテスト画像をプラスして、新たに正解率を評価する。

上手くいけばDCGANはCNNのデータセットも作れることの証明になる。

けど、結論から書くと上手くいかなかった。今回はそれをまとめていこうと思う。




DCGANで訓練画像生成


画像の用意

今回、生成するのは「マンションの外観」画像。元画像はGoogle画像から収集し、それを増幅。

増幅させるやり方は前の記事で書いてるので、それをそのまま使用し、523枚から31360枚に増幅。特に”角度変換”を何回も使った。

f:id:trafalbad:20171028215445p:plain



あとはDCGANにかけるだけ。最初、jupyter用のDCGANコードを書いたんだけど、broken pipeが出てカーネルが死ぬとまた最初からやり直しになるので、全くメリットがなかった。

なので普通にローカルで作成するものを作った。




作成画像

48エポック(だいたい34800ステップ)ほど回してできた画像がこちら。だいたい100ステップごとに冒頭に貼ったような1枚64pxの8×8=64枚、512pxの塊がフォルダに保存されていく。

f:id:trafalbad:20171028215711g:plain



ほぼ外観とそっくりなのでいいできだと思う。ただアップで見るとクレヨンで描いたような画質なので、元画像と比べてドット感がないのが少し気になる。


f:id:trafalbad:20171028214218j:plain



生成画像の中から、よさげな画像を別のファルダに入れていった。だいたい60枚くらいたまったら、この512pxの塊を単一の64pxの画像にバラす。



DCGANの訓練が終わってから画像を生成してもいいんだけど、訓練後に生成すると全て同じ画像になってしまうので、訓練途中にできた中から、出来のいいのを採用。


64枚、512pxの塊は下のコードで一気に分解できる。
64枚の塊画像をまとめて保存したファルダパスと、分解した画像を保存するファルダパスを指定して実行すれば、勝手に保存されていく。

import os
import sys
import scipy.misc
import cv2, matplotlib
import numpy as np


path_restore="DCGAN生成画像のフォルダパス"

path_save='分解画像保存先のフォルダパス'
images = os.listdir(path_restore) # 画像の読み込み


rows = []  # 横に分解
for i in images[1:]:
       rows.append(np.hsplit(cv2.imread(path1+'/'+i),8))


tin=[] # 縦に分解
for idx in range(len(rows)):
    for sec in rows[idx]:
        tin.append(np.vsplit(sec,8))


count=0
for idx in range(len(tin)):
    count+=1
    for sec in tin[idx]:
        count+=1
        scipy.misc.imsave(path_save+'/split{:04d}_{:02d}.jpg'.format(idx, count), sec)

こうして、CNNに読み込ませる訓練画像、約3520枚ができたので、”左右反転”をかけ、増幅して7040枚に。あとはDCGANに読み込ませた画像(増幅前)の元画像523枚をテスト画像にして、CNNで上手く判別できるかを試す。




CNNでテスト画像分類

訓練画像とテスト画像

さっきも書いたけど、


テスト画像 → DCGANに読み込ませた訓練画像(増幅前)の元画像523枚

訓練画像 → DCGANからできた画像の中から、出来のいいやつを分解した7040枚

にした。


CNNは前にマンション関連の画像を判別するために、あらかじめ作ってあるやつを使う。そのときのラベル0〜3の訓練画像とテスト画像に、今回の画像をプラスする。


今回プラスする分は新しくラベル4にした。CNNのコードは数カ所の数値を書き換えただけ。
前のサイトで書いてるけど、訓練画像とテスト画像の内訳は改めて書くと、こんな感じ。



訓練画像→ 合計 32340枚

Label 0 玄関 50, 廊下 50, リビング 150, 寝室 100, クローゼット 100 (増幅して6300枚)

Label 1 キッチン 300 (増幅して6000枚)

Label 2 トイレ 400, 風呂 150, 洗面化粧室 150 (増幅して7000枚)

Label 3 眺望 300枚 (増幅して6000枚)

Label 4 外観 3520枚 (増幅して7040枚)



テスト画像→ 合計 1063枚

Label 0 玄関 30, 廊下 30, リビング 30, 寝室 30, クローゼット 30 (150枚)

Label 1 キッチン 115(115枚)

Label 2 トイレ 80, 風呂 40, 洗面化粧室 40 (160枚)

Label 3 眺望 115 (115枚)

Label 4 外観 523枚(523枚)


新しくプラスした訓練画像も十分な枚数。DCGANから生成された画像でも、別に読み込ませた元画像に似てるわけではないので、元画像をテスト画像にしてみた。


仮にこれが上手くいけば500枚くらい画像を集めれば、訓練画像とテスト画像ができることになるので、ある意味画期的な手法ってことになる。



正解率

結果、正解率は48%

メッチャ低い。以前のCNNでは87.8%だったので、理由が知りたい、というわけでラベルごとの正解率をまとめてみた。

Label 0 80%

Label 1 83.9%

Label 2 91.5%

Label 3 94.5%

Label 4 3%



結果は見ての通り、ラベル0〜3は普通に高いのに、DCGANで作成した画像のラベル4が「3%」だった。



原因を考察してみる

外観画像は、ラベル3の眺望と結構似てるから

ラベル3の訓練画像に数枚ほど、外観とかなり似ている画像が含まれていたため、ラベル3に分類されたかもしれない。けど、数枚なのでその可能性は低い。
それよりもラベル3の眺望自体、他の建物も写ってるので、ラベル4の外観と似てる。そのため、ラベル4がラベル3に分類されてしまった可能性もある。

f:id:trafalbad:20171028214249p:plain


ちなみに純粋にラベル4の外観画像を、訓練画像、テスト画像ともにGoogle検索で収集したもので判別したときは、正解率は高かった。


DCGANで作成した画像は、元画像とは特徴抽出が違くて、まったく別物だから

生成された外観画像を画面上で見ると、人間には「外観」に充分見えるんだけど、CNNには全く別物に見えるらしい。多分、特徴量が本物の外観と全然違うのが一番の原因と考えられる。

スギャーンメモのサイトでも人間の顔と全く違う特徴抽出をしていたらしい。もう少し精巧に作れば、本物と同じように特徴抽出されるのかわからない。

とはいえ3%は低すぎるので、DCGANは本物の元画像とは似ても似つかないもののようだ




結論

やはり乱数から生成した画像は、人間には本物ぽくても、機械には別物で、本物同様の特徴抽出はされないことが原因っぽい。

外観の本物の画像を訓練画像に使った時は、ふつうに正解率が高かったことを考えると、やっぱりDCGANで作った画像は本物と違うらしく、データセットにはできないようだ。




今回はDCGANで生成した画像を使って、読み込ませた元画像を分類することができるか試したが、見事にコケた。CNN自体はかなり精度の高いものを使っているので、やっぱりDCGANの作成画像は本物も全く違うところに問題がある。
アイドル画像分類とかも、DCGAN生成画像を訓練画像にするなんてことは絶対できないだろうから、画像分類のデータセットはやっぱりキチンと集める必要がありそうだ。

一人でできるバドミントン練習方法10こまとめ【体幹・フットワーク・基礎力トレーニング】

バドミントンの練習は相手がいるのが、一番いいかもしれない。しかし、個人的にはシャットの打ち方を直したり、どんな風に練習したら効率的なのかなどをじっくり調整するには、一人で練習するのが一番だと感じている。実際、バドミントンが上達するのは、大勢で練習してるより、一人で地味にコツコツ練習してるときだ。

本記事ではわざわざ体育館に行ったり、相手がいなくても、一人ででき、確実にバドミントンが上達する練習方法を10こまとめていく。


目次
・フットワーク
・ショット
・基礎力

f:id:trafalbad:20171023095602j:plain



バドミントンの重要な基礎力はショット、フットワーク、体幹だ。

trafalbad.hatenadiary.jp

ここではこの3つを鍛えることを重視した練習方法を紹介していく。

フットワーク


4点フットワーク

これは実際に、
前と後ろのフォア側、バック側
の4つの方向に動いて、フットワークの動きを覚える方法。

とても単純な練習方法だが、試合中はフットワークの動きを意識していられない。そのためにはフットワークの足の動きを体に覚えさせることが必要で、この「4点フットワーク」はとても重要。


例:
まずフットワークの正しい動き方を知る。上手い人に教えてもらう、本を読む、動画で確認するとかして理解する。
あとはそれをラケットを持って、ラケットワークも同時にやりながら、4方向にフットワークの動きを繰り返す。

自分はイメトレの後にやることで、頭と体の両方に覚えさせてた。




シャトル置き

高校の強化合宿でも採用されている練習方法。本来はシャトルを置いて戻すを繰り返すが、後方のラウンド側はシャトルを置く代わりに、スマッシュを打つように振りかぶってシャトルを投げてもいい。
詳しい練習方法は動画で確認してほしい。




なるべく歩数を少なく、早く移動できるように意識すると効果的。フットワークの基礎的な動きが体に染み付いてからやった方がいい。
体への負荷が大きめなので、トレーニングとしてはとてもオススメ




録音機を使った一人指示出しフットワーク

これは自分が考えた方法で、相手がいなくても、ランダムにフットワークの動く方法を支持してくれる。自分でフットワーク練習をすると動く方向も決まってるので、実践向けではない。

この練習方法なら、録音機に動く方向をランダムに吹き込んでおき、フットワーク時にイヤホンで聴きながら、吹き込んだ方向に動く。いちいち吹き込んだ方向なんか覚えてないから、本当に一人で指示出しフットワークができる練習方法。


ランダムに動く方法を繰り出されても、的確にフットワークの動きができるようになることが目的。



手順例:
①まず簡単な録音機を買う
自分はOLYMPUSのICレコーダー VoiceTrek VN-541PCが手頃な価格、高性能かつコンパクトなので、買って使っていた

②指示出しの方向をランダムに吹き込む
オススメの方法は指示出しする方向を、

右上→右下→左下→左上1、2、3、4

と簡易な番号に置き換えて、吹き込んでた

③イヤホンで聴きながら、指示された方向に動く


3秒に一回の割合で吹き込むと実践と同じスピードになる。あまり早くせず、的確に動けることを目標にした方がいいかも。




ショット
ショットは基礎打ちと同じく、バドミントンの基本中の基本。ここでは一人でもできるショット強化練習方法を紹介。


自分ショット打ち

まずラケットの上にシャトルを乗せて、それを上げ、打つだけ。とても単純だが、これでまともに打てれば、試合中でも同じようなショットが打てるようになる。
自分は打つショットのメニューは基礎打ちと同じにしていた。



例:
ドライブ、プッシュ、スマッシュ、クリア、ロブ、ドロップ、ハイバック、ヘアピン
の8種類。



漠然と打っても意味ないので、コートやネットを想定して、ネットを超える高さを通り、コート内に打ったシャトルが入ればOKとして、何かしらクリア条件を決めると効果的。漠然とやるより、各メニューノルマを決めてやるといい。

スマッシュやクリアは打てないと思われるかもしれないが、バレーのサーブトスみたいにシャトルを上げれば、ちゃんと打てる。
これができるようになれば実戦でも確実にショットが打てるようになる。外で風が強すぎるとできないのが難点。



壁打ち

壁打ちはプロ選手もよくやる練習方法。壁に向かってシャトルを打ち、返ってきたシャトル落とさないよう繰り返し打つ。
いきなり連続でやるのは無理なので、ゲーム感覚でレベルアップしていくといいだろう。



例:
まず壁打ちするショットは胸より上のショット(ドライブ)と、胸より下のショット(レシーブ)の2種類に分ける。最初は1日のノルマを各ショット5回連続×6回できたらクリア(できるまで粘る)



それが普通にできるようになったら、10回連続×6を1日のノルマにする。それが普通にできるようになったら、20回連続×6をノルマに。同じようにできるようになったら30回連続×6をノルマにする



という風に1日のノルマのレベルを段々と上げていく。自分はこの方法で最初は5回も続かなかったのが、今では普通に上下のショットで30回×6ができるようになった。

ついでに言うと、打つときは面の真ん中(スイートスポット)に当てるように意識すると効果的。


ショットの命中率アップ法

これはさっき紹介した「自分ショット打ち」をハードにした練習方法。シャトルを打つとき標的を決める。筒を置いて当ててもいいし、円を書いて円の中に入れたらOKでもいい。


f:id:trafalbad:20171023101025j:plain


狙ったところに的確にシャトルを当てる練習方法で、練習方法はアレンジ可能だ。

とても単純だが、筒とかはなかなか当たらないので、訓練としては地味だけど、ハードかつ効果的。




基礎力
フットワークやショット以外にも、バドミントンはスポーツなので、身体能力も大きく関わる。ここではバドミントンに即直結する身体能力を鍛える練習方法を紹介。


イメトレ

イメトレとはつまり、イメージトレーニングのこと。例えば、身につけたいショットの打ち方、フットワークの動きなどを実際に頭の中でシミュレーションする。
そうすることで、体を動かすときにスムーズにその動きができるようになる。

→参考サイト
バドミントン・メモ:イメージトレーニングのポイント


イメトレは本番を想定してする人が多いが、フットワークやショットの打ち方など、多少複雑な動きを頭で具体的に理解するという点でも効果的。
イメトレをするしないでは、した方がシミュレーションした動きが、確実に早く身につく。




体幹

体幹とは要はバランス感覚のこと。バドミントンでは、多少キツイ体勢からでもショットを安定して打つときに役立つ。
バドミントンは常に動くスポーツなので、シャットを安定した体勢で打てるときはほぼない。そんなとき体幹ができてると、多少無理な体勢からでも強力で安定したショットが打てる。

具体的な体幹トレーニングは「バドミントン 体幹」でググるといっぱいでてくるが、自分は以下の4つのメニューを1日、各メニュー毎に1分間と時間を計ってやっていた。


f:id:trafalbad:20171023095718j:plain


上の体幹のメニューは、割とオーソドックスなもの。
1分終わったら次の体幹までのインターバルの理想は15秒以内。短いほど体への負荷が大きい。



ヘアピンお手玉シャトル2個)

これはお手玉のように、シャトルをラケットの上で落とさないように打ち続けること。ただシャトル1個は簡単過ぎるので、2個のシャトルをジャグリングのようにラケットの上で打つ。

この練習方法はシャトルのコントロール、反射神経などラケットワークに欠かせないコントロール、テクニックが身につく。

実際やってみるとかなり難しいが、できるようになればしめたもの。壁打ち同様、ゲーム感覚で鍛えていくのが上達方法としてはオススメ。




ショット時に全身の力を加える練習

強いショットを打つためには、グリップは緩く持ち、打つ瞬間に全身の力を一気に加える必要がある。

この練習方法はスマッシュを強くするための動画で紹介されていた。
詳しくは動画を参照。



脱力状態から一瞬全身に力を入れる→力を抜く→力を入れる→これを繰り返す

ショットを打つ一瞬に、力を加える練習になるようだ。

ラケットを緩く持ち、ショット時に一気に力を入れる打ち方はスマッシュに限らず、すべてのショットを強く打つための基本。なので、この練習方法もかなりオススメ。



今回は一人でもできるバドミントンの基礎力を上げるトレーニング方法を紹介してきた。自分はガチでバドミントンに取り組んだのはここ半年くらいで、けっこう試行錯誤してきた。その中で使える練習方法をまとめておきました。

初心者がクラウドソーシング(ランサーズ)でゼロからお金を稼ぐまでの具体的かつ実践的なstepをまとめてみた

クラウドソーシングサイトで「月5万稼ぐ・副業にする」とはよく言われますが、実際はクラウドソーシングで稼ぐにはコツがあります。今回は

クラウドソーシングを副業にする
または
クラウドソーシングを使って稼ぐスキルを身につける

ためにやるべき、実践的なstepを個人的な体験からまとめていきます。目次ですが、この記事の実践stepは以下のようになってます。


Step.1 稼ぐために必要な仕事・スキルを決める
Step.2 スキルの基礎的な勉強をする
Step.3 具体的にクラウドソーシングで仕事をしてみる
Step.4 月5万円を目標に作品のクオリティを上げ続ける


キーポイントは
クラウドソーシングは「お金を稼ぐスキルアップのために利用する」

ということ。クラウドソーシングに限定されず、一般的にお金を稼ぐためには、「誰でもできることはやらず、できる人が少ない単価の高い仕事をする」必要があります。

クラウドソーシングでも同じことが言えるわけで、誰でも簡単にできる仕事ではなく、専門的なスキルを持つ人しかできない(難しめの)仕事ができることが目標。今回はこの目標を達成するための実践的なやり方(step)を紹介していきます。




Step.1 稼ぐために必要な仕事・スキルを決める
f:id:trafalbad:20171005121150j:plain



やりたい分野の仕事を決める

クラウドソーシングには様々な分野の仕事があります。その中で仕事にする分野を選ぶ必要があるんですが、まず選ぶ基準としては

・好きでやりたい分野の仕事

を決めた方がいい
理由はイヤイヤやるより、好きな方が挫折もしづらいし、スキルも身につきやすいから。
例えばクラウドソーシング大手の「ランサーズ」を見てみると、ザッと


・翻訳
・デザイン
・動画・写真
・web作成
システム開発
・ライティング
・大量作業



の7項目の仕事があります。細かく分けるとさらにあります。別にランサーズでなくてもいいけど、大まかにこの中から自分のやりたい分野を決めます。

そして、クラウドソーシングで稼げる仕事というのは、「単価が高く、誰でもできそうもない仕事」です。逆に単価が低く、すぐに定員オーバーの分野は稼げません。



例えば「ライティング」という分野は絶対にダメ。これは誰でもできる仕事であり、単価も安く、競争率が高い。とにかく”少ないパイを奪い合う世界”です。ライティングをやるなら、いっそブログを書き、稼げる能力を身につけた方が絶対に市場価値はあります。

要は「誰でも簡単にできない難しめな仕事」が狙いなので、もしあなたがなんのスキルもないなら、すぐにできそうな仕事は絶対に選んではいけない




単価が高く、難しそうな仕事を選ぶ

稼げる仕事を選ぶコツは「単価が高く、難しそうに見える仕事」です。個人的にランサーズでこの類に該当する分野は以下の通りです。

・翻訳
・デザイン
・動画・写真
・web作成
システム開発


まず、この中から自分のやりたい仕事を選ぶ。一見、表示されてる仕事(タスクやプロジェクト)を見ると、できないと萎縮してしまいます。しかし難しい仕事でも、この記事のstepにそっていけば糸口がつかめます。




Step.2 スキルの基礎的な勉強をする
f:id:trafalbad:20171005121221j:plain


分野が決まったら身につけるスキルを理解する

やりたい仕事の分野が決まったら、次はその仕事で必要なスキルを理解します。
例えば「動画作成」だとしたら、必要なスキルは「簡単な動画ソフトが使えること」です。


となります。クラウドソーシングのために身につけるスキルは少ないですが、初心者でいきなりできる人はいません。この出来る出来ないの差が稼げる能力の境界線です。


大抵は分野ごとに必要なスキル情報はネットに転がってるので、このスキル調査は徹底的にして下さい。

たこの記事のコメント欄でコメントしていただければ、場合によっては分野に特化した記事を書きますので、コメントしてもらえると嬉しいです。




スキルの勉強方法

スキルの勉強方法は本当に分野ごとに異なるのですが、大抵は書籍がベストです。各分野ごとのスキルは専門性が高いので、必ず書籍は売ってます。そして基礎を理解したら仕事をやってみる。その際、細部はネット上の情報を頼りに理解していくというのが理想です。


例えば、動画作成で動画ソフト(adobe premiere Pro)を使うなら
①書籍を購入し、ソフトを使えるようにする

②仕事をしながらネットや書籍を使いながら細部を理解する

書籍にはソフトのインストール方法から、使い方まで細かく書いてある。全部理解しなくて良いので、とりあえず動画を作るのに必要な知識は理解します。

そして、だいたいソフトが使いこなせる段階まできら実際に作品を作ったり、仕事してみます。後はネット上の使い方サイトなどを参照して、試行錯誤していけば、クラウドソーシングの仕事はできます。




基礎を理解したら、簡単でいいので作品を作ってみる

次にだいたいのスキルを理解したなら、その分野の作品を簡単でいいので1〜2こ作ってみます。
例えば
・動画なら
→動画作品ソフトで動画を作ってみる

・プログラミングや翻訳なら
→専門的なサイトのpaizaなどの問題に挑戦する、アメリアなどの翻訳専門サイトで問題を解いてみる

などいろいろです。自分でとりあえず、ダメもとでいいのでなんでもやってみる。


別にどんなダメダメな作品でも、最初は作ってみることが大切。作品のスキルはクラウドソーシングでプロジェクトをこなしていくうちに上がっていきますので、今は「まず作ってみる」ことをしてみて下さい。

とりあえず、2〜3作品くらい作ってみると自信がつくと思います。





Step.3 具体的にクラウドソーシングで仕事をしてみる
f:id:trafalbad:20171005121246j:plain

仕事(プロジェクト)にチャレンジしてみる

step2まで終わってとりあえず作品も作ったなら、クラウドソーシングで仕事(プロジェクト)にチャレンジします。単価の高い仕事というのは、ほとんどプロジェクトなので、クライアントと交渉する必要がありますが、とにかく最初の目標は仕事をもらい、稼ぐ体験をすること。


分野ごとでもレベルの低い仕事から高い仕事までピンキリです。
感覚でいいので、これができそうという仕事にチャレンジする。応募して多少、大げさでもいいので、自分のスキルをアピールして仕事を受注するまで粘ります。


仕事の受注率を上げる方法は実績以外にもポートフォリオなどのいろいろありますので、いろいろ工夫。まずは仕事を受注するまで粘って下さい。



最大限のクオリティで仕事をこなす

仕事を受注できたら、雑にこなすのではなく、今できる最大のクオリティで仕上げます。作品のクオリティを上げる方法は分野ごとに異なりますが、書籍やネットで調べたり、何度も直したり、考え時間をかけることが必要です。


面倒ですが、これらはスキルアップに必要ですし、やってると次第に慣れてきて仕事が早くこなせるようになります。


はじめのうちはクオリティを追求して、限界まで力を絞って仕事をこなさないといつまでたっても難しい仕事ができない、つまり稼ぐ能力が上がらない。



フィードバックを得る

仕事を終わったら、クライアントからフィードバックをもらって下さい。フィードバックというのは作品に対する良い悪いの評価です。フィードバックを得ておくと、自分の作品のダメな点、良い点の反省ができます。


例えば、クラウドソーシングはクライアントから評価をもらえるはずで、ランサーズなら5段階評価で感想ももらえる。
まず「ここがこう悪い、よかった」など具体的な評価はもらえません。単純によい、悪いの反応だけです。そういう時のフィードバックの活用法は、


・自分でここが悪かったと具体的に改善点の仮説を立てること、そして次の作品に活かす


できるだけ思いつく限り書き出してメモして、忘れないように残しておきます。
次に仕事をするときに、メモした改善点をすべて改善し、仕事をこなしてみます。出来上がったときには必ず、前よりも作品のクオリティも上がっているし、クライアントからの評価も上がってるはずです。



具体的なフィードバックがもらえなかったら

具体的なフィードバックがもらえなかったら、ネット上からフィードバックを得る方法があります。
例えば


youtubeニコニコ動画などの動画サイトにアップしてアクセス数をみる

Twitterに作品を投稿する

・質問サイトに投稿して意見をもらう



などSNS、ネットを使えば、その方法は無限にあります。ネットは不特定多数のユーザーからの反応が得られるので、一人のクライアントの評価よりももっと広い視点での意見、評価がもらえる。

「ネット上に自分の作品をアップする」ことはフィードバックを得る方法として、とても現実的なので、可能な限りこっちをオススメします




Step.4 月5万円を目標に作品のクオリティを上げ続ける
f:id:trafalbad:20171005121508j:plain

なぜ月5万円なのか
なぜ目標が月5万円なのかという理由を挙げると


・理想のスキルの単価の最低ラインが1〜3万円
・月5万円というのは副業としての合格ライン


というのがあります。
まず、クラウドソーシングで理想的なレベルのスキルの仕事は単価が高めで、1万円以上。この仕事をこなせるレベルになると、スキルはかなり上がった証拠です。ここまでくるとスキルはクラウドソーシング以外の専門的なバイトでも、かなり通用します




2つめに副業として理想のレベルが、単価高めの仕事を2、3ここなして月五万円を達成することだから。

スピード勝負の低単価の仕事をこなす量勝負ではなく、量は少なくても質の高い仕事で5万を稼いだ方が、副業としてのスキルとして理想的です

まず、1〜3この仕事をこなして、月五万円稼ぐと言う目標が理想



作品のクオリティを上げ続ける

またstep3でも述べましたが、作品のクオリティを上げ続けることが、稼ぐ能力をこなすために必要です。
クオリティが上がれば上がるほど、いろんな場所で稼げるようになります。例えば、webデザイナーの独立する方法に

クラウドソーシングで稼げるようになってから、フリーとしてやってみる


という現実的な方法があります。

クラウドソーシング以外で仕事を得る理由としては、クラウドソーシングはクライアントが相場より安い値段で仕事を設定してることが多く、稼げる金額に限界がきてしまうからです。

クオリティが上がれば、クラウドソーシングを辞めても、マネタイズの方法も無限に広がるし、クラウドソーシングとは違う市場で稼ぐことができる。つまり仕事の選択肢が広がるからですね。


フリーになると会社員よりも給与が上がりやすいと言われてますが、これと全く同じこと。クラウドソーシングはスキルアップの道具として使って、ある程度までスキルが上がったら他のところで稼ぐことをオススメします。





クラウドソーシング以外の収入源を探す
f:id:trafalbad:20171005121526j:plain
クラウドソーシングでスキルが上がり、給与に限界を感じたり、他に稼げる方法を見つけたいなんてときは、

・マネタイズの方法を探す
・専門的なバイトを探してみる


などたくさんあります。マネタイズの方法はネットから収益を得る方法がよくある方法ですが、これは特定の媒体に特化した集客や知識が必要であり、よりハードルは上がります。

それよりも理想的なのは、複数の収入源を作ること。クラウドソーシングで副業レベルまで稼げるということは、専門的なバイトでも通用します。ましてクライアントから高評価をもらっていた場合は、現場でも十分通用する証拠。




クラウドソーシングだと仕事が限られたり、単価に上限があったりと何かと不安定。もし時間に余裕がある場合は、バイトや派遣など身につけたスキルが通用する仕事をやってみることもオススメです。

今回はクラウドソーシングで実際に副業レベルまで稼げるようになるステップを紹介してきました。
翻訳とかでも「会社でスキルアップしてから独立」なんて方法がありますが、クラウドソーシングを使っても同じことができます。クラウドソーシングで稼げないという人は、是非参考にしてみて下さい。

VGGNetを参考にしたCNN(tensorflow)でマンション関連の画像を分類してみる

マンション関連の画像をCNNで分類する試みをしてみた。普通のcifar-10のモデルだと正解率が低かったが、VGGNet(Visual Geometry Group Networks)と呼ばれる高性能のCNNを実装しているサイト(すぎゃーんメモ)があったので、試しに実装してみたところ正解率87.8%を達成することができた。今回はそのログとして詳細を書いていこうと思う。

使ったコードはGithubにあげてあります。


目次
1.画像の内訳
2.CNN
3.ラベル毎の正解率



1.画像の内訳

まず、訓練とテストに使った画像の枚数と、その内容の内訳は次の通りだ。


訓練画像→ 合計 25300枚
Label 0
玄関 50, 廊下 50, リビング 150, 寝室 100, クローゼット 100 (増幅して6300枚)

Label 1
キッチン 300 (増幅して6000枚)

Label 2
トイレ 400, 風呂 150, 洗面化粧室 150 (増幅して7000枚)

Label 3
眺望 300枚 (増幅して6000枚)



テスト画像→合計 540枚
Label 0
玄関 30, 廊下 30, リビング 30, 寝室 30, クローゼット 30 (150枚)

Label 1
キッチン 115(115枚)

Label 2
トイレ 80, 風呂 40, 洗面化粧室 40 (160枚)

Label 3
眺望 115 (115枚)

ラベル0〜3までの4種類で訓練画像は25300枚、テスト画像は540枚。
下にラベル毎の画像の一部を抜粋した。96pxで、左からラベル順になっている。

f:id:trafalbad:20170930083205p:plain

元画像は少ないものの、画像をうまく増幅させた(increacing_images.py)。画質に変化を加えるのは原則一回として、画質にあまり影響のない範囲で増幅させた。


元画像→ガンマ変換→コントラスト→.......→左右変換→角度変換

#左右変換
flip_img=[]
for i in seen5000:
    flip_img.append(cv2.flip(i, 1))

#角度変換
rad=np.pi/90 # circumference ratio
# distance to move to x-axis
move_x = 0
# distance to move to x-axis
move_y = 96 * -0.000000005
 
matrix = [[np.cos(rad),  -1 * np.sin(rad), move_x], [np.sin(rad),   np.cos(rad), move_y]]
 
affine_matrix3 = np.float32(matrix)
afn_90=[]
for i in gaikan:
    afn_90.append(cv2.warpAffine(i, affine_matrix3, size, flags=cv2.INTER_LINEAR))

”ガンマ変換”や”コントラスト”は元画像に一回しか適用できない。例えば”ガンマ変換”した画像にさらに”コントラスト”を適用すると画質がやばくなる。

しかし、”左右変換”と”角度変換”は”ガンマ変換やコントラスト”に適用しても画質は変換しないので、単純に全画像数を2倍にできる。最後にこの2つを持ってくることで効率よく画像を水増しできる。

”角度変換”は値を変えれば何回でも使えるので増幅にはおすすめだ。





2.CNN

元々はcifar-10のモデルで正解率を出したが、70%くらいだったので、もっといいのはないかと探していたところ、アイドル画像分類というサイト(すぎゃーんメモ)でVGGNetを参考にしたモデルが紹介されていた。かなりの精度だったので、今回はこれを適用してみた。


結果は87.8%というかなり精度の高い結果。cifar-10のシンプルなものよりも確実に上がっている。もっと層を厚くすれば正解率は上がりそうな気もするけど、精度としては十分なので、これを使った。


ただ唯一違うのはバッチノーマライゼーションを適用してる点だ。別に適用しなくても正解率はほとんど変わらないが、プーリング層だけのモデルと比較して2%ほど正解率が上昇した。

def cnn(x):
    BATCH_SIZE = 128
    def _variable_with_weight_decay(name, shape, stddev, wd):
        var = tf.get_variable(name, shape=shape, initializer=tf.truncated_normal_initializer(stddev=stddev))
        if wd is not None:
            weight_decay = tf.multiply(tf.nn.l2_loss(var), wd, name='weight_loss')
            tf.add_to_collection('losses', weight_decay)
        return var

    def _activation_summary(x):
        tensor_name = x.op.name
        tf.summary.histogram(tensor_name+'/activations', x)
        tf.summary.scalar(tensor_name + '/sparsity', tf.nn.zero_fraction(x))

    with tf.variable_scope('conv1') as scope:
        kernel = _variable_with_weight_decay('weights', shape=[3, 3, 3, 32], stddev=0.1, wd=0.0)
        conv = tf.nn.conv2d(x, kernel, [1, 1, 1, 1], padding='SAME')
        biases = tf.get_variable('biases', shape=[32], initializer=tf.constant_initializer(0.0))
        bias = tf.nn.bias_add(conv, biases)
        conv1 = tf.nn.relu(bias, name='conv1')
        _activation_summary(conv1)
    pool1 = tf.nn.max_pool(conv1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME', name='pool1')
    norm1 = tf.nn.lrn(pool1, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm1')
    
    with tf.variable_scope('conv2') as scope:
        kernel = _variable_with_weight_decay('weights',shape=[3, 3, 32, 64],stddev=0.1,wd=0.0)
        conv = tf.nn.conv2d(norm1, kernel, [1, 1, 1, 1], padding='SAME')
        biases = tf.get_variable('biases', shape=[64], initializer=tf.constant_initializer(0.0))
        bias = tf.nn.bias_add(conv, biases)
        conv2 = tf.nn.relu(bias, name='conv2')
        _activation_summary(conv2)
    pool2 = tf.nn.max_pool(conv2, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME', name='pool2')
    norm2 = tf.nn.lrn(pool2, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm1')
    
    with tf.variable_scope('conv3') as scope:
        kernel = _variable_with_weight_decay('weights',shape=[3, 3, 64, 128],stddev=0.1,wd=0.0)
        conv = tf.nn.conv2d(norm2, kernel, [1, 1, 1, 1], padding='SAME')
        biases = tf.get_variable('biases', shape=[128], initializer=tf.constant_initializer(0.0))
        bias = tf.nn.bias_add(conv, biases)
        conv3 = tf.nn.relu(bias, name='conv3')
        _activation_summary(conv3)
    pool3 = tf.nn.max_pool(conv3, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME', name='pool3')
    norm3 = tf.nn.lrn(pool3, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm1')
    
    with tf.variable_scope('conv4') as scope:
        kernel = _variable_with_weight_decay('weights',shape=[3, 3, 128, 256],stddev=5e-2,wd=0.0)
        conv = tf.nn.conv2d(norm3, kernel, [1, 1, 1, 1], padding='SAME')
        biases = tf.get_variable('biases', shape=[256], initializer=tf.constant_initializer(0.0))
        bias = tf.nn.bias_add(conv, biases)
        conv4 = tf.nn.relu(bias, name='conv4')
        _activation_summary(conv4)
    pool4 = tf.nn.max_pool(conv4, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME', name='pool4')
    norm4 = tf.nn.lrn(pool4, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm1')
    
    with tf.variable_scope('fc5') as scope:
        dim = 1
        for d in pool4.get_shape()[1:].as_list():
            dim *= d
        reshape = tf.reshape(pool4, [BATCH_SIZE, dim])
        weights = _variable_with_weight_decay('weights', shape=[dim, 1024],stddev=0.02, wd=0.005)
        biases = tf.get_variable('biases', shape=[1024], initializer=tf.constant_initializer(0.0))
        fc5 = tf.nn.relu(tf.nn.bias_add(tf.matmul(reshape, weights), biases), name='fc5')
        _activation_summary(fc5)

    with tf.variable_scope('fc6') as scope:
        weights = _variable_with_weight_decay('weights', shape=[1024, 256],stddev=0.02, wd=0.005)
        biases = tf.get_variable('biases', shape=[256], initializer=tf.constant_initializer(0.0))
        fc6 = tf.nn.relu(tf.nn.bias_add(tf.matmul(fc5, weights), biases), name='fc6')
        _activation_summary(fc6)

    with tf.variable_scope('fc7') as scope:
        weights = _variable_with_weight_decay('weights', [256, NUMCLASS], stddev=0.02, wd=0.0)
        biases = tf.get_variable('biases', shape=[NUMCLASS], initializer=tf.constant_initializer(0.0))
        fc7 = tf.nn.bias_add(tf.matmul(fc6, weights), biases, name='fc7')
        _activation_summary(fc7)

    return fc7   # shape=(BATCH_SIZE, NUMCLASS)

すぎゃーんメモではアイドル画像という単体の物体に適用していたが、今回はマンション関連の画像を対象にしたところがキー。どこが違うのかというと、マンション関連の画像は結構いろいろな関係ない物体が写っているので、

トイレ=トイレ
キッチン=キッチン

とキレイに分類できないところで、CNNも上手く分類できないのではないか心配だった。

しかし、ラベル設定を適切にして、ラベルを貼る人間がこれは「キッチンだな」とか「室内やな」みたいに確信を持って言えるほど混乱しない画像なら、CNNでも高い正解率は叩き出せるっぽい。

各ラベル毎の正解率は次にまとめた。





3.ラベル毎の正解率

各ラベル毎の正解率は以下の通り


Label 0 96.1%

Label 1 77.3%

Label 2 92.5%

Label 3 93.9%

トータルの正解率は87.8%だけど、ラベル毎の正解率を見てみるとやっぱり、キッチン画像がかなり正解率が低い。





→理由を考えてみる


室内 (Label 0)
→とりあえずベットとか天井とかあるので、室内とはわかる

キッチン (Label 1)
→基準が「コンロと水面台が写ってること」なので、それ以外にもいろいろ写ってるとわかりにくい

トイレ (Label 2)
→便器があればとりあえずわかる

眺望 (Label 3)
→景色の一部が画像の大半を占めているので、多分一番わかりやすい



キッチンは「コンロと水面台が写っている」を基準にした。しかし、他に別なものが写ってる確率が高いキッチンは、ラベル0の”室内”にカウントされてしまうっぽい。

下の画像はキッチンの画像だけど、人間でも「室内」といわれれば、そう見えなくもない感じなので、機械にも分類しにくいんだなと考えられる。


f:id:trafalbad:20170930141735p:plain



これが多分、正解率が下がった原因。ここは明確にキッチンとわかる画像を選べばいいんだけど、汎用性が高くないと意味がない。結局、慈悲は無粋だなというわけで、ちょっとわかりにくいのを配置してみたら結果的に正解率が微妙になった。


今回はマンション関連の画像を分類してみた。なんかいろいろとCNNの分類例はある。

けど、動物や顔だったりの単体の物体ばっかりで、鍋料理みたいにいろいろ入ってるマンション画像を分類する例はあまりないのではと思った。けどまあ、適切にラベル設定をして、ラベル付する人間でも迷わない範囲の画像ならCNNでも高い精度は出た。




*one-hot表現について
参考にしたすぎゃーんメモでは損失関数のところでone-hotを適用してたけど、cifar-10形式では特に必要ないらしい。ただしラベルは0から始めないといけないらしく、出力層(NUMCLASS)が4でもラベルは0〜3にしないといけない。これで一回ハマったので、注意。



本当はDCGANでデータセットを作ってから分類させようとしたんだけど、諸々の事情でCNNを先に試しました。DCGANは上手くいったらまた別記事で書く予定。

一週間7000円以内で安い食材を使った飽きがこない節約メニューまとめ【一人暮らし用食材】

今、将来のインフラスキルを身につけるため修行中で、結構収入が限られているため、節約生活をしています。そこで安くて、旨い、かつ飽きがこないという内容で、7000円以内で済む一週間のメニューをまとめておきます。
約1年半かけて思考錯誤したメニューなので、妄想上のメニューではないため、効果のほどは個人的に確認済みです。

目次
・今回のメニュー配分の特徴
・一週間分の食料一覧
・一週間分の献立とメニュー解説

f:id:trafalbad:20170928210859j:plain


今回のメニュー配分の特徴

今、ノマドライフという生活を送りたいので、インフラとなるスキルを得るためにフリーランスをしながら働いてます。

しかし、息抜きは必要で、趣味とかでお金が結構飛ぶ。そういうわけでどうしても出費を抑えなければならない。あと数ヶ月でこの生活も目処がつくんですが、約1年半かけて実行してきた「なるべく安く、旨く、しかも飽きがこないメニュー」というのを記録として残しておこうと思ったわけです。




「多分、安いメニューは思いつく。けど、毎回同じ食材だと飽きがくるから、外食は増えるから結局意味ない」

なんてことありませんか?自分もその泥沼に陥ったので、なるべく「安く、飽きがこない食材」で一週間分のメニューを思考錯誤して作ってきました。

総額にして約7000円。一週間で28000円なわけで、食費としては十分節約と呼べる範囲内だと思います。

もちろんたまには発散として外食に行きます。が、それは人と遊んだり、贅沢をするときに限定してます。平日はなるべく今回紹介するメニューを品を変えて食べ続けてきました。

今回紹介するのはあくまでそういった類のメニューの1つとして、参考にしてもらえたらと思います。スーパーを回って安い食材で、旨いメニューを考えるといろいろ思いつくし、面白い。





一週間分の食料一覧


米(13合)あきたこまち×1 1000円
パン8枚入り×5 80×5=400円
×3 140円×3=420円
肉(一食分)×1 298円
卵6こ入り×1 150円
チャーハンの素×1 110円
おかずになる缶詰×4 130×4=520円
野菜-チップレタス×2 70×2=140
野菜-100円サラダ×2 200円
ソーセージ×4 228×4=612円
カップ麺(一平ちゃん大盛り)×1 200円
炊き込みご飯の素×2 245×2=490円
スライスチーズ×1 262円
おかず用惣菜×8 70×8=560円
キャノーラのサラダ油×1 394円
ヨーグルト×1 140円

合計総額(税込) 約6300円

価格参考サイト→ヤフーショッピング

醤油、ソース、マヨネーズ等の調味料は1ヶ月以上長持ちするので、ここではすでに買ってあるものとしてカウントしてません。だいたいの食料は、ヤフーショッピングで手に入るもの、地元のスーパーなら手に入るものを選んであります。


ここでメインの主食としてるのは
・米
・パン

の2つです。

f:id:trafalbad:20170928210941j:plain


米はおかずメインで食べ、パンはチーズやウインナー、惣菜なんかを挟んで食べます。

一週間で考えると
米→5日
パン→2日

です。もちろんあくまで配分は自分の好みで変えます。この2つはまとめ買いしておくと安いので、メニューのメイン(主食)として食べるのがお腹を満たし、かつ食費を節約するポイント。主食が決まってると、無駄にいろいろ買わなくて済みます。




一週間分の献立とメニュー解説

それでは上のメニューをもとに一週間分のメニューを作ってみます。わかりにくいところは解説いれてます。


1日目 主食-米
朝 ソーセージ ヨーグルト
昼 缶詰
夜 魚 野菜

→主食は米なんでもちろん米は炊きます。ソーセージでもチーズ入りソーセージとか、トッピングでマヨネーズをかけるだけでも充分美味しい。缶詰は単体でもおかずになるものを買って下さい。

おかずのトッピングとしてマヨネーズや醤油などの調味料はあると、グッとバリエーションが広がります。野菜は健康のために入れてあります。



2日目 主食-米(炊き込みの具使用)
朝 ソーセージ
昼 カップ麺
夜 魚 野菜

→この日は、炊き込みの素を使ってお米を炊きます。食がすすむし、米ばかりだと飽きがくると仮定して、昼はカップ麺にしました。魚はもちろん焼きますので、加熱用の魚です。



3日目 主食-米
朝 ソーセージ
昼 惣菜
夜 チャーハン(卵使用) 缶詰

→チャーハンの素を使うので、卵を使います。惣菜は単品でも充分おかずになります。



4日目 主食-パン
朝 卵(目玉焼き)
昼 ソーセージ チーズ
夜 惣菜 ハム

→主食はパン。基本的にパンに挟んで食べます。チーズはパンに挟んで使う。チーズは貴重なので、あまり無駄つかいしないことがポイント。朝のメニューの目玉焼きは卵を焼いて作り、パンに挟み、サルサソースなんかをぶっかけて食べます。




5日目 主食-パン
朝 卵(目玉焼き)
昼 ソーセージ
夜 チーズ 惣菜

→これも4日目と同じですね。




6日目 主食-米(炊き込みの具使用)
朝 ソーセージ
昼 缶詰
夜 肉 野菜

→2日目と同じで炊き込みの素を使ってます。夜のメニューの肉はパックに入ってるものを買いますので、油で焼いて調理。調味料はお好みで。




7日目 主食-米
朝 缶詰
昼 ソーセージ
夜 チャーハン(卵使用) 野菜

→これも3日目と同じです。

食材の価格参考サイトはヤフーショッピングですが、米やその他の食材の相場は、高級なものでなければほぼ同じ。なので、他の店で代用可です。




飽きがこない工夫

同じ料金内であれば、飽きがこない工夫はできます。例えば


・主食をパスタにする
・トッピングをから揚げとか冷凍食品などにする
・かける調味料の種類を増やす

要は考えよう。個人的に凝ったのは「主食をメニューのメインに置いてる」ところですね。


主食を決めずにいると、腹が満ちるまで手当たり次第買ってしまう傾向があるので、メニューの主食を決めておくとだいぶ安くなります。あと繰り返しですが、サブのメニューは工夫次第。

あと食材は基本買いだめです。一週間分買っておくと食費の管理がしやすいと思います。


今回は少ない出費で、飽きがこない、長続きするメニューを紹介しました。ずっとこんな生活が続くのは嫌ですが、スキルとかを得る修行?期間はどうしても出費を抑える必要があります(というか普段から抑えるべきですが)。今回はその一端として安く済むメニューを紹介しました。