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.
Десять лет назад исследователи компьютерного зрения думали, что научить компьютер различать изображения кошки и собаки будет практически невозможно, даже несмотря на значительный прогресс в развитии искусственного интеллекта. Сегодня мы можем это делать с точностью до 99 процентов. Это называется классификацией изображений, дайте компьютеру картинку, присвойте этой картинке категорию, и он выдаст вам тысячи похожих.
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.
Я аспирант в Вашингтонском университете, работаю над проектом Darknet, который представляет собой нейронную сеть для обучения и тестирования модели компьютерного зрения. Давайте посмотрим, что думает Darknet о данном изображении. Когда мы запускаем наш классификатор для этого изображения, мы видим, что мы не просто получаем предположение, собака здесь изображена или кошка, мы фактически получаем варианты конкретных пород. Вот современный уровень детализации. И он не ошибся. Порода моей собаки действительно маламут.
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.
И теперь, имея такой результат, мы можем сделать гораздо больше с нашими алгоритмами компьютерного зрения. Мы видим, что компьютер знает, где кошка, а где собака. Он знает их расположение относительно друг друга, их размер. Он даже может знать какую-то дополнительную информацию. На заднем плане находится книга. И если вы хотите построить сверхсистему компьютерного зрения, например, самоуправляемое транспортное средство или робототехническую систему, это именно та информация, которая вам пригодится. Вам нужно что-то, что поможет вам взаимодействовать с материальным миром. Сейчас, работая над проблемой обнаружения объекта, я добился того, что для обработки одного изображения требуется 20 секунд. И чтобы понять, почему скорость так важна в этой области, вот пример детектора объекта, которому требуется две секунды на обработку изображения. Он в 10 раз быстрее 20-секундного детектора, понятно, что к моменту, когда он выдаёт варианты, в мире происходит много изменений, и это делает приложение бесполезным.
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.
Если увеличить скорость операций в 10 раз, получим детектор, обрабатывающий пять кадров в секунду. Это значительно лучше, но в случае, если произойдёт значительное движение, я бы не хотел, чтобы подобная система управляла моим автомобилем.
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.
Всего лишь за несколько лет мы продвинулись от 20 секунд на одно изображение до 20 миллисекунд, что в тысячу раз быстрее. Как нам это удалось? В прошлом система опознавания объектов брала такое вот изображение и разделяла его на множество секций, а затем запускала классификатор по каждой из этих секций, и высокий рейтинг классификатора считался определением изображения. Подразумевается, что классификатор должен перебрать тысячи вариантов изображения, тысячи оценок нейронной сети, чтобы выдать конечный результат. Вместо этого мы использовали единственную сеть, которая выполнила всю работу за нас. Она производит все ограничения и варианты видов одновременно. Благодаря нашей системе, вместо того, чтобы смотреть на изображение тысячи раз для его опознавания, достаточно взглянуть раз, вот почему мы назвали её метод опознавания YOLO. С такой скоростью мы не ограничены разнообразием объектов, мы можем воспроизвести видео в режиме реального времени. Сейчас вместо того, чтобы просто смотреть на эту кошку и собаку, мы видим, как они двигаются и общаются друг с другом.
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.
Мы обучили этот детектор на 80 разных видах в наборе данных COCO от Майкрософт. Он учитывает все виды вещей, такие как как ложка, вилка, миска и другие обычные предметы. Есть и более специфичные объекты: животные, автомобили, зебры, жирафы. А сейчас сделаем кое-что прикольное. Я подойду к кому-нибудь из аудитории, и мы посмотрим, какие объекты мы сможем определить. Кто-нибудь хочет чучело? Мы подготовили несколько плюшевых медведей. Можно немного снизить порог опознавания, так что мы сможем кое-что о вас узнать, друзья. Посмотрим, сможем ли получить эти знаки остановки. Обнаружили несколько рюкзаков. Давайте немного увеличим масштаб. Класс! Весь процесс происходит в режиме реального времени на ноутбуке.
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.
Важно помнить, что это главная цель системы обнаружения, поэтому мы можем экспериментировать с изображениями из разных областей. Тот же самый код, который мы используем для обнаружения знаков «Стоп» или пешеходов, велосипедов в самоуправляемых автомобилях, может быть использован для поиска раковых клеток в биопсии ткани. Исследователи по всему миру уже используют эту технологию для внедрения инноваций в медицине, робототехнике. Сегодня утром я прочёл статью о том, что в национальном парке Найроби при составлении переписи животных используют YOLO как часть этой системы обнаружения. Причина этого о в том, что Darknet является общедоступным ресурсом и любой пользователь может пользоваться им бесплатно.
(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)
(Аплодисменты)