计算机视觉各领域前沿算法积累

2023-11-01

目录

一、目标检测

1、SSD

  github链接。作者复现的SSD算法,该项目很容易上手,通过修改一些参数就可以很快获得一个性能优异的检测模型。

2、PaddleDetection

  github链接。飞桨推出的PaddleDetection是端到端目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的训练、精度速度优化到部署全流程。PaddleDetection以模块化的设计实现了多种主流目标检测算法,并且提供了丰富的数据增强、网络组件、损失函数等模块,集成了模型压缩和跨平台高性能部署能力。目前基于PaddleDetection已经完成落地的项目涉及工业质检、遥感图像检测、无人巡检等多个领域。

  • 模型丰富:PaddleDetection提供了丰富的模型,包含目标检测、实例分割、人脸检测等100+个预训练模型,涵盖多种数据集竞赛冠军方案、适合云端/边缘端设备部署的检测方案。
  • 易部署:PaddleDetection的模型中使用的核心算子均通过C++或CUDA实现,同时基于PaddlePaddle的高性能推理引擎可以方便地部署在多种硬件平台上。
  • 高灵活度:PaddleDetection通过模块化设计来解耦各个组件,基于配置文件可以轻松地搭建各种检测模型。
  • 高性能:基于PaddlePaddle框架的高性能内核,在模型训练速度、显存占用上有一定的优势。例如,YOLOv3的训练速度快于其他框架,在Tesla V100 16GB环境下,Mask-RCNN(ResNet50)可以单卡Batch Size可以达到4 (甚至到5)。

3、mmdetection

  github链接。MMDetection是一个基于PyTorch的开源对象检测工具箱。

  • 模块化设计:我们将检测框架分解成不同的组件,通过组合不同的模块可以很容易地构建一个定制的目标检测框架。
  • 支持多个现成的框架:工具箱直接支持流行的和当代的检测框架,例如更快的RCNN、掩码RCNN、RetinaNet等。
  • 高效率:所有基本的bbox和mask操作都在gpu上运行。训练速度快于或可与其他代码库相媲美,包括Detectron2、maskrcnn
    benchmark和simpledt。
  • state-of-art:这个工具箱源于MMDet团队开发的代码库,他们在2018年赢得了COCO检测挑战赛,我们一直在推动它的发展。

4、mediapipe

  github链接。MediaPipe是研究人员和开发人员为移动、桌面/云、web和物联网设备构建世界级ML解决方案和应用程序的最简单方法。该项目具体包含多个性能优异的算法,具体包括人脸检测、人脸网格化、手部关键点检测和跟踪、头发分割、目标跟踪、3D目标检测和模板匹配等任务

二、单目标跟踪

1、pytracking

  github链接。pytracking是一个基于PyTorch的视频对象跟踪和分割通用python框架。当前支持PrDiMP、DiMP、ATOM、ECO等多个性能优异的目标跟踪方法。

2、pysot

  github链接。PySOT是由SenseTime视频智能研究团队设计的软件系统。它实现了最先进的单目标跟踪算法,包括SiamRPN和SiamMask。它是用Python编写的,由PyTorch深度学习框架提供支持。该项目还包含一个用于评估跟踪程序的工具箱的Python端口。pysot中已经包含了SiamRPN、DaSiamRPN、SiamRPN++和SiamMask等多个性能优异的跟踪算法。

3、SiamMask

  github链接。SiamMask算法可以同时完成视频中目标的跟踪和分割任务,具有较好的效果。

4、siammask_e

  github链接。该算法是在SiamMask算法的基础上增加了旋转矩形框,从而进一步提升了SiamMask算法的精度。

5、AlphaVideo

  github链接AlphaVideo是一个基于Pythorch的开源视频理解工具箱,涵盖多目标跟踪和动作检测。在AlphaVideo中,我们发布了第一个单级多目标跟踪(MOT)系统TubeTK,在MOT-16和MOT-17上分别达到66.9mota和63 MOTA。对于动作检测,我们发布了一个高效的模型AlphAction,这是第一个在AVA数据集上实现单模型30+mAP(32.4map)的开源项目。

6、Deep-Learning-for-Tracking-and-Detection

  github链接。 检测和跟踪算法汇总。

三、人像检索

