2017年10月29日日曜日

【実践】機械学習 #01

【実践】機械学習

-#001-

環境/前提

・教科書:ゼロから作るDeepLearning 斎藤 康毅著

・Eclipse + PyDev
・PC AspireV5122P

・Python経験:初〜中級程度
・オブジェクト指向プログラミング:初〜中級程度
・行列計算経験初〜中級程度

・GitHub
・GitKraken

実践

判定結果→←読み込み画像


1-3章までで

・ニューラルネットワークて なんぞ?
・重み、バイアスって なんぞ?
・「機械学習」って なんぞ?

↑といった、ことがテンポよく理解できて、「深層学習の基礎を理解した気」になれますw
ニューラルネットワークの、重みやバイアスのパラメータを、「自動的に算出する手法」が、機械学習のすごいトコなんですよ、と。

ソースコードもダウンロードできるため、実行環境さえ整えれば、コードを1行も書くこと無くディープラーニングを体験することが可能になっています。

4章まで理解したら、アトはマシンパワー使って学習をブン回せば、それなりに最適化された重み&バイアスマップ=学習結果が手に入るんでしょ? っていう認識。

反省

数値の読み取りの他にどういった実装が出来そうか、考えるのが楽しみ。
テストデータと教師データを用意するのが大変そう。

2017年4月17日月曜日

OpenCV @Python で動画の手ブレ補正してみた


基本的には↓のコードをPythonに移植すれば、
素人目にはちゃんとブレが取れるものができるんさ。

 Simple video stabilization using OpenCV


Pythonのソースコードを載せないクズ→σ(゚∀゚ )オレ
んが、しかし
フレーム毎に抽出している特徴点(cv2.goodFeaturesToTrack)の軌跡を使ってカメラ移動(縦・横・回転)の平均をとっている関係上、次のような特徴があり、一般的に動画ファイルに対して手ブレ補正をかけようとすると、こまかい点で工夫が必要となります。
 
・抽出される特徴点が、必ずしもブレの除去に適していない…とか
・フレーム間で特徴点の変化が大きすぎるときには、cv2.calcOpticalFlowPyrLKがエラーを吐いて止まる…とか

 特徴点の発生する範囲や量をいろいろ弄る必要があり、往生しましたが、なんとなく僕の望んでいるものにはなってきたような気がします(-_-;)


※携帯カメラの性能が良くないせいか、あまりジッと見ていると酔います(-_-;)
左が補正前 右が補正後






Youtubeの自動手ブレ補正機能は、縦・横・回転により映像の端が不自然にならないよう、上手に調整してあります。流石です。 ←それ故、大きすぎる振動(ジェットコースターのオンボード映像等)の除去には限界がある模様

2017年1月2日月曜日

xubuntuでjava開発環境を整えてみる

 

 

材料

  • xubuntu16.10
  • java8
  • eclipse3.8
  • AmaterasUML1.3.4
    • GEF(↑が必要としている)
自分が再構築できなくなるので、トリッキーなことはしない主義
チューニングとかほぼ無しの、ドノーマル仕様のXubuntu16.10がベースです


Xubuntuのインストール

Xubuntuはほぼノーマルなので、インストールは割愛

Java(ランタイム、開発環境)とeclipseをインストール
sudo apt-get install default-jre default-jdk eclipse

eclipse用のUML記述環境をインストール

GEF


※GEF公式HPからのダウンロード方法がわからなかったため、Eclipseが持っているインストール方法を利用することにした。

Eclipseメニューの「ヘルプ」-> 「Install New Software...」をクリックして,インストールウィンドウを開く.以下の手順を実行してGEFをインストールする.

    「作業対象」: "http://download.eclipse.org/releases/luna/" 入力
   …Eclipseがリストを取得するので、しばし待つ…
    「モデリング」-> 「グラフィカル編集フレームワーク GEF SDK」をチェック
    「次へ」をクリックして,インストールの流れを進める.
   …インストールの同意をすれば、再起動ボタンが表示される
    Eclipseを再起動する.

AmeterasUML

AmaterasUMLはこちらから入手してください。
入手したアーカイブを解凍し、出てきたjarファイルをEclipseのプラグインフォルダにコピーすれば、インストールは完了
 ↑「プラグインフォルダー」は、利用者が自分だけだれば ~/eclipse/org.eclipse.platform_3.8_ホゲホゲ/plugins/


 AmaterasUMLの使い方

  1. 「ファイル」->「新規」->「その他」をクリック.
  2. 「AmaterasUML」→「クラス図」を選択してファイルを作成.
  3. 必要なクラスファイルをドラック&ドロップ

2016年12月15日木曜日

Huginを使ってみた 第3回(END)

自動検出に失敗した時の対処のしかた(2)

(肉眼でオーバーラップ部分の特徴を探して指定する)
←第2回

   


 

対象となる画像をパノラマ要素として読み込む

