活動報告No.138 進捗状況 + α ~ ROBO-ONE auto
カテゴリ: 未分類

どうもおはこんばんにちは、無事に夏休みに入れた2年のマエダです。


学期末考査は今までで一番きつい科目群でしたが、単位はありそうです。




進捗状況の前にいうことがあるのですが、それは、


OBの先輩方がサポート募金をしてくださったようです。

感謝っ・・・

圧倒的 感謝っ・・・!!!



1年生が機体つくるのに予算請求しておけばよかったモノがちょいちょいあるので、そこに行くのかな?



さてさて、今回は私が夏休みに入ったというわけで、夏休み明けに控える2足歩行ロボット大会「ROBO-ONE」に向け、今の進捗状況と、この夏にやることを整理して行こうかなと思います。


去年の夏休みでは、1年性の私は無計画でロボ以外のいろんなことをやっていたので、時間を無駄に浪費した感がありました。


そんな堕落した夏を送るなら、大学に来ている意味はないので、自分で夏休みの課題を課そうと思います。


ヒュー研でも夏休みの一番最初の会議で、各々が今季やることを明確にした方が今後の活動のためになるんじゃないかなと思いますが、果たして、全然やらなかったわー はっはっは! となる人は何十人いようか。。。



1、目指すもの



大きな目標としては、今度の9月中旬にある「ROBO-ONE auto」に出場することです。autoの方に興味があるので、まあそっち目指します。


本当は自分で機体を製作してそいつに処理エンジン載せようと思っていたのですが、部内にあるサーボモータの個数が足りないため、既存の機体を拝借して、それに無理やり処理エンジンを載せます。


ロボットの認識には位置センサなどは使わず、カメラで認識しようと思います。


「ROBO-ONE における操作」

人間が状況判断 → 無線コントローラで動作コマンド送信 → 機体が動く


というのが、


「ROBO-ONE auto における操作」

カメラの映像から、ラズパイが状況判断 → ラズパイがRCB4HVにコントーラコマンドをシリアルUSBアダプタ経由で、コントローラコマンドを送信 → 機体が動く


という手順になります。



2、前期の間にやったこと



前期は初めての実験の授業があったことで自分のやりたいことがなかなか進まない数ヶ月でしたが、夏休みにやることが明確・細分化できるレベルまでは達しました。


其の一(画像処理)

とりあえずLinuxでPython(←プログラミング言語)を使って画像処理をする方法を確立しました。処理部はラズパイ(もしくはラズパイと同サイズの高スペックシングルボード)に絞り、USB端子からカメラモジュールにアクセスし、映像をリアルタイムに入手。リアルタイムの映像に対して処理をかけることができました。

ほんで、色検出や円検出、ステレオカメラによる距離検出、などなどのコードを記したものをまとめました。


其の二(機械学習の勉強)

機械学習のお勉強をしていました。ロボットをカメラで認識するには、カスケード分類器か機械学習による学習モデルを使うかする必要があります。

カスケードでもまあいいのですが、個人的に機械学習の方が興味あったので、その学習モデルを使います。さらにいうと、畳み込みニューラルネットワーク(CNN)というディープラーニングの一種を使って学習モデルを生成したいです。

現状は単純な機械学習の勉強と、そのコーディングの練習を大体終わらせた感じです。機械学習ライブラリは先日のブログで出した、Google参加のDeepMind社が提供しているTensorFlowを使っています。

CNNは単純な機械学習と違って次元下げるのに特徴量を失わないように全結合層以外の様々な層と、それらの組み合わせがあります。ここら辺がまた複雑なので、理論よりとりあえずTnsorFlowのCNNチュートリアルをやって、動作を体感してから理論を学んでいく方針でやっていこうと思います。


其の三(入力データの収集)

機械学習は、学習に必要なデータ(入力データ)が集まって初めて成り立ちます。そもそもデータがなければどうにもならない。しかも、私の考えている方法だと、その入力データは全て正方形で同サイズ(ピクセル)である必要があります。

その肝心な入力データは、ロボットバトルの動画から一定間隔で静止画を切り出して、それを正方形にトリミングすることで得ようと考えました。

