文章目录[隐藏]
0.背景
本科毕设做的是嵌入式系统的实时目标检测,具体点就是在树莓派4B上训练自己的轻量化目标检测网络。
网上用树莓派做目标检测的资料很多,但是要做实时检测,资料就少的可怜了。
这是个无脑冲的版本,实现起来最简单最快捷,甚至不需要写代码(可见现在CV的门槛有多低),方便大家看。在性能上、检测物体数量上、尺寸上等个性化修改优化不被包含在这个博客里。
1.数据集的准备
目标检测就是用方框框定图片位置,这里使用labelimg软件。
开源软件,windows系统直接到github上下载zip文件就行。链接在下面:
tzutalin/labelImg/Release
标注的过程没得说,体力活,但是掌握一些技巧能够显著提升标注效率。提供几点建议:
- 这里我们先把图片文件夹和注释文件夹分开设置,否则标注会默认放到图片同一个文件夹。
- Open Dir设置的是图片文件夹,Change Save Dir设置的是标签文件夹。
- 在软件菜单栏的View中,选择Auto Saving和Single Class Mode,这样的话就不必每张图都点确认保存,同时我们每一轮只标注一种类别,这样会大大减少选择多标签的过程。
- 基本的快捷键:W- 绘制矩形框; A-前一张图片; D-后一张图片;
等到绘制完成,我们得到两个文件夹,一个是图片文件夹,一个是包含对应名称的标签xml文件夹;
例如:
|–dataset
|------Images
|------Labels
2.树莓派端环境准备
2.0连接树莓派
方便高速地用网线有线树莓派连接电脑,
参考我这个博客:树莓派有线SSH连接电脑(PC开发+树莓派调试+管理文件)
2.1检查默认Python版本
为了统一后续的操作,先看一下自己的树莓派默认的python版本。如果是2.x版本,改成3比较好一点,不改的话后面统一用python3命令也未尝不可。
如果这个树莓派还有其他乱七八糟的用途,最好装个miniconda来创建虚拟环境。
2.2安装TFLite
虽然现在社区热度上Pytorch占优,但是对于部署应用,TF还是比较有优势的。这部分参考的是Tensorflow官网参考文档。树莓派快速部署TFlite (直接看我节就行)
值得一提的坑是,如果你看的是中文版文档,大概率已经很久没更新了,我在写这篇文章的时候英文指导已经到2.5版本,而中文文档还让你安装2.1版本。对于TFlite来说,安装版本还是比较重要的,因为Tensorflow光卷积这个算子就有很多个版本,如果Tflite版本低了,可能跑不起来你的训练的模型。
安装就一行代码:
pip install xxxxxx.whl
这里的whl文件,在这个网站tflite/Release里面找。
要安装tflite_runtime 开头,armv7l(树莓派4的处理器架构)结尾的
例如:tflite_runtime-2.5.0-cp36-cp36m-linux_armv7l.whl 就是tflite2.5,python版本3.6的,armv7架构。
2.3下载示例并且测试是否能运行
在根目录下,git TFlite提供的demo:
git clone https://github.com/tensorflow/examples --depth 1
测试:
cd examples/lite/examples/object_detection/raspberry_pi
# 下载已经训练好的coco模型到/tmp文件夹,也可改成固定文件夹
bash download.sh /tmp
# 运行
python3 detect_picamera.py \
--model /tmp/detect.tflite \
--labels /tmp/coco_labels.txt
3. 训练自己的模型
4. 模型的转换和量化
结果
在树莓派4B上目前能跑个4 FPS左右(注意!没有用什么Movidus或者Coral加速器哦)
效果视频如下:
版权声明:本文为CSDN博主「PeilinWu99」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_22945165/article/details/114393592
暂无评论