自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

上善若水,为而不争

天之苍苍,其正色邪

  • 博客(122)
  • 资源 (3)
  • 收藏
  • 关注

原创 [边缘检测算法] Sobel算子及其PC端优化提速20几倍

文章目录前言一、Sobel算子二、实现与优化1.原始版本2.第一版优化3.第二版优化4.第三版优化5.第四版优化6.第五版优化前言    Sobel是图像处理中非常常见的一种边缘检测算法,本文基于C++和OpenCV对Sobel进行了实现,并对代码进行优化。一、Sobel算子    Sobel算子是图像处理中的一个离散微分算子,经典的Sobel算子包含了一个33的矩阵(OpenCV中的Sobel是包含其它尺寸的,本文

2021-03-05 11:12:41 2987 1

原创 [tensorflow]tensorflow/core/kernels/BUILD:6589:1: no such package ‘@icu//‘:

在编译tensorflow的C++接口的时候,bazel执行的时候报了错误:ERROR: /home/zcx/tensorflow-r1.12/tensorflow/core/kernels/BUILD:6589:1: no such package '@icu//': java.io.IOException: thread interrupted and referenced by '...

2021-01-25 13:38:56 754 1

原创 win10编译protobuf

1、从官方github下载windows的源码:https://hub.fastgit.org/protocolbuffers/protobuf/archive/v3.4.0.zip2、解压得到工程目录3、打开cmake-gui,设置源码路径和cmake生成路径:3.1 点击Configure生成配置,弹出的窗口选自己的配置的VS版本和要编译的版本(x64、win32或者跨平台)3.2、编译好后可能会报错:解决方法:把protobuf_BUILD_TESTS取消勾选,重新点击Config

2020-10-24 10:13:56 994

原创 tensorflow1.x C++接口调用keras-yolo3模型

一、废话    今天花了一个下午时间,把qqwweee/keras-yolo3的模型转到tensorflow的pb,然后通过tensorflow 1.x提供的接口,把模型输出后的后处理加到计算图中,再保存为一个新的pb模型,这样,新的pb模型输出的就是转换后的坐标(x,y,w,h)和置信度与概率.    这样做主要是我想用tensorflow的C++接口来调用pb模型,所以想把这部分后处理写到计算图里,加载运行后得到比较直接

2020-10-20 23:29:05 424

原创 [Pytorch].pth转.pt文件

Pytorch的模型文件一般会保存为.pth文件,但是其C++接口一般读取的是.pt文件,因此,C++在调用Pytorch训练好的模型文件的时候就需要进行一个转换,转换为.pt文件,才能够读取。所以在转换的时候,首先就需要先将模型文件读取进来,然后利用pytorch提供的函数torch.jit.trace进行转换,这个函数的声明为:def trace(func, ...

2020-07-06 10:55:52 18425 11

原创 [tensorflow] Cannot uninstall wrapt

我在安装tensorflow的时候遇到这样的问题:那就查下资料,查到的解决方案是,输入以下指令安装相应的库即可:pip install -U --ignore-installed wrapt enum34 simplejson netaddr...

2020-06-11 08:36:55 342

原创 《Recent Advances in Deep Learning for Object Detection 》笔记

最近看了一篇目标检测的综述,之前对目标检测的认识不是很多,所以简单地记录一下笔记。这篇论文主要讲了目前的目标检测算法的一些设置、检测范式、基准等,包括了传统算法和深度学习算法,主要侧重深度学习算法部分。一、传统方法传统的目标检测算法主要是三个步骤:1、候选框生成(proposal generation):候选框生成,主要是筛选并提取出可能包含目标的区域,通常为矩形框;2、特征向量提...

2020-06-02 13:22:18 1277

原创 win10编译tensorflow C++接口

​原文地址:https://www.bearoom.xyz/2018/08/28/win10-build-tf-cc/首先,我觉得这是一个比较DT的活,因为,tensorflow支持最好的编程语言应该是python(应该说大部分深度学习框架支持的最好的语言都是Python),tensorflow的底层说是C/C++编写的,但是,感觉它对C/C++真的很不友好,有关Python的资料一查一大把,...

2020-05-26 10:09:40 19862 47

原创 基于Keras的mnist手写数字识别

首先,在众多深度学习框架中,我最开始上手的框架(因为那时候先接触的caffe,配置使用都太麻烦了)是Keras,什么叫做搞什么深度学习,我不过是搭积木罢了,这句话真的太适合形容Keras了。Keras是一个高级的深度学习框架,是架设于tensorflow、Theano、CNTK三大深度学习框架之上的,可以设置切换后台为其中之一,不过目前比较多的应该是用tensorflow作为后台,tensorfl...

2020-05-26 09:11:51 1026

原创 C++:log日志

前言  日志一般是记录一些程序运行信息的文件,一般是用于快速定位错误所在,追踪程序运行的过程和进度、采集运行环境等作用。说白了简单粗暴点就是程序挂了,可以看到大概在哪里挂的,挂的原因可能有哪些等作用。  最近在github上找了些C++的日志库,做了些简单的使用记录。一、NanoLog C++ 11  在github上找到的NanoLog有几个版本,不过我只下载了两个星星数量最高的,一个是...

2020-05-05 21:54:49 5910 2

原创 YOLO v4

源权重文件在Google driver上:https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT,有245MB。速度简单测试了下转keras后的速度,输入大小为416*416,GTX1060 要260ms左右,CPU I7-7700要1s左右,这速度不行,可能也跟转了keras的代码有关,darknet的还没跑,困了,...

2020-04-28 00:42:12 2281 11

原创 C++:http消息

前言  最近的一些开发,需要用到http服务,大致是两种,一种是我们算法端起http服务,等到后端发送消息给算法,然后算法去解析消息,得到我们要的图像数据;第二种是,我们算法端处理完图像之后,需要将结果发送给后端,那么如果是后端发送给我们的,其实可以将处理完的结果返回即可;但也有一种情况是,需要我们算法去给后端发消息的。  所以这其中就涉及两种情形:第一种是算法起服务,第二种是算法发送http...

2020-04-25 22:48:00 2542 3

原创 偏要叫[C++] Base64编码

前言  Base64非常常见的用于传输8Bit字节码的编码方式之一,也就是采用64个可打印的自体来编码二进制数据进行传输的方法。在ASCII表中,0~31、127是控制字符32~126属于可打印字符,而Http协议下传输二进制数据,是需要把数据转为字符来传输的,所以实际上能用于传输的就是ASCII表中的32~126这95个字符,base64则是采用了其中的64个来编码。  标准base64中可...

2020-04-24 23:50:44 528

原创 树莓派上几种人脸检测模型对比

前言  人脸检测相对其他计算机视觉技术而言,可以算是比较烂大街的技术,各家都有各家的人脸检测技术,而且开源的很多人脸检测技术都有非常高的精度和速度。接下来就对github上找到的几款人脸检测模型进行对比。  测试图像,大小2048*1150,如下:  我的运行硬件是4G版的树莓派4B,运行的推理平台是腾讯开源的ncnn框架,运行语言是C++。本次测试的模型如下:模型地址...

2020-04-12 23:03:07 2529 3

原创 树莓派安装MNN

前言  MNN是阿里开源的一款用于边缘端设备部署、推理深度学习模型的框架,与腾讯开源的ncnn类似哈。  MNN在[github](https://github.com/alibaba/MNN "github")上有开源,同时官方也有提供[开发接口文档](https://www.yuque.com/mnn "开发接口文档");而且写的比较详细。跟ncnn一样,MNN也是在手机端用的还比较多,...

2020-04-12 09:54:46 1866

原创 树莓派安装ncnn

前言  ncnn是腾讯开源的用于手机端部署深度学习模型的框架,目前也支持在树莓派上使用。ncnn提供C++的借口,支持caffe等框架的模型进行转换。  目前ncnn已经开源,代码放[github](https://github.com/Tencent/ncnn "github")上,但是原版的代码对tensorflow支持不是很好,因此有大神搞了个支持tensorflow的ncnn,也在g...

2020-04-12 00:22:24 1710

原创 白平衡之完美反射算法

一、算法背景  白平衡是图像处理比较常见的一个概念,在采集图像的过程中,相机的感光元件或者镜头会对原始色彩造成影响,而白平衡技术通常可以用来校正这种光线和镜头对颜色影响。所以现在先记录一个白平衡算法,叫做完美反射算法,这个算法原理也不是有多复杂,但是效果还是挺好的,而且基本也不需要调节参数就有效果了。完美反射算法很多博客都有介绍,而且实际上也还是就几个公式,所以我也是简单记录重要的公式和实现代码...

2020-04-05 15:48:36 4492 4

原创 白平衡之灰度世界算法

一、算法背景  白平衡是图像处理比较常见的一个概念,在采集图像的过程中,相机的感光元件或者镜头会对原始色彩造成影响,而白平衡技术通常可以用来校正这种光线和镜头对颜色影响。所以现在先记录一个白平衡算法,叫做灰度世界算法,这个算法很多博客都有介绍,而且实际上就几个公式,所以我也是简单记录重要的公式和实现代码而已。二、算法原理  灰度世界算法(Gray World)假设认为,一幅彩色图像中,RGB...

2020-04-05 00:43:19 2924

原创 暗通道去雾法

一、算法背景  暗通道先验去雾算法是大神何恺明2009年发表在CVPR上的一篇论文,还获得了当年的CVPR最佳论文。  根据论文的介绍,暗通道去雾算法是基于一个关键的观察:在没有雾霾的室外图像中,大多数局部区域包含一些像素,这些像素在至少一个颜色通道中具有非常低的强度(原文:It is based on a key observation - most local patches in haz...

2020-03-29 17:39:31 11929 3

原创 树莓派3B+安装wordpress

前言  我的树莓派用的是3B+,内存卡64G,装了树莓派官方提供的系统。最近想重新写自己的技术博客,做一些记录和笔记,因此重新折腾起wordpress来,这里只是要做内网访问即可,只是自己在家写博客用,所以外网就访问不了,但是我要的就是自己在家记录些技术就可以了哈。系统什么的就默认是装好的,接下来按照步骤一步一步来安装。一、安装 Apache2、MySQL、PHP  因为不懂前端后端开发,所...

2020-03-22 13:59:55 1227 1

原创 Python调用OpenCV读写视频

最近因为经常对视频进行操作,所以记录下Python用opencv来读写视频的方法。一、opencv读视频python调用opencv来读视频比较简单,可以直接调用cv2.VideoCapture来读取视频和摄像头,基本上,常见的avi和mp4都能够正常读取。cv2.VideoCapture是通过传入数字来读取对应的摄像头,或者通过传入一个路径字符串来读取对应的视频文件。最简单直接的读取...

2020-02-09 14:35:14 3613 2

原创 [tensorflow] FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated

在导入tensorflow的时候报了这样的提示:/usr/local/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; i...

2020-01-28 10:41:04 640 1

原创 VS Qt国际化操作

开发一个软件的时候有时候会遇到需要进行国际化的操作,也就是说一些显示可能因为需求而要改为另一种语言,像一些常见的软件是会提供一些语言包,然后再软件中加载就可以更换显示语言了,今天这一篇讲的就是这个,而且暂时针对VS下开发Qt而言,如果在Qt Creator上开发的话,可能会有不同,但是大致还是一样的。在VS上开发Qt的项目的话是,Qt的VS插件是很有用的,现在我们的国际化操作也是要依赖这一个小...

2020-01-11 09:48:57 614 4

原创 OpenCV--基于直线检测的文本图像倾斜校正

图像倾斜矫正的方式有很多种,今天简单介绍一种基于直线检查的倾斜校正。这种方法暂时在如下图的文本文件上测试过,不一定能针对所有:首先,因为这种图像基本是比较常见的白底黑字,所以首先对这幅图做一个灰度化,灰度化之后做一个二值化,得到二值图像:二值化之后,将X轴方向的的像素点连起来,这里我采用的是形态学的膨胀,因为我做二值化的时候采用了取反的操作,这里可以考虑不取反,但是要用腐蚀来做...

2019-12-02 11:26:07 4205 2

原创 Python调用OpenCV形态学

图像形态学处理包括腐蚀、膨胀、开运算、闭运算、形态学梯度、礼帽(顶帽)、黑帽等运算。1、腐蚀腐蚀可以理解为前景像素会被腐蚀为背景像素,以白色255为前景,得到的效果就是白色变小、变细,黑色变大变粗:importcv2importnumpyasnpimg=cv2.imread('lena.jpg',0)kernel=np.ones((5,5),np.uint...

2019-11-21 14:21:43 219

原创 Keras设置后端数据维度顺序

Keras是比较高级的深度学习框架,其对几个比较常见的主流深度学习框架的封装而来,也就是按照Keras的说法就是其后端是以Tensorflow、Theano和CNTK为基础封装而来。CNTK我没做过多了解,tensorflow的tensor的维度顺序和Theano的维度顺序是不一样的,所以在使用Keras的时候要格外注意这一点,如果后端不同的话,设置的数据维度顺序也是要不一样的。tensorf...

2019-11-17 10:05:00 1093

原创 Python调用OpenCV代码优化

OpenCV提供的API的代码大部分是经过优化的,很多都是经过SSE或者AVX等技术优化了函数,并且是默认打开优化的。其实,我们也可以查询OpenCV是否进行了函数优化,查询的函数为:cv2.useOptimized()如果打开了优化的话是返回True,反之返回False。我们也设置关闭或者开启优化,设置的函数为:cv2.setUseOptimized(False)cv2...

2019-11-13 11:16:34 496

原创 Python调用OpenCV滤波

这一篇记录几种OpenCV提供的滤波函数,包括2D卷积、平均滤波、高斯滤波、中值滤波和双边滤波。1、2D卷积2D卷积使用的是OpenCV提供的filter2D()函数,该函数需要传入一个卷积核,这个卷积核可以通过numpy来构造:importnumpyasnpimportcv2ascvsrc=cv.imread("D:/lena.bmp")kernel=n...

2019-11-11 08:25:52 436

原创 Python调用OpenCV测试程序运行时间

OpenCV有提供测代码运行时间的函数,类似C/C++的。估计是一样的吧,看结果importnumpyasnpimportcv2ascvsrc=cv.imread("D:/lena.bmp")src=cv.resize(src,(1024,1024))e1=cv.getTickCount()img1=cv.medianBl...

2019-11-10 09:40:06 517

原创 Python调用OpenCV像素操作

Python调用OpenCV进行操作的时候基本上感觉就是对numpy进行操作,跟numpy是挺相关的。1、像素操作OpenCV获取图像(x,y)处的像素值:px=img[x,y]当图像是三通道的时候返回的是BGR三通道的值,如果是灰度图的话就返回一个亮度值同样的如果要对图像(x,y)处赋值的话,也通过这种方式来实现:#三通道img[x,y]=[255,255,255]...

2019-11-10 09:36:00 1054

原创 Python调用OpenCV几何变换

这一篇就记录三个:图像缩放、平移和镜像。1、图像缩放图像缩放用到的函数是cv2.resize()函数,函数原型如下:resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)OpenCV提供了几种缩放方式:cv2.INTER_AREA、cv2.INTER_CUBIC、cv2.INTER_LI...

2019-11-05 14:14:07 226

原创 Tensorflow加载多幅图像进一个tensor

这里加载多幅图像进一个tensor,我用的还是opencv读取图像的做法,然后这里要介绍Tensor的一个函数Tensor Slice(int64 dim0_start, int64 dim0_limit) const;可以看到它返回的还是一个tensor,参数是一个tensor的切片的起止下标,而且是一个左闭右开的区间,我就是利用这个函数将加载进来的多幅图像塞进去的,并且对获取到的切片...

2019-11-03 22:35:40 728

原创 Cmake构建OpenCV测试例子

适用Cmake的CMakeLists.txt来编译一个OpenCV的测试例子。CMakeLists.txt的写法为:project( main )#添加头文件路径include_directories(/usr/local/opencv347/include /usr/local/opencv347/include/opencv /usr/local/opencv347/inclu...

2019-11-03 21:43:53 591

原创 Linux利用本地http下载解决一些需要联网下载的问题

主要是在Linux下编译一些开发环境的时候会需要联网下载一些依赖库之类的,但是有时候因为网速、QIANG的存在,经常下载不了,如果该库的配置文件里有下载的url之类的,那可以利用这个方法来解决。首先是输入一下命令:sudo apt-get install httpd然后会提示有问题如下:这个时候再根据上面的提示来下载安装对应的配置:sudo apt-get instal...

2019-11-03 20:10:41 604

原创 Python调用OpenCV算术操作

Python调用OpenCV的很多操作都是类似numpy的操作的,这篇内容包括加法操作、图像混合、按位运算。1、加法图像的加法可以用cv2.add()来实现,如果相加后的像素值超过255,则取255,也可以用numpy的+操作,但是+操作的话与add函数不同的地方在于numpy的加法是取模操作,也就是说如果相加之后大于255,那么就会对256取模:importnumpyasnp...

2019-11-02 13:55:06 155

原创 Python调用OpenCV阈值化

这一篇主要有两点:普通阈值化和自适应阈值化。1、普通阈值化普通阈值化用到的函数是cv2.threshold,其函数原型为:threshold(src,thresh,maxval,type,dst=None)其中,type的取值有以下几种cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH...

2019-10-30 13:24:54 557 1

原创 Python调用OpenCV颜色空间

Python调用OpenCV的颜色空间转换函数是cv2.cvtColor(),OpenCV提供了很多中颜色空间转换,这里可以借助一个函数来获取所有的转换标识:flags=[iforiindir(cv2)ifi.startswith('COLOR_')]这个可以得到如下的标识符:['COLOR_BAYER_BG2BGR','COLOR_BAYER_BG2BGRA','...

2019-10-29 08:02:28 581

原创 tensorflow Cpp获取网络每一层的名字

在之前的博客中提到了使用tensorflow的C++接口调用已经训练好的模型pb文件,这一篇简单说下获取图模型每一层的名称,虽然不一定有用。前面就知道在tensorflow的C++接口中,用GraphDef来定义一个图模型的类,然后通过ReadBinaryProto()函数来从pb文件中加载图模型结构,这个时候,模型的每一层在GraphDef中就是一个结点(node),所以有多少层(结点)可以...

2019-10-24 11:29:57 390

原创 Tensorflow Cpp API调用训练好的模型

之前的笔记有一篇完成了对tensorflow的编译,然后简单写了个测试程度,所以,应该是可以用了的,然后上篇简单写了个基于Keras的手写数字识别的的模型需要你连了一下,那么现在就试试用tensorflow的 C++ API调用训练好的模型测试下。这里推荐一个GitHub上找到的项目,用的C++调用tensorflow API的。首先,前面把模型保存为了.h5文件,但是,很遗憾,我查到的资料都...

2019-10-24 11:27:35 1438 1

原创 Python调用OpenCV读显写

OpenCV提供了python的接口,而且很重要的一点是python下的很多接口名与C++的接口名是一样的,这一篇先记录python调用OpenCV去读取图像、显示图像和保存图像。1、OpenCV读取图像cv2.imread与C++下的接口一样,Python下的读图的接口也还是imread():img=cv2.imread("D:\images\lena.jpg",flags=...

2019-10-22 15:06:13 176

tensorflow180 C++ API CPU

这是自己编译的tensorflow C++接口,CPU版本,tensorflow版本是1.8,适用VS2015开发,这东西我不确定在别的电脑上能用,我只在我自己的两台电脑上用过,所以不要浪费大家积分。

2019-02-13

精通Matlab与C/C++混合程序设计 第2版

精通Matlab与C/C++混合程序设计 第2版, 扫描版本,比较清晰

2018-05-04

PADS9.5破解

PADS9.5的破解软件 打开命令提示符口(大家可以将Mentorkg的文件夹下文件复制到PADS9.5的安装目录下,直接运行MentorKG.exe试验一下) mentorkg -patch X:\***\MentorGraphics\9.5PADS(X:\***为pads9.5的安装路径) 等待……会产生LICENSE.TXT,请一定记得保存!!!将文件另存为LICENSE.TXT(网上也有人另存为LICENSE.DAT,好像也没有啥问题),文件最好放在PADS9.5的安装目录下。 3、添加环境变量->系统变量,变量名:MGLS_LICENSE_FILE,变量值:LICENSE.TXT的位置,如: MGLS_LICENSE_FILE = C:\MentorGraphics\LICENSE.TXT。

2014-08-15

空空如也

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

TA关注的人

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