このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
Techブログではお初です、エンジニアの遠藤です。
この度、社内有志を募って「機械学習論文セミナー」を開催しました。
今回は、論文セミナーそのものについてと、第1回で発表した論文について簡単にご紹介致します。
機械学習輪講セミナーは、その名の通り機械学習の論文をお互いに持ち寄って輪講をする回です。
社内 Slack に #share_ml_papers という機械学習の論文を紹介するチャネルがあり、そこからアイディアを得ました。
Slack では各自論文のリンクをチャネルに貼って、そこからディスカッションを広げていくという形を取っています。
論文が少ないうちは良かったのですが、数が増えてくるとどうしても流れが追いづらいと個人的に感じていました。
また、それぞれの論文についてどこがいいか、どのように活用できるかなど、face to face で議論できるとより効果的になるだろうと思い、論文セミナーを企画しました。
もともとは高速化を売りにしている弊社ですが、最近ではおかげさまで機械学習関連の案件も多数携わらせていただいており、機械学習の重要性は日に日に上がっています。
機械学習セミナーを続けていくことで、以下のような目論見を達成したいと考えています。
今回は第1回ということで、言い出しっぺの法則に従い、提案者の私が発表を担当しました。
今回取り上げた論文は、NVIDIA 発の?End to End Learning for Self-Driving Cars という論文です。
自動運転を実現するにあたって、ディープラーニングをどのように適用したかがポイントの論文です。
自動運転を実現するには、大まかに分けて以下のような処理が必要となります。
1番の状況認識については、CNN(Convolutional Neural Network) の発展により、個々のタスクが高精度に行えるようになってきました。
車線領域のセグメンテーションや、車両・障害物といった物体認識は、ディープラーニングが得意とする分野です。
通常、状況を認識したあと、その後の行動判断や車両の制御は後処理として実行されます。
この論文では、その後処理を含めてすべてニューラルネットで End to End 学習することで、シンプルなシステムを設計することが動機となっています。
この論文で提案されている DAVE-2 システムの概要を下図に示します。(図は論文より引用、一部改変)
単眼カメラが3つ(中央・右・左)、DRIVE PXに画像入力として接続されています。
このカメラ画像をもとに、前方の状況が入力されます。
実際の車両の制御は中央のカメラの入力だけを用い、左右のカメラは後述する学習のためにだけ使われます。
また、ステアリングの舵角情報も、入力として接続されています。
ステアリングの舵角と実際の車両の回転半径は車両によって違いがあるため、車両の回転半径に変換してネットワークに対し入力されるとのことです。
DAVE-2 で用いられているネットワークのモデルを下図に示します。 (図は論文より引用、一部改変)
f
カメラの入力映像をもとに、ステアリングの制御コマンドを直接 End to End で導き出すようになっています。
畳み込み層が5つ、全結合層が3つと、画像認識でよく使われるネットワークと比べると、非常に小さいネットワークとなっています。
学習のポイントとして、左右カメラの利用が挙げられます。
ネットワークの学習は、実際に車両で人間が運転したデータをもとに学習するため、そのままでは車線から外れた状況や、向きが間違っている状況を学習することができません。
それでは車線復帰ができなくなってしまうので、左右カメラの画像を使い、画像の視点変換を行うことで、位置のズレや回転を擬似的に再現しています。
このネットワークでは、評価尺度として自律度(autonomy)が用いられています。
自動運転車が誤った運転操作をした時、人間が介入して正しい運転制御を行います。
全走行時間のうち、人間の介入なく自律的に走行した時間の割合を表したものを、自律度と定義しています。
一般道で走行試験をしたところ自律度が98%、高速道路では100%(人間の介入なし!) が達成されたとのことで、非常に高い精度で自動車を制御できていることが確認されました。
実際に DAVE-2 を用いて車両を運転している動画が YouTube にアップロードされているので、そちらもご参照ください。
ネットワークが何を認識しているかを確認するため、畳込み層の1・2層目を可視化すると、車線のエッジが取れていることがわかります。
このネットワークでは車線の境界情報は教師データとして与えられていませんが、ネットワークがうまく車線の特徴を抽出できていることが見て取れます。(図は論文より引用)
路面検出や物体検知といった論文は数多く見てきましたが、カメラ画像から直接車両を制御するというアプローチの論文を個人的に見たことがなく、とても新鮮な気持ちでした。
実験で高い精度での車両制御が確認され、End to End 学習の可能性を大きく感じました。
一方で、まだまだ完全な自動運転を実現するには乗り越えるべきハードルが数多くあることも事実です。
この分野の動向を今後も注視したいと思いますし、発展に向けて何らかの貢献ができればいいなと感じました。
今回、初めて論文セミナーを実施するにあたって、有志がどれだけ集まるのだろうという点が心配事としてありました。
告知する間がほとんどない状態で始めてしまったため、多くの参加者が期待できない状態でした。
実際やってみると、自分が想定していなかった方に複数参加していただくことができて、当初の予想よりも盛り上がる会になりました。
ディスカッションでは、自分が特に気にしていなかったような思わぬところに質問が飛んできて、自分の論文の読み方の甘さを痛感した他、質疑応答を通して論文への理解が深まるという点で、face to face でディスカッションすることの有用性を改めて確信することができました。
また、半ば思いつきで始めたこのセミナーに多くの参加者が集まってくれて、熱い議論ができたということで、フィックスターズのエンジニアのノリの良さを改めて実感することができました。
このノリの良さは、フィックスターズのいいところの一つですので、これからも盛り上げていきたいと思います。
keisuke.kimura in Livox Mid-360をROS1/ROS2で動かしてみた
Sorry for the delay in replying. I have done SLAM (FAST_LIO) with Livox MID360, but for various reasons I have not be...
Miya in ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました
作成されたプロファイラがとても良さそうです :) ぜひ詳細を書いていただきたいです!...
Deivaprakash in Livox Mid-360をROS1/ROS2で動かしてみた
Hey guys myself deiva from India currently i am working in this Livox MID360 and eager to knwo whether you have done the...
岩崎システム設計 岩崎 満 in Alveo U50で10G Ethernetを試してみる
仕事の都合で、検索を行い、御社サイトにたどりつきました。 内容は大変参考になりま...
Prabuddhi Wariyapperuma in Livox Mid-360をROS1/ROS2で動かしてみた
This issue was sorted....