0:00:00.825,0:00:01.810 10年前, 0:00:01.810,0:00:04.770 计算机视觉研究者认为[br]要让一台电脑 0:00:04.770,0:00:07.606 去分辨出一只猫和狗的不同之处 0:00:07.606,0:00:09.546 几乎是不可能的, 0:00:09.546,0:00:13.266 即便是在人工智能已经取得了[br]重大突破的情况下。 0:00:13.266,0:00:16.800 现在我们已经可以做到[br]让它的正确率在99%以上。 0:00:17.680,0:00:19.636 这个方法叫做图像分类—— 0:00:19.636,0:00:22.716 给它一张图,再给这张图贴上标签—— 0:00:22.716,0:00:25.720 通过这种方式,电脑就可以知道[br]数千种的分类。 0:00:26.680,0:00:29.540 我是华盛顿大学的一名研究生, 0:00:29.540,0:00:31.526 我致力于一个名叫“暗网”的项目, 0:00:31.526,0:00:33.266 这是一个用来训练和测试[br]计算机视觉模型的 0:00:33.266,0:00:36.106 神经网络结构。 0:00:36.106,0:00:39.116 让我们来看看暗网是如何看待 0:00:39.116,0:00:40.840 我们手上的这张图片。 0:00:42.520,0:00:44.896 当我们在这张图片上 0:00:44.896,0:00:46.166 运行识别器时, 0:00:46.166,0:00:48.656 我们注意到,它不仅能判断出[br]图片上是猫是狗, 0:00:48.656,0:00:50.880 还能给出它是哪个品种的预测。 0:00:50.880,0:00:53.196 这就是我们目前所达到的粒度级别。 0:00:53.196,0:00:54.816 而且它的预测是正确的。 0:00:54.816,0:00:56.640 我的狗的确是一只[br]阿拉斯加雪橇犬。 0:00:57.040,0:01:01.360 很明显,我们在图像识别上[br]取得了惊人的进步, 0:01:01.360,0:01:03.450 但是如果我们对这样一张图片上 0:01:03.450,0:01:05.384 运行识别器,会如何呢? 0:01:07.080,0:01:08.280 看一下。。。。。 0:01:12.640,0:01:16.586 我们看到识别器给出了一个[br]非常相似的预测。 0:01:16.586,0:01:19.696 而且是正确的,图中是有一只[br]阿拉斯加雪橇犬, 0:01:19.696,0:01:23.416 但只使用这一个标签,[br]我们并不能真正的了解 0:01:23.416,0:01:25.107 这张图片里的故事。 0:01:25.107,0:01:26.651 我们需要更强大的检测器。 0:01:27.240,0:01:29.916 我正在研究一个叫做[br]目标检测的问题, 0:01:29.916,0:01:32.790 也就是我们尝试[br]将一张图上的所有目标物都找出来, 0:01:32.790,0:01:34.240 然后将它们分别框起来, 0:01:34.240,0:01:35.840 再加上标注。 0:01:36.400,0:01:39.680 这就是我们对这张照片[br]运行检测器时所发生的。 0:01:41.240,0:01:43.526 基于这样的结果, 0:01:43.526,0:01:46.216 我们可以用计算机视觉算法[br]做更多的事情。 0:01:46.230,0:01:49.296 我们发现,它知道[br]这里有一只猫和一只狗。 0:01:49.296,0:01:51.460 它知道它们的相对位置, 0:01:51.460,0:01:52.696 它们的大小。 0:01:52.696,0:01:54.330 它可能甚至还知道一些[br]额外的信息。 0:01:54.330,0:01:56.680 例如背景里有一本书。 0:01:57.280,0:02:00.596 如果你想建立一个[br]基于计算机视觉的系统, 0:02:00.596,0:02:04.056 比如说无人驾驶汽车[br]或者机器人系统, 0:02:04.056,0:02:06.526 那么这就是你想要得到的那类信息。 0:02:06.526,0:02:09.759 你要一个能与物质世界互动的系统。 0:02:10.759,0:02:13.010 当我最开始开展目标检测项目时, 0:02:13.010,0:02:16.386 它要花20秒去处理一张图片。 0:02:16.386,0:02:20.240 为了感受一下为什么速度[br]在这个领域是如此重要, 0:02:21.120,0:02:23.676 举一个例子,这是一个2秒钟 0:02:23.680,0:02:26.126 就能处理一张图片的检测器。 0:02:26.126,0:02:28.786 这个检测器的速度要比 0:02:28.786,0:02:32.260 处理每张图需要20秒的[br]检测器快10倍, 0:02:32.260,0:02:35.006 你还可以看到[br]在它做出预测的时候, 0:02:35.006,0:02:37.040 被检测的世界已经发生变化了, 0:02:37.880,0:02:40.280 这对于一个应用来说 0:02:40.280,0:02:41.756 是没有多大用处的。 0:02:41.760,0:02:44.306 如果我们将它的速度再提升10倍, 0:02:44.306,0:02:47.146 这个检测器每秒可处理5张画面。 0:02:47.146,0:02:48.736 这就好很多了, 0:02:48.736,0:02:50.696 但是,举个例子 0:02:50.696,0:02:53.086 如果有任何重大的移动[br](它就反应不过来了), 0:02:53.086,0:02:55.560 我可不想让这样的一个系统[br]来驾驶我的汽车。 0:02:57.120,0:03:00.360 这是在我电脑上运行的[br]实时检测系统。 0:03:01.000,0:03:04.216 当我在移动时,它能顺利地追踪我, 0:03:04.216,0:03:07.880 而且它强大到能适应不同的大小、 0:03:09.440,0:03:10.640 姿势、 0:03:11.280,0:03:13.110 向前、向后的改变。 0:03:13.110,0:03:14.180 很了不起。 0:03:14.180,0:03:16.120 如果我们想要建造一个 0:03:16.120,0:03:19.056 基于计算机视觉的系统,[br]那么这就是我们真正需要的。 0:03:19.056,0:03:23.056 (掌声) 0:03:24.280,0:03:26.526 仅仅是几年的时间, 0:03:26.526,0:03:29.110 我们就从每张图20秒, 0:03:29.110,0:03:32.660 提升到了每张图20毫秒,[br]速度提高了1000倍。 0:03:32.660,0:03:34.130 我们是如何做到的呢? 0:03:34.130,0:03:37.080 事实上在过去,目标检测系统 0:03:37.080,0:03:39.166 会将这张图片 0:03:39.166,0:03:41.646 分成很多小区域, 0:03:41.646,0:03:44.890 然后在每一块区域运行一下识别器, 0:03:44.890,0:03:47.516 在识别器中获得最高分数(的输出) 0:03:47.516,0:03:50.610 就会被认为是这张图片的检测结果。 0:03:50.610,0:03:54.650 这涉及到要在一张图片上[br]运行数千次识别器, 0:03:54.650,0:03:57.640 以及数千次的神经网络评估[br]才能获得检测结果。 0:03:59.240,0:04:03.826 而现在,我们训练了可以做出[br]所有检测的单一网络。 0:04:03.826,0:04:08.080 它能同时生成边界盒和类别概率。 0:04:08.680,0:04:12.160 使用我们的系统,[br]不需要为了生成检测结果 0:04:12.160,0:04:13.696 去重复上千数次地看同一张图片, 0:04:13.696,0:04:14.880 “只看一次”就行了, 0:04:14.880,0:04:17.880 这也是为什么我们称之为[br]目标检测的“YOLO”法。 0:04:19.360,0:04:23.310 有了这个速度,我们就[br]不仅限于识别图像了, 0:04:23.310,0:04:25.750 还可以实时处理视频。 0:04:25.750,0:04:28.870 现在,我们不仅看到了猫和狗, 0:04:28.870,0:04:31.880 还能看到它们走来走去,互相嘻戏。 0:04:34.560,0:04:36.696 这是一个我们在微软的[br]COCO数据库上, 0:04:36.696,0:04:41.116 用80种不同种类的物品 0:04:41.116,0:04:44.280 训练过的检测器。 0:04:44.280,0:04:47.630 包含了各种东西,[br]像勺子、叉子、碗 0:04:47.630,0:04:49.480 等常见物品。 0:04:50.360,0:04:53.546 还有各种奇特的东西: 0:04:53.546,0:04:56.680 动物、汽车、斑马、长颈鹿。 0:04:56.680,0:04:58.350 现在我们要做点儿有趣的事情。 0:04:58.350,0:05:00.570 我们的摄像头将要对准观众区, 0:05:00.570,0:05:02.116 看看能检测出什么。 0:05:02.116,0:05:04.500 谁想要一个毛绒动物玩具? 0:05:06.000,0:05:07.762 观众席里有了一些泰迪熊。 0:05:10.040,0:05:14.540 我们把检测阀值调低一点, 0:05:14.540,0:05:18.000 这样就可以找出更多的观众。 0:05:19.560,0:05:21.936 看下我们能不能找出这些停车标志。 0:05:21.936,0:05:23.800 我们找到了一些背包。 0:05:25.880,0:05:27.720 再放大一点。 0:05:30.320,0:05:31.400 非常棒。 0:05:31.400,0:05:34.720 所有这些都是在电脑上 0:05:34.720,0:05:36.000 实时处理的。 0:05:37.080,0:05:38.220 请大家记住: 0:05:38.220,0:05:41.866 这是一个通用的目标检测系统, 0:05:41.866,0:05:46.800 因此我们可以将它训练[br]用于任何领域的图像识别。 0:05:48.320,0:05:50.830 我们在无人驾驶汽车中 0:05:50.830,0:05:53.396 用来发现停车标志、行人 0:05:53.396,0:05:55.356 和自行车的代码, 0:05:55.360,0:05:58.306 同样可以用于在组织活检中 0:05:58.306,0:06:01.296 找出癌细胞。 0:06:01.296,0:06:05.320 全球已经有很多研究者[br]正在利用这一技术 0:06:06.240,0:06:09.630 在医学、机器人学等方面取得了进展。 0:06:09.630,0:06:11.020 今天早上,我刚读到一篇文章, 0:06:11.020,0:06:15.610 人们在内罗毕国家公园[br]对动物数量进行普查, 0:06:15.610,0:06:18.846 使用了YOLO作为检测系统的一部分。 0:06:18.846,0:06:21.920 这是因为暗网是一个开源项目, 0:06:21.920,0:06:24.480 在公共领域,任何人都可以免费使用。 0:06:25.600,0:06:31.290 (掌声) 0:06:31.290,0:06:36.200 但是我们想要让检测器[br]能被更多人使用、也更好用, 0:06:36.200,0:06:40.260 因此通过结合模型优化, 0:06:40.260,0:06:42.640 网络二值化和近似法, 0:06:42.640,0:06:46.600 我们实际上已经可以[br]在手机上进行目标检测了。 0:06:52.800,0:06:58.120 (掌声) 0:06:58.960,0:07:04.036 我真的很激动,[br]因为我们在这个低级的 0:07:04.040,0:07:06.320 计算机视觉问题上[br]有了一个强大的解决方案, 0:07:06.320,0:07:10.276 而且任何人都可以[br]使用它来做些什么。 0:07:10.276,0:07:13.466 所以接下来就看所有在座的各位 0:07:13.466,0:07:16.360 以及世界上所有[br]能够使用这个软件的人了, 0:07:16.360,0:07:20.030 而我已经等不及想要看看,[br]人们会用这一技术造出什么来了。 0:07:20.030,0:07:21.210 谢谢。 0:07:21.210,0:07:24.760 (掌声)