ロボコニストの技術日記

知見や技術を備忘録として書こうかな

MATLABからPythonコードを実行したい。

~ 研究はGPU が, 人生は僕が ~

 

こんばんは、ひふみです。 

 

 DeepLearning を研究で使用するにあたって、MATLAB で特徴量抽出を行い、Python で学習を回す。という方が多いんじゃないかな、と思います。

 僕も同じくそうなのですが、MATLAB で特徴量抽出をする際、2, 3 時間、あるいはそれ以上かかる場合があります。そうなると夜帰るときにMATLAB コードを実行させる訳ですが、翌日朝っぱらから、出来上がった特徴量を元に学習を回す、という退屈な作業を行う羽目になってしまいます。

 これでは、タイムロスが多い(Python で特徴量抽出 or MATLAB でDeepLearning をしろという話は抜きに)。

 

 そこで、MATLAB からPython を実行しようと考えた訳です(すると夜、F5 を押すだけで翌日ほしい結果画像が出来上がっているのだ!)。

 

 ↓ ↓ ↓ 以下がその方法 ↓ ↓ ↓ 

MATLABからPythonコードを実行したい。

 

 

以上の枠組みを各位、MATLAB コード、Python コードに適用すれば、積年の夢であった、研究のオートメーション成功である!

 

研究について。音声認識モデル

 

おはこんばんちはひふみんとです

 

最近マイクロマウスをやってない代わりに、研究で信号処理をやっています。

元々は大して研究をやりたいとは考えていなかったのですが、マイクロマウスに信号処理と深層学習を適用出来ないのかなぁ。と考え始めた辺りから、研究室をそういった研究室にしようと考えるようになりました。

ハードウェア作成の技術については、恐らく普通の大学生よりは持っているのですが、ソフトウェア方面の技術はからっきしだったので、研究のテーマに設定することで少しは強くなるだろう。と考え、音声認識(正確には話者認識)に機械学習を適用する研究テーマを選びました。

 

研究、大変ではありますし、分からないことだらけですが、おおよその概観は出来てきた様な気がするので、「いずれ」、軽くまとめてみようと思います。(詳細な研究テーマは決まってないので、この知識は公開しても特に問題ありません。)

 

最近の主流は、音声(おはよう、いい天気だね)をMFCC(メル周波数ケプストラム係数)という特徴量に変換し、これをDNN(ディープニューラルネットワーク)にかけて音声を重複ありの音素列(おはよう→おおおおおhああああyおおおうおおうううう)として認識し、その音素列を隠れマルコフモデルによって音素列(おはよう いいてんきだね)に変換。そしてこの音素列の群(おはよう、いいてんきだね)をn-gram言語モデル(n-1文字前まで遡って、「おはよう いい 天気 だ ね」)によって認識するものです。

これに話者の認識も含めて、音声認識ソフトの実用性を高めよう。というのが僕の研究テーマです。

 

僕からすると体系立っている学問だと感じますが、識者からするとまだまだ小さなブレイクスルーを求めている様なので、僕の後輩各位は僕の下に付いてみるといいのではないでしょうか。楽しい研究だと思います。

 

音声認識、とても楽しい。

 

それでは。僕の現況でした。

GitHub開設とegitについて

 

おはこんばんちはひふみです。

 

突然ですが、Git 使ってますか?使ってないんですか?使いません?(とっても簡単に色々な利点を得られるので、この記事を参考に是非利用してみてください。)

 

まず、この記事の対象者は、

1. Gitを使ってみたいなぁと漠然と思っている人

2. eclipseベースのエディタを使っている人(Miceの方だと、e2studioですね。)

3. なるべくGUIでことを済ませたい人

のかつ条件です。明確に思っている人は、この記事では物足りないと思うので、他の、より詳細な記事を参照してください。

 

それでは始めていきましょう!

まずは、eclipseなどのエディタを開いてください。このとき、インストールやダウンロードに時間がかかる上、eclipseの再起動を促されたりしますので、あらかじめプロジェクトなどは保存しておきましょう。

次に、"ヘルプ->新規ソフトウェアのインストール"を押してください。

