使用tensorflow构建自己的模型

使用tensorflow构建自己的模型,有两种方法,一种是不需要标注,只能识别裁剪过的照片,一种是需要标注,识别出来可以在图片上进行范围的标注。
先给图看看效果:
在这里插入图片描述
这是进行标注识别的效果,如果没有进行标注,照片不仅需要裁剪,还只会返回匹配率,不会有标注效果,并且识别率不高,只能进行单一目标的识别。
第一种进行标注:
一.开发环境的搭建
window7
pycharm
python3.60
Anaconda4.3.0
tensorflow1.12.0
1.pythcam可以到超链接去下载,我下载的是社区版的,下载安装后就可以使用,安装过程网上很多,可自行百度。
2.安装Anaconda以及python
Anaconda下载地址在此处找到
在这里插入图片描述
进行下载,安装后正常进行安装,注意一点就可以了
在这里插入图片描述
两个选项记得勾选。安装之后打开命令行,输入conda --version查看安装版本
之前的tensorflow好像是不支持python3.6的,所以需要安装python3.5版本,现在已经完全支持了。所以接下来安装tensorflow就没有之前那么复杂了。安装完Anaconda是自带python版本的,可以直接在命令行输入python查看安装的python版本,想要退出python模式,输入exit()就可以了。
3.安装tensorflow
我这里选择的是cpu版本的TF,可根据以及显卡选择cpu或者gpu版本,但听说gpu很多坑,所以我就选择了cpu版本。
打开命令行,输入:pip install tensorflow==1.12.0等待安装就可以了。安装成功后可以查看安装TF版本
依次输入:

python
import tensorflow as tf
tf.__version__

如果在输入:import tensorflow as tf出现下图的错误的时候
在这里插入图片描述
输入exit()退出python模式,输入pip install protobuf==3.6.0之后就可以了。如果没有这样的错误,建议也这样操作一次,因为有可能在使用pyCharm训练模型的时候会出现这样的错误。
到此环境已经配好了,下面要开始进行模型的训练了。
二.模型训练
因为模型训练我是参考其它博客完成的,在这里我给出博客的地址,大家可以参考一下,在这里只记录我在训练模型的时候出现的错误。坑比较多,一些错误可能都已经忘记了,在这里先记录还记得的错误,如果有其它错误,大家可以提出来。
第一步

https://blog.csdn.net/zj1131190425/article/details/80711857

此链接是这位大佬训练前的准备工作,大家根据步骤完成就行了。
第二步
要使用labelImg进行标注。

https://blog.csdn.net/zj1131190425/article/details/80726353

这个比较复杂了,推荐直接使用下面这位大神的操作。

https://blog.csdn.net/python_pycharm/article/details/85338801

第三步

https://blog.csdn.net/zj1131190425/article/details/80778888

第三步的坑实在是太多了,一些报错都忘记了,只记录还记得的,想起来回补充的。

错误一:

ModuleNotFoundError: No module named 'numpy.testing.decorators'

出现上面错误的,可以打开命令行依次输入以下命令,可以解决

pip uninstall numpy
pip install numpy==1.17.0

错误二:

from google.protobuf.pyext import _message ImportError: DLL load failed: 找不到指定的程序。

打开命令行输入下列命令

pip install protobuf==3.6.0

错误三:
运行train.py有大量no module named object_detection错误
在form后加上 research.即可,记住,是大量,要修改的地方很多

错误四:
运行train.py出现少量no module named net错误
在form后加上research.slim.即可

错误五:
运行train.py的时候还会有一些no module named XXX的错误,
这主要是找不到路径造成的,可找到你安装tensorflow的目录,寻找这个XXX,输入正确的路径即可解决。

错误六:
运行train.py出现FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_quint8 = np.dtype([("quint8", np.uint8, 1)])
进入dtype.py中将np.dtype([("quint8", np.uint8, 1)])改为np.dtype([("quint8", np.uint8, (1,))])就可以解决,虽然出现这个错误,但是不影响程序运行,还是最好还是改一下,一共需要改6处,当初我改了6个地方。

错误七:
同时还有一些TF与python版本不对应的错误,上面的版本是我自己亲测可以使用的。
其它错误暂时记不清楚,就不记录了。如果大家有其它错误,欢迎提出。

第二种:不进行标注
这种方法很少用,也很简单。是自己的笔记本上面的环境,之后再补充。

给一个链接:Android Studio导入TF官方demo的过程

https://blog.csdn.net/weixin_44059750/article/details/104837410

最后感谢参考博客所属的大神,膜拜。
根据官方demo和参考github开源项目完成了三种识别方式,一种是无标注照片识别,一种是标注照片识别,一种是标注实时摄像头识别。想要demo的可以说下。

小编训练模型是要导入到Android中去使用的,记录一下导入到Android的坑。
上述训练模型只会生成一个pd文件,要想在Android中使用还需要一个txt文件,复制过来的txt文件的第一行???不能删除。

发布了15 篇原创文章 · 获赞 5 · 访问量 364

猜你喜欢

转载自blog.csdn.net/weixin_44059750/article/details/104840532