Skip to content

树莓派上基于TensorFlow Lite的图像识别

Notifications You must be signed in to change notification settings

Evennaire/imagepi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

树莓派图像识别

server/文件夹下为电脑端Flask测试程序,pi/文件夹下为树莓派端实验示例程序(仅用于参考,准确率和性能上不作任何保证),converter/文件夹下为一个TensorFlow Lite模型转换示例。

整体架构

电脑端flask server和浏览器界面、树莓派分别建立socket连接。浏览器初始化后重复以下操作:

  1. 浏览器通知server图片已更新
  2. server等待0.1s后(树莓派获取图像有延迟,可以修改等待时间display_delay)通知树莓派进行图像识别,并开始计时
  3. 树莓派将识别结果和系统信息通过post方法传回server
  4. server检查结果、计算用时和准确率
  5. server通知浏览器更新
  6. 浏览器更新结果数据和图像

workflow

安装

PC端

  • 安装Flask、Flask-SocketIO等必要库

    pip install Flask
    pip install Flask-SocketIO
    

树莓派

运行

ip设置

  • 获取树莓派ip地址pi_ip和电脑端ip地址server_ip
  • server/app.py中修改pi_ip
  • pi/classify_picamera.py中修改server_ip

PC端

  • server/文件夹下运行

    flask run --host='0.0.0.0'
    

    在任意终端设备浏览器上打开http://{server_ip}:5000/显示图片界面。

树莓派

  • pi/文件夹拷贝至树莓派,运行

    python3 classify_picamera.py --model model.tflite --labels synset_words.txt
    
  • 树莓派对准浏览器界面上的图像,刷新浏览器后开始运行

说明

  • FPS的计算:树莓派传回的FPS表示进行一帧图像识别的帧率,server计算的FPS_ALL表示整个识别循环进行一轮的帧率(包括网络延迟和display_delay),display_delay可以根据系统性能自行修改。

  • 验证集包含100张图片,在界面上随机显示,全部显示一遍后重新开始下一轮随机。

  • 测试集包含100张图片,同样为随机显示。测试集未公开,检查时只需要将测试集的图像和GT拷贝至电脑端server/static文件夹,并在server/app.py中修改mode参数为"test"即可。

  • 注意:存在多种版本的index和label对应关系,ILSVRC2012的label版本和Caffe提供版本的不同。

  • 在使用预训练模型时,注意输入数据的格式范围、输出index和label之间的对应关系

About

树莓派上基于TensorFlow Lite的图像识别

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •