OpenMMLab实训营二期第一节笔记

news/2024/11/8 12:09:17/

OpenMMLab是深度学习视觉算法开源平台,是目前最大最全的开源深度学习视觉算法库,为学术和产业界提供一个可跨方向、结构精良、易复现的统一算法工具库。与NLP领域的HuggingFace类似,我们可以将OpenMMLab理解为CV领域的HuggingFace。
OpenMMLab 已经累计开源了超过 30 个算法库,涵盖分类、检测、分割、视频理解等众多研究领域,拥有超过 300 种算法、2,400 多个预训练模型。在 GitHub 上获得超过 72,000 个标星,同时吸引了超过 1,500 名社区开发者参与项目贡献,用户遍及超过 110 个国家和地区,覆盖全国全球顶尖高校、研究机构和企业。

图像分类

图像分类的名字是MMClassification,但是实际的项目是MMPretrain,可以实现图像分类、图像描述、视觉问答、视觉定位、图像检索(ReID)等功能,收录77个算法共508个预训练模型。典型的算法有:ResNet、EfficientNet、ViT、Swin-Transformer、ConvNeXt等。实际上,在这个项目里,还包括现在比较火热的自监督学习MMSelfsup项目的内容。

物体检测

物体检测分为2D目标检测、3D目标检测、旋转目标检测。

2D物体检测

目前有两个独立的子项目:MMDetection、MMYolo。MMDetection推出效早,实现的算法较丰富,但是至少对Yolo系列算法而言,比较老旧。MMYolo推出较新,仅支持Yolo系列。对于初学者来说,不是太好选择。以我为例,我最终选择了MMYolo中的RTMDet来做目标检测和实例分割。

3D物体检测

MMDetection3D项目主要包括单摄像头、多摄像头、激光雷达点云处理中的3D物体检测和语义分割,偏重于基于点云的检测和分割,如果对点云处理感兴趣,还可以参考OpenPCDet项目。这一块比较遗憾的是没有包括目前在自动驾驶领域比较火爆的BEV类算法,如BEVFormer、MapTR等,希望后面能够添加这方面的内容。

旋转目标检测

MMRotate是针对旋转目标的检测,对于无人机画面的物体检测,检测是否系安全带等情况,使用旋转框进行检测可以更精准的检测出物体,虽然我在Yolo系列算法应用中,针对司机安全带检测,开发了旋转目标检测的功能,但是我在新项目中,还是会使用这个项目,因为他实现的比我的方法要更优雅。

语义分割

MMSegmentation用于实现语义分割,可以实现医疗影像分割,卫星遥感分析,街景分割等(给像素进行分类)。

图像生成

MMMagic是基于GAN的图像生成模型,计算机底层视觉和AIGC算法库,可以实现超分辨率、视频插帧、照片上色、图像填充等功能。比较遗憾的是没有集成Stable Diffusion算法。

关键点检测

关键点检测又叫姿态估计,包括MMPose和MMHuman3D。MMPose用于人脸、人体、动物、服装等检测,MMHuman3D用于人体姿态估计,如运动捕捉、虚拟现实。

动作识别

MMAction2来实现视频动作识别算法库(描述视频动作),进行行为识别、时序动作检测、时空动作检测。

目标跟踪

MMTracking实现单目标和多目标跟踪,可以绘制目标移动轨迹。可以用于无人机、人流量、动物跟踪等领域。比较遗憾的是算法相对较老,较新的算法像ByteTrack等,还没有集成进来。

算法部署

MMDeploy用来将训练好的算法部署到实际的AI硬件上去,通常转为Onnx然后再转为对应平台的离线模型,可以支持市面上主流的AI硬件平台。这一块是之前OpenMMLab比较欠缺的,目前已经补齐了这个短板。不过,像MMYolo项目,目前还是提供了自己的EasyDeploy,用于进行部署,各个项目对MMDeploy的支持程度,还需要进一步加强。

总结

OpenMMLab收集了深度学习CV领域典型算法,可以实现各个模块的个性化替换,如换Backbone等,对于做研究出论文非常方便,同时因为集成了主流算法,可以节省开发团队做各种算法复现和比较择优的工作,是一个比较好的平台,称为CV领域的HuggingFace也不为过。


http://www.ppmy.cn/news/141662.html

相关文章

3D打印机DIY之六------G代码命令

切片软件对模型进行切片后会生成.gcode文件,这就是我们常说的G代码。G代码是用于指导3D打印机怎么动作的文件,其实最主要就是指导打印机的3轴电机和挤出机如何动作,比如某个电机正转多少、速度多少。 3D打印机本质就是gcode的执行器&#xff…

GLSurfaceView 与 SurfaceView 联系与区别

同系列文章: SurfaceView为什么不能做动画? SurfaceViewMediaPlayer实现视频播放 本文目录 笔试题解析有了SurfaceView,为什么还要提供一个GLSurfaceView?SurfaceView有哪些用途? 笔试题解析 下面是属于GLSurfaceView特性的是&a…

ES6-ES13学习笔记(5.0)

ES2022的函数 //findLast findLastIndex() ES2022 发现在电脑自带的联想浏览器不支持此函数,还报错了 对于ECMA的支持还和浏览器有关以及浏览器版本有关,然后我使用Google浏览器就可以正常使用, 1.扩展运算符:三个点... ..…

【QCA6174】QCA6174 DFS认证4.6.2.3 Channel Shutdown信道不跳转及检测不到雷达信号问题分析及解决方案

WIFI DFS测试要求 4.6.2.3 Channel Shutdown ---信道关闭 是指一个设备自检测到雷达信号后,到停止相应的信道传输的过程,包括信道关闭传输时间和信道移除时间。 QCA6174 DFS测试调试指令 setRadar This command is used to inject a fake radar indication to the protoc…

浙江大华后端开发一面面经

目录 1.SpringBuffer和SpringBuilder的区别是什么?2.常用的集合类有哪些?HashMap的底层数据结构?推荐一下线程安全的Map?3.TCP和UDP的差异是什么?4.MySQL的左连接和右连接的区别?5.MySQL慢查询如何排查&…

包含合并单元格的表格快速排序

实例需求:现需要将原料配方成分表按照“原料含量”从高到低排序,如下图所示。由于表格中包含合并单元格,因此Excel的排序功能无法正常。 示例代码如下。 Sub demo()Dim data(), i, idx, k, slstRow Cells(Rows.Count, 2).End(xlUp).RowReDi…

Spring Boot 3.1中如何整合Spring Security和Keycloak

在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器。其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队将不再提供针对Spring Security和Spring Boot的集成方案。但是,如此强大的Keycloak&…

HBase相关的一些基础概念

0 小序 之前面试前司星环的时候,面试官问到HBase那一块的时候直接把我问懵了。上一次使用HBase还是本科的那个图书推荐系统的项目,已经年代久远了,所以今天我特意整理了下HBase相关的知识点。 1 HBase的数据模型 Hbase是以Hdfs为数据存储…