月別アーカイブ: 2020年6月

ドローンも、自ら学び、考え、行動する時代に!

皆さん、こんにちは。

いきなりですが、
「ディープラーニング」という言葉、聞いたことがありますか?
新聞、テレビで取り上げられることもあるので、
なんとなく聞いたことがある、という方も見えると思います。

この技術、AI(人工知能)の一種で、
画像に写っている物体の名前(人、イヌ、クルマ)を判定するなど、
これまでプログラミングだけでは判定方法を決めるのが難しかった対象に対して
この画像に写っているのはイヌです、など、
それぞれのデータに対して正解を教えてあげることでAIが学習し、
学習させたことのない画像データに対しても正しく判定してくれる、というものです。
例えば、この写真に写っているのはAKB48の○○さん、といった判定もできます。
ディープラーニングの概略については、過去の投稿もご覧ください。
意外とシンプルなAI?
青色申告会会報(2019年8月)
青色申告会会報(2020年1月)

これって、自動運転にも使えそうですよね。
実は、このディープラーニング技術で自動運転を行う競技会が
世界中で行われています。
例えば、以下の動画をご覧ください:

最初の何周かは、人が操縦して、画像と、そのときに行った操作を記録します。
このデータセットをAIに学習させると、後は自動で運転してくれる、というものです。
いちいちルールをプログラミングしなくて済むので、便利です!

実用面を考えれば、交通ルール遵守や障害物検知・回避等あるため
他の画像処理手法やセンサも併用すべきですが、
GPSが届かない場所や、駐車時の狭い場所での切り返し操作など
複雑な行動を(少ない手間で)処理するのに適していると思います。

また脳の回路に近いディープラーニングが、どのように学習していくのか、
何が苦手なのかを理解していくことは、
動物が「どのように学び、考え、行動していくか」、という
「知能」を理解するうえでも大切なことで
素晴らしい取り組みだと思います。

これを見て思ったのが、クルマだけでなく、
ドローンでやっても、面白いんじゃなかろうか、ということ。
(ざっと検索して見当たらなかったのですが、)
すでにどこかでやられているかもしれませんが、
手元にあるドローンで試してみました。
以下の動画をご覧ください。

改めて解説しますと、
ラジコンカーのようにいきなり周回レースは難しいだろうと思い、
まずはドローンを手持ちで移動させながら壁面の模様を画像で取得しました。
(壁が真っ白で特徴がないため、わざと模様をつけました)
左側から上昇、ある高さで右移動に移り、そして下降し、最後は着陸、という流れです。
あとはクルマの場合と同じく、それぞれの画像に、
上昇、右移動、下降、着陸、の各ラベルを付け
ディープラーニングで学習させました。
利用したのは画像に強みを持つCNNという種類で、
基本はコンボリューションが2層の、シンプルなモデルです。
光量変化や撮像姿勢の違いも学習させるため、
イメージ・オーギュメンテーションも入れています。

学習が終わったら、いよいよ飛行実験です。
と言っても、プログラムは、
学習結果の出力を、ドローンの制御指令に結びつけるだけです。
まず上昇して、右に移動して下降、といった命令はしていません。
飛行時に得た画像を学習結果で処理し、飛行制御命令を推論します。
では、どんな結果になったか、下記の動画(再掲)をご覧ください:

これはチャンピオン・データで、まだまだ改良しなければなりませんが、
原理的にはクルマと同じで周回レースも実現できそうと感じました。
迷路のように折れ曲がったコースを指定経路に沿って進み、
到着までのタイムを競う、楽しそうなゲームです!
いずれ、ドローンAIレース、やってみたいですね。
まずはクルマと同じように、学習時も手持ちでなく、ラジコン操作、からですね。

実用としては、農地や道路上空、トンネル、倉庫内など
決まった経路を定期的に飛行させる場合などに役立ちそうです。

これからますます賢くなる、ドローンなどのロボット達。
成長が楽しみですね!

ドローンのプログラミングで、セルフィーを作る!

市販のドローンを使って、人の顔を見つけて追跡するドローンを作ってみました。
用途としては、セルフィーや、警備といったところでしょうか。
安全性は確保しなければなりませんが、
店舗での、お客さんの動線計測にも使えるかもしれないですね。
(面積は広いけど客が少ないところなど、
 カメラを全面設置するにはコスト高になるところとか・・・)