1、faiss

  github链接。Faiss是一个高效的相似性搜索和密集向量聚类库。它包含的算法可以搜索任意大小的向量集,最多可以搜索不适合RAM的向量集。它还包含用于计算和参数调整的支持代码。Faiss用C++编写,带有Python/NuMPy的完整包装。一些最有用的算法是在GPU上实现的。它是由Facebook人工智能研究开发的。

2、HNSW

  github链接。Hierarchical Navigable Small World Graph for fast ANN search

四、语义分割

1、paddleSeg

  github链接。PaddleSeg是基于PaddlePaddle开发的端到端图像分割开发套件,覆盖了DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN等主流分割网络。通过模块化的设计,以配置化方式驱动模型组合,帮助开发者更便捷地完成从训练到部署的全流程图像分割应用。它的核心优势是使用起来特别简单,能够快速帮你完成模型的训练和部署,大力推荐。

五、文本检测与识别

1、PaddleOCR

  github链接。PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。

  • 超轻量级中文OCR,总模型仅8.6M
  • 单模型支持中英文数字组合识别、竖排文本识别、长文本识别
  • 检测模型DB(4.1M)+识别模型CRNN(4.5M)
  • 多种文本检测训练算法,EAST、DB
  • 多种文本识别训练算法,Rosetta、CRNN、STAR-Net、RARE

2、DB

  github链接-论文。DB是一个性能优异的文本检测算法,该算法的核心优势是速度比较快,可以结合CRNN等多种文本识别算法使用。

3、tr

  github链接。tr是一款针对扫描文档的离线文本识别SDK,核心代码全部采用C++开发,并提供Python接口。

4、charnet

  github链接。charnet是一个文本检测和识别算法,该算法可以同时完成文本的检测和文本的识别。比较遗憾的是只有测试代码。没有训练代码。另外,该算法的运行速度比较慢。

5、Vedastr

  github链接。Vedastr是一个基于PyTorch的开源场景文本识别工具箱。为了支持场景文本识别任务的快速实现和评估,设计了灵活的场景文本识别系统。该工具具有如下的特性:

  • 模块化设计-我们将场景文本识别框架分解成不同的组件,通过组合不同的模块,可以方便地构建一个定制的场景文本识别框架。
  • 灵活性-Vedastr足够灵活,能够轻松地更改模块内的组件。
  • 模块扩展性-你可以很容易将一个新模块集成到vedastr项目中。
  • 支持多种框架-该工具箱支持几种流行的场景文本识别框架,如CRNN,TPS ResNet BiLSTM Attention,Transformer。
  • 高精度-我们在深度文本识别基准中重新实现了最佳模型,得到了较好的平均准确率。此外,我们实现了一个简单的基线(ResNet-FC),性能是可以接受的。

六、人像抠图

1、PortraitNet

  github链接。PortraitNet是一个人像抠图算法,它是一种在移动设备上高效运行的实时人像分割模型,称为人像网。肖像网是基于一个轻量级的U形架构,在训练阶段有两个辅助损失,而肖像推理在测试阶段不需要额外的成本。

七、模型压缩

1、TVM

  github链接。 TVM是用于深度学习系统的编译器堆栈。它旨在缩小以生产率为中心的深度学习框架与以性能和效率为中心的硬件后端之间的差距。TVM与深度学习框架一起工作,为不同的后端提供端到端的编译。

2、Glow

  github链接。Glow是一个用于硬件加速器的机器学习编译器和执行引擎。它被设计成用作高级机器学习框架的后端。编译器的设计允许最先进的编译器优化和神经网络图的代码生成。

3、Tengine

  github链接。Tengine由开放人工智能实验室开发,是开放人工智能实验室推出的面向人工智能场景的人工智能应用开发平台,致力于解决人工智能产业链的碎片化问题,加速人工智能产业化的落地。Tengine是专门为AIoT场景设计的,它具有跨平台、异构调度、芯片底层加速、超轻量化和独立性、完整的开发部署工具链等特点。Tengine兼容多种操作系统和深度学习算法框架,简化和加速了面向场景的人工智能算法在嵌入式边缘设备上的快速迁移,以及实际应用部署。

八、人体位姿估计

1、openpose

  github链接。OpenPose代表了第一个在单个图像上联合检测人体、手、面部和脚关键点(总共135个关键点)的实时多人系统。该算法的优点是精度比较高,使用起来比较简单;缺点是速度比较慢,并不能直接应用到一些嵌入式设备中。

