color-loss pytorch实现
DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks---colorloss-Pytorch实现
- 1.实现原理
- 2.代码
1.实现原理
最近在做图像增强相关的工作,偶然间看到了这篇文章,作者提出了一个损失叫做color-loss,根据文章描述该方法是通过模糊输入图像与ground-Truth的纹理、内容,仅仅保存图像的颜色信息实现图像颜色的校正。实现过程比较简单,首先构建一个高斯模糊核,然后利用高斯模糊核作为卷积核对图像进行卷积运算,得到模糊后的图像;然后计算输入图像与ground-Truth的MSE作为损失函数。
作者的github中有该模型的代码,但是是用TensorFlow实现的。因为我的代码pytorch的,所以自己重新改写了一下。在作者的代码中用到了深度可分离卷积,在pytorch中我没有对其进行深度可分离操作。
算是个深度学习的小白吧,有问题可以给我留言呀~~~
2.代码
// An highlighted block
import torch
import torch.nn as nn
import torch.nn.functional as F
import math
from math import exp, pi
import numpy as np
import cv2 as cv
import scipy.stats as st
import matplotlib.pyplot as pltdef gauss_kernel(kernlen=21, nsig=3, channels=1):interval = (2*nsig+1.)/(kernlen)x = np.linspace(-nsig-interval/2., nsig+interval/2., kernlen+1)kern1d = np.diff(st.norm.cdf(x))kernel_raw = np.sqrt(np.outer(kern1d, kern1d))kernel = kernel_raw/kernel_raw.sum()out_filter = np.array(kernel, dtype = np.float32)out_filter = out_filter.reshape((kernlen, kernlen))# out_filter = np.repeat(out_filter, channels, axis = 0)return out_filter # kernel_size=21class SeparableConv2d(nn.Module):def __init__(self):super(SeparableConv2d, self).__init__()kernel = gauss_kernel(21, 3, 3)kernel = torch.FloatTensor(kernel).unsqueeze(0).unsqueeze(0)## kernel_point = [[1.0]]## kernel_point = torch.FloatTensor(kernel_point).unsqueeze(0).unsqueeze(0)# kernel = torch.FloatTensor(kernel).expand(3, 3, 21, 21) # torch.expand()向输入的维度前面进行扩充,输入为三通道时,将weight扩展为[3,3,21,21]## kernel_point = torch.FloatTensor(kernel_point).expand(3,3,1,1)self.weight = nn.Parameter(data=kernel, requires_grad=False)# self.pointwise = nn.Conv2d(1, 1, 1, 1, 0, 1, 1,bias=False) # 单通道时in_channels=1,out_channels=1,三通道时,in_channels=3, out_channels=3 卷积核为随机的## self.weight_point = nn.Parameter(data=kernel_point, requires_grad=False)def forward(self, img1):x = F.conv2d(img1, self.weight, groups=1,padding=10)## x = F.conv2d(x, self.weight_point, groups=1, padding=0) #卷积核为[1]# x = self.pointwise(x)return x
# plt.imshow(out_kernel)
# plt.imshow(out_kernel)
color-loss pytorch实现相关推荐
- class balanced loss pytorch 实现
cb loss pytorch 实现,可直接调用 参考:https://github.com/vandit15/Class-balanced-loss-pytorch/blob/master/clas ...
- SRGAN loss部分的pytorch代码实现
转载地址:https://bbs.huaweicloud.com/forum/thread-137101-1-1.html 作者: 雨丝儿 最近在参加华为与高校合做开发mindspore模型的活动,使 ...
- 深度学习100+经典模型TensorFlow与Pytorch代码实现大合集
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]深度学习在过去十年获得了极大进展,出现很多新的模型,并且伴随TensorF ...
- BCE loss和 CE理解
1. BCE loss:Binary Cross Entropy Loss BCE loss pytorch官网链接 1.1 解释 pytorch中调用如下.设置weight,使得不同类别的损失权值不 ...
- 【Pytorch】常见的人脸身份识别损失函数
[Pytorch]常见的人脸身份识别损失函数 实验环境准备:人脸多角度多光照的图像数据集MUCT(276个受试者)+ MobileNetV3 说明:对于人脸身份数据集MUCT,是少样本数据集,应该使用 ...
- Style Transfer(PyTorch)
Style Transfer-PyTorch Content Loss content loss用来计算原图片和生成的图片之间像素的差距,这里用的是卷积层获取的 feature map 之间的差距 通 ...
- Pytorch以及tensorflow中KLdivergence的计算
1. KL divergence是什么 KL 散度是一个距离衡量指标,衡量的是两个概率分布之间的差异. y p r e d y_{pred} ypred指的是模型的输出的预测概率,形如[0.35,0 ...
- [Pytorch] 学习记录(七)MNIST多分类问题
在处理多分类问题的时候会用到一个叫做softmax的分类器,是用来将输出结果划归到[0,1]的,本讲将主要从softmax分类器入手来实现多分类问题.在前一章我们对糖尿病模型进行了二分类,二分类问题中 ...
- 目标检测中的Bounding Box Regression Loss
目标检测中的Bounding Box Regression Loss PyTorch: https://github.com/shanglianlm0525/CvPytorch 目标检测中的Bound ...
- Laplacian Loss
Laplacian loss 先介绍一下背景. Matting 任务当中在几篇论文里发现一个Laplacian loss,这个loss在论文<Context-aware synthesis fo ...
最新文章
- 设计模式之命令模式、举例分析、通俗易懂
- c#异步socket
- V-rep学习笔记:机器人逆运动学解算
- 看了这篇C++笔记,你出去行走江湖我就放心了【C++】
- 互联网1分钟 | 0214 2018 年超1/3的婚姻由约会交友类App促成;刘强东新开设 “南京京东云计算有限公司”...
- 要开始另一个linux操作系统的尝试了,说说我以前的ubuntu吧
- ERP的昨天、今天和明天
- Spring Boot + JPA + Freemarker 实现后端分页 完整示例
- Redis 高级教程 Redis 安全(2)
- shop++源码反编译----随笔
- VB.NET数据库编程基础教程
- 【机器学习】朴素贝叶斯对文本分类--对人名国别分类
- Alipay Global API 境外支付宝接口对接
- 独家策划-----让“超女”和“好男”联姻
- 大于号html语言怎么写,在HTML中使用大于号、小于号、空格等字符
- 百度引流软文怎么写?如何利用软文从百度引流?
- 视频行业创业投资与趋势报告
- 第十三篇 Python建模库介绍
- Win11电脑一边耳机没声音怎么办
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.3.1 故障码(DTC)格式详解
热门文章
- 2017.6.12 crash的数字表格 思考记录
- 【英语学习】【WOTD】valetudinarian 释义/词源/示例
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(2) - 数据转换指令
- kali破解WiFi时wlan0没有变wlan0mon_黑客入门干货:黑客使用 Aircrack-ng 破解 Wi-Fi 密码
- 学习了下简单的光照模型
- Unreal Engine 4 编码规范
- 阿里巴巴证实全资收购协作软件平台 Teambition
- python-json操作
- brew 基本使用方法
- CentOS 6.5高可用集群LVS+Keepalived