这篇论文一经出现就引起了广泛的关注,在ImageNet上取得了State-of-the-art的性能,并且网络的参数量以及FlOPs都大幅度降低。虽然经过实际测试后,发现推理速度很慢,占用显存也很高。最近出的RegNet就说明了这个问题。废话不多说,下面对该论文进行详细的介绍。

创新点

  • 系统地研究了model scaling,发现平衡网络深度、宽度和分辨率可以带来更好的性能
  • 使用神经网络搜索算法搜索出一个新的baseline network,并通过model scale的方式扩展得到一系列模型,称为EfficientNets
  • EfficientNet-B7在ImageNet数据集上取得了State-of-the-art的性能,并且比现有的最好的模型参数量小8.4倍,推理速度快了6.1倍。EfficientNet的迁移学习能力也很强。

创新点来源

Scaling up ConvNets被广泛的应用来得到更好的精度。例如使用更多的层将ResNet-18提升到ResNet-200;最近的GPipe通过scaling up一个baseline model四倍在ImageNet数据集上取得了84.3%的top-1精度。

阅读全文 »

常用命令

视频转图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 常用命令1
ffmpeg -i inputfile.avi -r 1 -q:v 2 -f image2 image-%05d.jpeg
-r 指定抽取的帧率,即从视频中每秒钟抽取图片的数量。1代表每秒抽取一帧。
-f 指定保存图片使用的格式,可忽略。
-q:v表示存储jpeg的图像质量,一般2是高质量。
image-%05d.jpeg,指定文件的输出名字

# 常用命令2
ffmpeg -i inputfile.avi -r 1 -s 4cif -f image2 image-%05d.jpeg
4cif 代表帧的尺寸为705x576

# 常用命令3
ffmpeg -i inputfile.avi -r 1 -t 4 -f image2 image-%05d.jpeg
-t 代表持续时间,单位为秒

# 常用命令4
ffmpeg -i inputfile.avi -r 1 -ss 01:30:14 -f image2 image-%05d.jpeg
-ss 指定起始时间

# 常用命令5
ffmpeg -i inputfile.avi -r 1 -ss 01:30:14 -vframes 120 4cif -f image2 image-%05d.jpeg
-vframes 指定抽取的帧数,但是这个固定帧不是均匀采样的

图片转视频

1
ffmpeg -r 30 -f image2 -i output/%04d_matte.png -vcodec libx264 -crf 15 -s 1280x720 -pix_fmt yuv420p teaser_matte.mp4
阅读全文 »

目前的检测算法主要思路还是设置大量anchor+分配正负样本+训练的一个思路,Anchor的本质是目标的候选框,因为目标的形状和位置的多种可能性,Anchor的数量往往非常庞大,否则会出现遗漏的情况,这种情况对于one-stage的检测算法更加突出。本文不使用anchor boxes,而是提出了一种叫做corner pooling的操作帮助网络更好地定位目标

首先,说下Anchor的两个缺点:

  1. 通常需要大量的anchor,在SSD中需要40k,而在RetinaNet中则需要100k。大量的anchor中只有少部分和gt的重合比较大,可以作为正样本训练,其它都是负样本,这样就带来了正负例anchor的比例不均衡,也降低了网络的训练速度
  2. anchor boxes的引入带来了许多的超参数,并且需要进行细致设计。包括anchor boxes的数量、尺寸、长宽比例。特别是在单一网络在多尺度进行预测的情况下会变得复杂,每个尺度都需要独立设计。

正是有这两个缺点,受到keypoint问题的启发,作者就想到用关键点检测的思路来处理detection问题,只要找到top-left和Bottom-right两个点,就可以准确框出一个目标了。使用单一卷积模型生成热点图和embedding vector:所有目标的左上角和所有目标的右下角热点图heatmap(两个heatmap),每个顶点的embedding vector。也就是该方法在卷积的输出结果上,分别预测边界框的左上角与右下角,之后寻找它们之间的对应关系。

主要思路其实来源于一篇多人姿态估计的论文。基于CNN的2D多人姿态估计方法,通常有2个思路(Bottom-Up Approaches和Top-Down Approaches):

阅读全文 »

alpha matte

