自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT修道者的专栏

算法工程师。兴趣广泛,喜欢尝试不同的东西。

原创 调用mosquitto发布消息

MQTT 是一个轻型协议,使用基于 TCP/IP 协议的发布/订阅消息转发模式,专门用于机器对机器 (M2M) 通信。 MQTT 协议的中心是 MQTT 服务器或代理 (broker) ,支持发布程序和订阅程序进行访问,如下图所示: mosquitto 是一个开源的 MQTT broker 。 ...

2019-05-11 17:44:57 1901 0

原创 opencv+libjpeg-turbo交叉编译

目录libjpeg-turbo简介交叉编译opencv遇到的坑 opencv库中自带了 对JPEG的编解码,其内部实质上是基于第三方库libjpeg进行解码的。但是libjpeg本身的性能并不是很快,特别是在ARM平台下。 libjpeg-turbo简介 libjpeg-turbo是一个使用...

2019-02-28 23:07:24 1762 0

原创 Pytorch转tflite

目标是想把在服务器上用pytorch训练好的模型转换为可以在移动端运行的tflite模型。 最直接的思路是想把pytorch模型转换为tensorflow的模型,然后转换为tflite。但是这个转换目前没有发现比较靠谱的方法。 经过调研发现最新的tflite已经支持直接从keras模型的转换,...

2018-11-16 19:53:05 2632 0

原创 在tensorfow lite中对各op进行单元测试

Tensorflow lite源码中提供了对个op的单元测试源码,但是在官方的tflite Makefile中并没有编译该部分代码。本文主要是记录在tflite中对op进行单独测试的方法,平台为ARM嵌入式。 概要 在tflite的源码中单元测试的源码一般在op名后面添加有test,在目录 t...

2018-10-11 20:31:38 800 0

原创 绑定进程的CPU核以及限制进程的CPU使用率

在测试程序的性能时,需要对进程运行的CPU进行绑定,甚至需要测试进程只使用部分CPU资源时能达到的性能。比如,你可能需要测试某程序在只用一个核的80%CPU资源时的延时。 本文主要总结采用taskset和cpulimit工具来实现目标。 1. 使用taskset绑定进程CPU taskset...

2018-09-27 20:22:20 3836 0

原创 tensorflow batch_normalization的正确使用姿势

BN在如今的CNN结果中已经普遍应用,在tensorflow中可以通过tf.layers.batch_normalization()这个op来使用BN。该op隐藏了对BN的mean var alpha beta参数的显示申明,因此在训练和部署测试中需要特征注意正确使用BN的姿势。 正确使用B...

2018-06-27 22:40:36 12680 13

原创 tensorflow模型转换成tensorflow lite模型

1.把graph和网络模型打包在一个文件中 bazel build tensorflow/python/tools:freeze_graph && \ bazel-bin/tensorflow/python/tools/freeze_graph \ ...

2018-06-14 23:23:33 7405 0

原创 onnx与tensorflow格式的相互转换

onnx是Facebook打造的AI中间件,但是Tensorflow官方不支持onnx,所以只能用onnx自己提供的方式从tensorflow尝试转换 Tensorflow模型转onnx Tensorflow转onnx, onnx官方github上有提供转换的方式,地址为https://g...

2018-05-30 23:32:56 14993 15

原创 在ARM板子上把玩Tensorflow Lite

前几天Google的IO大会上发布的ML Kit,ML Kit为端上部署深度学习模型提供了一套完整的解决方案,本地运行、云端都支持。里面本地部署用到的就是Tensorflow lite。 Tensorflow Lite是在Google去年IO大会上发表的,目前Tensorflow Lite也还在...

2018-05-17 00:36:20 15406 33

原创 Linux下手动安装screen

简单说来就是自己用screen源码编译安装 第一步:下载screen源码并解压 下载地址:http://ftp.gnu.org/gnu/screen/ 第二步:运行配置程序,生成Makefile文件 运行源码目录下的./configure,运行成功会得到如下提示: Now ple...

2018-05-01 10:47:20 6536 5

原创 在iOS上实现YOLO目标检测算法

本文主要介绍YOLOv2在iOS手机端的实现 Paper:https://arxiv.org/abs/1612.08242 Github:https://github.com/pjreddie/darknet Website:https://pjreddie.com/darknet/yolo...

2018-01-01 23:37:30 2513 1

原创 在服务器上配置jupyter notebook

anaconda一般自带安装好了juypter ,如果没有,可以用conda install jupyter命令安装。安装好以后,需要在服务器上配置jupyter以便任何浏览器都能通过IP直接访问服务器上的juypter服务。

2017-12-08 14:55:20 5093 0

