
深度学习
文章平均质量分 78
阳光玻璃杯
认真,你或许不会输!
展开
-
YbFace:完全开源的人脸检测算法
最近看了些yolov3和ssd的水文,感觉有些收获,所以基于自己的理解搭建了个人脸检测的模型,在winderface数据集上进行尝试性训练.有一点效果,但还有很大的训练和改进空间.这里把工程share出来,希望有相同爱好的可以一起优化,训练出一个state of art的人脸检测模型.源码地址(github):face_detect如果对你有帮助,给他star鼓励下,谢谢!!!我的模型说明:基于resnet,Bottleneck是一个resnet单元.在三个特征map上检测人原创 2020-05-10 15:41:23 · 1387 阅读 · 2 评论 -
基于pytorch的无需分割字符的车牌识别
传统车牌识别传统的车牌识别需要先检测出车牌,检测出车牌后通过“像素映射”或者“联通区查找”的方法分割出单个的文字,然后单独识别每个文字。传统的车牌识别不仅繁琐,而且切割文字的效果也很难令人满意。因此,能不能绕开字符分割的问题,直接识别车牌中的字符呢?当然可以的。有两种方法:crnn+ctc 卷积onlycrnn+ctc是自然场景下ocr比较通用的方法,用来识别车牌当然可以的,但是难免有...原创 2020-01-18 17:10:34 · 8521 阅读 · 26 评论 -
基于yolo的人脸检测与人脸对齐
前言YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,yolo将对象定位作为回归问题求解,在one-stage中实现对象定位与识别,其最大的特点就是快!快!快!既然yolo本来就是通过回归的方法对对象定位,并与此同时对对象进行分类。那我们很容易想到yolo在做对象定位的同时可以对对象的特征点进行回归,最常见的用例是人脸检测与人脸对齐同步完成。将...原创 2019-10-04 22:05:24 · 5942 阅读 · 5 评论 -
使用c++和cuda写深度学习框架:Grape简介
前言看过我之前的博客就知道,我曾经用java写了一个深度神经网络[CupDnn](https://github.com/sunnythree/CupDnn),但是,java写的深度神经网络真的非常慢。由于这个原因,我打算使用c++和cuda重写一个深度学习框架。有了写CupDnn的经验,结合最近阅读darknet、caffe、tiny_dnn源码的心得,新写的[Grape](https://g...原创 2019-09-01 10:32:02 · 5494 阅读 · 3 评论 -
CupCnn 添加rnn的实现
github地址:CupDnn地址(给个小星星呗^~^)RNN的原理?。。。。嗯。。。不想多说,很多介绍其原理的文章,所以这里就不啰嗦了。为什么推荐CupDnn中实现的rnn?足够简单,可能是最简单的实现吧,很容易学习。有例子吗?有的。给的例子是计算两个数相加。比如1+1=2 , 0.5+0.5=1。。。。额????这需要用深度学习?不需要,但是用rnn来实现别有一...原创 2019-04-14 17:53:06 · 800 阅读 · 1 评论 -
CupCnn的最近的一些更新情况
CupCnn是一个用java写的卷积神经网络。支持L1、L2正则化正则化的理论非常复杂,推导过程也比较繁琐,但是实现确实异常的容易,主要体现在权重的衰减。通俗的讲,就是我们每次在更新权重w的时候,可以的让他比应该的大小减小一点。 // TODO Auto-generated method stub float[] wData = w.getData(); float[] grad...原创 2019-02-21 16:34:50 · 688 阅读 · 7 评论 -
caffe lstm训练mnist手写数字
我们可以把深度学习能做的事情分为两类:时间无关的事情和时间相关的事情。时间无关的话,比如人脸识别,给神经网络一张照片,神经网络就能告诉你这是谁,这是和时间无关的。时间相关的话,比如,我要知道一段视频里的人实在吃饭还是在打哈欠,这个可能通过一张照片是无法判别的,但是通过多张连续的图片,构成一段视频,我们就可以判别这个人是在打哈欠还是在吃饭了。可是,手写数字命名是一张张无时间关系的静态图片啊?我们怎...原创 2018-09-20 21:12:02 · 1432 阅读 · 7 评论 -
使用卷积神经网络(CupCnn)训练人脸检测模型
结果展示最近尝试做了下人脸检测,先上两张效果图吧: 这已经是跳出来的效果比较好的图片了,表现的确是有点差。 我用了4000(19*19)多张人脸图片和8000(19*19)多张非人脸图片训练出了这个卷积模型。这个数据量确实有点少,所以效果不太好也是可以理解的。主要还是分享做人脸检测的经历。但是,我还是相信只要给我充分的数据,我也可以训练出高质量的模型。FaceDetector...原创 2018-03-12 16:44:15 · 5219 阅读 · 25 评论 -
java写卷积神经网络---卷积神经网络(CupCnn)的数据结构
前言我在写CupCnn的时候,一个困扰我很久的问题,就是如何组织卷积神经网络的数据结构。尤其是卷积层和全连接层之间的衔接问题。卷积层至少需要四维的数据结构(batch+channel+height+width),而全连接层则只需一个二维的数据即可(batch+数据)。 CupCnn是我用java实现的一个卷积神经网络,它的源码可以从github下载: 点击下载CupCnn卷积神经...原创 2018-02-24 10:02:39 · 4214 阅读 · 2 评论 -
java写卷积神经网络---CupCnn简介
前言在机器学习中,卷积神经网络是一种深度前馈人工神经网络,已成功地应用于图像识别。目前,很多的车牌识号识别,人脸识别等都采用卷积神经网络,可以说卷积神经网络在图像识别方面取得了巨大的成功。当前开源的深度学习框架有很多了,比如caffe,tensorflow,torch等,这些深度学习框架包含了完善的卷积神经网络的实现,那么,为什么我们还要自己写卷积神经网络?直接用这些开源的深度学习框架多好,又...原创 2018-02-04 17:53:22 · 13834 阅读 · 5 评论 -
深度学习二:自己写java代码,识别手写数字
上一节我们自己写代码训练了只有一个神经元的反相器,它虽然只有一点点代码,但却让我们加深了梯度下降算法和反向传播算法的理解。只要勇敢的迈出这一步后,我们就可以勇敢的尝试它:深度学习中的hello wold–识别手写数字。只有自己写过的代码,才能完全的理解它的用意,不管它多烂,多糟糕,它确是完全属于你的东西。在训练处反相器以后,我开始大胆的尝试自己写一个全连接的神经网络,来训练手写数字。这并不难,原创 2017-06-27 15:21:03 · 7555 阅读 · 5 评论 -
深度学习一:自己写java代码,训练一个神经元
神经网络与深度学习这本书是我学习深度学习的启蒙教材,感兴趣可以到链接出下载。通过一段时间的学习,感觉基本理解了梯度下降算法和反向传播算法,于是尝试着自己写代码来实现神经网络。一开始总是很难的,所以我设计了个非常简单的目标,训练一个神经元。比如我给他输入1,我期望它输出0,这就是一个反相器。我希望它能做到这一点,所以我对他进行训练。 训练一个神经元能简化梯度下降算法和反向传播算法的实现,也能帮助我...原创 2017-06-27 14:41:15 · 12470 阅读 · 3 评论 -
深度学习三:tensorflow,训练一个神经元
初学tensorflow,我做了一个无聊的尝试。构建一个只有两个输入,一个输出的升经网络,然后训练它。我的目标是,我给他指定一个输入,比如x1=x2=1,我期望y能输出0,所以我不断的输入x1=x2=1,然后不断的训练它,等训练一万次以后,y的输出应该非常接近0。然后我可以调整期望,比如期望y能输出0.3,然后再训练一万次,y的输入应该能非常接近0.3才行。下面是程序和实验结果:原创 2017-06-27 15:25:23 · 3307 阅读 · 0 评论 -
深度学习五:tensorboard使用记录(windows)
TensorBoard 的可视化工具,可以用来展现你的 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据。 tensorBoard的使用设计如下几个函数:第一、创建一个事件文件summary_waiter = tf.summary.FileWriter("log",tf.get_default_graph())log是事件文件所在的目录,这里是工程目录下的log目录。第二个参数是原创 2017-07-01 18:17:05 · 5132 阅读 · 0 评论 -
深度学习四:tensorflow-使用卷积神经网络识别手写数字
当你安装了tensorflow后,tensorflow自带的教程演示了如何使用卷积神经网络来识别手写数字。代码路径为tensorflow-master\tensorflow\examples\tutorials\mnist\mnist_deep.py。 为了快速测试该程序,我提前将需要的mnist手写数字库下载到了工程目录(我在pycharm中新建了工程,并把mnist_deep.py中的代码拷贝原创 2017-06-30 19:10:44 · 9075 阅读 · 3 评论