在低光照的夜间,摄像头采集的画面通常是一片昏暗,画面清晰度要远远低于肉眼。而随着实时音视频应用技术的发展,我们已经看到了各种画质增强的视频增强技术,那么是否存在一种技术,可以使视频在低光照条件下看起来比实际情况更清晰或接近实际情况呢?

卧室的墙和灯,在低照度增强之前和之后

低照度图像增强技术的应用场景

低照度图像增强是指对暗光条件下拍摄的图像进行画质增强,使其变得清晰或接近于肉眼效果。我们总结了一些与低照度相关的强需求场景,具体如下:

1、提高夜间检查或监测的可见度

在夜间条件下,监控摄像头或汽车安全摄像头的视频质量和清晰度至关重要。

夜晚的乌镇牌楼,低照度增强前后的对比 

在公共场所设置监控摄像头的目的是为了监视和记录。然而,夜间视频记录在光线不足的情况下大多是黑暗和不清晰的,不能作为刑事案件的线索或证据提供明确和有力的支持。

而汽车安全摄像头的视频记录对于交通事故的处理至关重要,越清楚的视频包含更多的细节,有助于交警更好更快的处理。

2、用于实时流媒体或视频聊天

当涉及到互联网娱乐和社交场景时,我们希望即使在暗光条件下也能清楚的看到对方的脸。

这是发生在我们客户上的一个真实事件。该客户是一个颇具规模的网络交友平台,有一个用户不喜欢在她的卧室里开灯再加上她本身是偏黑色的皮肤,结果她的网友在这种昏暗的环境中看不到她的脸。我们的客户对用户保持了高度的尊重,所以希望能够在不开灯或光线不足的情况下也能改善用户的体验。

3、用于 AI 内容识别的图像增强技术

我们的 Avatar 技术能够根据输入图像对人物进行实时建模。该技术中的人脸识别、人体关键点识别等多种和视频相关的算法都对输入图像质量有着比较高的要求。算法能够正确的识别到人脸和躯体位置取决于输入图像是否足够清晰。

在输入图像黑暗或模糊的情况下,识别人脸和身体轮廓是非常具有挑战性的,所以最终的输出效果会受到影响。

传统做法与弊端

为了满足用户需求,解决在光线不足及条件下视频质量低下的这些问题,我们通过自研 AI 算法对低光照视频进行增强。

1、用传统算法来增强视频亮度

低照度增强的主要作用是提升画面的亮度,同时还要考虑以下几点限制:

  • 画面过曝:高亮度的像素不应该被过度提亮

  • 抑制噪点:图像噪音不应该被放大

  • 轮廓清晰:有效信息应被最大限度地保留

传统算法很难同时考虑上述几点要求。深度学习方法也可用于低照度图像增强,但它在内存、CPU 和 GPU 上有一定的消耗,其弊端如下:

  • 模型和推理库较大

  • 计算量较大

  • 耗电

夜晚的社区走廊,在低照度增强之前和之后

2、传统算法的常见问题

传统算法在进行视频低照度增强的同时,对画面中的所有内容都按照相同的规则进行处理,容易导致画面中的亮区灰度被过度拉伸,使得画面出现过曝。

而深度学习方法的模型一般较大,运算量大,功耗大,很难在移动端或边缘设备上进行实时处理,覆盖机型极其有限。

ZEGO 低照度图像增强,效果更好

1、ZEGO 低照度,弥补传统算法不足

为了解决传统低照度图像增强带来的问题,我们做了以下几个方面的改进:

  • 首先不是所有的视频像素都应该被提亮,我们要避免过度提亮那些已经足够亮的像素。一些视频像素是低亮度的,需要相应地提亮到不同的亮度。ZEGO 低照度算法一帧一帧的对视频进行扫描,对不同亮度的像素进行分类。

  • 实际运行场景下不会加载深度学习模型。相反,我们只加载 2D/3D LUT(又称查找表)。我们离线训练了深度学习模型,并提取 2D/3D-LUTs,最后将其植入到我们的算法中,因此我们在达到和深度学习模型相同效果的同时,规避掉了其本身的一些弊端。

夕阳下的乌镇水道,在低照度增强之前和之后

2、ZEGO 低照度图像增强技术优势

  • FHD 实时视频

FHD 视频是指具有高帧率的高清视频,它能给用户更好的观看体验。由于采用了深度学习算法训练得到的 2D/3D-LUT,该算法能在保证增强质量的同时进行实时处理。

  • 舒适自然的视觉体验

