自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阳光玻璃杯

记录学习的点点滴滴

原创 YbFace:完全开源的人脸检测算法

最近看了些yolov3和ssd的水文,感觉有些收获,所以基于自己的理解搭建了个人脸检测的模型,在winderface数据集上进行尝试性训练.有一点效果,但还有很大的训练和改进空间.这里把工程share出来,希望有相同爱好的可以一起优化,训练出一个state of art的人脸检测模型. 源码地址...

2020-05-10 15:41:23 176 0

原创 基于pytorch的无需分割字符的车牌识别

传统车牌识别 传统的车牌识别需要先检测出车牌,检测出车牌后通过“像素映射”或者“联通区查找”的方法分割出单个的文字,然后单独识别每个文字。传统的车牌识别不仅繁琐,而且切割文字的效果也很难令人满意。因此,能不能绕开字符分割的问题,直接识别车牌中的字符呢?当然可以的。有两种方法: crnn+ctc...

2020-01-18 17:10:34 1026 11

原创 基于yolo的人脸检测与人脸对齐

前言 YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,yolo将对象定位作为回归问题求解,在one-stage中实现对象定位与识别,其最大的特点就是快!快!快! 既然yolo本来就是通过回归的方法对对象定位,并与此同时对对象进行分类。那我们很容易想到...

2019-10-04 22:05:24 822 3

原创 使用c++和cuda写深度学习框架:Grape简介

