首页 > 其他分享 >基于MobileNet的图像分割模型

基于MobileNet的图像分割模型

时间:2023-09-01 15:33:54浏览次数:34  
标签:分割 训练 MobileNet 卷积 模型 图像 numpy

整体架构流程

  1. 数据处理
  2. 模型构建以及模型训练
  3. 模型测试
  4. Intel One API使用

数据处理

cityscapes-dataset是一个用于计算机视觉领域的数据集,主要用于场景理解和自动驾驶等任务。该数据集包含来自德国50个城市的街景图像,其中包括高分辨率图像、标注图像和相机参数。标注图像包括像素级别的注释,如道路、建筑物、行人、车辆等。这些数据可以帮助研究人员和工程师训练和测试计算机视觉模型,以提高自动驾驶和场景理解的准确性和效率。

图像文件包括:

数据集包含高分辨率的彩色图像文件,格式为png,大小为1024x2048像素。

标注文件包括:

数据集中的标注文件也是png格式,大小和图像文件相同,但是每个像素都被标记为特定的类别,如道路、建筑物、行人、车辆

其他文件:

数据集还包括其他元数据,如城市名称、图像拍摄日期和时间等

 

 模型构建以及训练

 模型介绍

MobileNet是一种轻量级的深度神经网络模型,它的设计目的是为了在计算资源有限的移动设备上实现高效的图像分类和对象检测。它采用了深度可分离卷积(Depthwise Separable Convolutional)的设计,将标准卷积操作分解成深度卷积和逐点卷积两个单独的操作,从而大幅减少了模型的参数数量和计算量。这种设计不仅提高了模型的计算速度和存储效率,还能够有效地减少过拟合的风险。

 MobileNet可以在不损失精度的情况下将模型的大小和计算复杂度减少到原来的一半甚至更小,因此被广泛应用于嵌入式设备、智能手机、智能摄像头和无人驾驶等领域。同时,基于MobileNet的各种衍生模型也在各种应用场景中得到了广泛的应用和验证,比如MobileNetV2、ShuffleNet、EfficientNet等。

 模型训练

模型参数数量级:MobileNet v1模型的参数数量大约为4.2 million,MobileNet v2模型的参数数量大约为3.4 million。

 

架构:MobileNet是一种卷积神经网络架构,由深度可分离卷积层和全局平均池化层组成。它可以通过调整不同层的深度和宽度来平衡模型的速度和准确性。

 

可运用预训练模型:MobileNet的预训练模型可以在大规模图像数据集上进行训练,并在各种计算机视觉任务中进行微调。

 

模型测试

基于MobileNet的图像分割模型_卷积

基于MobileNet的图像分割模型_ci_02

基于MobileNet的图像分割模型_ci_03

基于MobileNet的图像分割模型_卷积_04

Intel One API使用

本项目中我广泛使用Intel® Distribution for Python:通过使用Intel Distribution for Python中的优化工具,例如NumPy和SciPy,可以加速PyTorch*中的数据处理和其他操作。

这里贴一个使用实例:


```python

import torch

import numpy as np

from scipy import signal

 

# Create a random tensor of size 1000 x 1000

x = torch.rand(1000, 1000)

 

# Convert the tensor to a numpy array

x_np = x.numpy()

 

# Apply a 2D Gaussian filter to the numpy array using SciPy

kernel = np.outer(signal.gaussian(100, std=20), signal.gaussian(100, std=20))

y_np = signal.convolve2d(x_np, kernel, mode='same')


# Convert the numpy array back to a tensor

y = torch.from_numpy(y_np)

 

# Print the result

print(y)

```


小结

该项目创新的使用了MobileNet和One API相结合,对Cityscapes数据集进行了分割模型的训练和测试,在各种场景下也能有不错的效果;

 需要改进的就是模型的精度可以上升,受制于设备和训练时间的缘故,物体边缘的轮廓还不够清晰。

标签:分割,训练,MobileNet,卷积,模型,图像,numpy
From: https://blog.51cto.com/u_11876371/7323540

