论文笔记:NetVLAD: CNN architecture for weakly supervised place recognition

NetVLAD1是一个较早的使用 CNN 来进行图像检索或者视频检索的工作,后续在此工作的基础上陆续出了很多例如 NetRVLAD、NetFV、NetDBoW 等等的论文,思想都是大同小异。 一、图像检索 VLAD 和 BoW、Fisher Vector 等都是图像检索领域的经典方法,这里仅简介下图像检索和 VLAD 的基本思想。 图像检索(实例搜索)是这样的一个经典问题: 1、我们有一个图像数据库 通过函数可以得到每一个图像的特征 ; 2、我们有一个待查询图像 通过函数得到它的特征 ; 3、则我们获得的欧氏距离 应该满足越相近的图像 越小。 二、VLAD (Vector of Locally Aggregated Descriptors) 而 VLAD...

Tensorflow C API 从训练到部署:使用 C API 进行预测和部署

前述博文 Tensorflow C++ 从训练到部署(2):简单图的保存、读取与 CMake 编译 和 Tensorflow C++ 从训练到部署(3):使用 Keras 训练和部署 CNN 使用 Tensorflow/Keras 的 Python API 进行训练,并使用 C++ API 进行了预测。由于 C++ API 需要编译...

[TX2] Tensorflow 1.12.0 在 Jetson TX2 上的编译

系统环境 Ubuntu 16.04 Jetpack 3.2.1 on TX2 [Link](with CUDA 9.0 cuDNN 7.0.5) 1、编译准备 1)配置环境 Shell export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH 1 export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH 2)安装依赖 Java Shell sudo apt-get install openjdk-8-jdk 1 sudo apt-get install openjdk-8-jdk Bazel (Tensorflow 使用 Bazel 0.15 编译,因此这里下载 0.15.2 版本,详情参见这里) Shell cd...

Deep Local Feature 文章 & 数据收集

在 SLAM 中 Local Feature 的提取和匹配是一个比较重要的内容,近些年有很多相关的使用 Deep Learning 学习局部描述子的工作,这里做一下相关文章和代码收集。后续如有精力会进行速度和性能比较。 文章收集 数据收集...

Tensorflow C++ 从训练到部署(3):使用 Keras 训练和部署 CNN

在上一篇文章中我们并没有去训练一个真正的网络和解决一个实际问题,我们所做的是构建了一个 c = a * b 的计算图,并用 python 进行了保存和 c++ 进行了读取,这一保存和读取中也仅包含图的结构并没有相关参数。本篇文章中我们进一步以 Tensorflow 官方的 Fashion MNIST 为例,完成一个简单的分类问题。本文前面 Keras 训练模型以及转化到 Tensorflow 格式部分与之前一篇博客(Keras 转换成 Tensorflow 模型格式并使用)基本一致。本文主要包含: 1)Python:Fashion MNIST 数据集 2)Python:使用...

Keras 转换成 Tensorflow 模型格式并使用

Tensorflow 官方已经集成了 Keras 作为自己推荐的 High-Level API,Keras 的确使用非常方便,而且代码美观简洁,不像 Tensorflow 那样有很多形式化的代码。对于我们进行快速原型和实验是非常有帮助的。然而在一些场合我们可能需要混合使用 Keras 和 Tensorflow 定义模型或者保存模型的操作,这时就需要一些转换了。 系统环境 Ubuntu 16.04 Tensorflow 1.10.1 (内置:Keras 2.1.6-tf) 1、Fashion MNIST 数据集 1)数据简介 Fashion-MNIST [1] 是一个替代MNIST手写数字集的图像数据集。 它是由Zalando(一家德国的时尚科技公司)旗下的研究部门提供。其涵盖了来自10种类别的共7万个不同商品的正面图片。Fashion-MNIST的大小、格式和训练集/测试集划分与原始的MNIST完全一致。60000/10000的训练测试数据划分,28x28的灰度图片。你可以直接用它来测试你的机器学习和深度学习算法性能,且不需要改动任何的代码 [11]。 典型的 Fashion-MNITST 数据是这样的,其中每三行表示一个类别: Fashion-MNIST...

Tensorflow C++ 从训练到部署(2):简单图的保存、读取与 CMake 编译

经过了 上一篇文章,我们已经成功编译了 tensorflow c++ 的系统库文件并且安装到系统目录下了。这里我们将使用这个编译好的库进行基本的 C++ 模型加载执行等操作。 注意,在本篇文章会使用 Tensorflow 的 Python API,因为比较简单,这里不做介绍,安装详见官网教程: https://www.tensorflow.org/install/ 0、系统环境 Ubuntu 16.04 Tensorflow 1.10.1 (安装详见官网,建议使用 pip 方式安装) 1、一个简单网络的保存 只有 c = a * b 的网络: Python #!/usr/bin/env python import tensorflow as...

Python 常见问题总结

1 错误:No module named '_tkinter' 如果在使用类似 matplotlib 库时遇到如下错误: import tkinter File "/usr/local/lib/python3.6/tkinter/__init__.py", line 36, in <module> import _tkinter #...

Ubuntu Linux 常见问题总结

系统环境 Ubuntu 16.04 问题1:dpkg: error processing package libpaper-utils 在执行 apt-get 安装包时可能遇到如下问题: dpkg: error processing package libpaper-utils (--configure): dependency problems - leaving unconfigured Processing triggers for libc-bin (2.23-0ubuntu10) ... Errors were encountered...

Tensorflow C++ 从训练到部署(1):环境搭建

很多人使用 Tensorflow 作为自己深度学习的实验工具,然而它只能用 Python 来训练和预测,对于实际生产而言,我们更多地会用 C++ 来放入自己工程中。例如一个典型的流程如下: 1)在训练环节,我们仍然希望使用 Python 接口 2)在预测环节,我们使用 C++ 接口获取结果 这几篇博客我们就尝试按照上面的方式,完成从环境搭建、训练到部署的一整套流程。 0、系统环境 Ubuntu 16.04 Tensorflow 1.10.1 ProtoBuf 3.6.1 1、安装依赖 1)安装 JDK 8 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 或者到我的网盘下载: [Ubuntu] https://pan.baidu.com/s/1B2wpEVVqtP6JwBfEvEQsnw [Mac] https://pan.baidu.com/s/15zxVi7uJDmnJk6gQfov1Cw 2)安装依赖库: 使用如下命令: Shell sudo apt-get install pkg-config zip g++ zlib1g-dev unzip...