跳转到主要内容

Python多媒体机器学习的插件算法和数据结构工具包。

项目描述

SMQTK - 核心库

一个轻量级、无侵入式的框架,用于开发具有内置实现发现和简单配置结构工厂构建的接口。

虽然任何东西都可以使用这个库,但这个库最初是作为一系列支持人工智能机器学习用例的基础框架开发的。

  • 可扩展的数据结构接口和实现,重点关注与机器学习相关的描述符、分类和对象检测等。

  • 关注基于媒体功能的机器学习算法的接口和实现。


一些上面提到的支持AI/ML主题的包包括以下内容

  • SMQTK-Dataprovider 提供数据存储和检索的抽象。

  • SMQTK-Image-IO 提供图像读取和写入的接口和实现,这些接口和实现使用了 SMQTK-Dataprovider 中定义的抽象。

  • SMQTK-Descriptors 提供从不同类型的输入数据计算描述符向量的算法和数据结构。

  • SMQTK-Classifier 提供黑盒分类的接口和实现。

  • SMQTK-Detection 提供黑盒对象检测的接口和支持。

  • SMQTK-Indexing 提供高效、大规模索引描述符向量的接口和实现。这些描述符向量的来源可能来自多种来源,如数小时的视频档案。一些提供的实现插件包括 局部敏感哈希 (LSH) 和 FAIR的 FAISS 库。

  • SMQTK-Relevancy 提供使用人工反馈对数据集进行排名的接口和实现。这是交互式查询优化(IQR)系统的一个主要组件,该系统利用人工反馈。

  • SMQTK-IQR 提供执行交互式查询优化(IQR)过程的类和实用程序。此包还包括一个暴露这些工具使用的Web API以及一个示例Web UI服务来演示功能。这些服务还进行容器化,以提供这些服务的可移植性。

这些包之间的关系如下

Dependency Graph

这看起来很像是KWIVER!为什么选择这个而不是KWIVER呢?

KWIVER 是另一个开源包,同样将模块化、插件和可配置性作为其核心。

SMQTK-* 功能套件与KWIVER分开存在,原因有以下几点(目前如此)

  • 历史
    • KWIVER和SMQTK的起源几乎同时开始,并且从未解决为同一件事,原因如下...
  • 语言
    • KWIVER在历史上主要是C++,而SMQTK-*(主要是)是纯Python。(见以下注释)
  • 配置UX
    • SMQTK采用“附加”方法进行可配置性:具体实现具有参数化构造函数,构建后应像“正常”对象一样可用。配置语义是从构造函数的反射和显式相关中派生出来的。KWIVER采用不同的方法,其中构建通常是空的,配置设置是通过自定义对象(ConfigBlock)的单独步骤执行的。
  • Pythonic插件支持
    • 插件通过标准包入口点公开。

如果我使用Python,这意味着SMQTK总是更好的选择吗?

目前不一定。虽然由于SMQTK是具有Python支持的工具包,这曾经是多年的真相,但随着KWIVER不断改进其Python绑定支持,这一点正在变得模糊。

构建文档

文档托管在 ReadTheDocs.io

您还可以在本地构建sphinx文档,以获取最新的参考。

# Install dependencies
poetry install
# Navigate to the documentation root.
cd docs
# Build the docs.
poetry run make html
# Open in your favorite browser!
firefox _build/html/index.html

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

smqtk-core-0.19.0.tar.gz (19.9 kB 查看哈希值)

上传时间 源代码

构建分发

smqtk_core-0.19.0-py3-none-any.whl (18.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持