看机器学习如何还原图像色彩

水下图像色彩还原(基于可见光衰减及图像去雾算法) 参考源 参考论文:UnderwaterHazeLines_BMVC2017 Github项目地址:https://github.com/danaberman/underwater-hl.git 对论文的一些重述 水下图像存在颜色失真和低对比度的问题,因为光在水中传播时会衰减。衰减随波长而变化,并且取决于拍摄图像的水体的属性和场景的3D结构,使得难以恢复颜色。现有的单一水下图像增强技术要么忽略衰减的波长依赖性,要么采用特定的光谱轮廓。 我们提出了一种新的方法,该方法考虑了不同水类型的多个光谱剖面,并从单个图像 阅读详情

原文:Java Machine Learning for Image Color Reduction
作者:Klevis Ramo
译者:Teixeira10

【译者注】在本文中,作者提出了使用k-means算法来对图像进行色彩还原,介绍算法的步骤,同时应用在图像上,通过对比还原前后的图像,来证明k-means算法的有效性。以下为译文:

k-means是机器学习中最著名、最广泛使用的算法之一。在这篇文章中,将使用k-means算法来减少图像上的颜色(但不减少像素),从而也减少了图像的大小。在这个领域不需要任何基础知识,因为可执行应用程序文件(大小为150MB,这是由于长时间的Spark依赖)已经提供了友好的用户界面。所以你可以很容易地用不同的图像来做实验。在GitHub上有完整可用的执行代码。

K-Means 算法

k-mean算法是一种非监督型学习算法,将相似的数据分成不同的类别或集群。它是无监督型算法,因为数据没有被标记,而且算法不需要对相似数据进行分类的反馈(可能是预期类别的数量——稍后再讨论)。

应用

k- means算法的一些应用包括客户服务、集群计算、社交网络和天文数据分析。

客户服务
假设有大量与客户相关的数据,并且希望更多地了解所拥有的客户类型,从而可以更好地为特定群体服务。也许你要生产牛仔裤和t恤,所以你需要在一个特定的国家将人以身材大小进行分组,这样你就能知道生产什么尺寸更合适。

集群计算
从性能角度来看,将某些计算机分组在一起比较好;例如,从网络的角度来看,交换机适合聚集在一起工作,或者提供相似的计算服务。K-means算法可以将相似功能的计算机分在一组,这样就可以进行更好的布局和优化。

社交网络
在社交网络中,你可以通过客户关系、偏好、相似性等来对他们进行分组,并从营销的角度更好地对客户进行定位。基于提供的数据的输入,k-means算法可以帮助我们从不同的角度对相同的数据进行分类。

天文数据分析
k-means也用于了解星系的形成,以及在天文数据中寻找内聚性。

它是如何工作的

k-means算法有两个步骤。假设把数据分成四组,执行以下步骤。

注意:在开始任何步骤之前,k-means算法会从数据中随机抽取三个样本,称为聚类中心。

1.它检查每一个数据样本,会根据它们与开始随机选择的聚类中心的相似程度,来对它们进行分类。

2.它使聚类中心与相似的同类点更接近(第1步的分组)。

重复这些步骤,直到聚类中心没有显著的移动。下面使用简单数据进行算法执行。



步骤1
现在继续解释步骤1是如何实现的。如果你不熟悉多维特性数据,请参见这里。

首先来介绍一些变量:

k:集群的数量

Xij:示例i的第j个特征值

μij:示例i的第j个特征的聚类中心(类似于X,因为聚类中心是随机选择的)

在这个步骤中,通过迭代,计算它们与聚类中心的相似度,并将它们放入合适的类别中。更确切地说,这是通过一个样本的欧几里得距离来计算的,并从最微小的距离中选取中心。由于中心点是随机选择的,因此将所有特征点与中心点的欧几里德距离相加。



或者,更简化,计算量更少:



步骤2
从图上看,这一步将中心点向步骤1中相似的分组进行移动。更准确地说,就是取所有与中心点相似或属于该分组的点的平均值(步骤1的分组),来计算每个中心的新位置。