原创 在caffe中用python添加confusion matrix层

confusion matrix(混淆矩阵)在分类问题中能比单纯的准确率更全面地反应模型的好坏,本文主要目的是在caffe中用python添加confusion matrix层。

2017-11-27 15:23:50 1375 3

原创 ARM NOEN vfmaq_laneq_f32与vextq_f32指令例子

vfmaq_laneq_f32是乘法运算相关指令,vextq_f32是取数据相关指令。具体功能用文字描述比较麻烦,直接看个列子一下就懂了,所以在这里记录下来。

2017-10-15 23:56:13 2200 0

原创 Image-to-Image Translation with Conditional Adversarial Networks笔记

对论文Image-to-Image Translation with Conditional Adversarial Networks中的方法进行了总结

2017-09-22 23:44:09 1053 0

原创 解决UIImage显示方向和内存方向不一致的问题

iOS中的UIImage中有imageOrientation属性,该属性决定了UIImage在手机上显示时的方向。如果imageOrientation的值为left或right,那么显示出来的图像和实际图像在内存中的存储就存在90度的旋转问题。比如显示出来的图片是720*1280的,实际上该图在内...

2017-09-08 08:03:55 1163 0

原创 在ncnn上把玩mobileNet

ncnn是腾讯优图最近开源的适合移动端的深度学习框架。mobileNet是谷歌在2017年4月份发表的论文MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications中提出的网络。

2017-09-07 07:20:27 14594 2

原创 在Metal上实现对多通道feature map的双线性插值

