初体验图像分类模型

简介: 自建1300类常见物体标签体系,覆盖常见的日用品,动物,植物,家具,设备,食物等物体,标签从海量中文互联网社区语料进行提取,保留了出现频率较高的常见物体名称。模型结构采用最新的ViT-Base结构。

image.png

图像分类模型介绍

自建1300类常见物体标签体系,覆盖常见的日用品,动物,植物,家具,设备,食物等物体,标签从海量中文互联网社区语料进行提取,保留了出现频率较高的常见物体名称。模型结构采用Transformer经典的最新的ViT-Base结构。

ViT模型原理

1、ViT模型首先把图片分成多个patch块,然后组成一个patch块的序列,每个patch块都会经过一个线性投射层。
2、同处理NLP任务一样,patch embedding加上了一个position embedding,即加上位置编码信息。加上位置编码信息的原因是:自注意力是两两之间去做交互,本身不存在一个顺序问题,但对图片而言,图片是一个整体,它的patch序列有自己的顺序,如果顺序颠倒就不再是原来的图片,所以我们加上了位置信息。
3、加上了位置编码信息后整体的token就既包含了patch块原本有的图像信息,也包含了patch所在的位置信息,我们得到一个一个的token后,接下来的处理基本和处理NLP任务一样,直接输入给一个Transformer Encoder,Transformer同样会反馈给我们很多的输出。
4、ViT模型借鉴了BERT模型中的extra learnable embedding,这是一个叫做分类字符的CLS,在ViT模型中也加入了一个特殊字符如下图中线性投射层后面序列第一个0位置的*,这其实就是一个标记符,当然如上述所说,它也有自己的位置信息并且它的位置信息永远是0。那加入特殊字符的原因是什么呢?因为所有的token都在和其他的token做交互信息,所以原文相信class embeddig即那个标记符也能够从其他的embedding中学到有用的信息,然后它最后也有一个输出,并且只需要根据这个特殊字符的输出做出判断就可以。
5、MLP Head 是一个通用的分类头,最后用交叉熵函数去进行模型的训练。

期望模型使用方式以及适用范围

模型适用范围较广,覆盖大部分日常生活常见的物品类目,包括日用品,动物,植物,家具,设备,食物等。也可作为下游任务的预训练backbone

预处理

  • Resize:先将原始图片的短边缩放至256
  • Normalize:图像归一化,减均值除以标准差
  • CenterCrop:裁切为224x224

在线体验

test.jpg
image.png

{
  "Code": 200,
  "Data": {
    "computation_time": "0.06s",
    "data": {
      "labels": [
        "打字机",
        "机械臂",
        "照相机",
        "按钮",
        "打印机"
      ],
      "scores": [
        0.9145427942276001,
        0.00124357920140028,
        0.000988196930848062,
        0.0006824651500210166,
        0.0005695905419997871
      ]
    }
  },
  "Message": "success",
  "RequestId": "63e818c9-4d54-452e-be63-e63fe06c00ed",
  "Success": true
}

找了一张比较物品比较多的图片用来在线测试,对于测试结果还是很准确的,快速正确的识别了图片中的物品。该模型可以广泛的应用于人们的生活。可以帮助人们去解决生活和工作的中的很多问题,比如垃圾分类,安检,等方面,操作简单,方便快捷,可以帮助人们有效的提高工作效率,减少工作失误。

相关文章
|
机器学习/深度学习 JSON 文字识别
|
2月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
2月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
3月前
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
120 0
|
5月前
|
机器学习/深度学习 人工智能 PyTorch
PyTorch快速入门与深度学习模型训练
这篇文章是PyTorch的入门指南,介绍了PyTorch作为深度学习框架的基本概念和使用方法。内容包括PyTorch的背景、基础操作如张量创建、运算、自动微分,以及如何构建和训练简单的全连接神经网络模型进行MNIST手写数字识别。通过这篇文章,读者可以快速了解如何在PyTorch中搭建和训练深度学习模型。
224 4
|
5月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
|
5月前
|
机器学习/深度学习 数据可视化 TensorFlow
【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存
【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存
|
5月前
|
机器学习/深度学习 自然语言处理 PyTorch
【从零开始学习深度学习】48.Pytorch_NLP实战案例:如何使用预训练的词向量模型求近义词和类比词
【从零开始学习深度学习】48.Pytorch_NLP实战案例:如何使用预训练的词向量模型求近义词和类比词
|
6月前
|
机器学习/深度学习 监控 算法
|
6月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
217 1
下一篇
无影云桌面