Fenrier Lab

函数空间优化

通用的学习模型可以被表示成下面三个部分的组合 1) 产生器,从一个未知但固定的概率分布函数 \(F(x)\) 中独立同分布地产生向量 \(x \in R^n\)。 2) 训练器,对于每一个 \(x\),从一个未知但固定的条件概率分布 \(F(y\mid x)\) 中独立同分布地产生值 \(y\)。 3) 学习机器,根据上面产生的集合 \({(x_i, y_i)}\),从函数集 \(f(x, P), P\in \Lambda\) 中寻找最佳的参数 \(P^*\),使得对于任意 \(x\), \(\bar y = f(x, P)\) 能够最好的逼近训练器的响应 \(y\)。 通俗的讲,产生器和训练器共同生成了我们通常称为训练集的数据,所以也可以看作是从联合分布 \(F(x, y)\) ...
点我阅读更多...

使用 PyTorch 实现 yolov3 算法 (1)

在这一系列文章中,我们将使用 pytorch 框架来实现 yolov3 目标检测算法,在理解 yolo 系列算法的同时,也希望对 pytorch 框架有更深入的认识。 对于初学者来说,我觉得最先应该理解的还是目标检测这种任务的基本流程,而 yolo 原论文则不太适合新手直接去看。但是奇怪的是网上对 yolo 的介绍大都是对原论文的翻译,如果强行去啃,很容易就迷失在各种名词概念中无法自拔,所以我希望这篇对 yolo 的介绍能做到由浅入深,老少咸宜,不求面面俱到,但求写出来的东西都是容易被理解的。 首先,我们看神经网络这个东西,把它当成一个黑箱,我们从一端输入特征,另一端输出计算结果。对于分类问题,输出端给出的是一个向量,向量维度等于类别数量,每个元素表示对应类别的置信度。对于回归问题...
点我阅读更多...

Vert.x 实践 (1):异步回调

本系列文章主要是想记录下我在学习和使用 vertx 框架过程中总结的一些经验技巧,同时巩固对 vertx 的理解。 Vert.x 是 Java 中的异步编程框架,当然还支持除 Java 之外的几种语言,在我看来,它以很现代化的方式为 Java 编程带来了一种新的体验。说到异步编程,就不得不提回调函数这种很有用的概念,在 vertx 中,无处不在的异步调用让我们不得不最先对回调函数进行仔细介绍。 在同步编程的环境中,调用一个函数之后,程序必须等待函数返回再执行下一行代码,也就是说,程序的执行顺序和我们的编码顺序是相同的,所以同步编程的好处就是让程序员可以很容易掌握程序的执行过程和状态,方便调试。而它的缺点也很明显,那就是不太容易充分利用资源,因为在等待函数返回的时候,程序实际上什么都...
点我阅读更多...

OpenCV 图像处理——非线性拉伸

remap 是一个非常有意思的函数,它可以将当前图片按我们给出的规则进行变换,这次我们要研究的是怎样使用 remap 函数进行图片的非均匀拉伸,效果如下图所示 可以看到,图片右边的拉伸程度极小,并且越往左,拉伸程度逐渐增大。为了实现这样的效果,我们先简单介绍一下 remap 函数,由于我使用的是 opencv 的 java 绑定库,所以这里以 Imgproc 类中的 remap 作为说明原型 public static void remap(Mat src, Mat dst, Mat map1, Mat map2, int interpolation); 该函数有5个参数,其含义分别是 1) src: 原图像 mat,这是我们提供的原始图片。 2) dst: 目标图像 m...
点我阅读更多...

如何使用算法抠图——Closed Form Matting 算法以及优化-1

本文算法思想主要来自于下文,算法优化部分为原创 A. Levin, D. Lischinski and Y. Weiss, “A Closed-Form Solution to Natural Image Matting,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 30, no. 2, pp. 228-242, Feb. 2008. 我们先对算法进行介绍,然后再考虑优化问题。 简介 抠图是一种很常见的图像处理应用,简单来说,抠图就是保留需要的像素,并删去图片的其他部分。于是潜在地,图片就被分为了两个部分,被称为前景和背景,若前景像素用 F 表示,背景像素用 B 来表示...
点我阅读更多...