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

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包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

相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
25天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
26天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
57 1
|
1月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。
|
1月前
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
|
1月前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。
|
1月前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
1月前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
47 3
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
2月前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?

热门文章

最新文章