初体验图像分类模型

简介: 自建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 文字识别
|
25天前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
2月前
|
机器学习/深度学习 数据采集 物联网
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
【机器学习】Google开源大模型Gemma2:原理、微调训练及推理部署实战
72 0
|
4月前
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的安全帽目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的安全帽目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
4月前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的西红柿成熟度检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的西红柿成熟度检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
4月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
|
4月前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的葡萄簇目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的葡萄簇目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
使用Huggingface创建大语言模型RLHF训练流程的完整教程
ChatGPT已经成为家喻户晓的名字,而大语言模型在ChatGPT刺激下也得到了快速发展,这使得我们可以基于这些技术来改进我们的业务。
331 2
|
5月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
189 1
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch搭建卷积神经网络(CNN)进行视频行为识别(附源码和数据集)
PyTorch搭建卷积神经网络(CNN)进行视频行为识别(附源码和数据集)
133 0
下一篇
无影云桌面