图像抠图(Image Matting)是一个无论在工业界抑或视觉研究领域都有非常重要价值的研究课题。从2000年开始,在进行图像抠图及相近研究问题的研究过程中,诞生了类似GrabCut、Guided Filter、Closed Form Matting、Poisson Matting、Bayesian Matting等等对各计算机视觉以及计算机图形学研究都有深远影响的工作。

求解抠图问题需要我们对一张图像,分别求解出它的前景、背景以及alpha matte。alpha matte是我们常说的alpha通道,基于alpha 通道我们可以将前景和任意背景进行重新组合得到新的图像。因此alpha matte是和原图x相同大小的一个单通道图像,每个像素都对应于原RGB图像相同位置像素的alpha值。根据基本假设,对于一张RGB 图像,每个像素在R、G、B这三个通道上的强度(intensity)是由前景以及背景的凸组合构成的,即

这里$I$表示Image,$F_i^j$代表第$i$个像素下第$j$个通道的前景像素强度(pixel intensity),$B_i^j$代表第$i$个像素下第$j$个通道的背景像素强度(pixel intensity)。对于一张图片而言,由于我们只知道它的R、G、B三个通道的像素强度,因此对于每一个像素而言,我们有三个方程分别对应RGB三个通道,同时我们需要求解$\alpha_i$,$F_i^j$,$B_i^j$一共7个未知数。三个方程七个未知数,这是妥妥的未知数个数大于方程个数,解可以有无穷多个,属于经典的视觉研究中的反问题,难度非常的大。

alpha matte的应用

阅读全文 »

基本信息

  • 标题:Prototype Propagation Networks (PPN) for Weakly-supervised Few-shot Learning on Category Graph
  • 年份:2019
  • 期刊:Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence (IJCAI-19)
  • 标签:Few-shot Learning,prototype
  • 数据:WS-ImageNet-Pure和WS-ImageNet-mix

创新点

引入了弱监督信息,去做Few-shot Learning。

创新点来源

阅读全文 »

基本信息

  • 标题:Rethinking Knowledge Graph Propagation for Zero-Shot Learning
  • 年份:2019
  • 期刊:Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition
  • 标签:知识图谱、分类
  • 数据:AwA2、ImageNet(图结构已知)

创新点

  • 显式的利用知识图的层次结构通过提出的密集连通结构有效地传播知识,防止信息平滑掉。具体体现为使用层次化的父类邻接矩阵和层次化的子类邻接矩阵代替原始的邻接矩阵;并且根据父类和子类不同层次的,设置不同的权重,类似于attention机制。
  • 两阶段的训练方法,第二阶段让CNN提取特征模块适配GNN学习到的分类器权重。

创新点来源

阅读全文 »

基本信息

  • 标题:Learning to propagate labels:Transductive propagation network for few-shot learning

  • 年份:2019

  • 期刊:ICLR
  • 标签:transductive inference, few-shot learning
  • 数据:miniImageNet,tieredImageNet

创新点

  • 第一个提出用于Few-shot Learning的转导推理(transductive inference)
  • 转导推理中,我们建议通过情景元学习(episodic meta-learning)来学习在不可见类的数据实例之间传播标签,这比基于启发式的标签传播算法表现要好得多
  • 对于Few-shot Learning,我们的方法在miniImageNet,tieredImageNet数据集上均达到了最优性能。并且,对于Semi-supervised learning,我们的方法也超过了其它的Semi-supervised Few-shot Learning baselines

创新点来源

阅读全文 »

基本信息

  • 标题:Multi-label Zero-Shot Learning with Structured Knowledge Graphs
  • 年份:2018
  • 期刊:Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition
  • 标签:多标签,零样本,知识图谱
  • 数据:NUS-WIDE,COCO

创新点

  • 第一个提出用于ML-ZSL的结构信息与知识图谱
  • 提出了在语义空间的类别传播算法,使得学到的模型能够泛化到没有见过的类别
  • 在标准的multi-label分类任务上,实现了最优性能

创新点来源

阅读全文 »

在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,十几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,此时可以发挥进程池的功效。

Pool可以提供指定数量的进程供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来它。

对于子进程的print结果,spyder无法打印出来。请用其他方式运行程序。

例1:使用进程池

代码如下:

阅读全文 »