2、PPN

  github链接-论文。PPN是一个快速、实时的人体位姿识别算法,该算法的核心优势是经过优化后可以实时的运行在嵌入式设备中,缺点是精度比较低,需要进行特定的优化。

3、Lightweight OpenPose

  github链接-论文。该算法是针对openpose算法的速度二提出来的改进算法,该算法使用MobileNet代替原始的ResNet基准网络,在Core i7-6850K CPU上面获得26fps的运行速度,接近实时。

九、车牌识别

1、openalpr

  github链接。openalpr是一个开源的C++自动识别板库,用C++语言编写,用C语言编写,javaNode.js节点,Go和Python。图书馆分析图像和视频流以识别车牌。输出是任何车牌字符的文本表示。

2、mobile-lpr

  github链接。Mobile-LPR 是一个面向移动端的准商业级车牌识别库,以NCNN作为推理后端,使用DNN作为算法核心,支持多种车牌检测算法,支持车牌识别和车牌颜色识别。

  • 超轻量,核心库只依赖NCNN,并且对模型量化进行支持
  • 多检测,支持SSD,MTCNN,LFFD等目标检测算法
  • 精度高,LFFD目标检测在CCPD检测AP达到98.9,车牌识别达到99.95%, 综合识别率超过99%
  • 易使用,只需要10行代码即可完成车牌识别
  • 易扩展,可快速扩展各类检测算法
    在这里插入图片描述

十、目标分类

1、PaddleClas

  github链接。飞桨图像分类套件PaddleClas是飞桨为工业界和学术界所准备的一个图像分类任务的工具集,助力使用者训练出更好的视觉模型和应用落地。
在这里插入图片描述

十一、人脸网格化

1、PRNet

  github链接。PRNet是一个基于位置图回归网络的三维人脸重建与密集对齐算法。

  • 该方法绕过3DMM拟合,直接从单个图像中回归出三维人脸结构和密集对齐。
  • 通过对位置图进行多任务回归,可以得到具有语义的三维几何图形。因此,我们可以轻松地完成密集对齐、单目三维人脸重建、姿态估计等任务。
  • 比实时速度快的方法可以运行在超过100fps(与GTX 1080)的位置图回归。
  • 在无约束条件下对人脸图像进行鲁棒性测试。我们的方法对姿态、光照和遮挡都是稳健的。
    在这里插入图片描述

2、mediapipe

  github链接。MediaPipe是研究人员和开发人员为移动、桌面/云、web和物联网设备构建世界级ML解决方案和应用程序的最简单方法。该项目具体包含多个性能优异的算法,具体包括人脸检测、人脸网格化、手部关键点检测和跟踪、头发分割、目标跟踪、3D目标检测和模板匹配等任务
在这里插入图片描述

十二、多目标跟踪

1、Towards-Realtime-MOT

  github链接。这个repo是联合检测和嵌入(JDE)模型的一个代码库。JDE是一种快速、高性能的多目标跟踪器,它在共享神经网络中同时学习目标检测任务和外观嵌入任务。技术细节在我们的arXiv预印本中有描述。通过使用此回购协议,您可以简单地在MOT-16 challenge的“私有”协议上实现MOTA 64%+,并以22~38 FPS的近乎实时速度(请注意,此速度适用于整个系统,包括检测步骤!)。

2、CenterTrack

  github链接。CenterTrack是一个多目标跟踪算法,该算法将目标跟踪转换为点跟踪问题,使用CenterNet作为目标检测器,使用贪婪匹配算法来进行目标关联,取得了较大的性能提升。
在这里插入图片描述

3、FairMOT

  github链接-论文链接。FairMOT是一个简单的one-shot多目标跟踪算法,该算法使用一个网络同时完成了 目标检测和REID任务。论文使用Anchor-free的目标检测算法,重点解决了基于Anchor-based所带来的中心坐标点不对齐大的问题。
在这里插入图片描述

十三、人像抠图

1、Background-Matting

  github链接。这是CVPR2020会议上提出的一个人像抠图算法,该算法具有很惊艳的分割效果,值得仔细研究和学习。
在这里插入图片描述

十四、3D检测

1、OpenPCDet

  github链接。OpenPCDet是一个基于LiDAR的3D场景感知的开源项目。目前主要由OpenPCDet工具箱组成,用于点云三维目标检测。OpenPCDet是一个通用的基于PyTorch的点云三维物体检测代码库。它目前支持多种最先进的3D对象检测方法,单阶段和双阶段3D检测框架都有高度重构的代码。