我们相信 "少即是多 "的理念。我们对不同亮度的区域做不同程度的处理,避免过曝,使视频看起来自然、舒适。当我们检测到视频画面足够亮时,我们甚至不进行任何处理。

  • 全面覆盖移动设备,包括低端设备

得益于离线深度学习方法和其他创新措施,ZEGO 低照度技术即使在低端或老旧智能手机(如小米 2S 或 iPhone 4S)和物联网设备上也能有出色的性能表现。

  • 极端照明条件下的鲁棒性

ZEGO 低照度技术已经在大量的极端照明情况下进行了测试,能够在极端黑暗或明亮的条件下良好工作。我们还与其他友商解决方案进行了对比测试,发现后者在极端的照明条件下会出现炫光或闪烁等异常情况。

ZEGO 低照度图像增强技术研发思路

ZEGO 即构科技拥有一支专门从事视频增强的人工智能研发团队,并且已系统的建立了一套复杂的人工智能画质增强算法。该团队多年来深耕图像处理技术,不断超越现有的技术手段,即使在极端的低照度场景,也能提供令人惊艳的画质,同时能够在边缘设备上以高分辨率、高帧率、进行实时运行。

1、轻量级的深度学习模型

深度学习技术虽然能对增强低光视频起到很大的作用,但它很难在低端机型上实时运行起来。

我们使用模型训练得到的 2D/3D LUT 并在运行阶段加载该查找表用于低照度增强。基于该查找表,算法的实际算力和内存消耗都非常小,使得低端机型也能进行实时的画质增强。

2、适当地增亮到不同水平

该算法会对整个图像进行扫面并评估不同区域的亮度水平。我们只对低光照且包含有效信息的区域进行增亮而不会处理那些已经足够亮的区域。

3、平稳地增加光量以避免闪烁

为了给用户更好的使用体验,我们会在一小段时间里动态调整低照度的增强水平,使其能够平稳过渡到目标亮度,避免环境光亮的忽亮忽暗导致的画面出现闪烁。

如果不考虑增强效果的过渡,当环境光出现频繁变化时会导致算法来回切换增强模式从而使得画面出现闪烁。该算法会在一定时间内进行渐进式增亮,保证增亮效果平稳过渡,使得肉眼看起来感到自然和舒适。所有这些努力背后的理念是以人为本。

4、避免检测帧间的光线变化

在实际情况下,光线可能是闪烁的,两个连续帧之间的光照可能会出现比较大的差异。我们不会对相邻两帧之间进行光照变化的检测,避免额外的计算消耗。

检测光线变化会消耗一定的计算资源,这将减慢处理速度并引入额外的延迟。除此之外,检测算法很复杂,它的判断可能会出错。考虑到这些限制,我们决定避免检测帧间的光线变化。

5、对图像噪声进行保守处理

图像噪声是图像增强中的一个经典问题。市面上有各种处理图像噪声的算法,我们在经过全面的实验和比较后总结出以下几个原则:

  • 当我们增亮有效区域的像素亮度时,需要尽量避免放大图像噪声。我们通过设计复杂的算法来检测图像噪声,并以不同的方式处理它们。

  • 尽量不要做图像噪声抑制,因为这是一项繁重的计算任务,也会减慢处理速度。此外,处理结果很可能不会令人满意。

  • 如果有必要,采取一些保守的措施来抑制图像噪声。例如,为了抑制噪声的中一个像素,你可以用它周围像素的光照度的平均值来代替它。

总结

ZEGO 即构科技低照度处理技术能够智能感知环境光亮程度,并智能调整图像亮度到符合人眼舒适程度,一切以符合用户的感知为标准进行暗场景智能化调整。

未来,即构科技视频算法团队也将继续深入用户需求,致力为用户提供更加舒适的视觉体验!

