给出无类标的黑白图片或视频,在保证语义正确的情况下,利用计算机视觉技术将其转换为彩色。
给黑白照片上色是进度极慢且复杂的工程,最专业的摄影师或者艺术家都要花几个小时,甚至几天才能修复一张因泛黄丢失色彩,或原始是黑白的老照片,更不要说是视频了。这个过程需要花费极大的精力和高昂的费用。许多人都有需要修复的历史照片和视频,但只有极少人能承担雇佣专业人士来还原照片的费用,同时还伴有隐私泄露的风险。得益于科技的发展,依托于海量GPUs并行计算硬件加上设计良好的框架,如TensorFlow,caffe,mxnet,我们可以利用深度学习技术(Deep Learning)
- 使黑白图像在保证语义正确(Semantic correctness)的情况下将其还原为彩色,且这个过程仅需几毫秒,成本低廉。
- 随着智能手机双摄像头(黑白+彩色)的方案使用越来越广泛,黑白的长焦镜头也需要一种高效的算法将其还原为认知彩色,降低黑暗中的噪点。
- 同时,本项目还可以为有损图片数据压缩(Lossy picture data compression),夜间红外摄像头还原真彩色,视频修复等专业领域提供新的思路和实践方法。
- 许多具有历史意义的照片应该被转换为彩色,使其保留重要的历史价值。
对大部分人而言,黑白摄影似乎是上个世纪的事了,认为以前的人拍黑白照片是因为当时彩色胶卷没有发明出来。但事实上,即便是到了现在的数码时代,黑白摄影从来没有退出历史舞台,而其地位也从来没有因为彩色胶卷、数码技术受到影响。
黑白照片的来源
- 不支持彩色
- 因彩色摄像头无法承受极限温度,如钢铁厂就采用热力探测(如红外技术),我们需要以热力图的形式将其可视化。
- 宇宙深空探测,拍摄光谱不在可见光范围内,需要通过彩色修复。
- 生物细胞结构,如蛋白质结构等,设备读出的光谱转换成黑白照片之后需要根据专家经验上色。
- 在特定领域彩色成本高昂
- 夜间真彩色摄像头成本通常比黑白摄像头贵三倍。
- 彩色需要存储多个通道信息,现今2K,4K技术对高密度存储技术提出了新一轮的挑战。
- 原本的色彩无法表达对应的情绪,需要更改
- 照片因为色彩的干扰,照片所要表达的意图被模糊。比如一张表达恐怖情绪的照片,主题色调应该设定为深红色(血腥的暗示)。比如一张表达温馨的家庭环境,我们就建议以米黄色作为主色调表达温馨的情绪。
- 色彩会给人预设一种主观偏见,画面的色彩会让我们更多去关注画面本身的形状、造型、事件和元素,我们所表达或看到的主题也会变得更加清晰。
- 色彩缺失
- 很多人家中有需要被修复的老照片,博物馆拥有大量包含极高价值的老照片,比如一位妇人身着清末彩色衣服,专家知道其对应颜色,却只能用文字“洋红殷红”等描述,不直观也容易在文化传承中失去可证性。
我们在日常中寻找黑。它们界线分明地黑着。到底是怎样深沉的事物和想法,才会投下这么浓重的影子。每个被投下的影子,依据同样的定律,我们试着理解事物,以自己的方式。
我们有许多黑白的照片的电子扫描件,通过人工智能(Artificial intelligence)相关的算法,将其为人类可直觉认知的彩色图片。
这听起来非常简单,我们知道一个物体,就大概知道它的颜色应该是什么。但是实际情况并非如此简单,从图像中检测出什么物体(目标检测)是什么就已经非常困难。除此之外,在绝大部分人的认知里,树叶是绿色的,天空是湛蓝的,云朵是白色的等。但是假如给定的一朵花呢?这时候就会产生不一样的结果,一部分人认为花是黄的,另一部分人认为是红的,这就产生了认知歧义(Cognitive Ambiguity)。我们需要做的就是使计算机能够尽可能的还原事物本来的颜色,并将其运用在老照片颜色还原,智能手机摄像头拍摄照片颜色的增强,夜间红外摄像头拍摄的黑白视频色彩修复任务等。要完成这个项目,我们还要使用yolo, imageNet这些框架来感知物体类别,总的来说,这项任务是非常具有挑战性的。
在过去的算法中,主要通过传统的机器学习技术(machine learning,ML),他们用“回归”来预测每一个像素的颜色,然而结果却不尽如人意,根据黑白图片渲染出来的图像色彩平淡枯燥。有文献作者使用均方误差(Mean Squared Error ,MSE)作为训练模型的损失函数(Loss Function),作者指出,MSE将尝试“平均”出颜色,以获得最小的平均误差,这将导致平淡的外观。目前没有该项目较完美通用的解决方案。
- 数据扩增
在灰度图像复原成彩色RGB图像方面的代表性文章《全局和局部图像的联合端到端学习图像自动着色并且同时进行分类》中指出。稍作解释,黑白图像,实际上只有一个通道的信息,即灰度信息。彩色图像,则为RGB图像(也可以是CMYK),有三个通道的信息。彩色图像转换为黑白图像极其简单,属于有损压缩数据;反之则很难,因为数据不会凭空增多。
- 概率预测
我们在待处理信息量不可扩充的前提下(即模糊的图像本身就未包含场景中的细节信息),可以借助海量的同类数据或相似数据训练一个神经网络,然后让神经网络获得对图像内容进行理解、判断和预测的功能,这时候,再把待处理的模糊图像输入,神经网络就会自动为其添加细节,尽管这种添加仅仅是一种概率层面的预测,并非一定准确。
- 学习门槛高
机器学习需要掌握C++,python等开发语言,需要掌握流行的各类框架技术,如tf,caffe。一个完整的项目需要web开发,数据库管理,Linux运维等。同时对算法编写者的代码调试能力有非常高的要求,以及较好的数学功底。
- 具具有历史意义的照片应该被转换为彩色,使其保留重要的历史价值。
- 智能手机双摄像头中的黑白的长焦镜头也需要一种高效的算法将其还原为认知彩色,降低黑暗中的噪点。
- 有损图片数据压缩,夜间红外摄像头还原真彩色,视频修复等专业领域提供新的思路和实践方法。
- 分支训练,根据文物的形状无监督学习聚类并推测色彩,支持全局提示网络。
我们的项目前后端分类,主要借助服务器进行发布测试、运行。
前端部分,我们采用flask框架搭建,使用bootstrap,jquery进行页面的美化工作。
后端我们将使用MySQL/MariaDB管理数据库,使用Python搭建服务端,并采用tensorflow框架进行计算,将消息队列作为消息中间件。
当用户通过前端请求该功能时,后端会打包一个带鉴权的API供用户使用,此时前端和客户端请求API,读取并解析json中的地址并由前端加载处理完成的图片。如果存在需要修正的部分,可以通过全局提示网络进行进一步的修复,从而达到用户预期。
计费形式为服务后付费模式
服务按照每月(自然月)识别总量采取阶梯到达的计费方式,当月总量在哪个阶梯内则按该阶梯单价计费,识别量越大即单价越低。
-
在线调用API报价:
- 5万张及以下 0.0015元/张
- 5万张以上 0.0011元/张
-
流量价格计算:
- 内网流入流出流量免费
- 公网流入流量免费
- 公网流出忙时0.5元/GB(8时-24时) 闲时0.25元/GB(0时-8时)
根据我项目成员的调查,目前市场上类似bw2color的处理技术是存在的,但不同于自动上色技术,其他的产品的处理技术往往需要非常专业的知识,而且学习成本高,上手难度大。所以我们对于bw2color自动上色程序的市场价值有非常大的信息。我们相信,在我们不断改进以及合理的推广下,我们一定会占据极大以部分市场容量。就目前的正规产品来说,并没有类似bw2color平台的一款专攻黑白照片还原技术的软件存在使用,用户最大的选择还是使用Photoshop等图片编辑软件进行手动加工处理。人工处理费时费力,对于有一次性处理大量该类照片,如一个市级博物馆就有数万乃至数十万老照片,效率和成本十分并不理想。因此,bw2color对于“打响行业第一枪”可以说是十分有优势。
就目前市场而言,市场容量可以说是比较高的,在接下去的逐步推广中,考虑到用户的接受程度、平台的推广力度以及同类产品的取优改进等因素,市场容量将会逐步减小。但此后,我们会针对使用量最大的群体进行专门的功能的拓展,在提高处理效率的同时,针对性的发展该平台,而根据预期,由于互联网这类产品的快速发展,市场容量将很有可能达不到预期,需要我们不断付出,我们也将根据当时的具体情况进行不断改进,让市场容量超出预期。
Q1:你们API的流控是多少?
答:10次/秒/API/用户,每个用户每个API每秒限制调10次。公网流出流量按量计费,不限制最大带宽。
Q2:对图像中物品的形状和大小有什么要求?
答:数据将会被转换为299x299的BGR图片,物品的尺寸建议大于 64*64 像素,且图像清晰识别精度更佳。
Q3:对图像格式有什么限制?
答:目前支持JPEG、JPG、BMP、PNG、TIF、PBM等常见图像格式。
Q4:对图片大小或请求内容是否有限制?
答:图片大小要求5*5像素以上,最大尺寸受传输body内容尺寸限制,请求body内容小于2M。
-
系统版本 Ubuntu16.04_Server
-
CPU: E5-2680 X 2 计 20C40T
-
RAM: ECC 8G X 8 计 64GB
-
SSD: Intel 256G + 三星256G
-
显卡: NVIDIA 1070 8G
-
预装深度学习框架如下: cuda9, cudnn7, tensorflow1.8.0, tensorboard, jupyter, theano, chainer, Cython, graphviz, pydot, opencv-python, xgboost, cntk-gpu, mxnet-cu90, torch, torchvision, lightgbm, keras, tqdm, scipy, matplotlib, sklearn
-
web远程调用
- Chrome浏览器,支持JS
- 推荐客户端分辨率1920x1080
-
本地API调用
- 支持Win,Mac,Linux三大平台
- 显卡GTX1050Ti,显存4G以上或更高
一个物理术语,指单位面积所接受可见光的光通量,简称照度,用于指示光照的强弱和物体表面被照明程度的量。
- 颜色模型 (Lab) 基于人对颜色的感觉。Lab 中的数值描述正常视力的人能够看到的所有颜色。
因为 Lab 描述的是颜色的显示方式,而不是设备生成颜色所需的特定色料的数量,所以 Lab 被视为与设备无关的颜色模型。
色彩管理系统使用 Lab 作为色标,以将颜色从一个色彩空间转换到另一个色彩空间。
- Lab色彩模型是由亮度(L)和有关色彩的a, b三个要素组成。
L表示亮度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。
- L的值域由0到100,L=50时,就相当于50%的黑;
- a和b的值域都是由+127至-128,其中+127 a就是红色,渐渐过渡到-128
- a的时候就变成绿色;同样原理,+127 b是黄色,-128 b是蓝色。
所有的颜色就以这三个值交互变化所组成。
- 例子: 一块色彩的Lab值是L = 100,a = 30, b = 0, 这块色彩就是粉红色。
(注:此模式中的a轴,b轴颜色与RGB不同,洋红色更偏红,绿色更偏青,黄色略带红,蓝色有点偏青色)
- Lab的优势
Lab色彩模型除了上述不依 Lab颜色定义示意图 Lab颜色定义示意图 赖于设备的优点外,还具有它自身的优势:色域宽阔。它不仅包含了RGB,CMYK的所有色域,还能表现它们不能表现的色彩。人的肉眼能感知的色彩,都能通过Lab模型表现出来。另外,Lab色彩模型的绝妙之处还在于它弥补了RGB色彩模型色彩分布不均的不足,因为RGB模型在蓝色到绿色之间的过渡色彩过多,而在绿色到红色之间又缺少黄色和其他色彩。 如果我们想在数字图形的处理中保留尽量宽阔的色域和丰富的色彩,最好选择Lab。
- 前期项目训练的硬件设备来自之前项目使用过的硬件
- 日后需要购买显卡加速神经网络计算,搭建私有云
- 购买书籍,打印复印资料等约1000元
- 手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程
- TensorFlow练习: 使用深度学习给黑白图像上色
- 深度学习为黑白图像着彩色
- 原图像处理之灰度模糊图像与彩色清晰图像的变换
- 令人惊艳的python项目
- 通俗、有逻辑的写一篇说下Xgboost的原理,供讨论参考
- Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
- https://arxiv.org/pdf/1603.02754v1.pdf
- http://blog.csdn.net/a358463121/article/details/68617389
- http://blog.csdn.net/sb19931201/article/details/52557382
- http://blog.csdn.net/xiaocong1990/article/details/55107239
- http://blog.csdn.net/totoro1745/article/details/53328725?utm_source=itdadao&utm_medium=referral
- http://matafight.github.io/2017/03/14/XGBoost-%E7%AE%80%E4%BB%8B/
- https://wenku.baidu.com/view/44778c9c312b3169a551a460.html