IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> (十二)通过Opencv blobFromImage实现数据标准化 -> 正文阅读

[人工智能](十二)通过Opencv blobFromImage实现数据标准化


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


1.blobFromImage

Mat cv::dnn::blobFromImage	(	
    InputArray 	image,
    double 	scalefactor = 1.0,
    const Size & 	size = Size(),
    const Scalar & 	mean = Scalar(),
    bool 	swapRB = false,
    bool 	crop = false,
    int 	ddepth = CV_32F 
)	

OpenCV中的DNN模块包含blobFromImage方法对输入神经网络的图像进行处理,blobFromImage函数执行的操作及顺序为:

  • 1.先相对于原图像中心resize,crop
  • 2.再减均值
  • 3.像素值缩放0-255 -> 0-1
  • 4.图像数据通道转换,RGB->BGR
  • 返回一个NCHW 数组

2.与torchvision对比

torchvision中可以使用transforms实现输入圣经网络图像数据的标准化,主要通过ToTensorNormalize两个方法实现

ToTensor

  • 输入为unit8型的numpy数组或PIL.Image
  • 1.输入数据的transpose,HWC->CHW
  • 2.将像素值范围从0-255->0-1

Normalize

  • 输入的标准化 x ? m e a n s t d \frac{x-mean}{std} stdx?mean?

3.示例

通过一段简单的程序介绍cv2.dnn.blobFromImage执行的操作与torchvision中的ToTensor+Normalize效果等同

import cv2
import torch
import torchvision
from torchvision import transforms
import numpy as np
from PIL import Image

dd = np.random.randint(0, 255, (4, 4, 3), dtype=np.uint8)
print(f"dd: {dd}")

print("===>>> by torch")
tt = torch.tensor(dd)
print(f"tt: {tt}")

tp = Image.fromarray(dd)

trans = transforms.Compose([
    transforms.ToTensor(), # HWC->CHW, 0-255-> 0-1
    transforms.Normalize((.5, .5, .5), (1., 1., 1.)) # (x-mwan)/std
])

trans_tt = trans(tp)
print(trans_tt)
print(f"trans_tt.shape: {trans_tt.shape}")


print("===>>> by opencv")
blob = cv2.dnn.blobFromImage(dd, 1/255, (4,4), (127.5, 127.5, 127.5), False, False)
print(f"blob: {blob}")
print(f"blog.shape: {blob.shape}")

上述代码的输出为:

tensor([[[-0.2294,  0.0412, -0.0020, -0.3667],
         [ 0.2020, -0.3078, -0.4373,  0.2373],
         [ 0.2333,  0.3118,  0.4255,  0.0176],
         [-0.3471,  0.1235, -0.3745,  0.3196]],

        [[ 0.4216,  0.3314,  0.4647,  0.4529],
         [ 0.4765,  0.0451, -0.3627,  0.4098],
         [ 0.3196, -0.3275, -0.4020,  0.4569],
         [-0.4255,  0.4216,  0.3980, -0.2882]],

        [[ 0.1314,  0.3392, -0.2098,  0.2686],
         [ 0.4255,  0.3980, -0.4608,  0.0216],
         [ 0.4176,  0.0294,  0.4216, -0.4961],
         [-0.1745, -0.4451,  0.1941,  0.0098]]])
trans_tt.shape: torch.Size([3, 4, 4])
===>>> by opencv
blob: [[[[-0.22941178  0.04117647 -0.00196078 -0.36666667]
   [ 0.2019608  -0.30784315 -0.43725494  0.23725492]
   [ 0.23333335  0.31176472  0.42549023  0.01764706]
   [-0.34705883  0.12352942 -0.3745098   0.31960785]]

  [[ 0.42156866  0.33137256  0.4647059   0.4529412 ]
   [ 0.47647062  0.04509804 -0.3627451   0.40980396]
   [ 0.31960785 -0.327451   -0.40196082  0.45686278]
   [-0.42549023  0.42156866  0.39803925 -0.2882353 ]]

  [[ 0.13137256  0.3392157  -0.20980394  0.26862746]
   [ 0.42549023  0.39803925 -0.46078435  0.02156863]
   [ 0.4176471   0.02941177  0.42156866 -0.49607846]
   [-0.17450981 -0.44509807  0.19411767  0.00980392]]]]
blog.shape: (1, 3, 4, 4)

可见两者的结果是一致的。

参考资料


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:08:38  更:2022-04-29 12:12:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:24:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码