第2回の続きの場合、諸悪の根源となる画像がリストから消された状態のはずなので、今一度パノラマ要素として読み込みます。対象画像をリストから消していない場合にはこの操作は不要です

「パノラマ写真作成ソフト」ウィンドウ、「photos」タブの、「AddImages」ボタンを押下
(この説明では、13番画像が操作が必要となる画像)


2つの画像の関連する点を手作業で指定していく

「コントロールポイント」タブを表示して、13番画像とオーバーラップがあるはずの画像を選択ます
図の画像名の横にある←→▲▼を押せば、画像が切り替わります。このとき表示される画像の配置は、右左関係がありません。
(今回は12番画像が、13番画像と隣同士)

この時、←→ボタンを押していると、他の画像同士の自動判定された関連をみることができると思います。要するに、以下の操作でコレと同じ状態にしていけば良いということです。
オーバーラップが正しく自動判定されているパーツ

人の目で大局的に見て、「同じような部分」を予め見定めて、以降進めてください。
このへんだよね〜
どちらかの画像で関連付けしたい部分を1箇所クリックしたら、その部分が拡大表示されます。
 

「ここだ!」と思う点が左右の画像で一致したら、すかさず「追加」ボタンを押すことで、その点がコントロールポイントとして追加されます。
 この時、撮影時の状況にもよりますが、当然のこととして、パーツを分けて、角度を変えて撮影しているので、「完全一致はありえません」 ←ここの事情を汲みましょう。
今回の画像の場合では、「水面」、草という被写体の特性上、なおさら完全一致はありえません…
なので、そこは人の目の「曖昧さ」を利用して「大局的な一致部分」を指定してやります
 コントロールポイントは多ければ多いほど出来上がりの画像がそれらしくなるのですが、最低3点はほしいところ。頑張って関連する部分を探しましょう。

再びの自動配置

コントロールポイントを手作業で記録したら、「ファストパノラマビュー」ウィンドウに戻って、
「アシスタント」タブ→「配置」ボタンを押下して、今一度自動で処理を行わせてみます。
すると、今度は追加したコントロールを踏まえた画像の配置を行ってくれるはずです。
正しく配置された♪
 コントロールポイントを表示してみると、自動認識で画像のどこを「同じ点」として認識しているのか、眺めることができます。
この時、直線で結ばれた×印は、多分間違った点同士を「同一点」として見ていますw
まぁ、全体の出力があまりにも現実離れした画像とならなければ、ほっといても問題にならないのかなというトコロ。

 以上が、Huginの基本的な使い方なのかな、と思います。
これから、深く掘り下げて、「投影方法」の違いなんかにも挑戦していけたらなと思います。



2016年12月14日水曜日

Huginを使ってみた 第2回

自動検出に失敗した時の対処のしかた(1)

(一度諸悪の根源を把握し、消し去ってみる)
←第1回                             第3回→



 

画像を読んで「配置」ボタンを押下した自動配置でエラー↓が出てしまった場合の対処

このダイアログはとりあえず「continue」で凌いでいただいて…
なにかの処理に渡す引数がおかしい…、的なエラー?
次に出現するダイアログを読むと、 
14枚ある画像のうち、[0-12]と[13]の間に関連が検出できなかったことがわかります。
このダイアログの数字は、改善のイトグチなので、サラッと流さないでください!
エラーのある画像の番号を控えて「OK」を押下して、「ファストパノラマビュー」に戻ります
14枚ある画像のうち、[0-12]と[13]の間に関連が検出できなかった

 現状で「配置」タブを見たところ、画像がすべて横並び…
上下2段になってほしいところなのですが…
ホントはこう↑なってほしいのに…
 

一度諸悪の根源を断ってみる

2016年12月13日火曜日

Huginを使ってみた 第1回


インストールと使い方

(Huginを使ってみた 第1回)

ちな↑世界一周した時のアメリカヨセミテ国立公園 ミラー湖
Hugin凄いやつだった
((((;゚Д゚))))ガクガクブルブル

「Hugin」複数の画像からパノラマ写真を合成する"無料"のソフトなんですが
スゲっす。

元画像はこちら↓


何がって
2次元方向の多段画像も、「ほぼ自動で」合成してくれるところが。

 元画像のオーバーラップさえしっかりとれていれば、
画像を選んでボタンを押すだけ

画像の配置に気を使ったりとか、露出を合わせたりとか
要らないとか、どんだけ手軽なのか、と♪

Huginの使い方(手抜き)

2016年12月10日土曜日

バックアップ環境を考える

取っててよかったバックアップ fwbackupsは最高すぎます♪



僕の環境では以下の基準でバックアップとってますが、
何度も救われるほどのおっちょこちょい(;・∀・)
なので頻繁なバックアップは欠かせません。

イメージはWindowsのファイル履歴、MACのタイムカプセルです↓