AdaDet检测工具箱:一行代码玩转检测算法

简介: 当前,非专业算法人员使用众多检测算法时,仍然会面临诸多挑战:第一,检测算法包含多种类型,比如通用检测、垂类检测、人脸检测等,如何快速体验?第二,每个算法类型包含不同的模型结构,有模型可能更注重于精度,有模型更注重于效率,如何选型?第三,当前下游任务的开发样例较少,如何着手开发?为了降低检测算法的使用门槛,我们推出了AdaDet检测工具箱。

AdaDet检测工具箱介绍


当前,非专业算法人员使用众多检测算法时,仍然会面临诸多挑战:

第一,检测算法包含多种类型,比如通用检测、垂类检测、人脸检测等,如何快速体验?


第二,每个算法类型包含不同的模型结构,有模型可能更注重于精度,有模型更注重于效率,如何选型?


第三,当前下游任务的开发样例较少,如何着手开发?


为了降低检测算法的使用门槛,我们推出了AdaDet检测工具箱。


AdaDet检测工具箱是基于ModelScope的一站式检测应用开发工具箱,只需简单的环境配置,即可通过预设的配置文件和一行命令快速调用众多前沿算法模型和搭建场景化的解决方案。


工具箱已经在GitHub上开源,扫码可达。


代码库链接:

https://github.com/modelscope/AdaDet


检测专题介绍页:

https://modelscope.cn/topic/ccc61c5b53c54a65bea14fddd649822f/pub/summary


检测工具箱的主要特性包括:

开箱即用,简单高效,可以大幅降低开发门槛,提升使用效率。

支持大量学术界和工业界的领先模型,涵盖了比如目标跟踪、关键点检测等一系列模型。


工具箱目前支持9大类算法模型,包括通用目标检测、垂类目标、长尾/小目标、人脸检测、OCR、视频目标、2D/3D关键点检测等共33个模型,在工具箱均可一键调用。


另外,支持4个场景化解决方案,分别是人流计数、抽烟检测、闯入检测和美颜滤镜。


上述检测模型和场景化方案都已经预设配置文件模板,也有非常详细的文档参数说明,只需将配置文件作为参数传递给工具箱里的开发工具,即可实现一行命令调用模型和场景化方案。



一行代码玩转检测算法



上图为检测工具箱的代码结构。


其中config是配置文件的文件夹,只需将配置文件里的单模型或者场景化方案对应的配置文件传入到tools文件夹里已经预设好的开发工具,即可一键调用单模型和场景化解决方案。


详细代码比如单模型推理、训练评估, 场景化解决方案的实现细节均在adadet文件夹里,可供用户查看。


本次实战包括:一行代码搭建人流计数场景化解决方案以及一行代码跑通人体检测模型。

首先进行环境配置。只需在Notebook上执行三步,分别为拉取代码、进入文件夹、安装AdaDet包。


AdaDet检测套件GitHub开源仓库下方提供了安装文档,点击链接后,根据详细安装步骤操作即可。


进入Notebook后,可以选择CPU或GPU环境。如果不需要训练,则选择CPU环境即可。


运行Git clone语句,进行代码克隆。克隆完成后,代码会出现在AdaDet文件夹下。然后运行cd AdaDet,进行简单的package安装并运行。运行完成后,log会显示已经安装成功。此时建议再次进行确认,确保检测套件已经安装成功。


接下来进入实战演示。


人流计数场景化解决方案流程为:输入视频,进行行人多目标检测和跟踪,将检测和跟踪结果传入计数模块,输出计数结果。对于该场景化解决方案,也可以通过一行代码(如上图)进行效果体验和效果评测。


GitHub仓库里提供了人流计数场景化解决方案,点击即可体验。


配置文件也只需简单地配置其输入、输出、是否可视化、对于线的规则定义(比如方向、位于视频帧哪个坐标、哪边是线里面、哪边是线外面等),即可通过调用deploy.py函数,将配置文件传入,实现一键跑通。


进入AdaDet目录,复制deploy.py命令,执行。运行完成后会将所有结果返回,也会将结果保存在deploy_res文件夹里。


最后的输出结果在上图文件夹中,包含每一帧多目标跟踪结果、boundingbox和每一个boundingbox的label(ID)、每一帧的计数结果。其中每一帧的计数结果包括有多少人从线的上方往下穿、有多少人从线的下方往上穿。


另外,文件夹内还提供可视化视频下载,核对结果是否符合预期。


调用benchmark.py函数可以进行效率评测。


调用benchmark路径,传入config,即可进行效率评测,结果显示约为50ms左右。


上图为下载的视频展示效果。


人体检测主要依赖DAMOYOLO模型。对于单模型而言,可以进行模型推理,训练和评估两个功能,也可以一键可以跑通,只需调用相应开发工具写好的脚本,将配置文件传入即可进行检测。


首先演示推理评估功能。文档里提供了快速开始命令,调用Infer.py函数,输入模型的config配置文件。配置文件主要包括输入和输出文件路径、需要Infer 的modelID内容、ModelScope的task。


在Notebook里运行,运行完成后会新生成文件夹,将结果和可视化结果进行保存。infer_out文件夹下的JSON文件里保存了输出结果,包括bondingbox的label、每一个检测框分数。


VIS文件夹里保存有可视化结果。


如果模型已经无法满足使用要求,也可以对单模型进行finetune,我们提供了训练评估功能供开发者使用。注意:训练评估功能只能在GPU模式下进行,在CPU环境下无法运行。


针对DamoYOLO模型我们也提供了快速开始命令。调用train.py函数,输入训练DamoYOLO模型的config到接口,接口参数主要分为三部分:

  • 基础模型
  • 数据可以根据AdaDet文档生成符合要求的数据集
  • 训练参数,包括需要训练的GPU ID、batchsize、epochs、learningrate,保存的工作路径


运行代码后,会在AdaDet目录下生成一个workdir目录,目录里保存了每一个epoch的pth、traininglog等。



相关学习资源推荐




AdaDet检测工具箱开源链接:

https://github.com/modelscope/AdaDet


检测专题介绍页:

https://modelscope.cn/topic/ccc61c5b53c54a65bea14fddd649822f/pub/summary

相关文章
|
2月前
|
机器学习/深度学习 运维 算法
大模型开发:描述一种用于异常检测的技术或算法。
LOF算法是一种无监督异常检测技术,通过比较数据点局部密度识别离群点。它计算每个点的局部离群因子得分,得分高则异常可能性大。主要步骤包括:距离度量、k近邻搜索、计算局部可达密度和LOF得分,然后设定阈值识别异常点。适用于入侵检测、故障检测等场景,Python中可使用scikit-learn库实现。
19 1
|
2月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
266 1
|
29天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
2天前
|
机器学习/深度学习 运维 算法
【Python机器学习专栏】异常检测算法在Python中的实践
【4月更文挑战第30天】本文介绍了异常检测的重要性和在不同领域的应用,如欺诈检测和网络安全。文章概述了四种常见异常检测算法:基于统计、距离、密度和模型的方法。在Python实践中,使用scikit-learn库展示了如何实现这些算法,包括正态分布拟合、K-means聚类、局部异常因子(LOF)和孤立森林(Isolation Forest)。通过计算概率密度、距离、LOF值和数据点的平均路径长度来识别异常值。
|
14天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
14天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
15 3
|
14天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
32 1
|
14天前
|
算法
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
24 1
|
15天前
|
算法 数据可视化
R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
14 0
|
16天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
21 0