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实现相关推荐

  1. class balanced loss pytorch 实现

    cb loss pytorch 实现,可直接调用 参考:https://github.com/vandit15/Class-balanced-loss-pytorch/blob/master/clas ...

  2. SRGAN loss部分的pytorch代码实现

    转载地址:https://bbs.huaweicloud.com/forum/thread-137101-1-1.html 作者: 雨丝儿 最近在参加华为与高校合做开发mindspore模型的活动,使 ...

  3. 深度学习100+经典模型TensorFlow与Pytorch代码实现大合集

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]深度学习在过去十年获得了极大进展,出现很多新的模型,并且伴随TensorF ...

  4. BCE loss和 CE理解

    1. BCE loss:Binary Cross Entropy Loss BCE loss pytorch官网链接 1.1 解释 pytorch中调用如下.设置weight,使得不同类别的损失权值不 ...

  5. 【Pytorch】常见的人脸身份识别损失函数

    [Pytorch]常见的人脸身份识别损失函数 实验环境准备:人脸多角度多光照的图像数据集MUCT(276个受试者)+ MobileNetV3 说明:对于人脸身份数据集MUCT,是少样本数据集,应该使用 ...

  6. Style Transfer(PyTorch)

    Style Transfer-PyTorch Content Loss content loss用来计算原图片和生成的图片之间像素的差距,这里用的是卷积层获取的 feature map 之间的差距 通 ...

  7. Pytorch以及tensorflow中KLdivergence的计算

    1. KL divergence是什么 KL 散度是一个距离衡量指标,衡量的是两个概率分布之间的差异. y p r e d y_{pred} ypred​指的是模型的输出的预测概率,形如[0.35,0 ...

  8. [Pytorch] 学习记录(七)MNIST多分类问题

    在处理多分类问题的时候会用到一个叫做softmax的分类器,是用来将输出结果划归到[0,1]的,本讲将主要从softmax分类器入手来实现多分类问题.在前一章我们对糖尿病模型进行了二分类,二分类问题中 ...

  9. 目标检测中的Bounding Box Regression Loss

    目标检测中的Bounding Box Regression Loss PyTorch: https://github.com/shanglianlm0525/CvPytorch 目标检测中的Bound ...

  10. Laplacian Loss

    Laplacian loss 先介绍一下背景. Matting 任务当中在几篇论文里发现一个Laplacian loss,这个loss在论文<Context-aware synthesis fo ...

最新文章

  1. 设计模式之命令模式、举例分析、通俗易懂
  2. c#异步socket
  3. V-rep学习笔记:机器人逆运动学解算
  4. 看了这篇C++笔记,你出去行走江湖我就放心了【C++】
  5. 互联网1分钟 | 0214 2018 年超1/3的婚姻由约会交友类App促成;刘强东新开设 “南京京东云计算有限公司”...
  6. 要开始另一个linux操作系统的尝试了,说说我以前的ubuntu吧
  7. ERP的昨天、今天和明天
  8. Spring Boot + JPA + Freemarker 实现后端分页 完整示例
  9. Redis 高级教程 Redis 安全(2)
  10. shop++源码反编译----随笔
  11. VB.NET数据库编程基础教程
  12. 【机器学习】朴素贝叶斯对文本分类--对人名国别分类
  13. Alipay Global API 境外支付宝接口对接
  14. 独家策划-----让“超女”和“好男”联姻
  15. 大于号html语言怎么写,在HTML中使用大于号、小于号、空格等字符
  16. 百度引流软文怎么写?如何利用软文从百度引流?
  17. 视频行业创业投资与趋势报告
  18. 第十三篇 Python建模库介绍
  19. Win11电脑一边耳机没声音怎么办
  20. 汽车UDS诊断详解及Vector相关工具链使用说明——2.3.1 故障码(DTC)格式详解

热门文章

  1. 2017.6.12 crash的数字表格 思考记录
  2. 【英语学习】【WOTD】valetudinarian 释义/词源/示例
  3. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(2) - 数据转换指令
  4. kali破解WiFi时wlan0没有变wlan0mon_黑客入门干货:黑客使用 Aircrack-ng 破解 Wi-Fi 密码
  5. 学习了下简单的光照模型
  6. Unreal Engine 4 编码规范
  7. 阿里巴巴证实全资收购协作软件平台 Teambition
  8. python-json操作
  9. brew 基本使用方法
  10. CentOS 6.5高可用集群LVS+Keepalived