
通用目标检测领域目前大家都在研究什么?后续发展趋势会是怎样的?作为普通研究者有什么可以 follow 的吗?这三个问题相信是相关从业者都非常关心的。
最近 CVPR 2023 论文已经全部公开了,或许我们可以通过分析通用目标检测相关的所有论文,进一步分析预测通用检测后续的发展趋势。在 GPT 时代,作为一名从业者是否可以借助 GPT 快速搞定这三个问题?
废话不多说,直接上干货:
(当然以上只是个人的浅见,欢迎大家交流不同看法,碰撞新的思路)
那么以上的结论是怎么得出来的?总的来说分析过程包括以下内容:
这是一套可以 follow 和定制化的从论文爬取到最终趋势总结的流程,学会之后,大家可以按照这个思路快速总结自己关心的领域和方向。
本文涉及到的代码和文件已上传至:(文末点击阅读原文可直达)https://github.com/hhaAndroid/awesome-mm-chat/tree/main/cvpr2023_objectdetection
为了方便大家保存和复现文章中的方法,我们同时整理了一份 PDF 版本,后台回复『cv』即可,enjoy!
1. 爬取 CVPR 2023 论文信息
采用简单的爬虫脚本可以方便地将 CVPR 2023 2359 篇论文的相关信息都下载下来,注意我们不会直接就把所有论文下载下来,因为大部分论文我们都不关心。
为了后续方便分析其他方向,我们首先爬取 CVPR 2023 所有论文的信息,并保存为 CSV 文件,每一列都包括论文的标题、作者、摘要、下载链接和开源代码等等核心信息,前几列简单示例如下:

