YOLOv2-Tiny(修改过)纯tensorflow2实现,支持自定义数据集。
背景
由于最近用到K210单片机,其自带KPU可以加速卷积神经网络的运行,但是由于成本限制,片内RAM不大,对于大型的目标检测网络简直是噩梦。Github上有开源的yolo-for-k210,但是基于tensorflow-1.3实现的,所以我用tensorflow-2.3复现了yolov2-tiny。
此复现在yunyang1994对yolov3的tensorflow2基础上进行。
最终目的是可以使用K210官方工具NNCASE进行量化并转化成K210支持的Kmodel格式。(由于K210支持的op太少,很多用到的tflite的操作不支持,所以此目标暂时未达成)
准备工作
版本
- python-3.7
- Tensorflow-2.3.0-rc0
硬件
- Tesla P100(借用学校服务器,当然也可以用cpu训练)
- CUDA-10.1 cuDNN-7.6
为什么是YOLOv2-Tiny
-
YOLOv2没有多尺度变换,网络结构比较简单,模型较小
-
k210的sipeed-mirco python固件提供运行yolov2的接口,可以方便快速进行部署。
网络结构
不做修改的话对于k210来说还是太大。