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

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

目录
打赏
0
0
1
0
691
分享
相关文章
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
100 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
近端策略优化(PPO)算法的理论基础与PyTorch代码详解
近端策略优化(PPO)是深度强化学习中高效的策略优化方法,广泛应用于大语言模型的RLHF训练。PPO通过引入策略更新约束机制,平衡了更新幅度,提升了训练稳定性。其核心思想是在优势演员-评论家方法的基础上,采用裁剪和非裁剪项组成的替代目标函数,限制策略比率在[1-ϵ, 1+ϵ]区间内,防止过大的策略更新。本文详细探讨了PPO的基本原理、损失函数设计及PyTorch实现流程,提供了完整的代码示例。
475 10
近端策略优化(PPO)算法的理论基础与PyTorch代码详解
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
117 1
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
130 2

热门文章

最新文章