自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 自绘MFC List Control列表控件时无法改变表头CHeaderCtrl高度问题的解决方法

最近在Win7 64位系统下用VS2013编写公司的图像引擎程序时需要使用到list control控件,发现MFC自带的list control视觉效果较差,如下所示:于是决定自绘。从百度搜到相关自绘代码,下载到本地修改测试后发现,表头CHeaderCtrl控件在程序启动时是按默认高度呈现的,只有在鼠标滚动列表后,才会变成OnLayout()函数中设定的高度。经检查,发现OnLayo

2018-01-30 21:34:38 2905 1

翻译 Speeded-Up Robust Feature---SURF算法原论文全文翻译(1)

(为确保整篇译文的阅读流畅性和连续性,本文主要采用意译,一些和SURF算法关系不大的句子和单词可能不会翻译出来。为帮助理解,可能会增加注释和C++实现代码。)(原论文下载链接:https://pan.baidu.com/s/1c2auCFm)原作者信息:摘要本文介绍了一种全新的尺度不变、旋转不变的特征点检测和描述算法,英文名为Speed-Up Robust Feat

2017-12-08 11:53:28 4198

原创 TensorFlow模型op的保存和加载(含演示代码)

上一篇博文《TensorFlow模型参数的保存和加载》介绍了如何保存和加载TensorFlow模型训练参数,保存对象主要是Tensor/Variables。这一节我们介绍如何保存和复用op。和Tensor一样,保存op需要在训练时为op指定名字,如下所示:softmax = tf.nn.softmax(tf.matmul(x, W) + b,name="op_softmax")在识别阶

2017-11-25 20:37:18 4223

原创 TensorFlow模型参数的保存和加载(含演示代码)

当我们通过TensorFlow构建了一个训练模型,譬如人脸识别或场景分类网络,并且找到合适的数据集,经过较长时间的训练后,识别率令人满意,这时候我们希望把训练结果保存下来,下次使用时可以直接调用,而不需要重新训练。这就涉及到一个如何保存和加载TensorFlow训练参数的问题。为方便使用者保存训练结果,TensorFlow提供了tf.train.Saver模块用于保存当前会话中所有的变量值(V

2017-11-22 08:51:15 2515

原创 TensorFlow车牌识别完整版(含车牌数据集)

在之前发布的一篇博文《MNIST数据集实现车牌识别--初步演示版》中,我们演示了如何使用TensorFlow进行车牌识别,但是,当时采用的数据集是MNIST数字手写体,只能分类0-9共10个数字,无法分类省份简称和字母,局限性较大,无实际意义。经过图像分割处理,博主收集了相关省份简称和26个字母,结合前述博文中贴出的python+TensorFlow代码,实现了完整的车牌识别功能。本着分享精神

2017-11-18 21:00:53 112933 397

原创 深度学习训练图片收集器——C++截图程序的实现3(主对话框响应键鼠消息进行截图)

在上一节《深度学习训练图片收集器——C++截图程序的实现2(键鼠钩子篇)》,我们实现了键鼠截图消息的传递。在本节中,我们将实现主程序的截图操作。现在的设想是,当主程序收到截图请求后,显示一个铺满整个屏幕的界面,把截图时的桌面图像粘贴到这个全屏界面上。当用户在全屏界面上拖拽鼠标时,通过调用OpenCV函数,显示一个红色边框的截图矩形。当用户在这个矩形上双击鼠标左键时,就进行保存截图的操作,并退出

2017-10-30 16:59:45 1655

原创 深度学习训练图片收集器——C++截图程序的实现2(键鼠钩子篇)

在上一节《深度学习训练图片收集器——C++截图程序的实现1(需求分析篇)》中,我们分析了设计一个独立的截图程序的必要性。在本节中,我们将给出VisualStudio C++的键鼠钩子设置代码,以使程序能够监听用户按下Alt+A组合键的事件,以及鼠标拖拽截图矩形的事件。本程序的运行需要搭配DebugView工具以查看日志输出。DebugView是一个轻量级的日志查看工具,免安装,使用方便,可

2017-10-25 17:46:13 1473

原创 深度学习训练图片收集器——C++截图程序的实现1(需求分析篇)

当一个分类模型(例如车牌或人脸分类器)被设计出来后,设计者需要大量的数据对模型进行训练和验证,评估模型的好坏,不断地微调参数,以求达到最好的识别效果。在这一环节中,大量的训练数据是必不可少的。在学习过程中,我们可以通过百度和谷歌搜索到一些现成的数据集。但是,在实际项目中,很多情况下,难以直接获得现有的数据集,需要自己去独立获取和标注。另外,别人的同类数据集也不一定适合你的算法和模型。

2017-10-25 15:31:18 1464

原创 基于MNIST数据集实现车牌识别--初步演示版

在前几天写的一篇博文《如何从TensorFlow的mnist数据集导出手写体数字图片》中,我们介绍了如何通过TensorFlow将mnist手写体数字集导出到本地保存为bmp文件。车牌识别在当今社会中广泛存在,其应用场景包括各类交通监控和停车场出入口收费系统,在自动驾驶中也得到一定应用,其原理也不难理解,故很适合作为图像处理+机器学习的入门案例。现在我们不妨酝酿一个大胆的想法:在Tenso

2017-09-24 18:28:36 25554 94

原创 如何用TensorFlow训练和识别/分类自定义图片

很多正在入门或刚入门TensorFlow机器学习的同学希望能够通过自己指定图片源对模型进行训练,然后识别和分类自己指定的图片。但是,在TensorFlow官方入门教程中,并无明确给出如何把自定义数据输入训练模型的方法。现在,我们就参考官方入门课程《Deep MNIST for Experts》一节的内容(传送门:https://www.tensorflow.org/get_started/mnis

2017-09-24 12:06:49 39688 70

原创 预算一万以内的机器学习台式机/主机配置推荐

随着开学季的到来,以及两大CPU厂商今年轮番推出性能吊炸天的新品CPU,一波装机热潮正在袭来。对于喜欢机器学习的同学,拥有一台高性能的台式机,在进行网络训练的同时,还能流畅运行其它程序,学习工作娱乐三不误,无疑是一个迫切的需求。下面我们就介绍三套能够满足这个需求的配置。1.预算5000左右屌丝套装:cpu+主板: I5 7500 或 锐龙1600套装        1800元显

2017-09-20 22:18:42 22378 4

原创 如何从TensorFlow的mnist数据集导出手写体数字图片

在TensorFlow的官方入门课程中,多次用到mnist数据集。mnist数据集是一个数字手写体图片库,但它的存储格式并非常见的图片格式,所有的图片都集中保存在四个扩展名为idx3-ubyte的二进制文件。如果我们想要知道大名鼎鼎的mnist手写体数字都长什么样子,就需要从mnist数据集中导出手写体数字图片。了解这些手写体的总体形状,也有助于加深我们对TensorFlow入门课程的理解

2017-09-19 11:03:09 11988 20

原创 Windows C++程序调用包含TensorFlow代码的Python脚本出错问题的解决办法

在上一篇博文《如何实现Visual Studio C++调用TensorFlow代码》的末尾,我们提到,运行程序时,PyImport_ImportModule("TensorflowTest")可能会出错。出错信息如下:可以看到,出错的原因是因为触发了threading.py的“assert tlock.locked()”。如果在命令行中执行pythonTensorflowTe

2017-09-11 17:11:56 6432 39

原创 如何实现Visual Studio C++调用TensorFlow代码

对机器学习感兴趣的VS老司机们,在Windows上搭建好TensorFlow开发环境后,应该会迫不及待地想要编写一个C++程序调用TensorFlow代码。只要能调用成功,你就可以将机器学习融入到你的C++程序,给你的程序装上人工智能的翅膀!想想都很兴奋!(Win搭建TensorFlow环境的操作步骤可参考我的另一篇博文:http://blog.csdn.net/shadown1ght/art

2017-09-11 15:45:05 16470 19

原创 在Windows 7/10系统下如何安装TensorFlow GPU版

目前,网上很多人不建议在Win系统下安装TensorFlow,因为支持不好。大部分用户都是将TensorFlow安装在Linux系统。但是,对于习惯在Win下进行软件开发的用户(特别是使用Visual Studio的用户),在win7和win10下搭建TensorFlow开发环境是一个迫切的需求。我也一直想要实现Windows系统下调用TensorFlow代码,以避免需要安装Win/Linux双系统的麻烦。经过各种尝试,我终于在win7和win10两个系统下成功搭建TensorFlow开发环境,可以正常

2017-09-11 12:19:02 5000

翻译 OpenCV图像的加载和显示

通过本节内容,读者将学习到以下操作:1.使用imread加载图像;2.使用namedWindow创建OpenCV命名窗口;3.使用imshow在第2步创建的窗口中显示图像。加载和显示图像的示例代码:

2017-09-01 10:48:41 900

原创 梯度下降法推导总结

在传统人工神经网络ANN的训练过程中,每次迭代的目的就是不断地调整权值w1,w2,w3,...,wn,使训练样本经过神经网络的实际输出值与目标输出尽可能地接近。实际输出和目标输出之间的误差度量通常采用如下平方误差准则:(注:word的向量表达式占多了一个空格的空间,如对排版不满,请多多包涵)其中,D是训练样本集合(dataset),s是训练样本,Ts是s的目标输出(即s的类

2017-08-31 14:41:25 1525

原创 Binder客户端和驱动端通信流程实例分析----以acquireWakeLock()函数为例 (二)

在上一篇文章《Binder客户端和驱动端通信流程实例分析----以acquireWakeLock()函数为例(一)》中,我们介绍了亮屏锁WakeLock类的acquire()函数如何将Binder请求从app上层一步步向下传递到frameworknative层的IPCThreadState类的transact()函数。IPCThreadState类的transact()函数主要做的事情如下:

2017-08-28 20:06:12 778

原创 C++实现一维快速傅里叶变换(FFT)

当一维信号长度达到几十万个信号时,当前主流4G主频CPU完成一次傅里叶变换需要约几十到几百秒的时间,这样的效率显然是让人无法接受的。为了解决傅里叶变换的计算效率问题,行业专家们提出了蝶形算法,极大地提升了傅里叶变换的运算效率。在蝶形算法中,较为流行的是基于时间抽取的基-2快速傅里叶变换算法(以下简称为基-2FFT算法)。

2017-08-28 07:51:01 28523 13

原创 C++实现二维离散傅里叶变换

在上一篇文章《C++实现一维离散傅里叶变换》中,我们介绍了一维信号傅立叶变换的公式和C++实现,并阐述了频域幅值的意义。一维傅立叶变换只适用于一维信号,例如音频数据、心脑电图等。在图像处理中,图像信号具有高度和宽度两个属性,属于二维空间信号。将图像信号从空间域转换到频域时,需使用二维离散傅立叶变换。因此,需要将傅立叶变换从一维推广至二维。二维连续傅立叶变换公式如下:

2017-08-26 19:25:05 7364 9

原创 C++实现一维离散傅里叶变换

本文介绍如何用C++实现一维离散傅里叶变换(Discrete Fourier Transform)。1. 一维傅里叶变换公式简介如果读者对傅里叶变换的认识处于一知半解的程度,那么建议先阅读相关文章,例如网络上广泛流传的《如果看了此文你还不懂傅里叶变换,那就过来掐死我吧》,以加深理解。一维连续傅里叶变换的公式表达如下:经过离散化后,上述公式变为:其中M为x的个

2017-08-22 22:46:46 9590 2

原创 Binder客户端和驱动端通信流程实例分析----以acquireWakeLock()函数为例 (一)

acquire()函数实际上会构造一个Binder请求,向下传递给Binder驱动设备,Binder驱动设备收到这个请求后,会根据这个请求所附带的Binder引用信息,找到对应的Binder服务端,将这个请求添加到Binder服务端的工作任务列表,此时客户端线程进入等待状态。在本例中,这个服务端就是PowerManagerService。

2017-08-21 09:36:16 1574

MNIST数据集中较为工整的数字图片

博文中为识别车牌字符而专门从MNIST数据集中挑选的较为工整的数字图片。

2017-09-24

空空如也

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

TA关注的人

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