例如,如果有4个集群和第1步骤之后的103个示例,那么有以下结果:

μ1 = 20表示标号1-20示例的特征中心是20
μ2=10 表示标号21-31示例的特征中心是10
μ3=30表示标号32-62示例的特征中心是30
μ4=40 表示标号63-103示例的特征中心是40

新的计算方法如下:



这是所有数据的平均值,类似于一个特定的中心。

重复,重复,重复…何时停止?

重复第1步和第2步,直到如图形上显示的,中心向数据集群移动的越来越近,才会得出新的中心。该算法会一直运行,直到对结果满意时,就需要明确地告诉它,这样它就可以停止了。一种方法是,当迭代时,中心体不会在图中移动,或者它的移动非常少。形式上说,可以计算成本函数,这基本上就是在步骤1中所计算的平均值:



μc是Xi的中心值。每个示例都可以是不同组或中心的一部分。每次迭代成本都会与之前的成本相比较,如果变化真的很低,就停止它。例如,如果改进(成本函数的差异)是0.00001(或者其他认为合适的值),那就可以停止了,因为继续下去就没有意义了。

算法会出错吗?

通常不会出错,但众所周知,k-means算法仅能达到局部最优,而不是全局最优。在这种情况下,k-means算法无法发现更加明显的分组,如下图所示:



幸运的是,解决方案相当简单——只要用k-means算法多运行几次,然后选择最好的结果就好了。这个解决方案很有帮助,因为在一开始,随机初始化k-means算法,比方说,运行10次,那么会得出局部最优解。当然,这增加了运行时间,因为它运行了很多次,却只需要一个结果。另一方面,完全可以在并行的甚至是不同的集群上运行算法,所以通常可以作为一个工作解决方案。

当然,k-means算法比我所介绍的要多,所以强烈推荐这篇文章,以获得更深入的见解。

算法的执行和结果

在本节中,将运行应用程序(也可以下载代码),并通过一些细节来了解k-means算法如何进行色彩还原。

色彩还原

需要说明的是,k-means算法不是减少图像上的像素,而是通过将相似的颜色组合在一起,以此来减少图像的颜色数量。一个正常的图像通常有几千个甚至更多的颜色,所以减少颜色的数量可以显著减少文件的大小。

为了说明减少颜色的数量有助于减少图像大小,来看一个例子。假设有一个1280x1024像素的图像,对于每个像素,有一个简单的颜色表示(RGB 24位,8位红,8位绿色,8位蓝色)。总而言之,需要1280 * 1024 * 24 = 31457280位或30MB来表示图像。现在,把整体颜色减到16种,这意味着不需要24位像素,而是4位来代表16种颜色。现在,有1280 * 1024 * 4 = 5MB,这也就少占了6倍的内存。当然了,图像看起来不会像之前那样完美(现在只有16种颜色),但肯定能找到一个合适的图像。

执行和结果

执行算法的最简单方法是下载JAR包,并使用自己的图像来执行(需要安装Java)。我的电脑大约需要花一分钟的时间来运行,使颜色减少到16种(高CPU和内存会更好,因为Spark是并行运行的)。在用户界面中,可以选择想要尝试的图像文件,也可以选择减少图像上颜色的数量。下面是一个用户界面和结果的例子:



可以注意到,文件大小减少了4倍,但最终的图像看起来并不是那么糟糕。多运行几次它可能会带来更好的效果。再试试24种颜色:



这看起来明显好一些,尺寸也没有增加多少(只有0.08 MB)。似乎在24到28之间是这个图像最好的视觉效果。

尽管结果看起来不错,但选择最佳图像是一项手工任务。毕竟,我们正在执行和挑选最适合视觉的图像。

相信这个问题可以用多种方法来解决。

其中一个解决方案是简单地计算原始图像上的所有颜色,并在此基础上,定义用于图像的颜色数量,同时仍然保持图像看起来不错。这一过程可以通过使用像线性回归这样的机器学习预测算法来完成。通过赋予图像不同的颜色来训练算法,同时,对于每个图像来说,它们看起来仍然很好。在给出了一些重要的示例之后,该算法根据不同的图像学习了如何减少到最佳颜色数量。现在是时候让线性回归算法预测下一个图像的颜色会减少多少了。

