今年的电赛题目非常反常,传统控制题目基本没有,新增加了测距题目,甚至物联网题目,Ai题目都出来了。直接电赛变算法+钞能力大赛。看到F题:测温+人脸识别,碰巧我们手头有调好的红外测温模块+树莓派+openmv,还有一个现成的口罩识别算法,而openmv可以实现人脸识别,所以就选择了这道题。作为一个本组唯一一个非电类专业的,本人负责Ai口罩识别算法的移植以及编写一个opencv实现的人脸识别算法作为预备方案。

由于算法都是写好的,并且在ubuntu中全部测试成功。下面主要任务就是把他移植进树莓派了。万事环境难,在这几天里我给树莓派刷机了不下十次,下面记录一下艰辛例程。

配环境主要分下面几步:

  1. 树莓派安装raspbian
  2. 安装opencv-python
  3. 安装tensorflow1.13
  4. 树莓派连接显示器

安装系统并且连接显示器

第一步比较简单,从官网下载镜像,然后用win32diskManager烧录进去就可以用,烧录好之后,如果要利用ssh功能的话,要在boot目录下新建一个空白文件命名为ssh(不带任何拓展名),如果需要利用HDMI显示器,则需修改boot目录下的config.txt

hdmi_force_hotplug=1
config_hdmi_boost=4

在文件末尾加入以上内容,或者将以上内容对应的注释都替换掉。

hdmi_force_hotplug:强制使用HDMI输出并且支持热插拔(强行认为HDMI口已经插入了设备)

config_hdmi_boost:HDMI信号增强。

按照以上步骤操作之后,应该就能看到树莓派的桌面了。

配置opencv环境

由于口罩识别的数据处理以及显示过程均需要用到opencv库,因此需要在raspbian中安装opencv-python-4.4.0(和ubuntu上版本统一,减少兼容性问题)。

我在安装过程中莫名出现了玄学hash值问题,经过多次google发现,原因是网络不稳定,需要用下面的方式安装,或者直接wget下载whl文件吧

pip3 

安装好之后,打开测试文件,测试摄像头,发现可能会出现报错,原因是raspbian中没有依赖环境,需要安装

sudo apt-get install libatlas-base-dev sudo apt-get install libjasper-dev sudo apt-get install libqtgui4 sudo apt-get install python3-pyqt5 sudo apt install libqt4-test

安装好之后可以用以下代码测试摄像头是否正常

import cv2 as cvVideo = cv.VideoCapture(0)while True:ret,frame = Video.read()cv.imshow("capture",frame)cv.waitKey(33)Video.release()
cv.destroyAllWindows()

如果不能显示可能需要打开外设开关,具体方法为命令行中输入sudo raspi-config,选择interfaceing-options,将camera选择为enable。

配置Tensorflow

由于tensorflow较大,推荐先从电脑上通过wget下载好后上传树莓派,否则由于树莓派网速慢且不稳定会出现一些麻烦的问题,下载方法如下。

wget http://piwheels.org/simple/tensorflow/tensorflow-1.13.1-cp37-none-linux_armv7l.whl

下载后可通过sftp上传至树莓派,上传好之后找到whl对应的目录,使用以下命令安装即可

pip3 install tensorflow-1.13.1-cp37-none-linux_armv7l.whl

安装好后可用以下代码测试

python3
#命令行中进入python3环境
import tensorflow as tf
hello = tf.constant('Hello!')
sess = tf.Session()
print(sess.run(hello))

若出现和opencv类似的hash问题则继续从电脑上wget下载镜像上传到树莓派即可。

Keras的安装也需要wget后手动安装whl,同时如果需要保存模型为h5文件则还需安装以下依赖:

sudo apt-get install libhdf5-dev

源码请参考这里。

https://github.com/Anakin0607/Mask-recogniser-on-RaspberryPi/​github.com

