TED日本語 - ジョセフ・レドモン: コンピューターはいかに物体を即座に認識できるようになったのか

TED日本語

TED Talks(英語 日本語字幕付き動画)

TED日本語 - ジョセフ・レドモン: コンピューターはいかに物体を即座に認識できるようになったのか

TED Talks

コンピューターはいかに物体を即座に認識できるようになったのか
How computers learn to recognize objects instantly
ジョセフ・レドモン
Joseph Redmon

内容

10年前には研究者達はコンピューターで猫と犬を見分けるのはほとんど無理だと思っていました。今日では、コンピュータービジョンシステムにより99%以上の精度で行えるようになっています。どうやってでしょうか?ジョセフ・レドモンはオープンソースの物体検出システム YOLO (You Only Look Once) に取り組んでいて、シマウマから一時停止の標識まで、映像や画像の中の物体を瞬時に識別できるようにしています。この目を見張るようなデモで、レドモンは自動運転車やロボットやガンの検出といった応用に向けた重要なステップを披露しています。

Script

Ten years ago, computer vision researchers thought that getting a computer to tell the difference between a cat and a dog would be almost impossible, even with the significant advance in the state of artificial intelligence. Now we can do it at a level greater than 99 percent accuracy. This is called image classification -- give it an image, put a label to that image -- and computers know thousands of other categories as well.

I'm a graduate student at the University of Washington, and I work on a project called Darknet, which is a neural network framework for training and testing computer vision models. So let's just see what Darknet thinks of this image that we have. When we run our classifier on this image, we see we don't just get a prediction of dog or cat, we actually get specific breed predictions. That's the level of granularity we have now. And it's correct. My dog is in fact a malamute.

So we've made amazing strides in image classification, but what happens when we run our classifier on an image that looks like this? Well ... We see that the classifier comes back with a pretty similar prediction. And it's correct, there is a malamute in the image, but just given this label, we don't actually know that much about what's going on in the image. We need something more powerful. I work on a problem called object detection, where we look at an image and try to find all of the objects, put bounding boxes around them and say what those objects are. So here's what happens when we run a detector on this image.

Now, with this kind of result, we can do a lot more with our computer vision algorithms. We see that it knows that there's a cat and a dog. It knows their relative locations, their size. It may even know some extra information. There's a book sitting in the background. And if you want to build a system on top of computer vision, say a self-driving vehicle or a robotic system, this is the kind of information that you want. You want something so that you can interact with the physical world. Now, when I started working on object detection, it took 20 seconds to process a single image. And to get a feel for why speed is so important in this domain, here's an example of an object detector that takes two seconds to process an image. So this is 10 times faster than the 20-seconds-per-image detector, and you can see that by the time it makes predictions, the entire state of the world has changed, and this wouldn't be very useful for an application.

If we speed this up by another factor of 10, this is a detector running at five frames per second. This is a lot better, but for example, if there's any significant movement, I wouldn't want a system like this driving my car.

This is our detection system running in real time on my laptop. So it smoothly tracks me as I move around the frame, and it's robust to a wide variety of changes in size, pose, forward, backward. This is great. This is what we really need if we're going to build systems on top of computer vision.

(Applause)

So in just a few years, we've gone from 20 seconds per image to 20 milliseconds per image, a thousand times faster. How did we get there? Well, in the past, object detection systems would take an image like this and split it into a bunch of regions and then run a classifier on each of these regions, and high scores for that classifier would be considered detections in the image. But this involved running a classifier thousands of times over an image, thousands of neural network evaluations to produce detection. Instead, we trained a single network to do all of detection for us. It produces all of the bounding boxes and class probabilities simultaneously. With our system, instead of looking at an image thousands of times to produce detection, you only look once, and that's why we call it the YOLO method of object detection. So with this speed, we're not just limited to images; we can process video in real time. And now, instead of just seeing that cat and dog, we can see them move around and interact with each other.

This is a detector that we trained on 80 different classes in Microsoft's COCO dataset. It has all sorts of things like spoon and fork, bowl, common objects like that. It has a variety of more exotic things: animals, cars, zebras, giraffes. And now we're going to do something fun. We're just going to go out into the audience and see what kind of things we can detect. Does anyone want a stuffed animal? There are some teddy bears out there. And we can turn down our threshold for detection a little bit, so we can find more of you guys out in the audience. Let's see if we can get these stop signs. We find some backpacks. Let's just zoom in a little bit. And this is great. And all of the processing is happening in real time on the laptop.

And it's important to remember that this is a general purpose object detection system, so we can train this for any image domain. The same code that we use to find stop signs or pedestrians, bicycles in a self-driving vehicle, can be used to find cancer cells in a tissue biopsy. And there are researchers around the globe already using this technology for advances in things like medicine, robotics. This morning, I read a paper where they were taking a census of animals in Nairobi National Park with YOLO as part of this detection system. And that's because Darknet is open source and in the public domain, free for anyone to use.

(Applause)

But we wanted to make detection even more accessible and usable, so through a combination of model optimization, network binarization and approximation, we actually have object detection running on a phone.

(Applause)

And I'm really excited because now we have a pretty powerful solution to this low-level computer vision problem, and anyone can take it and build something with it. So now the rest is up to all of you and people around the world with access to this software, and I can't wait to see what people will build with this technology.

Thank you.

(Applause)

10年前 コンピュータービジョンの研究者は コンピューターで 犬と猫を見分けるのは ほとんど無理だと考えていました 人工知能の大きな 発展にもかかわらずです 現在では99%以上の精度で 見分けられるようになっています これは「画像分類」と 呼ばれる問題で コンピューターに画像の ラベル付けをさせるものです コンピューターは何千種もの物を 識別できるようになっています

