自定义博客皮肤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修道者的专栏

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

  • 博客(101)
  • 资源 (20)
  • 收藏
  • 关注

原创 调用mosquitto发布消息

MQTT 是一个轻型协议,使用基于 TCP/IP 协议的发布/订阅消息转发模式,专门用于机器对机器 (M2M) 通信。 MQTT 协议的中心是 MQTT 服务器或代理 (broker) ,支持发布程序和订阅程序进行访问,如下图所示:mosquitto 是一个开源的 MQTT broker 。准备工作sudo apt-get install mosquitto #安装后才能运行MQTT b...

2019-05-11 17:44:57 8225

原创 opencv+libjpeg-turbo交叉编译

目录libjpeg-turbo简介交叉编译opencv遇到的坑opencv库中自带了 对JPEG的编解码,其内部实质上是基于第三方库libjpeg进行解码的。但是libjpeg本身的性能并不是很快,特别是在ARM平台下。libjpeg-turbo简介libjpeg-turbo是一个使用SIMD技术(MMX、SSE2、AVX2、NEON)进行加速的JPEG编码解码器,能够在基于x86、x86_...

2019-02-28 23:07:24 5890 1

原创 Pytorch转tflite

目标是想把在服务器上用pytorch训练好的模型转换为可以在移动端运行的tflite模型。最直接的思路是想把pytorch模型转换为tensorflow的模型,然后转换为tflite。但是这个转换目前没有发现比较靠谱的方法。经过调研发现最新的tflite已经支持直接从keras模型的转换,所以可以采用keras作为中间转换的桥梁,这样就能充分利用keras高层API的便利性。转换的基本思想就...

2018-11-16 19:53:05 6714 2

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

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

2018-10-11 20:31:38 1861 1

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

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

2018-09-27 20:22:20 7463

原创 tensorflow batch_normalization的正确使用姿势

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

2018-06-27 22:40:36 19952 14

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

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

2018-06-14 23:23:33 10647

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

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

2018-05-30 23:32:56 27833 18

原创 在ARM板子上把玩Tensorflow Lite

前几天Google的IO大会上发布的ML Kit,ML Kit为端上部署深度学习模型提供了一套完整的解决方案,本地运行、云端都支持。里面本地部署用到的就是Tensorflow lite。Tensorflow Lite是在Google去年IO大会上发表的,目前Tensorflow Lite也还在不断的完善迭代中。Tensorflow Lite在Android和iOS上部署官网有比较详细的介绍...

2018-05-17 00:36:20 24688 40

原创 Linux下手动安装screen

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

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

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

本文主要介绍YOLOv2在iOS手机端的实现 Paper:https://arxiv.org/abs/1612.08242 Github:https://github.com/pjreddie/darknet Website:https://pjreddie.com/darknet/yoloYOLOv2简介yolov2的输入为416x416,然后通过一些列的卷积、BN、Pooli...

2018-01-01 23:37:30 3653 2

原创 在服务器上配置jupyter notebook

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

2017-12-08 14:55:20 6677

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

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

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

原创 ARM NOEN vfmaq_laneq_f32与vextq_f32指令例子

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

2017-10-15 23:56:13 4888 3

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

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

2017-09-22 23:44:09 1223

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

iOS中的UIImage中有imageOrientation属性,该属性决定了UIImage在手机上显示时的方向。如果imageOrientation的值为left或right,那么显示出来的图像和实际图像在内存中的存储就存在90度的旋转问题。比如显示出来的图片是720*1280的,实际上该图在内存中是按1280*720存储的。 在stackoverflow上折腾了一番,找到了下面靠谱的解决办法。

2017-09-08 08:03:55 1903

原创 在ncnn上把玩mobileNet

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

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

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

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

2017-08-13 10:28:07 1118

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

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

2017-07-25 12:21:45 2048

原创 人脸对齐

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

2017-07-07 07:30:44 760

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

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

2017-07-07 07:05:44 1961

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

在用opencv的imread函数读取手机拍的照片时会出现翻转的情况,即用opencv中的imshow看到的图像和手机上看到的图像的宽高是相反的。(当然,读取电脑上的照片时也可能会出现这个问题) 出现这个问题的原因是opencv中的imread函数读取图像时没有对图像exif中的orientation信息进行解析。而通常的看图工具打开图像时都会根据orientation对图像进行相应的翻转以便我们

2017-06-30 00:16:04 3763

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

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

2017-06-07 23:04:50 15360

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

准备作为测试,首先要先把文件从PC上传到Android手机中,可通过命令实现。通过以下命令就可以把pc上test目录下的所有文件传到Android手机中的/sdcard/testfolder/目录下。adb shell mkdir -p /sdcard/testfolder/adb push pc_dir/test/ /sdcard/testfolder/编写NDK接口在NDK中用C读取文件时首先

2017-03-02 21:30:39 6130 3

原创 在iOS中读取本地文件

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

2017-02-28 22:38:18 6770

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