f:id:hihumint-t:20171229002632p:plain

 すると以下の様な画面が出てきますので、

赤枠の中に”http://download.eclipse.org/egit/updates”を入力してください。

f:id:hihumint-t:20171229003105p:plain

 上のウィンドウで"追加"を押すと以下の様なウィンドウが出てきます。名前は適当なもので良いですが、今回はわかりやすいように"egit"としました。

f:id:hihumint-t:20171229003339p:plain

 "OK"を押すと、以下の様なウィンドウが出てくるので、"Git integration for Eclipse" と "Java implementation of Git" をチェックし、"次へ"。

f:id:hihumint-t:20171229003533p:plain

 あとは何も考えず"次へ"

f:id:hihumint-t:20171229004004p:plain

f:id:hihumint-t:20171229004034p:plain

f:id:hihumint-t:20171229004214p:plain

以上の操作が終了すると、ソフトウェアをインストール中という画面が出てくるので、しばし待機しましょう。しばし待機すると、eclipseの再起動を促されますので、従いましょう。再起動が終わると、晴れてegitのインストールが終了しているかと思います。

 

それでは、早速Git を使用していきます。

まず、なんでもいいので、プロジェクトをcommit(変更の記録を残す作業)してみたいと思います。

以下の画像の通り、Git 連携したいプロジェクトを "右クリック->Team->プロジェクトの共用" で左クリックします。

 f:id:hihumint-t:20171229151332p:plain

 そうすると以下の様な画面が出てきます。ここは、"Git->次へ"で進みましょう。

f:id:hihumint-t:20171229152218p:plain

 以下の画像と同じチェックマークの状態にすると、Create Repository のボタンが浮かび上がってくると思います(僕はもう押してしまったので沈んでます)。

f:id:hihumint-t:20171229152419p:plain

以下の様な状態になったら、"終了" を押します。

f:id:hihumint-t:20171229152602p:plain

すると、ポップアップ画面が消え、通常のエディタ画面に戻るかと思います。そこで、プロジェクト内のsrcファイルや、その他のファイルに "?" マークがついていることが確認出来ます。

さて、以上の操作が終了した状態で先程の操作( "プロジェクト右クリック->Team")を行うと、先では "プロジェクトの共用" などと出ていた部分が、以下の図の様な形式になっていますね。そこで、今回はcommitという操作をします。

f:id:hihumint-t:20171229153109p:plain

すると、以下の画面(Git Staging)がエディタの下側に現れます(環境によっては異なるかも)。Git Staging上の++ボタンを押すと、

f:id:hihumint-t:20171229154013p:plain

全ての項目が下の枠内に移ります(このとき、git 記録に残したくないものはドラッグアンドドロップで上の枠内に戻してもいいです。が、そんなに変化は無いと思うので僕は全部移します。)。

f:id:hihumint-t:20171229154230p:plain

