全国服务热线:

15861139266

卷积神经网络中间层的可视化_台州机器视觉培训_台州上位机培训_台州工业机器人培训
时间:2023-04-04 09:15:28 点击:4659 标签:

卷积神经网络中间层的可视化

1.处理单张图作为网络的输入。


2.根据给定的layer层,获取该层输出结果features。


3.考虑到features的形状为[batch_size, filter_nums, H, W],提取其中第一个过滤器得到的结果的feature。


4.以一张图作为输入的情况下,我们得到的feature即为[H,W]大小的tensor


5.将tensor转为numpy,然后归一化[0,1],最后乘以255,使得范围为[0,255]。


6.得到灰度图像保存。


代码

import cv2

import numpy as np

import torch

from torch.autograd import Variable

from torchvision import models



def preprocess_image(cv2im, resize_im=True):

    """

    Processes image for CNNs

    Args:

    PIL_img(PIL_img):Image to process

    resize_im(bool):Resize to 224 or not

    :return:

    im_as_var(Pytorch variable):Variable that contains processed float tensor

    """

    # mean and std list for channels (ImageNet)

    mean = [0.485, 0.456, 0.406]

    std = [0.229, 0.224, 0.225]

    # Resize image

    if resize_im:

        cv2im = cv2.resize(cv2im, (224, 224))

    im_as_arr = np.float32(cv2im)

    im_as_arr = np.ascontiguousarray(im_as_arr[..., ::-1])

    im_as_arr = im_as_arr.transpose(2, 0, 1)  # Convert array to D,W,H

    # Normalize the channels

    for channel, _ in enumerate(im_as_arr):

        im_as_arr[channel] /= 255

        im_as_arr[channel] -= mean[channel]

        im_as_arr[channel] /= std[channel]

    # Convert to float tensor

    im_as_ten = torch.from_numpy(im_as_arr).float()

    # Add one more channel to the beginning. Tensor shape =1,3,224,224

    im_as_ten.unsqueeze(0)

    # Convert to Pytorch variable

    im_as_var = Variable(im_as_ten, requires_grad=True)

    return im_as_var



class FeatureVisualization():

    def __init__(self, img_path, selected_layer):

        self.img_path = img_path

        self.selected_layer = selected_layer

        self.pretrained_model = models.vgg16(pretrained=True).features


    def process_image(self):

        img = cv2.imread(self.img_path)

        img = preprocess_image(img)

        return img

大林上位机机器视觉,_苏州电工培训_苏州PLC培训_苏州机器视觉培训_苏州上位机培训_苏州工业机器人培训,最适合电工及plc编程人员学习的上位机机器视觉课程 大林老师:15861139266(微信同号)

    def get_feature(self):

        # input = Variable(torch.randn(1, 3, 224, 224))

        input = self.process_image()

        x = input

        x = x.unsqueeze(0)

        for index, layer in enumerate(self.pretrained_model):

            x = layer(x)

            if (index == self.selected_layer):

                return x


    def get_single_feature(self):

        features = self.get_feature()

        # print("get_single_features: ", features.shape)

        feature = features[:, 0, :, :]

        # print("get_single_feature: ", feature.shape)

        feature = feature.view(feature.shape[1], feature.shape[2])

        return feature


    def save_feature_to_img(self, i):

        # to numpy

        feature = self.get_single_feature()

        feature = feature.data.numpy()

        # use sigmod to [0,1]

        feature = 1.0 / (1 + np.exp(-1 * feature))

        # to [0,255]

        feature = np.round(feature * 255)

        print("ok feature.shape: ", feature.shape)

        cv2.imwrite(str(i) + ".jpg", feature)



if __name__ == "__main__":

    for i in range(30):

        myClass = FeatureVisualization("31.jpg", i)

        # print(myClass.pretrained_model)

        myClass.save_feature_to_img(i)




一、课程目标

本公司本着为工控事业培育和输出从电工基础到机器视觉的人才理念,着力于让小白成为工控业专家为目标。