C语言版本双线性插值算法inline double bilinear_interp(double x, double y, double v11, double v12, double v21, double v22) { return (v11 * (1 - y) + v12 * y) * (1 - x) + (v21 * (1 -

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

原创 Mac上编译opencv源码

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

2016-12-02 12:02:34 7710

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

下载安装Xcode 可以直接从App Store下载。下载并安装QT creator 地址:http://download.qt.io/official_releases/qtcreator/下载并安装QT开发包 地址http://download.qt.io/official_releases/qt/配置QT 注意在Qt版本那个地方可以通过QT开发包的的../Qt5.7.0/

2016-10-31 20:45:31 6976

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

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

2016-10-25 09:45:30 6412 1

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

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

2016-10-06 13:47:33 541

原创 SWIFT和Android中计算时间差

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

2016-09-26 09:41:33 1355

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

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

2016-09-26 08:46:20 1397

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

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

2016-09-18 18:23:50 4526

原创 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*)(*start_rtn)(void*),void *arg);//返回值:若成功则返回0,否则返回错误编号

2016-09-03 10:53:39 28176 2

原创 iOS开发问题总结

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

2016-08-15 20:27:29 373

原创 Android opencv tutorial1相关问题

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

2016-08-10 16:22:50 1015

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

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

2016-08-09 14:31:59 10119

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

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

2016-08-08 08:50:28 21845 7

原创 YUV与RGB图像的互转

RGB图像转YUV420通道图像代码void rgb2YUV(cv::Mat srcImg){ cv::imshow("srcImg", srcImg); int w = srcImg.cols; int h = srcImg.rows; int bufLen = w*h*3/2; unsigned char* pYuvBuf = new u...

2016-07-15 19:35:27 5263

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

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

2016-07-14 13:57:44 6954

mnist_model.onnx

This is the mnist onnx model which is converted from pytorch model.

2018-05-30

处理图像的exif中的orientation信息

解决用opencv imread读取图像时方向存在翻转的问题,使用参考http://blog.csdn.net/computerme/article/details/73929406

2017-06-30

CvvImage类

CvvImage类的源代码,包括CvvImage.h和CvvImage.cpp两个文件

2016-03-22

KL1p Demo程序

KL1p求解稀疏表示的Demo程序,里面包括测试的数据。详细的介绍参考博客http://blog.csdn.net/computerme/article/details/50087299

2015-11-29

kl1p-0.4.2-sources

kl1p是一个压缩感知方面的C++库,里面封装了很多压缩感知方法,在稀疏表(SRC)示中主要是借助它来求取l1范数最小化问题。

2015-11-29

Armadillo 库文件 blasd.lib libf2cd.lib lapackd.lib

Armadillo库运行所需的三个库blasd.lib libf2cd.lib lapackd.lib

2015-03-24

armadillo-3.4.0

Armadillo是一个C++开发的线性代数库,可以方便的把用 Matlab 开发的算法移植到 C++。

2015-03-17

虹膜分割 Iris Segmentation C++和opencv实现

虹膜分割的实现代码,用C++和opencv实现的,资源中还包括了测试图片和方法的PPT介绍。关于该资源的介绍也可以参考我的博客文章 http://blog.csdn.net/computerme/article/details/41121711

2014-11-14

使用灰度共生矩阵实现指纹分割 C++

使用灰度共生矩阵来实现的指纹分割,里面包含测试的图片,代码为opencv和C++

2014-10-19

opencv检测人眼并精准定位瞳孔

使用opencv自带的haarcascade_eye_tree_eyeglasses.xml分类器实现检测人眼,并精准地定位了瞳孔的位置。代码很简洁,易于理解。

2014-07-26

PCA代码实现详解

对主成分分析(PCA)的C++代码实现,里面有对PCA实现步骤的详细讲解,并把自己写的PCA代码与Opencv自带的PCA函数的运行结果进行了对比。

2014-06-14

基于MFC的人脸检测程序(使用OpenCV实现)

程序使用OpenCV里面自带的Haar特征分类器实现人脸的检测。 程序是通过MFC建的对话框程序,首先通过CFileDialog载入图片然后再用cvHaarDetectObjects函数进行人脸的探测。而后在图片中把人脸用矩形标记并显示出来。

2013-10-08

学生信息管理实验(C语言)

管理学生基本信息,班级信息,选课信息等。主要操作有增加、修改、删除等。

2012-08-28

C#文件搜索小软件(能实现部分匹配与完全匹配)

用c#写的一个文件搜索小软件,里面用了递归调用的方法。能实现与用户输入的文件名全完匹配和部分匹配的功能!很适合初学者作为参考。文件搜索的结果显示用到了一个listview的控件,里面所涉及到的控件那些也不复杂。

2011-05-03

C#英语词频统计软件

用c#编写的一个英语词频统计小程序,很适合用于c#的学习参考程序。

2011-05-02

用C#写的计算器(与Windows标准计算器几乎完全一样)

用C#写的一个完全模拟的Windows标准计算器,功能与Windows计算器完全一样。在写的过程经过多次测试成功!几乎没有了bug.

2011-04-20

C#网络通信TCP同步通信示例

该文件为一个用C#写的TCP同步通信程序,很适合初学者学习。

2011-03-23

栈的应用 - 迷宫求解

很好的一个迷宫求解程序。此程序用0和1来随机产生一个迷宫,然后用栈的基本操作来实现迷宫的求解。很适合用于数据结构栈应用的课程设计。

2010-05-09

数据结构课程设计(C语言)--通讯录管理系统

一个用标准C语言写的通讯录管理系统,并带有主要函数的说明解释,很适合做数据结构的课程设计。

2010-03-19

入侵检测系统分析与检测

的个人电脑上实现入侵检测系统的搭建,在局域网内实现检测。

2009-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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