前言:
在很多情况下,我们想实现一个模型来跑自己的一个任务,但不得不做很多重复的工作,例如图像预处理,搭建网络,可视化输出,计算推理时间等。
商汤贡献了MMdetection项目, Facebook开源了detectron项目,它们把搭建一个模型所需要的一系列工作进行整合,实现了较为简单的方式去搭建并训练一个模型,但对于想要运行某个模型去完成一个任务来说,它们仍然不够简便。
在本文,将介绍一个更为简单的github项目--Easy Model Zoo(简称EMZ),通过EMZ运行一个模型只需要不到十行代码。
emz 的目标是抽象出所有不需要的东西,如果您只想运行模型,则不需要这些东西。您不感兴趣,如果实际模型是在 Pytorch、Tensorflow 或 Caffee 中实现的。你只是想试试这个模型。您甚至不需要自己下载模型。Emz 将为您下载。
示例代码
from easy_model_zoo import ModelRunner
img_path = 'FULL PATH TO YOUR IMAGE'
device = 'GPU' # or CPU
# Choose a model from the list above
model_runner = ModelRunner('EfficientDet-d0', device)
model_runner.visualize(img_path, predictions)
就这么简单。
EMZ 有一个支持 CPU 或 GPU 推理的标准化 API。添加新模型很容易,只需创建一个新目录和一个从 Model 继承的新模型类。然后实现所有必要的方法。
EMZ还负责可视化预测。目的是不需要编写任何额外的代码。
下面是EMZ的Model 类。
它具有针对不同任务的不同模型的目录。
目前支持的任务有:物体检测、语义分割、实例分割。
随着时间的推移,后续会添加更多任务和更多模型。
下载安装方式
git clone https://github.com/SharifElfouly/easy-model-zoo
cd easy-model-zoo
pip3 install easy_model_zoo-0.2.4-py3-none-any.whl
其他文章
本文来源于公众号CV技术指南的技术总结系列。
在公众号《CV技术指南》中回复“技术总结”可获取以上所有总结系列文章的汇总pdf