暗黑王者|ZEGO 低照度图像增强技术解析的更多相关文章

  1. 学习PHP爬虫--《Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)》

    <Webbots.Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)> 译者序 前言 第一部分 基础概念和技术 第1章 本书主要内容3 1.1 发现互联网的真 ...

  2. 钟表维修管理系统技术解析(一) MVC架构搭建

    钟表维修管理系统技术解析(一)  MVC架构搭建 1.1新建项目 第一步:打开VS2010界面,点击左上角文件,点击新建,选择项目 1.1(图1) 第二步:点击网站Web类型,选择ASP.net MV ...

  3. 会员卡管理系统技术解析(十八)Timer定时监听

    会员卡管理系统技术解析(十八)Timer定时监听 在web应用中,有时候客户须要一些定时程序.不须要客户自己去操作.而是由应用程序自行触发(代理)运行某些操作. 这个时候监听与定时器的配合使用就基本能 ...

  4. 干货|爱奇艺CDN巡检系统技术解析

    小结: 1. 中心处理系统 /1/将定制后的巡检任务拆分,通过配置与任务分发系统.CMDB*( configuration management database)将派发到边缘拨测系统/2/处理边缘拨 ...

  5. 深度学习基础系列(十一)| Keras中图像增强技术详解

    在深度学习中,数据短缺是我们经常面临的一个问题,虽然现在有不少公开数据集,但跟大公司掌握的海量数据集相比,数量上仍然偏少,而某些特定领域的数据采集更是非常困难.根据之前的学习可知,数据量少带来的最直接 ...

  6. 现代前端技术解析:Web前端技术基础

    ​ 最近几年,越来越多的人投入到前端大军中:时至至今,前端工程师的数量仍然不能满足企业的发展需求:与此同时,互联网应用场景的复杂化提高了对前端工程师能力的要求,一部分初期前端工程师并不能胜任企业的工作 ...

  7. Hystrix线程隔离技术解析-线程池(转)

    认识Hystrix Hystrix是Netflix开源的一款容错框架,包含常用的容错方法:线程隔离.信号量隔离.降级策略.熔断技术. 在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有 ...

  8. dom技术解析xml下jaxp解析器详细代码

    1.使用jaxp实现查询操作 person.xml <?xml version="1.0" encoding="UTF-8" standalone=&qu ...

  9. 在线抠图网站速抠图sukoutu.com全面技术解析之canvas应用

    技术关键词 Canvas应用,泛洪算法(Flood Fill),图片缩放,相对位置等比缩放,判断一个点是否在一个平面闭合多边形,nginx代理 业务关键词 在线抠图,智能抠图,一键抠图,钢笔抠图,矩阵 ...

  10. 互联网DSP广告系统架构及关键技术解析

    互联网DSP广告系统架构及关键技术解析 宿逆 关注 1.9 2017.10.09 17:05* 字数 8206 阅读 10271评论 2喜欢 60 广告和网络游戏是互联网企业主要的盈利模式 广告是广告 ...

随机推荐

  1. MySQL MHA信息的收集【Filebeat+logstash+MySQL】

    一.项目背景 随着集团MHA集群的日渐增长,MHA管理平台话越来越迫切.而MHA平台的建设第一步就是将这些成百上千套的MHA集群信息收集起来,便于查询和管理. MHA主要信息如下: (1)基础配置信息 ...

  2. 人工智能AI库Spleeter免费人声和背景音乐分离实践(Python3.10)

    在视频剪辑工作中,假设我们拿到了一段电影或者电视剧素材,如果直接在剪辑的视频中播放可能会遭遇版权问题,大部分情况需要分离其中的人声和背景音乐,随后替换背景音乐进行二次创作,人工智能AI库Spleete ...

  3. pinia的使用

    1. pinia和vuex的区别 pinia没有mutations,只有:state. getters. actions pinia分模块不需要modules(之前vuex分模块需要modules) ...

  4. csp-s2022游记

    ## 10.29### 民间数据:洛谷 $95+85+60+44=284$  infoj $90+40+40+44=214$  **输麻了**### 赛时经历开考前发现前面坐着 Qiuly,好可怕.开 ...

  5. 从案例中详解go-errgroup-源码

    一.背景 某次会议上发表了error group包,一个g失败,其他的g会同时失败的错误言论(看了一下源码中的一句话The first call to return a non-nil error c ...

  6. JavaScript封装大全

    JavaScript封装大全-持续更新 Ajax封装 // 使用该封装需注意 // Ajax(method(默认GET), url(网址 必传), success(res){(成功时数据处理函数 必传 ...

  7. 【STL】C++使用STL处理替换字符串操作。

    // Examples4STL.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #incl ...

  8. 2021-07-06:股票问题3。给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(

    2021-07-06:股票问题3.给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易.注意:你不能同时参与多笔交易( ...

  9. vue全家桶进阶之路26:Vue.js 3.0与Vue.js 2.x 的比较和注意事项

    Vue.js 3.0 是 Vue.js 框架的最新版本,于 2020 年 9 月正式发布.Vue.js 3.0 主要的改进和新特性包括: 更好的性能:Vue.js 3.0 使用了更快的虚拟 DOM 实 ...

  10. SQL Server:User, group, or role 'iemis' already exists in the current database.

    --最新的解决方法 --先创建用户帐户,不进行授权,然后通过下面的SQL语句将该用户帐户关联至对应的数据库用户.优点是避免了重新授权的操作. USE tempdbEXEC sp_change_user ...