人工智能-轻量级检测网络-Pelee介绍与试跑执行
以深度学习为基础的人工智能发展迅速,越来越多的检测、识别模型出现,但这些都只能执行在服务器端,使用中只能通过前端获取影象视讯资料,通过网络传输资料资讯到服务器,服务器处理完毕再返回结果到前端展示。而在真实场景我们对实时性要求更高,因此需要tflite格式的更加轻量级模型。
今天介绍一下pelee网络,然后教大家如何在本地执行。
论文地址:论文:Pelee: A Real-Time Object Detection System on Mobile Devices
这里介绍了个实现,一个是基于caff-ssd,一个是TensorFlow实现。
Github:https://github.com/Robert-JunWang/Pelee 基于caffe-ssd实现
https://github.com/nnUyi/PeleeNet tensorflow实现
论文是发表在2019年1月18号的32nd Conference on Neural Information Processing Systems (NeurIPS 2018)会议上的。
如下为网络主要结构:网络输入大小为244x244x3,经过5个stage,每个stage进行多次dense block块。和mobilenetv2相识,分为不同步骤。
网络结构
实验结果:pascal voc上的结果如下

如下是引数量大小
模型引数量
如上两图看出,其引数量和现有的ssd、mobilenet相比都有所下降,降低了模型大小,其map达到70.9.
COCO上的实验结果:
coco上的表现结果
从coco的实验看,其表现效果较好,比ssd-mobilenet网络要好,本作者目前在使用TensorFlow object detect api中的ssd-mobilenetv2网络做移动端目标检测,发现其pb档案大小17.8m,单张图片目标检测前向传播时间约为0.32s好像。也在尝试pelee网络,目前在进行训练。
现在怕不急待的想实验一下该网络,然后在深究其详细设计。
本人试跑了其TensorFlow实现。
1、下载程式码:git clone [email protected]:nnUyi/PeleeNet.git
2、由于本人使用python3,因此将其主目录下的cache.py, cifar10.py, dataset.py用python3档案下的档案替换。如果是python2则不用替换。
3、档案主目录下新建data目录,data目录新建cifar10目录。https://www.cs.toronto.edu/~kriz/cifar.html网站下载训练需要的资料集,记得下载CIFAR-10 python version,163M,并将其解压到cifar10目录。
然后执行:
python main.py --batchsize=128
--is_training=True
--is_testing=False
--dataset=cifar10
--input_height=32
--input_width=32
--input_channel=3
--num_class=10
即可训练,如下图:
训练过程
本人在训练过程为了演示将batchsize走了修改,后续等模型训练完给大家将如何预测并训练自己的资料。
喜欢的朋友可以关注或者留言哦,随时回复,希望带大家一起学习人工智能,走向人生巅峰。