見出し画像

Udacityの自動運転コースを受講してみた 【後編】

自動運転のナカミ⑨ 【Udacity後編】

この記事の目的

事故や渋滞が無くなる!運送業が効率化する!時間が節約できる!…という明るい話から、事故の責任は誰が負うの?車がハッキングされたら?AIとかロボットに運転任せるの怖い…という心配になる話まで、色々な議論がされている自動運転技術。しかしそう言った自動運転が来る来ないという議論を盛んにしている一方、自動運転がどのようにして動いているのかなどと言った中身の深いところまで詳しい方は少ないのではないでしょうか。私はというと、数年前にこの技術を知って以来すぐに進路を変え自動運転研究室に入ったり、研究室入る前から有料オンライン講座(計約30万円…汗)で学んだりと、この業界のキャッチアップに勤しんできました。そこでこの記事を通して自動運転技術の中身を噛み砕いて紹介することで、より一層深い議論ができたり、この産業に張るか張らないかを考えて頂けたらなと思います。

第8回からもっと勉強したい方に向けて、オンラインで自動運転技術を学べると話題のUdacityについて書いています。今回の第9回目は受講した感想の続きです。

提出課題紹介:標識認識

ディープラーニングを用いて標識画像を認識する課題です。

上図一番左が問題画像で、上図右5つにニューラルネットワークの出した答えトップ5が確率の高い順で並んでいます。真ん中の時速30km/h制限を時速50km/h制限と誤認識しちゃっているので、まだ改善の余地が残されていますが汗。

提供されたデータ数が少なかったので画像変換を用いてあの手この手でデータ数をカサ増しし、

自分で色々文献を調べてニューラルネットワークの構成をして、

Amazon Web ServiceのGPUを一晩中ぶん回す……といったディープラーニング作業を一通り経験できたのは非常に良かったです。また、Udacity側がAWS上で環境構築済みのファイルを配布してくれているので、とても助かります。興味ある方いましたら、こちらからどうぞ↓。

提出課題紹介:自己位置推定

第5回目の場所把握に関する記事でも紹介したパーティクルフィルタを用いて、周りの環境から現在地を推定する課題です。

丸いバツ印が(実世界に例えるなら電柱などの)目印で、緑色の線がその目印をセンサーが捉えた事を表しています。そしてそのセンサーからの観測情報を元に算出された自己位置が青色の丸で、しっかり車両の位置をぴったし追従できているのがわかります。あんまりにもぴったし過ぎて何か卑怯な手を使ってるかと思われるかもしれませんがそんなことはなくて、プログラム中の数式を間違えると青い丸は容赦無く明後日の方向へ飛んでっちゃいます汗。とても助かるのは、このシミュレーター自体はUdacityの方が用意してくれるので、受講生はパーティクルフィルタの理解と実装に注力できるという点です。

提出課題紹介:車体制御

第6回目の記事で紹介したPID制御法で車体制御する課題もありますがそれとは別に、ちょっと違う手法でハンドルとアクセルをコントロールする課題もあります。

地図として何個かの通過すべき点のみが与えられ(緑色のバツ印)、その点達の位置から車道を計算し(緑線)、現在の車速や角度等を加味した上で車道、つまり目標値に沿うようなアクセル量とハンドル量を算出します(赤線)。

そのためにはこういった物理の計算をし、

このような座標変換(車に乗ってる人から見た座標から → それを俯瞰して天から眺める座標へ変換)をする等、純粋なプログラミング以外にも数学的知識が必要となります。ただここでもシミュレーター自体はUdacity側が用意してくれているので、余計な負荷はありません。興味ある方いましたらこちらから↓。

まとめ

Udacityの自動運転コースは確かに高額ですが、上記のようにシミュレーターを用意してくれてるおかげで、環境構築といった学習の本質とは違うところに時間が割かれることはありません。また大きな課題の前には小テストがいくつかあるのですが、それら小テストは全部Web上のエディタでプログラミングして実行までできちゃう点も助かります。こういった理論の学習以外の障害をなるべく取り除くというのは、教育機関として素晴らしいスタンスだと思います。まあ理論の学習に集中できる代わりに、例えばAWSの設定方法についてはよくわからないままで済んでしまうというデメリットもあると言えばありますが。あと、英語の勉強になります笑。

何もUdacityに限らずどんな形でも良いですが、一度実際に手を動かして作ってみないと、ネット上でただ技術名を知ってるだけの頭でっかちになってしまいます。実際に経験してみて中身を知っているからこそ、「他分野のあの技術と組み合わせたら面白いんじゃね?」といった思い付きが生まれるのだと僕は考えます。最終回の次回はとっておきのコンテンツ、恐らく日本で僕しか持っていないであろう【Udacityの講師へ直接インタビューしてきた編】を書こうと思います。

文:川西発之 / 陳発暉 (Twitter/note)
プロフィール:Deep4Drive開発メンバー。高専情報科(C/C++)→大学機械科→HWエンジニアインターン at ドローンベンチャー(Python)→SWエンジニアインターン in NY(PHP)→ニートしながらアプリ開発(React Native)→大学院で自動運転の研究(C++)。日本生まれの純血中国人🇯🇵🇨🇳

私たちはモビリティ分野でのオープンイノベーションを通じ、技術者を育成するコミュニティです。自動運転レースへの挑戦や、JR東日本様等との共同プロジェクト、新規価値創造等を行っています! モビリティに関するイベントも適宜開催中!