论文的爬取我使用的是 scrapy 库和 https://github.com/sucv/paperCrawler/, 为了进一步简化,我实际采用的是经过 @hellock 稍作修改后的版本:https://github.com/hellock/paperCrawler
整个过程如下所示:
pip install scrapy
git clone git@github.com:hellock/paperCrawler.git
cd paperCrawler/conf_crawler
# 爬取 cvpr2023 的所有论文信息
# -s 用于缓存中间状态,方便当突然断开后继续下载
scrapy crawl cvpr -a years=2023 -s JOBDIR=out_jobs这个库有非常多的功能,例如可以分析其他顶会例如 ICCV 等等,详细可以参考项目工程的 README。
使用上述脚本后会在当前路径下生成 data.csv 文件,包含所有论文的信息,一共 2358 篇论文(其中有一篇论文官方 url 有问题,因此自动跳过了)。
为了方便大家直接使用该 csv 文件,我已经上传到 https://github.com/hhaAndroid/awesome-mm-chat/tree/main/cvpr2023_objectdetection 中了,命名为 cvpr2023.csv。
2. 提取和通用检测相关的论文
通用检测一般指 2D 目标检测、实例分割和全景分割三个任务。本次分析的范围限定在自然图像通用检测,不包括视频、音频、异常检测以及其他特定的小细分领域。
我的做法比较实际:从标题和摘要中提取即可进行初筛。为了尽可能不会将相关论文漏掉且能过滤掉特定不关心的方向,我设置了正向关键词和反向关键词,
请注意:反向关键词要小心设置,其中的词表示一定不关注的论文。如下所示:
keywords = [
'object detection',
'instance segmentation',
'panoptic segmentation',
'open-vocabulary', # 这个是我特意加的,因为我在迭代运行时候发现这个论文比较多
'open vocabulary',
'open world'
]
# 反向关键词
reversed_keywords = [
'3d',
'bev',
'active detection',
'boundary detection',
'anomaly',
'oriented',
'point cloud',
'video instance segmentation',
'semantic segmentation',
'tracking',
'video object',
'video',
'attribute recognition',
'4d instance segmentation',
'salient object detection',
'pose estimation',
'lidar',
'acoustic',
'few-shot',
'cross-domain',
'cross domain',
'domain adaptive',
'domain adaptation',
'adaptation',
'attacks',
'graph generation',
'video segmentation'
]正向关键词很好设置,反向关键词如何确定?这个可以通过不断迭代来修改,比如第一次运行后发现梳理出了 300 篇论文,然后你简单通过标题确认发现有些论文是不需要的,此时就可以加入到反向关键词中重新运行。由于每次运行不超过 1s,因此这个迭代速度是很快的。
我大概是经过3 次迭代确定的这些关键词。不过需要说明的是:你不需要将反向关键词考虑得非常完美,因为这只是初筛。
经过筛选后,程序运行后剩下 78 篇相关论文,你可能疑惑为这么多,我大概看了下,原因如下:
程序运行命令为:
cd paperCrawler
python filter_with_keyword.py3. 利用 ChatGPT 对论文进行相关性分析
第二步的关键词设置非常关键,如果设置的太严格可能会过滤掉重要论文,如果设置的比较少可能会留下大量无关论文,加大人工审核负担。
因此基于第二步的结果,我们可以利用 ChatGPT 强大的理解能力,对 78 篇论文进一步筛选。简单来说是将 78 篇论文分成三大类:强相关,一般相关和无关。通过构建 prompt,并且提供标题和摘要进行分类。
中文 Prompt 设计如下:
你是一个 AI 助手。我会提供一个论文的标题和摘要,并请你帮助分析它与通用目标检测的相关性,通用目标检测包括目标检测、实例分割和全景分割任务。
相关性分为三个级别:
1. 高度相关。意味着论文的标题或摘要中包含了开放词汇、开放世界或与数据集 COCO、PASCAL VOC、LVIS、Objects365、VisDrone 和 Open Images 中的一个或多个相关的内容。
2. 一般相关。意味着它包括通用目标检测,但也包含一些额外的不相关信息。
3. 不相关。意味着它主要包含与通用目标检测任务无关的内容。
你的输出格式必须是以下之一,并且不输出其他内容:[高度相关],[一般相关],[不相关]。
标题为:
摘要为:英文 prompt 如下:
You are an AI assistant. I will provide you with the title and abstract of a paper and ask for your help to analyze its relevance to general object detection, which includes object detection, instance segmentation, and panoptic segmentation tasks.
The relevance is divided into three levels:
1. highly relevant. It means that the paper's title or abstract includes open vocabulary or open world or relevant one or more of datasets such as COCO, PASCAL VOC, LVIS, Objects365, VisDrone and Open Images.
2. moderately relevant. It means that it includes general object detection but also some additional irrelevant information.
3. not relevant. It means that it includes mostly content unrelated to general object detection tasks.
Your output format must be one of the following and do not output anything else: [highly relevant], [moderately relevant], [not relevant].
title is :
abstract is :Prompt 设计非常重要,设计得好效果就会非常好。上述的写法只是我个人随便想的,可能不够专业。感兴趣的同学可以多尝试修改 prompt 以提升效果。
其中三个等级的相关性其实很难界定,特别是高度相关和一般相关。我一般认为如果使用 COCO 或者类似的数据集进行评测的就应该是强相关,但是有些论文算是强相关,但是它没有在摘要里面写数据集指标导致分成一般相关了。这也是一个不太好解决的问题。
我能想到的一个尝试是使用 few shot learning,基于我们人工确认的绝对正确的三个类别的摘要构建 few shot prompt,然后对未知的摘要进行预测,进一步提高准确率,但是这样 prompt token 就会增加不少。
或许未来会有专门针对 CVPR 摘要进行简单 fintune 的尝试,这样就全部解决了。
经过上述脚本进行相关性分析后,大概得到 15 篇强相关+ 35 篇一般相关+ 28 篇无关论文。
程序运行命令为:
cd paperCrawler
python chatgpt_rank_papers.py会生成 filted_cvpr2023.csv 文件。考虑到 OpenAI 接口对两次请求的间隔有一定要求,我将两次请求间隔设置为 10s,并且一旦出现 500 error 就设置为 30s 延时(如果你觉得太慢,可以缩短间隔)。如果某次论文相关性分析时候服务端出现 500 error,那么你可以多次运行 chatgpt_rank_papers.py 脚本,它会基于 relevant 标注进行增量式请求,之前已经进行相关性分析过的则直接跳过。如果 78 篇论文全部确认过了,则程序会输出 All papers have been checked. 这个做法可以大大提高程序鲁棒性。
4. 利用 ChatGPT 翻译摘要
脚本毕竟不是万能的,绝对正确的。如果想确保不会遗漏重要论文,可以人工对 28 篇无关论文进行快速确认,如果发现分错了,可以手动修改 csv 中的 relevant。
考虑到中文用户更习惯看中文,因此将 78 篇轮摘要全部翻译为中文是非常有必要,这样可以加快大家梳理论文速度。
你可以使用 chatgpt_translation_papers.py 脚本将论文摘要翻译为中文。
我个人的做法也是:先翻译为中文,然后打开 CSV 文件,对表格进行 relevant 列进行排序,对于 relevant=3 的无关论文进行快速简单确认,然后对于 relevant=2 的一般相关性论文也进行快速确认,如果发现是自己不关心的论文可以设置为 relevant=3。
为了方便大家,我已经上传了最终的经过简单确认的 filted_cvpr2023.csv 文件。
5. 下载强相关和一般相关性论文
终于到最后一步了。有了 relevant 信息,我们就可以将强相关和一般相关性论文一次性全部下载下来了。
python download_papers.py chatgpt_filted_cvpr2023.csv在确认了哪些论文是我们应该关注的后,就可以对筛选的论文进一步分析了。接下来有两条路可以选择,一条是借助工具,一条是人工。如果想全自动归纳整理,那么我个人理解可以采用如下方式:
考虑到本文所需要总结的论文其实不多,手动梳理思维导图其实也不用多久。经过快速的人工确认和补充(大概 20 分钟),我们就可以构建自己的思维导图了。这一步对于后面我们进行趋势分析也非常重要。
6. 思维导图分析
注意:本文的所有步骤都不需要 pdf 文件,也不需要去精读论文,只需要关注摘要即可。因为我们只是在梳理而不是具体分析每一篇论文具体做了什么?有何创新点。因此所需要消耗的时间其实不用很久。