次に、Commit Messageの枠内に、今後、変化の歴史としてわかりやすい記述を残しておきましょう。今回は "first commit" としておきます。そして、 "Commit" します。Commit に成功すると、Git Staging の画面がクリアになります。(((Author, Commiter の欄は、名前とメアドが打ち込まれてました。皆さんの環境はどうなっているのでしょう?ちょっと把握不足です。

さて、Commit が終了しました。すると、先程 "?" マークの付いていたファイルは、異なるアイコンになっていると思います。なんと表現して良いのか分からない形状なので、表現については割愛させて頂きます。

次は、ようやくGitHub などへのpush 操作の説明です。が、その前に、GitHub や、Bitbucket のアカウントを持っていない方(オア条件です。)は、作成しましょう。これは恐らくスムーズに出来るかと思います。更に、アカウントを開設出来たら、リポジトリを作成する項目があるので、作ってみてください。これは、プロジェクトの名前と同一である必要はありません。しかし、私はこんがらがってしまう質なので、同一のリポジトリにしています。

リポジトリを作成出来たら、またこの記事に戻ってきてくださいね。

 

戻ってきて頂けましたでしょうか?それでは、push 操作の説明をしていきます。push 操作も、Commit と似たような操作で、今度は "右クリック->Team->Remote->Push" といった操作を行います。f:id:hihumint-t:20171229155531p:plain

すると、以下の様なポップアップウィンドウが現れるので、URL(URl)の枠に、先程作成したリポジトリを入力してください。また、Authenticationの項目は、メールアドレスと、パスワードを入力します。

f:id:hihumint-t:20171229160201p:plain

上のウィンドウで "次へ" を押すと、以下の様な画面になります。"Source ref:" の項目で、"▽" を押します。"master [branch]" を選択し、"Add Spec" をクリックします。

f:id:hihumint-t:20171229160417p:plain

上記の操作が終了すると、"終了" が浮き上がってきますので、クリックしましょう。

f:id:hihumint-t:20171229160642p:plain

すると、新たなポップアップウィンドウが出てきます。それも "終了" を押します。以上の操作が終了すると、通常のエディタ画面に戻っています。

これで、晴れてGitHubなどのリモートリポジトリにsrcファイルなどを記録することが出来ました。(後ほどpullについての項目も書き加えたいと思います。)

 

 

以上がegitの操作でした。お疲れ様です。Commit, push, pull などの単語は使っていくうちに当たり前になっていくと思うので、まずは、使って慣れることから始めましょう。

それでは、素晴らしいGit ライフを!

地球の1/10のお話

この記事はMice Advent Calendar 2017の19日目の記事です。

前日の記事は、あやたかくんの 音のお話でした。TPUの説明から始めていて、とてもタメになる記事でしたね!

 

それでは、おはこんばんちはひふみです。

普段とは異なって誰かに向けて発信するブログです。((普段は自分向けにブログを書いています。

また、マイクロマウスのお話でもありません。

 

今回は、僕が2017年の9月1日から乗っている "VTR250" というバイクと、そのVTRと過ごしてきた4ヶ月間について紹介させて頂こうと思います。

f:id:hihumint-t:20171218194514j:plain

 (VTRの参考画像)

京都駅前のVTRの2ショット写真。(雨が降っていて大変であった。)

 

それでは紹介していこう!

9月1日に納車しました。

f:id:hihumint-t:20171218200830j:plain

納車日は、バイク屋さんに札束💴握りしめて向かいました。納車後、初乗車!とノリノリ(実はドの付くレベルの緊張でした)で跨りバイク屋さんを背に颯爽と...なんて夢物語、納車後の初エンストを経験するのでした。(苦笑

そしてここから4ヶ月間で北は山形、西は香川県まで、日本中駆け回ってきてくれた大事な相棒。

 

僕がロボットやバイクを愛していることは皆さんお察しの通りのことだと思います。しかし、好きなものが更に一つ(いやもーっとあるけど!)ありまして、それは何を隠そう 「建造物」 なんですね。

 

そこで僕はこう思う訳です、VTRスカイツリーとか東京タワー見に行きたいな。と!

こうして僕は未知なる東京の路探検をナビ無しでタワー探しの為に休み時間に走り回ることとなるのです。

 

その結果、、、、東京の土地勘が無い僕の勘では、スカイツリーは見えているからともかく、東京タワーはいくら走り回れども見つけることは出来なかった。。だからこそ、初めて見つけた時は驚きましたね。こんな所にあるのか東京タワー!と。

f:id:hihumint-t:20171218202319j:plain

 こんな所にあるのか東京タワー、の図

スカイツリーはもう何回も足元まで行って眺めているので貼り忘れてしまいましたが、こんなカッコイイ写真も撮っていました。

f:id:hihumint-t:20171218202731j:plain

 

あと納車から3日しか経っていないのに親に内緒で帰省しました。絶対怒られると思ってVTRで帰ることを内緒にしていましたが、どうやら帰省手段について何も連絡が無いのはそういうことなんだろう、と察していたようです。(何も聞かずに十を知る。子の心親まるわかり。とは言ったもんですね。)

鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿

はい。帰省は、実家が鹿鹿鹿なのでドアtoドアで500kmちょうどでした。意外と疲れないもんだと自分の体力を過信し、実家に着いた翌日に片道250km日帰りで香川県までおうどんをすすりに行きました。泣くかと思うくらい辛かった。ほんと辛かった。帰りは本当に一泊するか迷った。温泉入ってちょっと寝て何とか帰りましたけどね。

鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿

f:id:hihumint-t:20171218205251j:plain

f:id:hihumint-t:20171218205258j:plain

そのときのおうどんたち。もっと食べればよかった。コシがコシコシなのは勿論、おあげも味が染みていて、熱いこだわりを感じました。冷っと美味しかったです。今度は車で行こうな???ちなみにうどん屋さんのおっちゃんにバイクで一人旅!いいねぇ、頑張って!と励ましてもらいました。折角なら四国回って行きなよ!と言われましたが、前述の通り体力の限界でした。

 

そうそう、帰省のタイミングで先程掲載しましたを見に行きました。(僕が見た、天候の関係で夜まで待機出来ず京都タワーでしたけどね。)

 

あとはマイクロマウスの東北地区大会にお邪魔したり、栃木の祖父母のお墓参りに行ったり、色々な場所に行ってきました。時系列はぐちゃぐちゃですが、一人でこんなはちゃめちゃな4ヶ月間を体験していました。ぼっち最高!バイク最高!!

 

おっと、最後になりましたがタイトル回収。9月からの累計走行距離が4000km、すなわち地球の円周1/10を走破してまいりました。地球の円周を走るには相当な時間とお金が必要ですね。楽しんでのんびり走っていこうと思います。最近は寒くて全く走れん、寒い寒い。寒い。

 

(後述:そういえば僕のVTR君中古なので44000kmくらい走ってます。僕が乗る前から地球1周してたんやねぇ。2周目も元気に楽しく走ろうね!)

 

それでは今後の僕の安全を祈って!しーゆーぐっばい!

っとおっとっと、明日のMice Advent Calendar 2017は、popopopooonnanoさんの「quadceptはいいぞ」です。お楽しみに!

備忘録

 

色々勉強したから未来の自分に向けてメモ。

 

1. PCB Part LibraryはLibraryLoaderの使い方をちゃんと知れば使いやすい。

→ぐぐって解説ページを見て思い出そう。

 

2. RX631のUSBブートモードはよく分からないけど12.000MHzで動かしている人が多い。データシートのどこかに書いてあるものなのか、偶然なのか分からない。知っている方がいらっしゃったら教えて頂きたい。。

 

3. KiCadの使い方はすぐ忘れる。けど使い始めたら思い出すから1日くらい粘ってみて。→あまりググらないでもいける。一番忘れていたのはライブラリの読み込み。これは、1.の項目に記した通り。

 

4. PCB Part Libraryで一番利点と感じたことは、コネクタやスイッチなどのクリアランスを、自分で素子の外形を作ってなかったことから生じる干渉が無くなりそうということ。

 

5. PCB Part Libraryに投げられるRequestは一日5個まで。

 

6. Slackの基本ルール作りは難しい。頑張って。

 

以上。

前期末試験終盤にして一般教養落単まであと一歩

おはこんばんちはお久しぶりです。ひふみです。

やべえ。油断した。電子回路2(アナログ電子回路)は講義をどことなく受けていた。だからどことなく安心していた。しかし、意外と綺麗に解けないもんで復習してる。まだ完璧じゃない。そんな状況で科学論のレジュメを殆ど読んでいない。講義もぐっすりしていた。久しぶりに焦燥。家を出る時間まで6時間ある。ふむ・・・。

 

そんなこともそうだけれど、今ふと自分のブログを見て基本情報を受けることを失念しておった。参考書(栢木先生のやつ)は何周も呼んだが過去問などは一つもやっていない。いやそんなことよりも申込が先・・・・。。

 

更にデスクの左側を見ると散乱したマイクロマウス道具が。関西大会前から何ひとついじっていないような気がする。夏休みはバイクに乗る。うーん。

 

人生やらないといけないことから逃げている方が幸福感が高い気がする。そのほうが後でやるべきことを頭で整理しながらやった気になれる気がする。世の中の意識の高い人はこれを怠惰だと言うのであろう。しかし僕はこれを貫き通せるのならば最も幸福感にあふれるのではないかと思う。

 

 

科学論・・・。