在这里插入图片描述

十五、Re-ID

1、Torchreid

  github链接。这是一个基于Pytorch的Re-ID库。该工具具有如下的特点:

  • 支持多GPU训练
  • 同时支持图像和视频reiid
  • 端到端训练和评估
  • 多数据集训练
  • 跨数据集评估
  • 高度可扩展(易于添加模型、数据集、培训方法等)
  • 最先进的deep reid模型的实现
  • 使用预先训练过的reid模型
  • 高级训练技术
  • 可视化工具(tensorboard、ranks等)

2、fast-reid

  github链接。FastReID 平台已经成为京东人工智能研究(JD AI Research)的开源项目之一,它是面向学术界和工业界的研究/开源项目,主要用于研究和应用落地。该工具具有如下的特点:

  • 基于 FastReID,我们在多个 ReID 任务都获得非常不错的性能,并且用于业务线中,包括行人 ReID、Occluded/Partial 行人 ReID、跨域行人 ReID 和车辆 ReID。
  • 在模型评估上我们实现了更多的功能,比如我们支持比较灵活的测试方式,通过下面的命令可以实现在 Market1501 和 MSMT17 上联合训练,然后在 Market1501 和 DukeMTMC 上进行测试。
  • 大多数的库都只关注学术界做 research,我们更希望能够产学研结合,research 中 work 的东西能够快速到实际场景中去验证效果,发现实际中真正需要解决的问题。 当然在实际研究中可以天马行空去写代码,但是这份代码无法快速地在实际场景中去验证,如果基于 FastReID 去重构和开发,那么我们就能够找到新方法所需要的最小代码实现,就能够很轻易地移植到实际业务中,也不用把大量的时间花在对齐训练逻辑以及预处理上了。

十六、车道线检测

1、Ultra-Fast-Lane-Detection

  github链接。该算法不仅速度比较快,而且精度比较高,简单上手。
在这里插入图片描述

十七、人体位姿跟踪

1、lighttrack

  github链接。该算法是一个通用的top-down格式的人体位姿跟踪框架,该框架同时完成人体检测、人体跟踪、人体位姿估计等多个问题,在posetrack数据集上面取得了良好的效果。
在这里插入图片描述

2、PoseFlow

  github链接。该算法是一个高效的位姿跟踪算法,该算法需要配合AlphaPose算法来完成,具体的效果如下所示。
在这里插入图片描述

3、DetectAndTrack

  github链接。该算法是一个基于视频的高效位姿估计算法,获得了ICCV2017 PoseTrack挑战赛的第一名。
在这里插入图片描述

注意事项

[1] 如果您对AI、自动驾驶、AR、ChatGPT等技术感兴趣,欢迎关注我的微信公众号“AI产品汇”,有问题可以在公众号中私聊我!
[2] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注.
[3] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
[4] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
[5] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊,备注“项目”!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机视觉各领域前沿算法积累 的相关文章