大林上位机视觉软件培训专家特开设从电工基础、PLC、运动控制、上位机、工业机器人、机器视觉培训课程,为实现工业4.0事业而不懈努力。

机构课程全程真实教学、实干为主,不装逼,不扯淡,只唠干货,能做项目!!

二、老师介绍

大林老师

是专业从事上位机视觉软件的开发与培训,多年从事上位机机器视觉相关项目开发,对电气人员学习C#开发视觉软件有独到的见解,即使您是零基础或只要从事过电气自动化相关工作的学员都能够轻松快速学会。

三、校区介绍

大林上位机机器视觉培训机构,分为两个校区,苏州校区(苏州木渎),常州校区(常州新北)

四、硬件设施

校区提供2000多平方的实训基地,完美的设备硬件配套,可以做到边学习边操作,鉴于本机构隶属于某自动化公司,学员可以配合边学习边配合公司开发人员完成项目,这样学习起来事半功倍

五、毕业服务

学业完成后本公司可以择优录取,在我们自动化公司的实习,解决您的后顾之忧

六、课程对象

1.零基础无任何相关知识

2.有电气及PLC编程基础的更容易入手

3.需要系统性提升整体能力

4.跨行业转型

5.想拥有一份体面高收入

6.对自己前途迷茫

7.学历低英语不好

七、课程特色

为您量身提供零基础快速成为上位机及机器视觉软件开发专家的学习方案

承接企事业单位定制个性化学员集体培训。

八、课程内容

小白亦可通过学习成为工业软件开发专家,从电气图,到梯形图,到高级语言SCL,再到C#,突破高级语言难的瓶颈,轻松掌握。

从零开始,从电气基本元件入手,跟随课程递进学习,PLC,工业机器人,数据库,运动控制器,上位机,机器视觉,统统一网打尽。

欢迎亲临现场咨询,老师私人定制课程 ,学习更清晰!

九、授课方式

1、线下现场授课更直观,知识点更易吸收,现场互动更易理解和运用。

      1,赠送老师录制课程随时随地轻松学习

      2,赠送配套书籍不限环境随意学习

      3,课间和课后答疑知识掌握更牢固

      4,现场设备随意使用,人机结合熟练运用,加深知识理解。

      5,老师指导完善简历,轻松上岗。

2、线上视频录播课程-整套

      1,赠送配套书籍不限环境随意学习

      2,售后答疑轻松解答

      3,福利:线下报名课程原价抵扣

3、 线上视频课程+现场设备实操

      1,赠送配套书籍不限环境随意学习

      2,售后答疑轻松解答

      3,现场和课后答疑知识掌握更牢固

      4,现场设备随意使用,人机结合熟练运用,加深知识理解

      5,福利:线下报名课程原价抵扣



_苏州激光3D视觉检测培训教程_苏州机器视觉测量软件编程培训教程_苏州机器视觉缺陷检测软件开发培训教程_苏州机器视觉与运动控制卡开发教程_苏州机器视觉与雷赛运动控制卡开发教程_苏州视觉引导无序抓取培训教程_苏州视觉引导机器人定位教程
_苏州上位机软件开发培训视频_苏州上位机编程培训视频_苏州上位机软件开发培训学校视频_苏州C#与上位机开发培训视频_苏州C#上位机编程培训视频_苏州VSC#编程培训视频_苏州C#与工业自动化编程培训视频_苏州C#与PLC监控培训视频_苏州C#与PLC编程上位机软件培训视频_苏州C#与工业机器人编程培训视频





立即咨询
  • 品质服务

    服务贴心周到

  • 快速响应

    全天24小时随时沟通

  • 专业服务

    授权率高,保密性强

  • 完善售后服务

    快速响应需求,及时性服务

直播课程
电气类课程
上位机软件开发课
机器视觉软件开发课
深度学习
联系方式
电话:15861139266
邮箱:75607802@qq.com
地址:苏州吴中区木渎镇尧峰路69号
关注我们

版权所有:大林机器视觉培训所有 备案号:苏ICP备14016686号-9

本站关键词:上位机培训 机器视觉软件开发培训 上位机运动控制培训 深度学习培训 网站标签