开发日记
文章平均质量分 62
curisan
感兴趣领域:人工智能、区块链
信奉产品哲学:简单、有用、有趣
展开
-
【开发日记】马桶型号识别
这将会是一系列的文章,介绍自己开发一个APP用于马桶型号的识别,这是我的第一个机器学习项目。开发背景原创 2017-11-20 23:52:03 · 1044 阅读 · 0 评论 -
【开发日记】马桶识别之数据收集,通过Python抓取京东评论图片
通过迁移学习训练从天猫评论区获取的图片,正确率只有70%左右,远远达不到实际应用。很有可能的原因是数据量不够,深度学习需要很多的数据。因此,这里利用Python抓取京东评论图片。本文主要是参考python爬虫(7)——获取京东商品评论信息。其实不管是抓取天猫的评论图片,还是京东的评论图片,主要到的是获取评论的Url。不过,如果只是获取京东评论区的Url,获得的图片是缩小的图。为了获取大图,原创 2018-01-15 22:25:50 · 493 阅读 · 0 评论 -
【开发日记】石头剪刀布之神经网络训练
收集好数据之后,就可以进行训练了。这里可以参考我之前写的一篇博客,利用预训练模型进行迁移训练,详见【开发日记】马桶识别之马桶分类,通过迁移学习进行马桶分类通过上述博客组织好数据结构,然后调用以下代码即可:python E:\Python35\Lib\site-packages\tensorflow\examples\image_retraining\retrain.py --image原创 2018-01-30 22:51:37 · 1120 阅读 · 0 评论 -
【开发日记】石头剪刀布之树莓派控制舵机
在石头剪刀布这个游戏里面,树莓派需要通过控制舵机的转动来和我进行“猜拳”游戏。这篇文章介绍树莓派控制舵机的基础操作。本文主要参考文章树莓派使用python 控制G90舵机。我使用的舵机是辉盛的SG90。SG90共有三根线,红线接5V电源,棕线接GND,黄线为数据控制线,该线接到GPIO口上,这里使用BCM模式下的21引脚。关于树莓派的引脚,可以参照下图,右边的引脚编号和左边的树莓派针脚一一对应。根...原创 2018-02-09 16:43:00 · 3339 阅读 · 1 评论 -
【开发日记】石头剪刀布之卷积神经网络
在上一篇文章中——石头剪刀布之神经网络训练,利用预训练的MobileNet虽然可以得到很高的精度,而且模型占用的内存很小,只有5M左右。但是,在实际应用的时候,在我的笔记本上识别一张图片需要0.5s(使用如下代码),更不用说在树莓派上运行了。究其原因,是因为MobileNet最少需要128*128的图片输入,因此还是需要不少的运算量。因此,为了减少运行时间和模型的大小,本文将通过Tensorflo...原创 2018-02-09 13:09:00 · 1571 阅读 · 0 评论 -
【开发日记】石头剪刀布之最终功能实现
在之前一篇文章——石头剪刀布之卷积神经网络,我已经定义了网络模型,当时在每类200张图片的情况下可以达到89%左右的精度。在本项目中,获取数据的成本并不是很高,利用摄像头就可以获得足够多的数据。因此,我又收集了一些数据,使得每类的图片大概是3000张左右。按照之前的训练方法,验证精度可以达到98.9%,识别一张图片的时间在25ms左右。这样的网络模型就可以满足要求。有了训练好的模型(相当于一个大脑...原创 2018-02-14 11:00:12 · 987 阅读 · 2 评论 -
【开发日记】挥手拍照和回家欢迎
又想到两个非常有意思的项目,哈哈~。不仅可以将这段时间学习的知识用于实际项目,也可以锻炼自己的动手能力。一个叫“挥手拍照”,灵感来源于大疆无人机“御”。无人机感知到你的手势之后,自动调整摄像头位置使你位于画面的中心,然后闪灯3下,拍照。第一个项目就是实现“挥手拍照”的功能。这里不使用无人机,而是使用一个带有云台的摄像机。该项目涉及的知识主要是目标检测和目标分类。目标检测画面中人的位置,然后目标分类...原创 2018-03-07 21:15:31 · 369 阅读 · 0 评论 -
Tensorflow+树莓派,自制“猜拳神器”
本教程的灵感来源于谷歌云负责维护开发者关系的Kaz Sato制作的一个“猜拳机器”教程[1],见下图。该教程使用弯曲传感器和Tensorflow来识别猜拳手势,然后选择相应的选项:石头、剪刀、布。该项目还上了大名鼎鼎的谷歌大脑负责人Jeff Dean关于谷歌大脑在2017年的进展回顾里[2]。 图1 我想既然已经使用了Tensorflow,为什么...原创 2018-02-24 20:42:40 · 7274 阅读 · 15 评论 -
【开发日记】Deep Speaker 开发日记之Triplet选择
在Deep Speaker中,Triplet三元组的选择是很重要的。如果随机选择,会使收敛速度变慢,如果使用“hard-negative”,会得到次优的结果,也就是说ap和an的相似度一直接近1,如图1所示。因此FaceNet论文中建议使用“semi-hard-negative”,根据我做的实验来看,确实能起到作用,如图2所示,在使用了“semi-hard-negative”之后,an不在接近1,...原创 2018-04-16 18:58:41 · 6720 阅读 · 4 评论 -
【开发日记】“门没关好”之树莓派安装摄像头以及使用Python控制摄像头
这篇文章介绍树莓派摄像头的安装,并使用树莓派Python自带的模块来控制摄像头。树莓派摄像头安装1. 将摄像头连接到树莓派上2. 升级系统sudo apt-get updatesudo apt-get upgrade3. 在raspi-config中使能摄像头 在命令行中输入 sudo raspi-config 移动到 5 I原创 2018-01-06 16:48:14 · 1624 阅读 · 0 评论 -
【开发日记】石头剪刀布之数据获取
机器学习的第一步就是获取训练的数据。因为是和自己猜拳,所以这里可以通过树莓派的摄像头拍摄自己的手势图片作为训练数据。通过opencv调用树莓派的摄像头需要做一些设置,在启动时启用摄像头,可以参考以下链接:【树莓派】在OpenCV中调用CSI摄像头安装以上教程做好之后,就可以用opencv调用树莓派的摄像头了。以下为调用摄像头的代码。import cv2clicked = F原创 2018-01-30 22:37:53 · 1838 阅读 · 1 评论 -
【开发日记】石头剪刀布之树莓派opencv和tensorflow安装
利用树莓派进行“石头剪刀布”游戏,需要安装opencv和tensorflow。关于opencv和tensorflow的安装,网上有很多的教程,本篇也是参考一些人的教程写成的。但是因为在安装的过程中碰到一些问题,所以不厌其烦再写一遍,万一下次自己还要再安装一遍呢。树莓派opencv安装opencv的安装比较简单,依次输入以下代码即可:sudo apt-get update sudo原创 2018-01-30 22:19:48 · 1976 阅读 · 1 评论 -
【开发日记】马桶识别之数据收集,通过Python抓取天猫评论图片
之前不论是看视频学习,还是跟着教程做深度学习,数据集都是现成的。这次从头开始开发一个马桶识别程序,就需要自己收集数据了。 还好互联网,特别是电商网站的发展,为产品积累了很多的数据。 可以通过Python抓取天猫和京东某品牌马桶的评论图片作为数据集。 通过百度搜索,有很多的程序代码可以实现评论图片的抓取,本文抓取天猫的评论图片参考以下链接的代码:原创 2017-12-14 21:16:37 · 510 阅读 · 0 评论 -
【开发日记】马桶识别之数据清洗,通过Resnet50清洗脏数据
600原创 2017-12-24 20:00:31 · 1109 阅读 · 0 评论 -
【开发日记】门没关好,通过树莓派+机器学习识别门关好没有
这将会是一系列的文章,介绍自己开发一个树莓派应用“门没关好”,这是我的第二个机器学习项目。开发背景今天看到新智元的一篇文章《【圣诞特辑】Keras+树莓派,130行代码找到圣诞老人》,感觉这个项目挺有意思的。有些简单,又有趣处。同时,也让我意识到树莓派是可以跑起深度学习的。因此,仿照这个创意,我打算开发一个简单的树莓派应用,名字就叫“门没关好”。之所以想到这个应用,是因为我现在家里有个小孩原创 2017-12-24 22:19:04 · 2369 阅读 · 1 评论 -
【开发日记】马桶识别之马桶分类,通过迁移学习进行马桶分类
通过上篇文章马桶识别之数据清洗,通过Resnet50清洗脏数据,得到了干净的马桶图片。但是由于评论区图片有限,每一类的图片只有300张左右。如果从头开始训练,数据量有点小。这时可以通过迁移学习,利用从ImageNet数据集中学习到的模型来进行迁移学习。具体的做法是冻结网络(比如ResNet,GoogleNet,Vgg16等)前几层的权重和偏置,只留下最后一层的参数进行训练。其实,也是把前面几层原创 2018-01-10 21:42:10 · 649 阅读 · 0 评论 -
【开发日记】马桶识别之马桶分类,利用百度人工智能定制化图像识别进行分类
闲来没事,经常逛百度的人工智能页面,看有没有上线什么新功能。偶然看到百度人工智能的图片识别模块里面有一个“定制化图片识别”模块,可以上传自己收集的图片,然后百度后台进行分类。有这等好事,当然是试一试了。刚好可以用我收集的不同马桶型号的图片去试一下这个模块的性能。这里你唯一要做的是收集数据,并按照下图的格式组织好数据就可以了。文档中建议每类至少一百张。准备好之后,压缩成zip格式原创 2018-01-10 22:34:18 · 1314 阅读 · 2 评论 -
【开发日记】马桶识别之马桶分类,增加图片数量再进行分类
从京东评论晒图中,对每一个型号又抓取了300张左右的图片,这样每一个型号大概有600张图片,按照之前的方案:1. 通过Tensorflw迁移学习进行马桶分类;2. 通过百度人工智能“”定制化图片识别”进行训练。训练的结果如下:1. Tensorflow迁移学习: 4000迭代步: 测试精度 69% 20000迭代步: 测试精度 70%2. “定制化图片识别”原创 2018-01-21 20:23:33 · 411 阅读 · 0 评论 -
【开发日记】"门没关好”之树莓派装系统以及使用笔记本电脑远程桌面登录树莓派
这篇文章是关于“门没关好”项目硬件部分的准备。一块树莓派3代b型开发板,一个16g TF卡,一个读卡器,一个树莓派800W摄像头。树莓派系统安装这篇安装教程主要参考树莓派入门之装系统和树莓派3B 安装系统(无需显示器,针对raspbian-stretch版,包含SSH连接以及远程桌面/无需VNC)1.首先下载一个SD卡格式化工具,格式化SD卡(或者直接使用右键格原创 2018-01-03 20:45:51 · 534 阅读 · 0 评论 -
【开发日记】“石头剪刀布”,通过树莓派+机器学习让机器和自己猜拳
看谷歌大脑负责人Jeff Dean关于谷歌大脑在2017年的进展回顾,里面有一段视频立马吸引了我。大概是一个人和机器进行“石头剪刀布”。在视频中,机器每次都可以识别出人出的是“石头”还是其他的,然后几乎同时做出反应。看视频根本区分不出机器“慢”出手。以下为新智元关于Jeff Dean博客的报道,有兴趣的可以在这篇文章里面看到视频:【谷歌官方年度报告】Jeff Dean晒谷歌大脑成绩单,TP原创 2018-01-30 21:55:54 · 2593 阅读 · 0 评论 -
【开发日记】Deep speaker之ResCNN Input结构
Deep speaker这篇文章有很多细节没有描述,加上没有官方的源代码,导致要实现很难。这篇文章主要是写一下ResCNN Input的结构,这个应该是很多人迷惑的地方。由于一开始没有经验,因此代码是参考github上的开源代码:https://github.com/philipperemy/deep-speaker因此思路一直被这篇代码的结构给困住了,其实RecCNN的Input和这个开源代码有...原创 2018-04-14 08:23:01 · 4797 阅读 · 1 评论