実は、ヒュー研の先輩方がその昔、各大会のロボットバトルの様子を動画として記録し、それらをヒュー共有のPCに保存されていたようです。そして、その記録伝統はちゃんと今でも受け継がれ、今のヒュー研は、大量の動画データが蓄積されています。何百GBあるんだろう。。


とりあえず、この伝統を始めた先輩にはお礼を申し上げたいです。


そのおかげで機械学習に必要なデータは潤沢にあります。このデータという財産は、多分私が一番ありがたく感じていると思います。

圧倒的感謝。


個人的に使っていた240 GBのポータブルSSDにそれらの動画データのごく一部を複製し、家に持ち帰って自分のPCに入れていました。



3、夏休みの間にやること



其の一(入力データの加工ソフト作成)

動画データから静止画を抽出、ほんでそれを人間が一旦トリミングと其の画像が何であるかということを示すラベル付けを行います。さらにトリミングした画像へアクセスする絶対(または相対)パスと、それに対応するラベルをスペースを一つ挟んでテキスト形式にまとめます。一つのデータに対して一行書き込むことで、学習の時にちゃんと機械が答え合わせしてくれ(ると思い)ます。


其の二(畳み込む)

前述でちょろっと述べたので、簡単にいうと、TensorFlow使ってコーディングして学習させて分類器をつくります。


其の三(ラズパイで使う)

学習モデルができても、ラズパイで使えなくては実装不可能です。問題はその学習モデルの扱い方です。カスケード分類器はXML形式で読み込めば、対象物のXY座標と大きさ(横幅と縦幅)を配列で返してくれますが、TensorFlowの学習モデルはどう扱えばいいのかわからないです。

正直ここが一番の難関になりそうな気がします。小耳に挟んだ程度だと、TensorFlow形式からプロトコルバッファ形式に変換して、それを読み込めばいけるとか、いけないとか。。。

計算資源が制限されているスマートフォンなどでもリアルタイム認識ができる方法があるようなのですが、それどうやってやるのかわからないです。


其の四(チューニング)

夏休み明けは地獄の実験が始まり、本番までの日数は残りわずかなので、上記の其の一~三までは8月中に終わらせたいところです。

チューニングでは、認識結果から攻撃までの行動を決定し、それをRCB4HVにコントローラのボタンコマンドを送信するのに最適なパラメータを決めます。ステージから落ちないようにするのに単眼ビジュアルオドメトリという方法を採用したかったのですが、それをしているともう本格的に時間がなくなりそうなので、そこだけPSDセンサを使おうかなと思います。



4、データの公開範囲に関して



かなり重要な話ですが、もしこのプロジェクトが成功を収めたら、実際に使用した学習用オリジナルデータ、学習モデル、学習のレイヤー構造、行動決定パラメータなどの情報を公開するか否かに関してです。


先に言うと、現段階の判断では、公開しないと思います。


と言うのも、上記のデータを公開してしまうことは、またハードの戦いになり、すなわちそれは札束の殴り合いを意味すると考えています。それならもう、autoである必要ないよねっていう。なので、開発環境のセットアップや学習モデルの作り方をブログにして公開することは可能性としてありますが、実装データは一切公開しない方針で行こうと思います。



5、さいごに



今週はオープンキャンパスがあることもあり、機体持ちの人は機体の調整に取り掛かると思われるので、思われるので、、最近できた(改良された)機体のご紹介と製作者へのインタビューをブログにしようかな。。調整に取り掛かると思われるので。

ほんじゃまったの〜(o・ω・)ノ




スポンサーサイト
編集 / 2017.07.23 / コメント: 0 / トラックバック: 0 / PageTop↑
コメント
 
Title
 
 
 
 
 
 
Secret 


Pagetop↑
トラックバック
Pagetop↑
プロフィール

ヒュー研の中の人

Author:ヒュー研の人
このブログは東京電機大学理工学部ヒューマノイド研究部の公式ブログです。2012年から部に昇格しました!
その日の活動や大会の記録をできるだけ更新していきたいです!!

☆だいたい金曜日前後に更新します☆

FC2カウンター
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
リンク
ブロとも申請フォーム
携帯でみるには↓
QR