可以下载代码并在Java IDE上运行它。当然,如果不想在源代码中运行,只需下载代码并运行maven:mvn clean install exec:java


1月13日,SDCC 2017之数据库线上峰会即将强势来袭,秉承干货实料(案例)的内容原则,邀请了来自阿里巴巴、腾讯、微博、网易等多家企业的数据库专家及高校研究学者,围绕Oracle、MySQL、PostgreSQL、Redis等热点数据库技术展开,从核心技术的深挖到高可用实践的剖析,打造精华压缩式分享,举一反三,思辨互搏,报名及更多详情可点击此处查看。
这里写图片描述

图像色彩还原算法 基于深度学习的图像色彩还原算法通常通过使用卷积神经网络(CNN)或生成对抗网络(GAN)来学习图像之间的色彩映射,以实现对色彩问题的修复。这些方法在不同的应用场景下都表现出色彩还原的效果。选择适当的方法通常取决于具体的问题需求、可用的数据以及计算资源。在实践中,可以根据实际情况进行尝试和调整。选择合适的色彩还原算法通常取决于图像中存在的问题类型以及用户对结果的期望。在实践中,可以尝试不同的算法,并根据具体需求进行调整。图像色彩还原算法的目标是改善或修复图像中失真、退色或其他色彩问题。 阅读详情

相关推荐

色彩恢复的多尺度Retinex算法(MSRCR)-VS2010版

Retine算法,博客配套代码,详细算法及其效果请移步http://blog.youkuaiyun.com/bluecol/article/details/45675615

opencv图像处理初步(二):实现色彩还原---(白平衡)

 0、说明 目前很多摄像头特别是网络摄像头对色彩的处理情况存在色差,比如一个橙子(是黄色的),但是拍出来的效果会泛白,有点像梨子的颜色,因此要用到色彩校正。 一般色彩校正使用白平衡,白平衡一般又分为:灰世界、完美反射、等,这里不做具体陈述。 此处提供了一种方法,总体原理为(对每个通道而言): 1)对偏暗和偏亮的颜色进行特定的处理:指定一个特定的像素值; 2)对其他像素值进行小幅度拉伸; ...

chenyuping333的博客 1万+

带色彩恢复的多尺度Retinex算法(MSRCR)

带色彩恢复的多尺度Retinex算法(MSRCR),可运行

【图像处理基石】如何进行色彩还原?

有没有过这样的经历?在餐厅灯光下拍的美食偏黄,阴天户外拍的风景发灰,网购的衣服图片是温柔奶茶色,收到货却偏橘调?这些都是色彩失真在搞鬼!色彩还原技术就是为了解决这些问题,它能消除设备、光照等因素带来的颜色偏差,让图像还原真实模样。不管是日常拍照、老照片修复,还是设计印刷、街头艺术创作,都离不开它的助力。本文将用通俗的语言讲解主流色彩还原算法,搭配可直接运行的Python代码,让你轻松上手实操。

专注:太空算力、AI infra、异构调度、大模型成本工程 1604

摄像头色彩还原准确度测试

摄像头色彩还原准确度测试 色彩还原准确度是否达到标称值

基于python的线性回归恢复图像

基于线性回归进行图像插值,恢复受损图像。语言是python

Bayer图像色彩还原线性插值方法

这篇文献是从知网下载的,感觉本文很有实用性,所以将其转载至此,如果带来任何纠纷 Bayer图像色彩还原线性插值方法 孙辉,柏旭光,孙丽娜,李志强 (中国科学院 长春光学精密机械与物理研究所 中国科学院航空光学成像与测量重点实验室) 1 引言 在才舍数字相机的成像传感器结构中,为准确获取目标景物信息,同城采用3片CCD同时采集红(R)、绿(G)、蓝(B)三种颜色信号,通过模数转换器(AD)

卷舒开合任天真 6372

华为无线AP+AC(ensp)

