小小甜菜深度学习爬坑记

小小甜菜深度学习爬坑记

主要目的是整理一路学习的技术分享贴。我的电脑是笔记本联想拯救者R720,显卡是GTX1050Ti。其它环境仅供参考。

安装ubuntu+win10双系统

详情见技术贴用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu16.04图文教程,注意事项如下:

  1. 备用下载地址EasyUEFI
  2. WIN10系统下格式化FAT32,需要用格式化工具。
  3. 我的显卡太新会出现兼容性问题,需在启动F2中禁掉显卡后再安装系统,安装驱动后解我的显卡太新会出现兼容性问题,需在启动F2中禁掉显卡后再安装系统,安装驱动后解禁
  • sudo apt-get install nvidia-384
  1. WIFI开机会出现无法正常打开命令行设置
  • sudo modprobe -r ideapad_laptop

安装环境

  1. 参考ubuntu安装Tensorflow安装CUDA和cudnn:
  • 缺少依赖库解决办法:
  • sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  • CUDA9.0问题解决办法:
  • sudo apt install gcc-6 g++-6
  • sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
  • sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++
  1. 转到anaconda3安装Tensorflow
  • 最好安装python3.6对应版本的anaconda3(Anaconda3-4.3.1-Linux-x86_64.sh)
  • 如果没Anaconda的信息,在终端执行:
  • nano .bashrc
  • 最后一行添加export PATH="/home/xs/anaconda3/bin:$PATH"
  • source ~/ .bashrc
  1. pip安装Tensorflow1.9
  • conda create -n tensorflow python=3.6
  • 激活tensorflow环境:source activate tensorflow
  • pip install tensorflow-gpu==1.9.0
  • 关闭tensorflow环境:source deactivate tensorflow
  • sudo rm -rf ~/anaconda3/lib/python3.6/site-packages
  • sudo cp -r ~/.conda/envs/tensorflow/lib/python3.6/site-packages ~/anaconda3/lib/python3.6/site-packages

TensorFlow Object Detection API

  1. 在ubuntu上配置
  • ubuntu sudo: pip:找不到命令
  • AttributeError: module ‘pip’ has no attribute ‘main’:sudo python -m pip install --upgrade pip==9.0.3
  • anaconda3修改权限:sudo chmod -R 777 anaconda3
  • 将models复制到/home/xs/anaconda3/lib/python3.6/site-packages/tensorflow目录下
  1. Object Detection API使用教学
  • xml_to_csv出错解决办法:sudo pip install pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  • 训练文件出错解决办法:sudo pip install pycocotools
  • TypeError: can’t pickle dict_values objects解决办法:在model_lib.py中将category_index.values()改为list(category_index.values())即可(414行)
  • 在object_detection目录下:python model_main.py --pipeline_config_path=training/ssd_mobilenet_v1_coco.config --model_dir=training --num_train_steps=50000 --num_eval_steps=2000 --alsologtostderr
  • 有时内存不够出错,重启恢复,原因未知。
  • 使用tensorboard查看模型情况python /home/xs/anaconda3/lib/python3.6/site-packages/tensorboard/main.py --logdir=training
  1. 使用Tensorboard分析模型
  2. 基于教程的工程

    比较有效的数据集是真实环境下,相同采集器搜集的不同情况下的数据组成的数据集。模型的识别率与数据集的大小,模型的好坏,迭代的次数有关。如图的模型我使用的是真实场景下,手机拍摄的20张照片组成的数据集,ssd_mobilenet_v1_coco_2017_11_17模型通过迁移学习,迭代次数为35000次的实际效果。工程和APK见附件。
  3. 语音识别
  • 如果是单独识别中文说话,做语音互交等内容,没必要自己做模型,主要是数据集需求太大,情感识别和模糊匹配难度太大。腾讯翻译了谷歌官网的项目介绍主要用来识别如狗叫,背景音等定制化内容。

百度AI平台