私はワシントン大学の大学院生で Darknetというプロジェクトに 取り組んでいます コンピュータービジョンのモデルを トレーニングしテストするための ニューラルネット・フレームワークです Darknetが あの犬の画像を 何だと思うか 見てみましょう あの画像を 私たちの 画像分類プログラムにかけると 犬か猫かだけでなく 具体的な犬種まで言い当てます そこまで細かいことが 分かるようになっています そして正しい答えを出しています 私の犬は確かにマラミュート犬です

画像分類は驚くほど進歩しましたが こういう複数の物が写った写真を 画像分類にかけたら どうなるのでしょう? 結果は ― 前とほぼ同じになっています それは正しくて 画像の中には 確かにマラミュート犬がいますが そのラベルだけでは この画像の中で どんなことが起きているのか あまりわかりません もっと強力なものが ほしいところです 私は「物体検出」と呼ばれる 問題に取り組んでいて それは画像を見て その中にある物体をすべて検出し それぞれの物を箱で囲って それが何か識別する という問題です この画像を物体検出プログラムにかけると どうなるか見てみましょう

得られる結果は こういうもので 色んなことができます 猫と犬がいることがわかり 相対的な位置や 大きさもわかります おまけの情報もあります 向こうに本があるとか コンピュータービジョンを 使ったシステム 自動運転車や ロボットを 作ろうとするなら これはまさに 欲しい情報でしょう 周りの世界と作用し合えるように してくれるものが欲しいのです 私が物体検出に 取り組み始めた頃は 1つの画像の処理に 20秒かかっていました この領域で なぜスピードが重要なのか 分かってもらうため 物体検出で画像の処理に 2秒かかると どんな具合か 見ていただきましょう これは画像1つにつき20秒かかる 画像検出プログラムより 10倍速いわけですが プログラムが答えを出したときには 状況は既に変わっているため あまりアプリケーションの役には 立ちません

さらに10倍 高速化してみましょう 毎秒 5フレーム 処理しています だいぶマシにはなりましたが 何か大きな動きがあると ズレが出ます このようなシステムに 自分の車を運転して欲しくはありません

これは私たちの物体検出システムで ノートPC上でリアルタイムで動いています 私が動き回っても スムーズに追尾します 様々な種類の変化にも対応できます 大きさとか ポーズとか 前向き 後ろ向き とてもいいです これこそコンピュータービジョンを 使ったシステムを作ろうというときに 欲しいものです

(拍手)

ほんの数年で 1画像あたり20秒から 20ミリ秒へと 1000倍 高速化しました どうやって実現したのか? 以前の物体検出システムは このような画像を受け取ると 沢山の領域に分割し それぞれの領域を 分類プログラムにかけ 高いスコアが出たところに 物体が検出されたと 見なしていました この方法だと1つの画像に対し 分類プログラムを何千回も走らせ ニューラルネットによる評価が 何千回も必要になります そうする代わりに 1つのニューラルネットで すべての検出を行うようトレーニングしました 境界の箱や 分類の確からしさの確率を すべて同時に生成するのです 我々のシステムでは 物体検出を行うために 画像を何千回も見る代わりに たった一度しか見ないのです それがYOLO(You Only Look Once)の 名の所以です これだけ速いと 画像だけでなく 映像もリアルタイムで処理できます 猫と犬を検出するだけでなく それぞれが動き回り 相手に反応しているのが分かります

この検出プログラムは MicrosoftのCOCOデータセットにある 80種の物に対して トレーニングしてあります スプーンやフォークといった 日常的な物もあれば もっと変わった物もあります 動物 車 シマウマ キリン ちょっと面白いことをやりましょう 客席からどんなものが検出できるか 試してみます ぬいぐるみの動物が欲しい人? そこかしこに テディベアがあります 検出器の閾値を少し下げて 客席の皆さんを 検出できるようにしましょう 「一時停止」の標識を検出できるでしょうか バックパックがいくつかありますね もう少しズームしましょう 素晴らしいです すべての処理がノートPC上で リアルタイムで 実行されています

重要なのはこれが 汎用物体検出システム だということで どのような領域の画像に対しても トレーニングできます 自動運転車が 一時停止の標識や 歩行者や自転車を検知するのに使うのと 同じプログラムを 組織生検でガンを 見つけるためにも 使えるのです すでに世界中の研究者達が この技術を使って 医学やロボット工学を 前進させています 今朝 新聞で読んだんですが ナイロビ国立公園では YOLOを検出システムとして使って 動物の個体数調査を しているそうです それというのもDarknetはオープンソースで パブリックドメインなため 誰でも無料で使えるからです

(拍手)

私たちは物体検出技術をさらに近づきやすく 使いやすいものにしたいと思い モデルの最適化や ネットワーク・バイナリぜーション 近似を組み合わせることで スマートフォン上で 動かせるようにしました

(拍手)

私はすごくワクワクしています いまやこの基本的なコンピュータービジョンの 問題に対して とても強力な解があり 誰でもそれを使って 何か作り出すことができるんです あとは皆さんや このソフトウェアを使える 世界中の人々にかかっています この技術を使ってみんなが どんなものを作ってくれるか楽しみです

ありがとうございました

(拍手)

― もっと見る ―
― 折りたたむ ―

品詞分類

  • 主語
  • 動詞
  • 助動詞
  • 準動詞
  • 関係詞等

関連動画