在图像中命名和定位对象
对象检测(对场景中的多个对象进行分类和定位的行为)是较困难但在实践中非常相关的深度学习任务之一。我们将在几篇文章中介绍它。在这里,我们从命名和定位单个对象的简单任务开始。
来源:RStudio AI博客我们都已经习惯了深度学习在图像分类方面的成功。大瑞士山地犬还是伯尔尼山地犬?小熊猫还是大熊猫?没问题。然而,在现实生活中,仅仅说出图片上最显着的物体是不够的。不管你喜欢与否,最引人注目的例子之一就是自动驾驶:我们不希望算法只识别我们面前的那辆车,还要识别即将过马路的行人。而且,仅仅检测行人是不够的。物体的确切位置很重要。
大瑞士山地犬 伯尔尼山地犬 小熊猫 大熊猫 位置物体检测一词通常用于指在图像帧中命名和定位多个物体的任务。物体检测很难;我们将通过一系列松散的帖子来介绍它,重点关注概念而不是追求最终的性能。今天,我们将从几个简单的构建块开始:分类(单一和多重分类);定位;以及将单个对象的分类和定位相结合。
对象检测数据集
我们将使用 Pascal VOC 数据集中的图像和注释,可从此镜像下载。具体来说,我们将使用 2007 年挑战赛的数据和与 fast.ai 课程中使用的相同的 JSON 注释文件。
Pascal VOC 数据集 此镜像 fast.ai快速下载/组织说明,无耻地摘自 fast.ai wiki 上的一篇有用帖子,如下所示:
fast.ai wiki 上的有用帖子# mkdir data && cd data# curl -OL http://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar# curl -OL https://storage.googleapis.com/coco-dataset/external/PASCAL_VOC.zip# tar -xf VOCtrainval_06-Nov-2007.tar# unzip PASCAL_VOC.zip# mv PASCAL_VOC/*.json .# rmdir PASCAL_VOC# tar -xvf VOCtrainval_06-Nov-2007.tar
换句话说,我们从不同的地方获取图像和注释文件:
img_dir <- "data/VOCdevkit/VOC2007/JPEGImages"annot_file <- "data/pascal_train2007.json"img_dir <- annot_file