まずは以下の動画をご覧ください!

動画ではどうやって作ったかはほとんど話していないですが、
Windows10-PCに、Python+OpenCV(Anaconda環境)をインストールしています。
Wifiデータ受信をPythonで行い、OpenCVの顔認識ライブラリを使って、
顔の位置を計測し、顔が画面の中央に来るように、
ドローンに制御命令を送っています。
制御命令等はこのドローン・メーカーのSDKを参考にしました。

ちなみにこのドローン、中国メーカー製ですが、
現物を見ていると、まさにスマホにプロペラを付けた感じです。
スマホ製造工場の中心地である中国から
ドローン・メーカーが誕生した理由が、
なんとなく実感できます。

実は、このプログラム、
作ったのは昨年なんですが、
新しい実験を始めるにあたって、
これまでの成果も整理した次第です。

新しい実験は、
さらにディープラーニングを組み合わせたものになります。
また報告しますね!

Youtube で学ぶ、科学的思考

当教室のホームページでアクセスが多いのが、「科学的思考」。
トップページを介さず来ているので、Google検索で見つけてきて頂いているのだと思います。興味のある方が多いんですね。

Youtube 動画というと、何となく興味をひかせて無駄な時間を費やしてしまう、というイメージもありますが、見事に科学的思考を実践されている、素晴らしい動画がありました。

科学を紹介する動画は多々ありますが、たいていは、これ、すごいでしょう、こんなことが起きるんですよ、といった、未知の現象の紹介なんですが、この動画は、科学的思考で深く探求していくところが、他と違います。

まずはこちらをご覧ください:

まず登場人物が、カッターナイフの束が、予想外の見え方をすることに気づきます。そして、それがなぜか、を自分なりに仮説を立て、自分の持つ知識で、人に説明します。なんとなく納得できるところで、この動画は終了します。

そして素晴らしいのが、次の動画です:

解説を聞いて、実際に理論的に計算してみると、ちょっとおかしいんじゃないですか?という新しい登場人物が出てきます。
そこで改めて、それを検証する実験を行い、確かに違っていたね、という結果を得ます。そこで初めの問いに戻り、その原因を改めて考え、仮説を立て直す、という流れで話が進んでいきます。

この2話のストーリー、前もってお膳立てしたものでなく、成り行きで進んだものですが、観察・仮説・検証・議論という、見事に科学的思考の実践となっているところが、特に、議論によって仮説が発展していくところが素晴らしいです。身近な出来事でも科学的思考は実践できる、という良い例ですね。

ただ観察して分かったつもりになるのではなく、これまで人類が獲得してきた知見である理論とその現象を照らし合わせ、それらが矛盾しないかをしっかり確認する。そして、矛盾していることが分かったときが、とても大事です。科学史の中でも、その矛盾から、新たな発見や理論の修正が生まれてきました。矛盾していることに「なぜ?」と思うことが、大切なんですね。

新しい発見は、目の前にもあります。
エジソンが「なぜ?」と質問攻めにして学校の先生を困らせたように、
特に子供たちにとっては、本来毎日が新しい発見であるはず。

「なぜ?」から生まれる科学的思考の力を、伸ばしてあげましょう!
自分が分からなくても、ネットで一緒に調べたり、書籍を購入/借りてきてあげる、という手もあります。ネットに載っている情報は玉石混交なので、書籍のほうがお薦めです。

Youtube で科学理論の解説をするところは増えてきていますが、この動画を見ていて、これからは自説を発表する場にもなっていくんじゃないか、と感じました。
これまで科学研究者は、学会で発表し論文の形で出版されないと、自分の仮説を世に問うことが難しかったのですが、近年は自分のホームページに論文を掲載する方も増えてきているようです。数年後には、科学研究者が世に問う手段は、学会よりもYoutube でのプレゼンテーションになっているのかもしれませんね。それに他の人がコメントをしたりしていくうちに、Zoomによるオンライン会議で各自の考えを直接議論したり、ということも普通にできるようになっています。リモート化がすすみ、学会も新しい形に変わっていきそうですね。