見出し画像

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

自動運転のナカミ⑧ 【Udacity前編】

この記事の目的

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

第7回までは自動運転産業全体について書いてきましたが、それらの記事で少しでも自動運転に対する興味が増していたら幸いです。今回の第8回目からはもっと勉強したい方に向けて、オンラインで自動運転技術を学べると話題のUdacityについてを数記事に分けて書いてきます。

Udacityとは

Udacityとは、プログラミング関係の題材を中心としたオンライン教育サイトです。設立者があの自動運転の父と呼ばれる Sebastian Thrun ということもあり、自動運転コース(有料)があることが有名です。他にもAIやロボット工学と言った工学的な分野からWebアプリの分野まで、幅広いプログラミング分野をカバーしています(もちろん無料コースも多数用意されています)。本記事ではその自動運転コースであるSelf-Driving Car Nanodegreeについて書いていきます。

Self-Driving Car Nanodegree

Udacityでは有料コースには全てNanodegreeという名前を付けています。1ターム3ヶ月間のクラスが全部で3タームあり、それぞれ$800(約10万円)ずつします汗。途中途中で提出すべき課題が何個かあり、それらを期限以内に全部提出し終わらないと失格になります……これ結構キツイです。僕は何だかんだいつも期限ギリギリで課題提出してました ;-<

更に、教材は全部英語です。テキストだけでなく動画もあるのでリスニング(字幕付き)の勉強にもなります。またプログラミングと数学物理の基礎知識も事前に必要で、感覚的には理系の学部生レベルがあれば大丈夫かと思います。

……と、このように書くと非常にハードル(&値段)が高いように聞こえますが、ちゃんと初学者向けのコースもUdacityは提供しています。こちらは受講期間が短くなっているので、合計でかかる値段も安くなります。

また、UdacityはPythonやロボット工学と言った基礎知識系の分野は無料コースを設けているので、そちらから始めてみるのも良いかと思います。

提出課題紹介:白線検出

OpenCVを使用して動画から白線検出をする課題です。

また、ただ出来上がったプログラムと動画を提出するだけではなく、どうやって検出したかという処理の流れを記載したレポートも提出しなければなりません。例えば下図はそのレポートに使用した画像の一部です。

まずは色を白黒にして、画面中央付近だけをトリミングして、それでから白線検出して……みたいに、自分が使用した方法を記述します。もちろんこれも英語なので書くのに時間かかるんですよ汗、ある程度雛形は用意してくれますが。もし興味ある方いましたらこちらから↓。

提出課題紹介:車両検出

今度は動画から車両を検出する課題です。

こちらはサポートベクターマシーン(SVM)という名の機械学習の一種を用いて車両検出しました。ディープラーニングとはちょっと違うアプローチでコンピューターに"自動車"の絵を覚えさせて、動画上にその覚えた絵に近いものがあったらそこを四角で囲むという流れです。

ちょっと誤認識してしまってる箇所もありますが(上図左側)、途中にそれらを排除する仕組みを挟んでいるので(上図真ん中)、最終的に綺麗に車両を検出できる(上図右側)……という流れです。もし興味ある方いましたらこちらから↓。

もちろん授業内で教わった以外の解き方でも良くて、他の国の生徒にはディープラーニングを使ってたった数行のプログラムで解いてる強者も居ました。

こんな感じで、世界中の人が同じクラスメイトって面白くないですか笑?
ディスカッションし合うための受講生&講師のSlackも用意されています(環境構築でハマった時とか助かりました)。まだまだUdacityの魅力を伝えきれていないので、次回は【Udacity 後編】を書こうと思います。

チュートリアル完成しましたらTwitterでのご報告お待ちしております!笑