通过摘要的简要分析,我将其梳理成如上思维导图,接下来我们详细进行分析。
6.1 目标检测
目前目标检测主要分成封闭集和开放两个大方向,而封闭集即常规目标检测方向依然是以 Transformer 为主,大概有 10 篇论文,而 CNN 方向也主要集中在半监督目标检测上,典型的如 MixTeacher 和 Consistent-Teacher, 全监督的 CNN 目标检测典型代表是 YOLOv7。

开放目标检测是大趋势,一下子出现了非常多的论文,其中尤其是以开发词汇目标检测为最多,一共有 9 篇论文。open world 方向比较杂,虽然目标一致但是说法有比较多,我在思维导图中没有特意细分。

目标检测的其他方向主要包括特定领域检测和增量学习等方向。

其中比较出名的是 What Can Human Sketches Do for Object Detection? 在知乎有广泛传播。
6.2 实例分割
实例分割方向和目标检测差不多,也是集中在开发实例分割和弱监督上面,还有一些无监督的尝试。

6.3 全景分割
纯粹做全景分割的论文非常少,现在基本上都是往通用分割方向发展,典型的如 OneFormer 和 X-Decoder,都是大一统的算法,实现了通用的分割任务,知名度很高。

需要说明:由于脚本无法实现非常完美效果,估计有不少 CVPR 相关论文遗漏了,如果发现我会人工进行补充。
7. 发展趋势总结
通过对上述思维导图的分析,我们就可以大概总结出目前通用检测的发展趋势了。(总结内容已放置文章开头,这里就不再赘述了)
总结
本文借着 CVPR 2023 论文全部公开之际,借助 GPT 快速地对通用目标检测相关论文进行了系统性的梳理,提供了一套可以 follow 的清晰流程,并针对梳理后的思维导图进行了详细的总结和趋势分析。
如果你有兴趣,可以选一个自己感兴趣的方向按照上述步骤梳理下,看看总共需要花费多久时间。
本文所有代码包括思维导图都已经上传至 https://github.com/hhaAndroid/awesome-mm-chat/tree/main/cvpr2023_objectdetection ,欢迎查看使用。