随机推荐

  • 自定义CMD命令

    1 首先我们要创建一个自定义命令名 bat文件 例如 music bat 2 写入需要执行的命令 保存退出 例如 软件所在的绝对路径 3 键入win R 输入sysdm cpl 4 打开高级 gt 环境变量 gt 系统变量 gt Path
  • python的inspect模块

    http www cnblogs com walkerwang archive 2011 08 03 2125903 html 简介 发现python有个好用的检查模块 inspect 查看源文件发现它提供了不少好用的方法 Here are
  • Proteus中的继电器在哪里

    今天做仿真时候 用到了继电器 但是电路搭建好后发现怎么继电器上电不动作 发现是继电器选错了 然后找了一个最常用的继电器来用一试成功 所以就分享一下Proteus中的继电器在哪里 如图所示 我们先点一下第一步的元器件标志 然后在点一下旁边的标
  • 第三方软件测试环境搭建步骤流程

    在软件测试流程及各项环节中 不可避免的要进行测试环境的搭建 测试环境与开发环境不一样 比如说你要对APP进行功能测试或者性能测试 那就要模拟用户在使用APP时候的真实场景 客户会进行什么样的操作 所以测试环境需要尽可能的贴近真实环境进行 那
  • 智能优化与机器学习结合算法实现数据预测matlab代码清单

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 信号处理 图像
  • pandas中drop()函数用法

    函数定义 DataFrame drop labels None axis 0 index None columns None inplace False 删除单个行 import pandas as pd import numpy as n
  • 硬件第一节 三级管电路工作原理及详解

    文章目录 一 三极管辨认 1 1 辨认bce边 1 2 三极管工作状态 1 2 1放大状态 1 2 2 截止状态 1 2 3 饱和状态 二 三极管使用 2 1 三极管作为开关管 三 三极管选型 3 1 参数 3 2 常用三极管参数整理 一
  • rm刷新了我的认知

    大家好 我是良许 创建 删除和修改文件是用户在 Linux 系统中执行的非常常见操作 大家都知道 在 Linux 系统里使用 rm 命令删除单个文件时 几乎一瞬间就完成了 但是如果文件数量很大 那么删除操作就需要很长时间才能完成 你有没想过
  • mdl格式是什么软件生成的_【原创】slx文件与mdl文件的差别

    slx文件是二进制格式文件 mdl文件是文本格式文件 早期Simulink的模型文件为mdl格式 slx格式在Matlab Simulink R2012a版本中引入 旨在取代以前的mdl格式 由于slx被压缩 通常文件大小会比相同的mdl文
  • 2023跨年烟花(浪漫烟花+自定义音乐+雪花飘飘+自定义文字)

    效果 介绍 可以自定义跨年文字 可自定义更换背景音乐 具有雪花效果 项目文件index html gameCanvas 4 0 js script js index html文件
  • SQL select into from 和 insert into from 语句

    在刷笔试题的时候看到一个表的复制的问题 以前没见过 写一下 用于创建表的备份复件 复制表 两条SQL语句 1 insert into tableName2 column name1 column name2 select column na
  • >> << & 操作符总结

    lt lt 符号 扩大多少倍 Integer num 16 num num lt lt 2 System out println num gt gt gt gt gt num gt gt 符号 缩小多少倍 Integer num 16 nu
  • 沈师 PTA 数据库题目及部分解析 第五章

    判断题 1 当主外健不能保证参照完整性和数据一致性时 还可以选择触发器来实现 T 2 域完整性是保证数据完整性的重要约束之一 T 3 当用户违反了参照完整性时 DBMS会采取一些策略加以处理 包括拒绝 级联操作和设置为空值 T 4 参照完整
  • m1 mac安装docker、k8s(成功案例)

    m1 mac安装docker k8s 成功案例 一 安装docker 二 安装kubernetes ps 系统 macos 12 monterey 一 安装docker 1 先要清理旧数据 讲道理这一步重不重要我还真没试过 毕竟在docke
  • 问题 C: 销售排行榜

    题目描述 你的任务是帮助淘宝网店店长整理销售数据 根据累计的销售记录 将所有商品按销售数量降序排列 输入 输入包括多行数据 行数小于100000 每行数据包括4个信息 分别是商品名称 销售数量 单价 成交日期 商品名称由小写字母组成 且不超
  • Android JNI

    选择你的到处路径和名称JAR file 直接Finish 这样的jar包里面只包括编译后的AdMob class 很小很干净 然后打开羽化的Unity工程AdMobTest File gt Open Project 双击UnityAdMob
  • Linux下安装ORACLE(一周成果、全是干货!)

    文章目录 一 安装前言 1 闲聊 2 提前知道的事 二 安装准备 1 Linux发行版本 ret hat7 4 更换yum源 传送门 https blog csdn net qq 42956179 article details 10961
  • 学习笔记:MongoDB命令的基础学习,使用springboot实现mongodb视图创建

    学习笔记 MongoDB命令的基础学习 使用springboot实现mongodb视图创建 创建集合 db createCollection my 查看集合 show collections 删除集合 db my drop 插入一条 没有c
  • Python描述符是什么?

    在Python中 通过使用描述符 程序员可以在引用对象属性时定制要完成的工作 接下来我们一起来聊聊Python描述符相关的知识 本质上 描述符是一个类 但它定义了另一个类中属性的访问模式 换句话说 一个类可以将属性管理全权委托给描述符类 描
  • 计算机视觉各领域前沿算法积累

    目录 一 目标检测 1 SSD 2 PaddleDetection 3 mmdetection 4 mediapipe 二 单目标跟踪 1 pytracking 2 pysot 3 SiamMask 4 siammask e 5 Alpha