kernel void resize_interpolation_array( texture2d_array<half, access::sample> inTexture [[texture(0)]], ...

2017-08-13 10:28:07 795 0

原创 用swift+Metal shader文件编译framework动态库

若想用swift语言生成库则只能生成动态库,若是纯swift代码脚本,问题不大,按一般流程就行。 若是编译的库中有shader文件则需要先编译出Metal库。具体方法可采用如下的方式。

2017-07-25 12:21:45 1271 0

原创 人脸对齐

人脸相关应用的重要预处理,very useful!

2017-07-07 07:30:44 647 0

原创 把txt中的中文字从一行转换到一列存到新文件中

把txt中的中文字从一行转换到一列进行存储 首先从文件中读入文字,再一个一个的写到新的文件中。

2017-07-07 07:05:44 958 0

原创 在opencv2.4.x版本中处理图像EXIF orientation不统一的问题

在用opencv的imread函数读取手机拍的照片时会出现翻转的情况,即用opencv中的imshow看到的图像和手机上看到的图像的宽高是相反的。(当然,读取电脑上的照片时也可能会出现这个问题) 出现这个问题的原因是opencv中的imread函数读取图像时没有对图像exif中的orientat...

2017-06-30 00:16:04 2410 0

原创 C++读取存储float文件(txt文件和二进制文件)

读文件采用ifstream,写文件用ofstream,该两个类包含在#include <fstream>中。读取和写入存有float数据的txt文件 long int number=0; ifstream ifile; //说明输入文件流对象ifile o...

2017-06-07 23:04:50 7836 0

原创 在Android中通过ndk读取本地文件

准备作为测试,首先要先把文件从PC上传到Android手机中,可通过命令实现。通过以下命令就可以把pc上test目录下的所有文件传到Android手机中的/sdcard/testfolder/目录下。adb shell mkdir -p /sdcard/testfolder/ adb push p...

2017-03-02 21:30:39 3780 1

原创 在iOS中读取本地文件

iOS由于沙盒机制不能随便读取文件,但在某些应用中读取文件的形式获得,此时可以通过ios的bundle机制实现快速测试。三步搞定。1. 新建一个bundle在项目中的任意group右键选择new file->Settings Bundle,随后输入一个名字,这样Bundle就建好了。 ...

2017-02-28 22:38:18 5255 0

原创 双线性插值算法ARM NEON优化

C语言版本双线性插值算法inline double bilinear_interp(double x, double y, double v11, double v12, double v21, double v22) { retu...

2016-12-23 17:34:53 3456 4

原创 Mac上编译opencv源码

opencv源码是一个神奇的世界,如果想研究opencv的源码,就不能用编译好的库。因为那样调试看不到函数的实现。在mac上编译opencv源码先对比较简单。 下载opencv的源码,可以从github或者sourceforge下载。下载好后解压到opencv2.4.13文件夹。 进入解压之后的O...

2016-12-02 12:02:34 6140 0

原创 Mac平台下QT+Opencv 环境搭建

下载安装Xcode 可以直接从App Store下载。 下载并安装QT creator 地址:http://download.qt.io/official_releases/qtcreator/ 下载并安装QT开发包 地址http://download.qt.io/official_rele...

2016-10-31 20:45:31 5553 0

原创 Android Java与JNI层互传数据总结

在开发中常常会遇到从Java层传递数据到JNI层,然后在JNI拿到数据后就可以用C语言进行操作了,操作完数据后通常还需要把处理后的数据传回Java层。下面分别进行小结。从Java层传到JNI层 使用GetByteArrayRegion的方式。 该方法的本质是将Java端数组数据拷贝到本地的数组中...

2016-10-25 09:45:30 3972 0

原创 在Android和iOS中读取静态图像

在iOS中读取静态图像在使用swift语言编写iOS代码时,若想通过SWIFT直接读取指定的图像,可通过下列方法实现。 1. 把需要读取的图像添加到Xcode项目中 2. 在需要读图像的地方使用如下代码读image let Img1 = UIImage(named:"i...

2016-10-06 13:47:33 451 0

原创 SWIFT和Android中计算时间差

在SWIFT中如想获计算某部分代码片的运行时间,可通过如下代码实现。let date1:NSDate = NSDate() /**codes you want to test***/ let date2:NSDate = NSDate() let interval:NSTimeInterval =...

2016-09-26 09:41:33 1148 0

原创 Swift 2中的指针与Objective-C指针相互传递

在SWIFT编程中如果想调用C语言编写的函数则需要通过桥接文件来实现。在桥接文件中通常使用的OC代码,在OC中就可以直接操作调用C的函数。1. 在Swift中读C指针下面桥接文件中的方法会返回一个int指针,即C术语里面的(int *):@interface PointerBridge : NSO...

2016-09-26 08:46:20 1016 0

原创 Android NDK编译带ARM neon优化的库

使用NEON对代码进行优化时需要#include <arm_neon.h>。NEON库只支持armeabi-v7a和x86 ABIs. 所以在使用ndk-build编译带有NEON优化代码的库时需要对Android.mk进行编译平台的指定。具体方式如下。# define a stati...

2016-09-18 18:23:50 3486 0

原创 C语言pthread_create传递带多个参数的函数& pthread_join

pthread_create是类Unix操作系统(Unix、Linux、Mac OS X等)的创建线程的函数,头文件在pthread.h中。函数的声明如下:int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,(void*)(*...

2016-09-03 10:53:39 15247 1

原创 iOS开发问题总结

布局设计中的Tips 在Main.storyboard中对控件进行相对布局时尽量使用屏幕边界作为相对布局,避免使用控件与控件直接的相对布局。 控件重叠显示时的顺序可以在UI设计版面右边的ViewController Scene中通过移动控件的顺序来决定上下层的顺序

2016-08-15 20:27:29 304 0

原创 Android opencv tutorial1相关问题

最近尝试把Opencv配置在安卓上,具体的配置网上有很多。配置成功后直接用android opencv sdk中的sample作了测试,我用的是里面的tutorial1。适当修改tutorial1使得demo能从前置摄像头提取视频帧。但是修改后发现从前置摄像头得到的图像的方向不对,此时可以通过op...

2016-08-10 16:22:50 905 0

原创 Android NDK开发生成.so/.a库

在终端中cd到项目src目录下的main目录,然后输入如下命令 javah -d jni -classpath ../../build/intermediates/classes/debug 包名+文件名for example: javah -d jni -classpath ../../...

2016-08-09 14:31:59 8979 0

原创 Android 6 camera.open()异常解决方法

最近需要在Android平台写一个处理视频帧的Demo,于是在网上下了很多的Demo代码,奇怪的是下载的很多通过Camera提取视频帧的程序在Android Studio中都能通过编译。但是奇怪的是每次一放到真机上一测试程序就闪退崩掉了。 我的开放环境为Android Studio 2.1,编译...

2016-08-08 08:50:28 17373 7

原创 YUV与RGB图像的互转

RGB图像转YUV420通道图像代码 void rgb2YUV(cv::Mat srcImg) { cv::imshow("srcImg", srcImg); int w = srcImg.cols; int h = srcImg.rows;...

2016-07-15 19:35:27 3958 0

原创 MAC平台在Xcode环境中配置使用OpenCV

最近需要在Mac平台上使用opencv,笔者最开始想的是通过opencv的官网来安装,但是百度后发现根本不需要自己去官网下。现在把我找到的简单方法总结如下: 安装Homebrew。 方法:打开Mac的终端输入如下命令 ruby -e “$(curl -fsSL https://raw.gi...

2016-07-14 13:57:44 6310 0

提示
确定要删除当前文章?
取消 删除