VLAN 100--192.168.100.0/24为AP的管理IP地址VLAN10--192.168.10.0/24为无线用户获取的IP地址在DHCP Server(LSW3)上查看地址分配情况。

abcdlalal的博客 1万+

如何通过机器学习还原图像色彩

作者 | Klevis Ramo译者|Teixeira10在本文中,作者提出了使用k-means算法来对图像进行色彩还原,介绍算法的步骤,同时应用在图像上,通过对比还原前后的图像,来证明k-means算法的有效性。k-means是机器学习中最著名、最广泛使用的算法之一。在这篇文章中,将使用k-means算法来减少图像上的颜色(但不减少像素),从而也减少了图像的大小。在这个领域不需要任何基础知

AI科技大本营 2396

CMOS sensor 基础

NA

m0_72053187的博客 1658

西门子S7-1200 PLC与伺服电机控制实战解析

工业自动化控制系统中,PLC(可编程逻辑控制器)与伺服电机的协同工作是实现精密运动控制的核心技术。通过PROFINET工业以太网协议,PLC可以高效地控制多台伺服电机,实现定位、同步和插补等复杂运动。在实际工程应用中,硬件组态的正确配置和运动控制算法的优化是关键挑战。本文以西门子S7-1200 PLC控制五台伺服电机的项目为例,详细介绍了从硬件组态、运动控制程序实现到HMI界面设计的全流程。特别针对多轴同步插补运动、动态速度曲线调整等特殊工艺需求,提供了实用的解决方案和调试技巧,为工业自动化领域的工程师提供

weixin_30252709的博客 497

低照度照片救星:手机摄影爱好者必学的5分钟图像增强技巧

本文为手机摄影爱好者提供了一套5分钟内快速修复低照度照片的实战技巧。文章深入分析了低照度照片亮度不足、噪点多、色彩失真等核心问题,并推荐了Snapseed、Lightroom Mobile等高效修图工具。通过分步演示Snapseed的局部调整、曝光修复和降噪流程,帮助用户轻松拯救昏暗废片,提升画面质感和色彩表现。

fern8的博客 709

电源芯片TPS54560典型应用电路及设计详解

TPS54560 是一款配有集成型高侧 MOSFET 的 60V、5A DC-DC转换器,输入电压范围7-60V,输出电压可通过外部反馈电阻设置成略低于输入电压的任意值。**所以,**R5=31.25KΩ、R6:10KΩ(常用值)时,即可设置输出电压为 3.3V。**所以,**R5=140KΩ、R6:10KΩ(常用值)时,即可设置输出电压为12V。设计 TPS54560 的输出电压时,主要通过外部反馈电阻网络来设置输出电压。因此,输出 3.3V ,输入电压24V时推荐的电感值为 8µH 至 10µH。

weixin_42306872的博客 1万+

图像处理的魔力从像素到智能的艺术与科学

从手机上的美颜滤镜到医学上的CT扫描三维重建,从社交媒体上的趣味特效到工业生产中的质量检测,图像处理的魔力已经渗透到我们生活和社会的方方面面。它既是科学家手中精密的工具,也是艺术家笔下文采飞扬的画笔。随着技术的不断进步,图像处理必将持续进化,在未来为我们带来更多超越想象的惊喜,继续书写其作为一门艺术与科学完美结合的传奇。

W13617480的专栏 347

自动驾驶——最优控制算法(LQR)工程化总结

到近段时间,真正在我们的控制器上运行最优控制算法(LQR),一步一个脚印,从开始只是知道其“控制理论”的阶段、再到对着一堆网上的资料和公式一筹莫展不知何着手、再到初步实现了LQR算法的开发(但是使用的扭矩环控制,控制的不好,而且由于各种原因被delay,迟迟无法落地),直到大上个星期,泊车平台有此LQR开发需求,又重新了开始了算法的研发,用时一个周时间完成了算法开发,然后再用一个周时间进行实车最优控制算法验证与调试,取得了很大的进展,由于执行器是转角控制的,这无疑少了很多的工作量。

qq_40464599的博客 2787

ENVI遥感技术

记录2024.03.06所遇到的遥感问题

