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

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
简介: 当前,非专业算法人员使用众多检测算法时,仍然会面临诸多挑战:第一,检测算法包含多种类型,比如通用检测、垂类检测、人脸检测等,如何快速体验?第二,每个算法类型包含不同的模型结构,有模型可能更注重于精度,有模型更注重于效率,如何选型?第三,当前下游任务的开发样例较少,如何着手开发?为了降低检测算法的使用门槛,我们推出了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

相关文章
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
9天前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。
|
14天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
21天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
22 3
|
20天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
|
1月前
|
搜索推荐
插入排序算法的讲解和代码
【10月更文挑战第12天】插入排序是一种基础的排序算法,理解和掌握它对于学习其他排序算法以及数据结构都具有重要意义。你可以通过实际操作和分析,进一步深入了解插入排序的特点和应用场景,以便在实际编程中更好地运用它。
|
19天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
1月前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
24天前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
30 0