1 00:00:00,825 --> 00:00:01,810 10年前, 2 00:00:01,810 --> 00:00:04,770 计算机视觉研究者认为 要让一台电脑 3 00:00:04,770 --> 00:00:07,606 去分辨出一只猫和狗的不同之处 4 00:00:07,606 --> 00:00:09,546 几乎是不可能的, 5 00:00:09,546 --> 00:00:13,266 即便是在人工智能已经取得了 重大突破的情况下。 6 00:00:13,266 --> 00:00:16,800 现在我们已经可以做到 让它的正确率在99%以上。 7 00:00:17,680 --> 00:00:19,636 这个方法叫做图像分类—— 8 00:00:19,636 --> 00:00:22,716 给它一张图,再给这张图贴上标签—— 9 00:00:22,716 --> 00:00:25,720 通过这种方式,电脑就可以知道 数千种的分类。 10 00:00:26,680 --> 00:00:29,540 我是华盛顿大学的一名研究生, 11 00:00:29,540 --> 00:00:31,526 我致力于一个名叫“暗网”的项目, 12 00:00:31,526 --> 00:00:33,266 这是一个用来训练和测试 计算机视觉模型的 13 00:00:33,266 --> 00:00:36,106 神经网络结构。 14 00:00:36,106 --> 00:00:39,116 让我们来看看暗网是如何看待 15 00:00:39,116 --> 00:00:40,840 我们手上的这张图片。 16 00:00:42,520 --> 00:00:44,896 当我们在这张图片上 17 00:00:44,896 --> 00:00:46,166 运行识别器时, 18 00:00:46,166 --> 00:00:48,656 我们注意到,它不仅能判断出 图片上是猫是狗, 19 00:00:48,656 --> 00:00:50,880 还能给出它是哪个品种的预测。 20 00:00:50,880 --> 00:00:53,196 这就是我们目前所达到的粒度级别。 21 00:00:53,196 --> 00:00:54,816 而且它的预测是正确的。 22 00:00:54,816 --> 00:00:56,640 我的狗的确是一只 阿拉斯加雪橇犬。 23 00:00:57,040 --> 00:01:01,360 很明显,我们在图像识别上 取得了惊人的进步, 24 00:01:01,360 --> 00:01:03,450 但是如果我们对这样一张图片上 25 00:01:03,450 --> 00:01:05,384 运行识别器,会如何呢? 26 00:01:07,080 --> 00:01:08,280 看一下。。。。。 27 00:01:12,640 --> 00:01:16,586 我们看到识别器给出了一个 非常相似的预测。 28 00:01:16,586 --> 00:01:19,696 而且是正确的,图中是有一只 阿拉斯加雪橇犬, 29 00:01:19,696 --> 00:01:23,416 但只使用这一个标签, 我们并不能真正的了解 30 00:01:23,416 --> 00:01:25,107 这张图片里的故事。 31 00:01:25,107 --> 00:01:26,651 我们需要更强大的检测器。 32 00:01:27,240 --> 00:01:29,916 我正在研究一个叫做 目标检测的问题, 33 00:01:29,916 --> 00:01:32,790 也就是我们尝试 将一张图上的所有目标物都找出来, 34 00:01:32,790 --> 00:01:34,240 然后将它们分别框起来, 35 00:01:34,240 --> 00:01:35,840 再加上标注。 36 00:01:36,400 --> 00:01:39,680 这就是我们对这张照片 运行检测器时所发生的。 37 00:01:41,240 --> 00:01:43,526 基于这样的结果, 38 00:01:43,526 --> 00:01:46,216 我们可以用计算机视觉算法 做更多的事情。 39 00:01:46,230 --> 00:01:49,296 我们发现,它知道 这里有一只猫和一只狗。 40 00:01:49,296 --> 00:01:51,460 它知道它们的相对位置, 41 00:01:51,460 --> 00:01:52,696 它们的大小。 42 00:01:52,696 --> 00:01:54,330 它可能甚至还知道一些 额外的信息。 43 00:01:54,330 --> 00:01:56,680 例如背景里有一本书。 44 00:01:57,280 --> 00:02:00,596 如果你想建立一个 基于计算机视觉的系统, 45 00:02:00,596 --> 00:02:04,056 比如说无人驾驶汽车 或者机器人系统, 46 00:02:04,056 --> 00:02:06,526 那么这就是你想要得到的那类信息。 47 00:02:06,526 --> 00:02:09,759 你要一个能与物质世界互动的系统。 48 00:02:10,759 --> 00:02:13,010 当我最开始开展目标检测项目时, 49 00:02:13,010 --> 00:02:16,386 它要花20秒去处理一张图片。 50 00:02:16,386 --> 00:02:20,240 为了感受一下为什么速度 在这个领域是如此重要, 51 00:02:21,120 --> 00:02:23,676 举一个例子,这是一个2秒钟 52 00:02:23,680 --> 00:02:26,126 就能处理一张图片的检测器。 53 00:02:26,126 --> 00:02:28,786 这个检测器的速度要比 54 00:02:28,786 --> 00:02:32,260 处理每张图需要20秒的 检测器快10倍, 55 00:02:32,260 --> 00:02:35,006 你还可以看到 在它做出预测的时候, 56 00:02:35,006 --> 00:02:37,040 被检测的世界已经发生变化了, 57 00:02:37,880 --> 00:02:40,280 这对于一个应用来说 58 00:02:40,280 --> 00:02:41,756 是没有多大用处的。 59 00:02:41,760 --> 00:02:44,306 如果我们将它的速度再提升10倍, 60 00:02:44,306 --> 00:02:47,146 这个检测器每秒可处理5张画面。 61 00:02:47,146 --> 00:02:48,736 这就好很多了, 62 00:02:48,736 --> 00:02:50,696 但是,举个例子 63 00:02:50,696 --> 00:02:53,086 如果有任何重大的移动 (它就反应不过来了), 64 00:02:53,086 --> 00:02:55,560 我可不想让这样的一个系统 来驾驶我的汽车。 65 00:02:57,120 --> 00:03:00,360 这是在我电脑上运行的 实时检测系统。 66 00:03:01,000 --> 00:03:04,216 当我在移动时,它能顺利地追踪我, 67 00:03:04,216 --> 00:03:07,880 而且它强大到能适应不同的大小、 68 00:03:09,440 --> 00:03:10,640 姿势、 69 00:03:11,280 --> 00:03:13,110 向前、向后的改变。 70 00:03:13,110 --> 00:03:14,180 很了不起。 71 00:03:14,180 --> 00:03:16,120 如果我们想要建造一个 72 00:03:16,120 --> 00:03:19,056 基于计算机视觉的系统, 那么这就是我们真正需要的。 73 00:03:19,056 --> 00:03:23,056 (掌声) 74 00:03:24,280 --> 00:03:26,526 仅仅是几年的时间, 75 00:03:26,526 --> 00:03:29,110 我们就从每张图20秒, 76 00:03:29,110 --> 00:03:32,660 提升到了每张图20毫秒, 速度提高了1000倍。 77 00:03:32,660 --> 00:03:34,130 我们是如何做到的呢? 78 00:03:34,130 --> 00:03:37,080 事实上在过去,目标检测系统 79 00:03:37,080 --> 00:03:39,166 会将这张图片 80 00:03:39,166 --> 00:03:41,646 分成很多小区域, 81 00:03:41,646 --> 00:03:44,890 然后在每一块区域运行一下识别器, 82 00:03:44,890 --> 00:03:47,516 在识别器中获得最高分数(的输出) 83 00:03:47,516 --> 00:03:50,610 就会被认为是这张图片的检测结果。 84 00:03:50,610 --> 00:03:54,650 这涉及到要在一张图片上 运行数千次识别器, 85 00:03:54,650 --> 00:03:57,640 以及数千次的神经网络评估 才能获得检测结果。 86 00:03:59,240 --> 00:04:03,826 而现在,我们训练了可以做出 所有检测的单一网络。 87 00:04:03,826 --> 00:04:08,080 它能同时生成边界盒和类别概率。 88 00:04:08,680 --> 00:04:12,160 使用我们的系统, 不需要为了生成检测结果 89 00:04:12,160 --> 00:04:13,696 去重复上千数次地看同一张图片, 90 00:04:13,696 --> 00:04:14,880 “只看一次”就行了, 91 00:04:14,880 --> 00:04:17,880 这也是为什么我们称之为 目标检测的“YOLO”法。 92 00:04:19,360 --> 00:04:23,310 有了这个速度,我们就 不仅限于识别图像了, 93 00:04:23,310 --> 00:04:25,750 还可以实时处理视频。 94 00:04:25,750 --> 00:04:28,870 现在,我们不仅看到了猫和狗, 95 00:04:28,870 --> 00:04:31,880 还能看到它们走来走去,互相嘻戏。 96 00:04:34,560 --> 00:04:36,696 这是一个我们在微软的 COCO数据库上, 97 00:04:36,696 --> 00:04:41,116 用80种不同种类的物品 98 00:04:41,116 --> 00:04:44,280 训练过的检测器。 99 00:04:44,280 --> 00:04:47,630 包含了各种东西, 像勺子、叉子、碗 100 00:04:47,630 --> 00:04:49,480 等常见物品。 101 00:04:50,360 --> 00:04:53,546 还有各种奇特的东西: 102 00:04:53,546 --> 00:04:56,680 动物、汽车、斑马、长颈鹿。 103 00:04:56,680 --> 00:04:58,350 现在我们要做点儿有趣的事情。 104 00:04:58,350 --> 00:05:00,570 我们的摄像头将要对准观众区, 105 00:05:00,570 --> 00:05:02,116 看看能检测出什么。 106 00:05:02,116 --> 00:05:04,500 谁想要一个毛绒动物玩具? 107 00:05:06,000 --> 00:05:07,762 观众席里有了一些泰迪熊。 108 00:05:10,040 --> 00:05:14,540 我们把检测阀值调低一点, 109 00:05:14,540 --> 00:05:18,000 这样就可以找出更多的观众。 110 00:05:19,560 --> 00:05:21,936 看下我们能不能找出这些停车标志。 111 00:05:21,936 --> 00:05:23,800 我们找到了一些背包。 112 00:05:25,880 --> 00:05:27,720 再放大一点。 113 00:05:30,320 --> 00:05:31,400 非常棒。 114 00:05:31,400 --> 00:05:34,720 所有这些都是在电脑上 115 00:05:34,720 --> 00:05:36,000 实时处理的。 116 00:05:37,080 --> 00:05:38,220 请大家记住: 117 00:05:38,220 --> 00:05:41,866 这是一个通用的目标检测系统, 118 00:05:41,866 --> 00:05:46,800 因此我们可以将它训练 用于任何领域的图像识别。 119 00:05:48,320 --> 00:05:50,830 我们在无人驾驶汽车中 120 00:05:50,830 --> 00:05:53,396 用来发现停车标志、行人 121 00:05:53,396 --> 00:05:55,356 和自行车的代码, 122 00:05:55,360 --> 00:05:58,306 同样可以用于在组织活检中 123 00:05:58,306 --> 00:06:01,296 找出癌细胞。 124 00:06:01,296 --> 00:06:05,320 全球已经有很多研究者 正在利用这一技术 125 00:06:06,240 --> 00:06:09,630 在医学、机器人学等方面取得了进展。 126 00:06:09,630 --> 00:06:11,020 今天早上,我刚读到一篇文章, 127 00:06:11,020 --> 00:06:15,610 人们在内罗毕国家公园 对动物数量进行普查, 128 00:06:15,610 --> 00:06:18,846 使用了YOLO作为检测系统的一部分。 129 00:06:18,846 --> 00:06:21,920 这是因为暗网是一个开源项目, 130 00:06:21,920 --> 00:06:24,480 在公共领域,任何人都可以免费使用。 131 00:06:25,600 --> 00:06:31,290 (掌声) 132 00:06:31,290 --> 00:06:36,200 但是我们想要让检测器 能被更多人使用、也更好用, 133 00:06:36,200 --> 00:06:40,260 因此通过结合模型优化, 134 00:06:40,260 --> 00:06:42,640 网络二值化和近似法, 135 00:06:42,640 --> 00:06:46,600 我们实际上已经可以 在手机上进行目标检测了。 136 00:06:52,800 --> 00:06:58,120 (掌声) 137 00:06:58,960 --> 00:07:04,036 我真的很激动, 因为我们在这个低级的 138 00:07:04,040 --> 00:07:06,320 计算机视觉问题上 有了一个强大的解决方案, 139 00:07:06,320 --> 00:07:10,276 而且任何人都可以 使用它来做些什么。 140 00:07:10,276 --> 00:07:13,466 所以接下来就看所有在座的各位 141 00:07:13,466 --> 00:07:16,360 以及世界上所有 能够使用这个软件的人了, 142 00:07:16,360 --> 00:07:20,030 而我已经等不及想要看看, 人们会用这一技术造出什么来了。 143 00:07:20,030 --> 00:07:21,210 谢谢。 144 00:07:21,210 --> 00:07:24,760 (掌声)