作为国内较好的深度学习平台,我是在2018百度开发者大会拉入坑的。其可分为语音识别,语音合成,文字识别,图像识别,人体分析,人脸识别,理解与互交技术,AR增强现实等多个方向。我主要研究了其下的人脸识别,人机交互,图像识别。百度AI平台有开发难度低,种类完善等优点,但受限较大,只适合于入门或开发周期短的项目。

  1. 人脸识别
    因离线模式实际效果一般,我选择了在线人脸识别。通过认证后百度提供了开发例程SDK,拥有一定java开发能力的人都能开发。附件中有我的单人人脸识别和多人人脸识别的安装包,我集成了语音合成,安装即可体验效果。工程文件需要授权验证,附件中的工程无法正常运行,只能作为参考,有需求的可以去官网认证开发者后申请授权,通过简单修改就能跑我的工程。
  2. DourOS
    附件中有工程和APK安装包,可直接运行,主要有以下功能:
  • 语音识别:通过麦克风录音可以识别人说的话并转为文字,在线离线皆可
  • 语音合成:可以将文字转为可以播放的音频文件,在线离线皆可,可方便集成到其它项目中
  • 人机互交:通过语义分析和关键词提取,智能作出判断。目前只基于在线模式。
  • 关键词唤醒:通过训练关键词语音,可在低功耗待机状态下通过语音开机,离线模式
  1. Easydl
    附件工程是离线版,用于识别黄色安全帽,由于绑定硬件,APK安装后是无法使用的,仅做参考。
    在这里插入图片描述
  • 如图所示,是我现场拍照的20张照片作为数据集生成的模型的实际效果,支持本地和在线两种模式。Easydl也有定制语音识别的内容,不过本地部署还没上线,目前只有在线识别。
  • Easydl,是自己寻找数据集,打标签后生成SDK,优点在于开发简单,无需安装平台,模型训练免费使用百度服务器。缺点在于模型不开放,需申请激活码且与硬件,包名绑定,很难集合到实际项目中。
  1. 百度AI studio
    中国人自己的深度学习平台,有大量学习视频,在线编程平台也非常方便。不过由于社区不是特别完善,全球影响力较低。对新手非常友好,强力推荐,高手可以无视。
  • 基于paddle框架下的百度AI平台,不得不说在线式平台真心好评(想想之前苦哈哈装环境,训练时各种担心笔记本吃不消重启)。但是不得不吐槽优质项目真心太少了,基于paddle教程,不是AI studio

神经计算棒

在这里插入图片描述
如图是我在树莓派上使用神经计算棒是效果,由于我只有一个神经计算棒,我只跑了一个人脸检测模型,效果是检测到人脸标出人脸框,理论上只要另一个跑facenet模型就能实现人脸识别。芯片有单卖的,可以集成到硬件板卡上。由于神经计算棒的开发还处于起始阶段,没有完善的编译纠错系统,开发难度较大。

小结

由于我的工作是嵌入式开发,对于服务器端的在线部署不是很了解,所研究的主要是嵌入式端的本地识别。对以上3个平台进行对比:

  1. 百度AI入门门槛最低,功能种类丰富,但是由于开源不彻底,实际项目中受到很多制约。实际开发过程中并不涉及多少深度学习内容,只适合急需项目和入门初学者。
  2. 谷歌tensorflow是学习和研究深度学习最好的平台之一,完全开源且有谷歌技术支持,对于有志于学习深度学习的入门初学者是最理想的平台。
  3. 神经计算棒是致力于解决嵌入式设备没GPU,大型模型本地化部署难的问题所推出的产品,可以使用caffe和tensorflow两种框架的大部分模型。由于推出时间短,还没形成完善的系统,再加上想要在实际项目中使用必须有一定硬件功底(芯片要集成到嵌入式板卡),实际开发难度最大,不太适合初学者。

小贴士

  1. QT5.4.2安装教程
  1. UBUNTU安装Andriod studio
  1. 终端下安装谷歌浏览器
  1. 百度AI学习训练营(强烈推荐)
  2. labelimg教程
  3. 神经计算棒教程
  4. 谷歌中文教程
  5. 附件工程及APK百度云提取码
  6. TensorFlow初学者必须了解的55个经典案例

猜你喜欢

转载自blog.csdn.net/oZhiZhuXia12/article/details/82994945