以深度学习为基础的人工智能发展迅速,越来越多的检测、识别模型出现,但这些都只能运行在服务器端,使用中只能通过前端获取图像视频数据,通过网络传输数据信息到服务器,服务器处理完毕再返回结果到前端展示。而在真实场景我们对实时性要求更高,因此需要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的实验看,其表现效果较好,比ssd-mobilenet网络要好,本作者目前在使用TensorFlow object detect api中的ssd-mobilenetv2网络做移动端目标检测,发现其pb文件大小17.8m,单张图片目标检测前向传播时间约为0.32s好像。也在尝试pelee网络,目前在进行训练。
现在怕不急待的想实验一下该网络,然后在深究其详细设计。
本人试跑了其TensorFlow实现。
1、下载代码:git clone git@github.com: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走了修改,后续等模型训练完给大家将如何预测并训练自己的数据。
喜欢的朋友可以关注或者留言哦,随时回复,希望带大家一起学习人工智能,走向人生巅峰。
本文暂时没有评论,来添加一个吧(●'◡'●)