详细的导出流程其实看官方文档就可以了。这里我主要是说明的是我感兴趣的几个参数以及我自己的一些疑惑。

主要参数

export_params:该参数默认为True,也就是会导出训练好的权重;若设置为False,则导出的是没有训练过的模型。

verbose:默认为False,若设置为True,则会打印导出onnx时的一些日志,便于分析网络结构。

opset_version:对于1.5.0的Pytorch,默认仍然是9,也就是对应当前onnx的最稳定的版本。

阅读全文 »

以下大部分内容来源于Pytorch源码编译简明指南,并加上自己踩得一些坑。

获取源代码

编译首先是要获取源代码。

官方获取源代码是最好的方式,从Pytorch的github官网可以下载最新的代码。

记住,从官方克隆最新的代码的时候要加入recursive这个参数,因为Pytorch本身需要很多的第三方库参与编译:

阅读全文 »

下面记录一下caffe2的一些基本概念。

Caffe2框架是一个静态的图框架。同大多静态图框架一样,它的应用程序一般会干两件事情,先是建立模型(即建图,主要使用Python等较友好的语言脚本或像caffe那样直接使用prototxt文件),然后则是迭代执行模型。

核心概念

Operator

可以看成是一个函数,输入一些数据,输出一些数据,如 layers、数值操作等。感觉与TensorFlow中的op是一个概念。

阅读全文 »

这里主要介绍两篇论文。

Polarimetric SAR Image Classification Using Deep Convolutional Neural Networks

基本信息

  • 文章名称:Polarimetric SAR Image Classification Using Deep Convolutional Neural Networks
  • 年份:2016
  • 期刊:IEEE Geoscience & Remote Sensing Letters
  • 标签:PolSAR
  • 数据:PolSAR图像数据

创新点

阅读全文 »

基本信息

  • 年份:2019
  • 期刊:arxiv
  • 标签:PolSAR, Complex
  • 数据:PolSAR图像数据

创新点

  1. 使用了复数域的卷积操作
  2. 为了利用少量标记样本实现精确定位和快速分类,提出了一种将Cs-CNN权重直接迁移到C-Dilated CNN中
  3. 设计了一种由C-Dilated CNN和复数域encoder-decoder网络组成的a pixel-refining parallel mapping network in the complex domain(CRPM-Net)来提取上下文语义特征,并对错误分类的训练像素进行纠正以获得更高的准确率。

创新点来源

阅读全文 »

这篇论文,讲道理我个人不是很喜欢,因为实验感觉也不是很充分,理论上感觉创新性也没那么高,只是提供了一个强有力的baseline,连作者本人也说大家对这篇文章的关注度过高了。不过,既然能引起大家广泛关注,还是有吸引人的地方的,那么对这篇论文进行介绍。

创新点

  1. 提出了一个feature map groups之间的attention机制,即Split-Attention block。通过像ResNet那样堆叠这些Split-Attention blocks,可以得到一个新的ResNet变体——ResNeSt。该模型保留了ResNet的整体结构,能够被应用到下游任务,且没有引入额外的计算量。
  2. ResNeSt模型比其他ResNet变体表现更好。如ResNeSt-50在图像分类任务上比最好的ResNet变体性能提高了1%。这种分类性能上的提升也带动了下游任务精度的提升。

创新点来源

虽然图像分类技术方面已经取得了巨大的进步,但是延伸出来的其他应用如目标检测、图像分割仍然使用ResNet及其变体作为backbone,因为这些结构简单且模块化。

阅读全文 »

这篇论文给我感觉是很惊艳,实验表格真的是太充分了,而且不像EfficientNet那种大力出奇迹的感觉,这篇论文手工设计出了比EfficientNet还好的论文,经过我自己的实验。同样的epoch和batch size下,RegNetX-8.0GF只占用9G显存,9个半小时单卡就训练完了。但是efficientnet-b4占用双卡,显存占满,需要训练21个小时。最终两者的精度基本一致,但是推理时间RegNetX-8.0GF(15.65)只有efficientnet-b4(29.17)的一半。下面对该论文进行详细介绍。

创新点

  1. 提出了一个新的网络设计范例。以统计学的角度提高了对网络设计的理解,并探讨不同设置下的通用网络设计原则。作者不是专注于设计某个具体的网络,而是design network design spaces。整个过程类似于经典的手工网络设计,但是提升到了设计空间的层次。
  2. 使用所提方法,得到了包含一系列简单、常规网络模型的低阶空间——RegNet。在这个空间中,表现优异的网络的宽度和深度能够被一个线性函数量化。并且发现了一些和现有设计思想相悖的结论。
  3. 在不同的FLOPs约束下,都可以从RegNet设计空间中得到简单且轻量的模型。在相同的FLOPs和训练参数下,RegNet模型比EfficientNet的性能更好且在GPUs最多提速5倍。

创新点来源

传统NAS方法这种基于个体估计(individual network instance)的方式(每次评估的时候采样一个网络)存在以下缺陷:

阅读全文 »

这个算法在一个强大的backbone——EfficientNet下,在COCO测试集上取得了state-of-the-art的性能,下面对它的方法进行介绍。

创新点

  • 提出了一个加权双向特征金字塔网络——weighted bi-directional feature pyramid network (BiFPN),能够实现简单且快速的多尺度特征融合
  • 提出了一个用于目标检测模型的compound scaling method,能够同时统一scale backbone、特征网络、box/class预测网络的宽度、深度和分辨率
  • 基于EfficientNet和上面两条改进,提出了一个新的目标检测家族——EfficientDet,在资源限制范围内,能够取得比现有模型都高的精度。其中,EfficientDet-D7在COCO测试集上取得了state-of-the-art的精度,并且比之前的检测网络参数量少了4倍到9倍,FLOPs少了13倍到42倍。

创新点来源

大多数现有的目标检测网络只关注一个特定的或者很少范围的资源要求,但是真实世界中,从手机到数据中心会要求不同的资源限制。那么是否有可能构建一个覆盖各种资源限制的、同时具有更高精度和更高效率的目标检测体系结构?本文通过系统的研究目标检测结构的不同设计选择解决这个问题。

阅读全文 »

这篇论文一经出现就引起了广泛的关注,在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
阅读全文 »