qq_44453923的博客 4332

终极指南:Core ML Stable Diffusion计算单元性能大比拼 - CPU_AND_GPU vs CPU_AND_NE谁更胜一筹?

Core ML Stable Diffusion是在Apple Silicon设备上运行AI绘图的强大工具,它支持多种计算单元配置,其中CPU_AND_GPU和CPU_AND_NE是最常用的两种模式。本文将深入对比这两种计算单元的性能表现,帮助你选择最适合自己的AI绘图方案。 ## 🚀 什么是Core ML Stable Diffusion计算单元? 计算单元是AI模型运行时使用的硬件资源组

gitblog_00209的博客 344

【项目实战】自动化测试软件VectorCAST介绍

VectorCAST是一款先进的自动化测试软件。VectorCAST是一款功能强大、易于使用的自动化测试软件。VectorCAST适用于各种嵌入式系统的测试。VectorCAST为嵌入式系统的测试提供了一种高效、可靠的解决方案。VectorCAST提供了一整套完整的测试工具,包括测试管理、代码覆盖、缺陷定位、报告生成等,以帮助开发人员提高测试效率,确保软件质量。VectorCAST支持。

奶爸的编程之路,也就一周冷个三天 2009

Smart IQ (Image Qualification) 文章整理

看机器学习如何还原图像色彩 https://blog.youkuaiyun.com/dev_csdn/article/details/78909033 使用imatest 36阶动态范围测试卡分析动态范围http://www.coloreye.cn/wiki/doc-view-597.html 曝光融合Exposure Fusion 与ghosthttps://blog.youkuaiyun.com/fabulou...

不以己悲的博客 528

YOLOv11改进 | 主干/Backbone篇 | 轻量化目标检测网络MobileViTv1改进yolov11有效涨点

本文给大家带来的改进机制是MobileViT系列的V1版本,其作为MobileNet网络的挑战者,其效果自然不用多说,MobileViT模型是为移动设备设计的轻量级、通用目的视觉变换器。它融合了卷积神经网络(CNN)和视觉变换器(ViT)的优势,旨在在保持高效性能的同时减少模型参数和降低延迟。通过其创新的MobileViT Block和多尺度训练方法,MobileViT在多个视觉任务上取得了优异的结果,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

Snu77的博客 2336

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

关于AI和ChatGPT的使用,AI编程(AIGC),AI绘画(2)

AI绘画技术是指利用人工智能技术来创作、生成或修改图像、照片、插图、漫画等艺术品以及各种视觉效果。常见的AI绘画技术包括机器学习、深度学习和计算机视觉等领域的技术,通过训练神经网络模型来实现自动化地生成图像,其应用范围相当广泛,包括数字媒体、游戏开发、影视特效、广告设计等领域。

weixin_64773801的博客 1445

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【水下图像增强】基于波长补偿与去雾的水下图像增强研究附Matlab代码

水下图像在海洋探索、水下监测、水下考古等领域具有重要意义。然而,水下环境的复杂性导致图像存在颜色失真、对比度低、清晰度差等问题,严重影响了图像信息的有效获取和分析。基于波长补偿与去雾的方法为水下图像增强提供了一条有效的途径,能够显著改善水下图像的视觉质量,提升其在各应用领域的实用价值。

matlab_dingdang的博客 1009

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

机器学习初识之Kmeans浅尝

机器学习在图像识别方面具有很好的效果,今天在网易云课堂黑板可老师视频中学习了一下Kmeans算法,是一种非监督类学习算法,具体步骤如下   1,选取K个点作为初始中心 2,将每个点最近的中心,形成K个簇 3,重新计算每个簇的中心 4,如果簇中心发生明显的变化或者未达到最大迭代次数,则返回到第二部     如上图,有很多点,需要将这些点分成类簇,我们的方法是   1,先随机选...

luchi007的专栏 385
上一篇: 2017年AI领域的十大乌龙事件
下一篇: 京麦微信小程序圣诞抽奖项目的架构设计
csdn研发技术
博客等级 码龄9年 1381粉丝 90原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值