相关文章

  • Lnton羚通视频分析算法平台OpenCV-Python教程 图像变换(频域变换)
     频域变换是一种将信号从时间域表示转换为频率域表示的方法。它可以帮助我们理解信号的频率成分以及进行信号处理和分析。常见的频域变换方法包括傅里叶变换(FourierTransform)和离散傅里叶变换(DiscreteFourierTransform,DFT)。以下是它们的简要介绍:傅里叶变换(FourierTransform):......
  • 【转】对神经网络与图像识别的好奇
    虽然我是个学Java的,但是今天看到人工智能的图像识别系统,不得不让我感到震惊与好奇,我学编程有两大爱好,一就是搞出个自己的大的系统,二就是研究AI,但是两者不能并肩,不然学的东西太多了。但是作为了解我推荐下下面的关于图像分析类的论文阅读:[论文阅读]WhenDoesLabelSmoothingHelp?......
  • C语言 字符串分割
    一、简述    记--字符串分割,strtok()函数的使用例子、自己简单实现split()函数。 二、例子代码 #include<stdio.h>#include<string.h> /* *函数:split *描述:按指定分隔符分割字符串 *参数: *str:要分割的字符串 *strLen:要分割的字符串的长......
  • python字符串内容分割
    分隔主要涉及到split,rsplit,splitlines,partition和rpartition五个方法。split以指定字符串为分隔符切片,如果maxsplit有指定值,则仅分隔maxsplit+1个子字符串。返回的结果是一个列表。没有指定分隔符,默认使用空格,换行等空白字符进行分隔char="hello\nworld"result=c......
  • 浅谈图像格式 .bmp
     云无月.NET/Unity3D/Python  位图(Bitmap)格式其实并不能说是一种很常见的格式(从我们日常的使用频率上来讲,远不如.jpg.png.gif等),因为其数据没有经过压缩,或最多只采用行程长度编码(RLE,run-lengthencoding)来进行轻度的无损数据压缩。以至于,LaTeX......
  • C4D Octane2023渲染设置及图像输出问题
    含阴影的透明png图含阴影的透明PNG图就要用到Octane渲染器做无缝背景方面的知识了,需要增加下面2步:01、场景里添加一个平面,调整平面大小使阴影全部呈现在平面上,平面位置刚好贴在对象下面。02、新建个oc漫射材质球,勾选材质通道公用里的阴影捕捉(OC3.07的版本叫蒙版),把材质球给到......
  • PACS/RIS系统源码,支持多种图像处理及三维重建功能
    PACS部分主要提供医学影像获取、影像信息网络传递、大容量数据存储、影像显示和处理、影像打印等功能。RIS主要提供分诊登记、叫号、检查报告生成和打印等功能。影像存储与传输系统将二者进行无缝对接,提供了一个完整的集患者登记、图像采集、图像存储、报告产生的影像检查诊疗业务......
  • 生成对抗网络(GAN):在图像生成和修复中的应用
    文章目录什么是生成对抗网络(GAN)?GAN在图像生成中的应用图像生成风格迁移GAN在图像修复中的应用图像修复拓展应用领域总结......
  • numpy转pillow图像报错TypeError: Cannot handle this data type: (1, 1, 134), <f4 Ty
    报错TypeError:Cannothandlethisdatatype:(1,1,134),<f4,我猜你很可能是在将array数据转换成图片,使用的是函数Image.fromarray()而这个函数处理的是uint8类型,所以你可以使用:print(image.dtype)查看数据类型,不是uint8格式就转换成uint8:Image.fromarray(np.uint8(ima......
  • 图像处理与分析编程实践
      日期2022-10-29  打开图像,显示图像,灰度化,二值化,存储图像,缩放图像,观察其分辨率,降低灰度分辨率两种模式,观察图像变化;原图,像素尺寸:700x350  如见显示图像,效果图如下:  灰度化后得到的图片如下:  二值化后得到图片如下:  图片放大10倍后,得到的图片局部如下:  图片缩小1......