前言 看过我之前的博客就知道,我曾经用java写了一个深度神经网络[CupDnn](https://github.com/sunnythree/CupDnn),但是,java写的深度神经网络真的非常慢。由于这个原因,我打算使用c++和cuda重写一个深度学习框架。有了写CupDnn的经验,结合最...

2019-09-01 10:32:02 1376 2

原创 CupCnn 添加rnn的实现

github地址: CupDnn地址(给个小星星呗^~^) RNN的原理? 。。。。嗯。。。不想多说,很多介绍其原理的文章,所以这里就不啰嗦了。 为什么推荐CupDnn中实现的rnn? 足够简单,可能是最简单的实现吧,很容易学习。 有例子吗? 有的。给的例子是计算两个数相加。比如1+...

2019-04-14 17:53:06 430 1

原创 CupCnn的最近的一些更新情况

CupCnn是一个用java写的卷积神经网络。 支持L1、L2正则化 正则化的理论非常复杂,推导过程也比较繁琐,但是实现确实异常的容易,主要体现在权重的衰减。通俗的讲,就是我们每次在更新权重w的时候,可以的让他比应该的大小减小一点。 // TODO Auto-generated method s...

2019-02-21 16:34:50 395 7

原创 计算图(graph)的遍历

很久没有写博客了,忙并不是借口,懒才是理由。 一直想重构CupCnn,写成一个通用的计算图,能随意搭建各种神经网络(CupCnn只能搭建一个但链路的有序的神经网络),然后把名字也改了,叫CupDnn好了。所以,今天先写着试下遍历一个计算图吧。 先随便构造一个简单的计算图,如下: 关于这个图的说明...

2019-01-05 15:25:07 850 0

原创 caffe lstm训练mnist手写数字

我们可以把深度学习能做的事情分为两类:时间无关的事情和时间相关的事情。时间无关的话,比如人脸识别,给神经网络一张照片,神经网络就能告诉你这是谁,这是和时间无关的。时间相关的话,比如,我要知道一段视频里的人实在吃饭还是在打哈欠,这个可能通过一张照片是无法判别的,但是通过多张连续的图片,构成一段视频,...

2018-09-20 21:12:02 967 7

原创 Android neon 学习笔记

首先新建一个包含native代码的项目: 然后在gradle中添加对neon的支持: externalNativeBuild { cmake { cppFlags "-std=c++14&am...

2018-09-07 17:25:44 1862 0

原创 vmware 虚拟机损坏后的修复办法

为了给虚拟机调整分区的大小,使用fdisk命令新建了一个分区,还没搞明白问题出在了什么地方,总之,fdisk把原来的文件系统给搞坏了。重启之后,虚拟机无法启动了,进入了grub rescure模式。里面还有很多种要的文件啊,最近一段时间的工作成果全在里面,这可怎么办呀? 因为是文件系统损坏,所以...

2018-08-29 10:18:07 24236 6

原创 使用卷积神经网络(CupCnn)训练人脸检测模型

结果展示 最近尝试做了下人脸检测,先上两张效果图吧: 这已经是跳出来的效果比较好的图片了,表现的确是有点差。 我用了4000(19*19)多张人脸图片和8000(19*19)多张非人脸图片训练出了这个卷积模型。这个数据量确实有点少,所以效果不太好也是可以理解的。主要还是分享做人脸检测...

2018-03-12 16:44:15 3573 25

原创 自己制作机器学习训练和测试使用的二进制数据集(C++)

本文主要分享笔者仿照Cifar-10二进制数据库的格式,自己制作机器学习使用的二进制数据库。经过封装后,非常方便使用。代码可用Github下载:BinaryDataset 关于Cifar-10 CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。 ...

2018-03-10 14:39:03 1262 3

原创 java写卷积神经网络---卷积神经网络(CupCnn)的数据结构

前言 我在写CupCnn的时候,一个困扰我很久的问题,就是如何组织卷积神经网络的数据结构。尤其是卷积层和全连接层之间的衔接问题。卷积层至少需要四维的数据结构(batch+channel+height+width),而全连接层则只需一个二维的数据即可(batch+数据)。 CupCnn是我用ja...

2018-02-24 10:02:39 2271 2

原创 java写卷积神经网络---CupCnn简介

前言 在机器学习中,卷积神经网络是一种深度前馈人工神经网络,已成功地应用于图像识别。目前,很多的车牌识号识别,人脸识别等都采用卷积神经网络,可以说卷积神经网络在图像识别方面取得了巨大的成功。当前开源的深度学习框架有很多了,比如caffe,tensorflow,torch等,这些深度学习框架包含了...

2018-02-04 17:53:22 8254 3

原创 python 计算并绘制灰度直方图

其灰度直方图为: 其灰度直方图为: 代码如下: def calHistogram(img): if(len(img.shape) != 2): print("img size error") return None ...

2017-12-12 16:21:50 4439 4

原创 python 使用Id3算法实现决策树

依然是学习《统计学习方法》一书所做的简单实验,写代码的过程参考了大量其他的博客,本人在此深表感谢。代码实现的依然是书上的例子: import numpy as np import math import operatordef CreateDataSet(): dataset = [ [...

2017-12-05 16:20:16 1382 1

原创 python KNN算法的简单实现

这里依然是学习《统计学习方法》一书中,K近邻算法的一个实验尝试。具体理论可参考该输,这里简单贴出K近邻算法的思想及实现步骤: 结果展示如下: 大的红点是传入的测试点,k传入的是5,也就是说大红点的周围5个点决定大红点的类别。 上图便是判定大红点属于红色类别的判别过程。也就是说,他周围最近...

2017-12-01 19:29:34 855 0

原创 python 朴素贝叶斯

这里的代码应该是学习《统计学习方法》的实验练习吧。代码实现的是《统计学习方法》中第四章朴素贝叶斯法的一个实例,实例如下: 、实现的步骤也是按照书中的步骤,如有问题,谢谢指正。 import numpy as np import pickle import osdef creatDataAndL...

2017-12-01 16:02:13 496 0

原创 python K-Means聚类算法的实现

K-Means 简介聚类算法有很多种(几十种),K-Means是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。 具体实现步骤如下: 给定n个训练样本{x1,x2,x3,…,xn}  kmeans算法过程...

2017-11-29 19:22:09 4434 1

原创 python adaboost的简单实现

初学adaboost,自己尝试着写了下adaboost的实现,这个实现以几个简单的数字作为训练样本,当然,这些数字是带标签的。然后尝试着使用adaboost对其分类。对于10个带标签的数字,分类他们只需要3个左右的弱分类器级联,组成一个强分类器就可以完全正确的分类。如果代码本身没有bug的话,ad...

2017-11-10 17:35:58 1253 0

原创 python 计算积分图和haar特征

import cv2 import numpy as np import matplotlib.pyplot as pltdef integral(img): integ_graph = np.zeros((img.shape[0],img.shape[1]),dtype = np.int...

2017-11-09 17:19:40 3533 9

原创 计算联通区域

对于这样的图片: 抠出其中的黑色区域,效果如下: import cv2 import numpy as np import matplotlib.pyplot as plt import timedef findUnicomArea(img): #先二值化 ret,thresh...

2017-11-06 20:31:00 4181 2

原创 TimePicker和DatePicker修改文字颜色

使用TimePicker和DatePicker的时候,发现不能设置二者的文字颜色,颜色总是黑色,找来找去也找到设置文字颜色的接口,最终google到了结果,发现很好使,特做记录。 <TimePicker android:theme=&qu...

2017-10-25 10:56:49 3838 0

原创 opencv_traincascade训练人脸检测

生成样本: opencv_createsamples -vec F:\work\ml\apple-rec\data\pos.vec -info F:\work\ml\apple-rec\data\pos\pos.txt -bg F:\work\ml\apple-rec\data\neg\neg...

2017-09-14 18:10:02 643 0

原创 Android息屏与亮屏

最近的项目要求apk能在空闲一会后让屏幕熄灭,检测到有用户到来(距离传感器触发)后点亮屏幕。百度了一大堆发现很多都不靠谱,google了一会才勉强找到一种能满足需求的方法,说勉强是因为这种方法需要到系统设置中给该app设备管理的权限,这使得熄屏与亮屏这样看似简单的功能显得繁琐了起来。 废话不多说...

2017-09-03 15:06:22 17122 2

原创 Android自定义TitleBar/ActionBar

一开始我便很困惑,TitleBar和ActionBar是什么关系? 我们知道: ActionBar是在android3.3之后推出使用的android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:th...

2017-08-16 11:37:37 1038 0

原创 Android 自定义View-旋转小按钮

呃,什么是旋转小按钮?上图: 自定义这个View的原因是我需要一个能点击一下就能旋转显示正在刷新的小按钮,等刷新结束后在使它停止旋转并恢复到初始状态,并且这个View的字体大小,字体颜色,进度条的颜色等都可以自由配置。 自定义View包含以下几步: 1、自定义View的属性 2、在XM...

2017-08-12 17:28:50 1086 0

原创 使用cmake构建工程

之前在linux下做项目的时候,都要自己手动的写Makefile来编译项目。后来,做Android jni开发后,发现Android studio默认的c/c++编译的工具是cmake,一开始对语法丝毫不动,查了一下资料后慢慢有了一些认识,这才发现cmake确实比写Makefile要方便多了。cm...

2017-08-09 18:53:49 1552 0

原创 深度学习五:tensorboard使用记录(windows)

TensorBoard 的可视化工具,可以用来展现你的 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据。 tensorBoard的使用设计如下几个函数:第一、创建一个事件文件summary_waiter = tf.summary.FileWriter("log&qu...

2017-07-01 18:17:05 4686 0

原创 深度学习四:tensorflow-使用卷积神经网络识别手写数字

当你安装了tensorflow后,tensorflow自带的教程演示了如何使用卷积神经网络来识别手写数字。代码路径为tensorflow-master\tensorflow\examples\tutorials\mnist\mnist_deep.py。 为了快速测试该程序,我提前将需要的mnis...

2017-06-30 19:10:44 7717 3

原创 深度学习三:tensorflow,训练一个神经元

初学tensorflow,我做了一个无聊的尝试。构建一个只有两个输入,一个输出的升经网络,然后训练它。我的目标是,我给他指定一个输入,比如x1=x2=1,我期望y能输出0,所以我不断的输入x1=x2=1,然后不断的训练它,等训练一万次以后,y的输出应该非常接近0。然后我可以调整期望,比如期望y能输...

2017-06-27 15:25:23 2645 0

原创 深度学习二:自己写java代码,识别手写数字

上一节我们自己写代码训练了只有一个神经元的反相器,它虽然只有一点点代码,但却让我们加深了梯度下降算法和反向传播算法的理解。只要勇敢的迈出这一步后,我们就可以勇敢的尝试它:深度学习中的hello wold–识别手写数字。 只有自己写过的代码,才能完全的理解它的用意,不管它多烂,多糟糕,它确是完全属...

2017-06-27 15:21:03 5747 5

原创 深度学习一:自己写java代码,训练一个神经元

神经网络与深度学习这本书是我学习深度学习的启蒙教材,感兴趣可以到链接出下载。通过一段时间的学习,感觉基本理解了梯度下降算法和反向传播算法,于是尝试着自己写代码来实现神经网络。一开始总是很难的,所以我设计了个非常简单的目标,训练一个神经元。比如我给他输入1,我期望它输出0,这就是一个反相器。我希望它...

2017-06-27 14:41:15 10363 3

原创 图像处理-神奇的卷积核

关于卷积的理论这里就不啰嗦了。最近初步学习图像图例,使用java写点个对图像进项卷积操作的代码,实验的过程中感觉颇为惊奇,原来觉得高深的图像的锐化、浮雕、边缘检测等技术,原来用简单的卷积就可以轻松实现。 我首先将一副彩色的图像使用photoshop将其转换为灰度的raw格式,这简化了程序。转化后...

2017-06-02 21:46:26 20096 6

原创 Android.mk引入第三方jar包和so库文件

以SystemUI为例,如果需要在SystemUI中引入第三方jar包以及so库,可作如下处理: 首先,在frameworks\base\packages\SystemUI下新建libs目录: 将需要引入的jar包放置到libs目录下。然后修改Android.mk文件: 也就说引入jar...

2017-05-25 17:50:48 15909 0

原创 Android 禁止状态栏下拉

如果你有这样的需求:用户进入你的app以后,所有的操作都是你的app中设定的,用户不可以拥有系统设置等行为的能力。然后,android系统,可以通过从顶部往下拉,从而得到一个通知和快速系统设置的页面: 因此,现在你想禁止它弹出,怎么办呢? 我不知道在app中怎么做,但是如果你们的处境像我一...

2017-05-18 18:33:28 26106 11

原创 Android sqlite数据库操作笔记

这篇博客记录了一个app中,建立日志数据库需要的操作。应用场景如下: app有个登录系统,每一次登录,都需要记录一条日志信息,信息中记录登录的用户名,时间等信息。数据总共只能保存最近50次登陆的记录,超过50次以后,就会删除最前面的记录。保证数据库的行数维持在50行不变。 对数据库的操作使用的...

2017-05-06 16:28:16 555 0

原创 Android 编码摄像头数据为h.264格式

之前自学了下ffmpeg,使用ffmpeg在ubuntu下编解码比较方便,但是到了Android,发现使用比较多的编解码类是MediaCodec,在工作之余,抽点时间,学习下这个类的使用,做点记录,以供后续查阅。 MediaCodec类可用于访问Android底层的媒体编解码器,它是Androi...

2017-04-01 15:04:46 4776 2

原创 Android Socket通信--通过jni用c++实现客户端

讲比较重要的代码放到native层是比较好的做法。如果你有需求需要把socket通信的部分封装的jni中实现,那么本文可做参考。代码思路1.总共实现三个native方法: public native void initSocket(String ip,int port); publi...

2017-03-04 18:02:06 6454 2

原创 Android 处理Camera图像并绘制处理结果

这里为了介绍如何处理Camera的图像并绘制处理的结果,举这样一个例子: 对一帧图像,计算它的清晰度,然后把清晰度显示出来。 假设有一帧1280x960的图像,我们取中间400x400的区域,计算这块区域的清晰度,示意图如下:计算清晰度的方法非常简单,它不是我们的重点。计算的方法如图所示: ...

2017-03-02 21:42:49 1854 1

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