MNIST Model
MNIST 本来keras就提供了数据集,直接建好model train就行了
model是我自己随便建的一个标准CNN,相关结构
1 |
|
训练code
1 | import numpy as np |
训练结果
1 | Epoch 1/10 |
提出训练集数据看一下
1 | import matplotlib.pyplot as plt |










然后我手写了几个数字,但是每个数字都要占满整张图片,所以我把他们分别截成了几张










然后处理一下图片
1 | import matplotlib.pyplot as plt |
处理后










识别结果
0,0
1,1
2,2
3,2
4,4
5,5
6,6
7,1
8,8
9,9
有几个错了的说…有可能是因为手写后缩放然后像素不是很平滑?有些毛毛角角的地方
树莓派相关
这是我入手树莓派的第一个项目,顺带着树莓派的系统软件相关了
因为树莓派这么low的配置,所以就不在树莓派上Train了,Model是Train好的,要做的就是移植,然后做些其他啥的
树莓派开发我基本上是在Windows下完成的
烧录系统
装过这么多系统了,这个是最简单的8
相关下载
http://shumeipai.nxez.com/download
我用到的工具有
Win32DiskImager v0.9.zip
PuTTY系统
Raspbian
树莓派官方深度定制的硬件驱动与软件程序,官方推荐系统。如果你第一次使用树莓派,请下载这个。Debian的软件策略偏保守,稳定第一,升级是次要的。
下载链接:http://downloads.raspberrypi.org/raspbian_latest
默认帐号:Username: pi Password: raspberry
具体烧录过程传送门
连接树莓派及配置
因为我没显示器,也没插电脑上是,但是我有多余的网线,一根网线连接树莓派
找ip的命令arp -a
.
PuTTY登录树莓派
然后登录以后,先改源 传送门
改完记得update
然后改密码…懒得输那么长 sudo passwd
安装相关软件
这一段不要看了!!!!!!!!!!!!!这是前面悲伤的安装历程,从下一个标题看
vim sudo apt-get install vim
(用不惯不会用树莓派自带的vi)
pip3 sudo apt install python3-pip
tensorflow pip3 install tensorflow
然后就遇到问题了…
1 | ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them. |
这好像是由于网络问题造成的..重试了几次,依然是这个结果…
最后我用wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.14.0/tensorflow-1.14.0-cp35-none-linux_armv7l.whl
下下来的
各种版本https://github.com/lhelontra/tensorflow-on-arm/releasessudo apt-get remove python3.7
.sudo apt-get install python3.5
.sudo cp /usr/bin/python3.5 /usr/bin/python3
.
这时候再python3
试一下,应该就是3.5的版本了sudo apt-get install python3.5-dev
这时候pip3
不能用了,要重新装
直接这样重装吧,后面太麻烦了,需要的话加sudo
1 | apt-get remove python-pip python3-pip |
然后发现python3.7
这样是卸不干净的还需要删几个sudo apt-get remove libpython3.7
sudo apt-get remove libpython3.7-stdlib
重新安装完了pip3,然后又不能使用了…from pip._internal import main
ModuleNotFoundError: No module named 'pip._internal'
然后找到那个文件的地址,把from pip._internal import main
改成from pip import main
就能运行了
终于搞完了,最后就sudo pip3 install tensor+tab
keras sudo pip3 install keras
这些东西搞了一上午+一中午,我吐了
为什么卸一个Python版本这么麻烦
为什么下载速度这么慢
为什么树莓派的系统自带的是Python3.7
为什么都9102年了,TensorFlow还不支持Python3.7????????
真的吐了,最后import keras
还是不成功,numpy的版本有问题pip3 uninstal numpy
然后pip3 install numpy==1.14.5
最后总算是整好了…
然后load_model用不了…我吐了..然后自己再搞把版本又搞乱了…重装了
重装
这次重装异常顺利
只需要和以前一样重装系统,烧录,开SSH,然后下面顺序全部执行就好了
1 | sudo apt install libatlas-base-dev |
然后import tensorflow
会报几个WARNING,反正是WARNING,不管了233,能用就行了QAQ
语音合成
百度云语音合成Python文档传送门sudo pip3 install baidu-aip
安装
简单的输出调用
1 | from aip import AipSpeech |
把文件传给树莓派
sudo fdisk -l
查看u盘分区名sudo mount /dev/sda1 /mnt
在树莓派上测试
python3 test.py
.
1 | import numpy as np |
运行ok,接下来的都是在树莓派上完成的了,主要是摄像头的调用,还有语音的播放
拍摄
先sudo raspi-config
在Interfacing Options里把Camera打开raspistill -o new.jpg
就可以拍摄保存了
在命令行查看图片的一个方法…虽然很不清晰sudo apt-get install caca-utils
然后 img2txt new.jpg
音频输出
插了个耳机,全是杂音,吵死了
然后我上网找了一下解决办法
…果然大力出奇迹,用力捅到底…
语音播放就用mpv好了sudo apt-get install mpv
然后 mpv audio.mp3
就能听到了
整合
把上面零零散散的代码整合在一起就好了,可以完成一个很基本的识别
但是有个问题,就是对图片的要求比较高,因为我控制树莓派拍照实在是太难了…图像处理那一部分也有些问题
就这种清晰度的照片,也识别不出来..
后续再调整吧
1 | import numpy as np |
Reference
- 树莓派实验室(实名感谢该社区233)