python利用tensorflow识别圆_RaspberryPi上实现佩戴口罩识别——2020电赛F题小记相关推荐

  1. 2020美赛C题:python实现npl自然语言处理记录

    2020美赛C题:python实现npl自然语言处理记录 前言 文本预处理 LDA主题分析加可视化 多进程程序需写进main函数 可视化 NLTK情感分析 制作语料包 情感积极性量化 一些收获 pyt ...

  2. 五十八、2020美赛C题的思路以及个人Python的解法

    @Author:Runsen 这是2020年美赛C题,当时三月份朋友找我搞定,今天在清理文件中发现了,于是做一个记录.这不是我的作业,我的专业可是化工.与这些没有什么关系. 阳光公司计划在线上市场上推 ...

  3. python 调用 tensorflow.dll_解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题...

    最近打算开始研究一下机器学习,今天在windows上装tensorflow花了点功夫,其实前面的步骤不难,只要依次装好python3.5,numpy,tensorflow就行了,有一点要注意的是目前只 ...

  4. 利用tensorflow的image_retrain实现再训练和分类识别

    参考文档:https://github.com/tensorflow/hub/blob/master/docs/tutorials/image_retraining.md 现代物体识别模型有数以百万计 ...

  5. python实现lenet_吴裕雄 python 神经网络TensorFlow实现LeNet模型处理手写数字识别MNIST数据集...

    importtensorflow as tf tf.reset_default_graph()#配置神经网络的参数 INPUT_NODE = 784OUTPUT_NODE= 10IMAGE_SIZE= ...

  6. 吴裕雄 python 神经网络——TensorFlow实现AlexNet模型处理手写数字识别MNIST数据集...

    import tensorflow as tf# 输入数据 from tensorflow.examples.tutorials.mnist import input_datamnist = inpu ...

  7. [Python]利用百度AI的ocr实现屏幕内区域文字识别

    整体思路 1.[截图](https://blog.csdn.net/weixin_44343083/article/details/112252207) 2.图片压缩(百度的ocr要求图片小于4M) ...

  8. 基于Python通过OpenCV实现的口罩识别系统理论篇

    基于Python通过OpenCV实现的口罩识别系统理论设计篇 一.项目实现环境 基于Python 3.8.1版本 opencv-python 4.2.0.34版本 需要自己下载OpenCV的库文件,添 ...

  9. 基于python的口罩识别

    自从新冠疫情爆发以来,口罩成为了人们生活中必需品,也成为绝对热门的话题存在.疫情的反复出现以及变异,让人们戴口罩成为了日常.尤其是最近以来,全国各地的疫情又有变严重的趋势,德尔塔病毒来势汹汹,拉姆达病 ...

最新文章

  1. ansible1.7.2源码安装教程
  2. spring boot报错:Unable to start embedded Tomcat server 权限不够
  3. 【STM32】FreeRTOS移植
  4. 负债十五万左右,信用卡十万,网贷四五万,怎么上岸?
  5. PRML-系列一之1.5.1~1.5.3
  6. swift 的init_Swift init()
  7. br php 配置,无法载入 mcrypt 扩展,br /请检查 PHP 配置终极解决方案
  8. kettle 驱动位置
  9. bios开发 c语言,BIOS开发环境
  10. Oracle练习题(九)
  11. 【插件】Unity插件UnitySRDebugger的简单使用
  12. 使用VsCode管理Gitee仓库中的项目
  13. 人工智能 —— 知识图谱
  14. 超级表格教你怎样“零”成本制作签到系统
  15. 在虚拟机里虚拟打电话的代码
  16. Windows 11 手机诞生,还是双屏的?
  17. c语言按姓名查询出入信息,请问c语言如何实现按姓名查找?
  18. MSL、TTL及RTT的区别
  19. 这些城市 你5w就可以买一套全款房
  20. 通联支付php7,通联支付接口疑难问题处理开发者文档.pdf

热门文章

  1. java用户注册代码解析_java springmvc 注册中央调度器代码解析
  2. php 登录安全认证,介绍几种常用的web安全认证方式
  3. usb转232线驱动_为什么越来越多人用USB,却不用RS232?USB有什么好?
  4. MFC中单选按钮的特点总结
  5. 计算机视觉(一)概述
  6. 《MFC初探》之变量类型
  7. Git 和 Github 秘籍
  8. 星级评分--演进式部署
  9. fedora 27 mysql_无法在Fedora27上的Python2 virtualenv中使用mysqldb
  10. 格子里输出 java_蓝桥杯-格子中输出-java