• [技术干货] 支持Caffe_Tensorflow_ONNX_MindSpore架构_最高达10Tops算力_4K70_编解码核心板开发
    本文介绍了AI-MD55x55M核心板是针对基于NPU+AI ISP的SoC 媒体处理芯片开发的编解码核心板,用于给客户展示芯片强大的多媒体功能和丰富的外围接口,同时为客户提供 基于SoC的产品硬件PCBA,将芯片具备的资源完整开放出来,可根据各种使用场景设计相应的底板,模块的设计降低了的开发周期和开发成本与风险。                                         主控关键特性已经全部开放出来:智能加速4Tops INT8 NN加速引擎,双核Vision Q6的DSP处理;支持4K60的H.265/H.264编码,支持10路1080p30的H.265/H.264解码;支持4路4Mp30机内实时硬化拼接,支持2路4K p30机内实时硬化拼接;高速接口支持USB3.0和PCIe2.0高速接口。内置智能视频分析神经网络加速引擎,高达 4Tops INT8 支持INT4/FP16 ,支持完整的API和工具链,易于开发 ,双核 Vision Q6 DSP 32K I-Cache /32K D-Cache /32K IRAM/320K DRAM,内置智能计算加速引擎,双目深度加速单元,以及矩阵计算加速单元。                                                                                                                        引脚原理图AI ISP升级主要体现在,超感光降噪:信噪比提升了4倍;多光谱融合:红外补光,既有全彩又有细节;超级宽动态:动态范围扩大12dB,同时获得明亮细节和暗部细节;超级稳像:在运动条件下获得稳定画面;多维度感知:形象感知的同时进行物理量的标注。复制链接进入,了解测试IPC测试对比视频:https://cloud.tencent.com/developer/article/1973592
  • [行业资讯] 中国移动发布首个物联网智能通信领域国际标准
    本报讯 近日,中国移动智慧家庭运营中心自主研发的全球首个基于智能音箱多媒体通信需求的国际标准F.746.13,正式通过国际电信联盟(ITU)批准发布。  据介绍,中国移动智慧家庭运营中心深耕面向物联网的多媒体通信系统AloTel,首创软件通信模组赋能多形态终端、分布式流媒体传输、多人跨屏通信等技术,突破传统固话功能和形态单一的局限,将智能通信广泛赋能家庭多形态智能设备,并融合AI技术,以智能语音交互和人脸识别方式实现“解放双手”和无障碍通信,同时推出互动式多媒体通信技术,在视频通话中通过拨号键实现对智能家居的联动控制。截至目前,中国移动智慧家庭运营中心在多媒体通信领域已牵头制定3项国际标准、6项行业标准。  5G时代,通信终端从手机向TV、音箱、车、机器人等新型终端不断延伸。中国移动智慧家庭运营中心聚力5G VoNR研发,创新融合型轻载化高效EVS编码、低功耗通信模组、弱网对抗技术、交互式通信技术,全面升级通话体验。此外,还优化了EVS在物联网终端及多种网络环境下的适应能力,进一步降低通话时延,赋能多种终端。相比传统通信系统而言,用户可感知更广的全频域音源,实现时打时接,享受沉浸式沟通体验。  从一机一密智能设备安全认证,到轻量级终端威胁检测技术研发,中国移动智慧家庭运营中心基于家庭网络发挥家庭大脑核心能力,守护1.6亿家庭用户,同时赋能街道、乡村、社区、中小微企业等,为他们提供智能化、集约化的安全服务。在助力打造智慧家庭、智慧社区过程中,中国移动还利用5G、AI、物联网等新技术,实现传统社区向绿色可持续发展社区转型,在环境检测、节能节水、安全守护、疫情监测、老幼关爱等环节发挥重要作用,为加速实现“双碳”目标贡献科技力量。
  • [技术干货] OpenHarmony 3.1 Release版本关键特性解析——OpenHarmony新音视频引擎——HiStreamer
    OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。面对万物互联时代种类众多、且差异巨大的终端设备,我们为 OpenHarmony 打造了一款新的音视频引擎——HiStreamer。 一、HiStreamer产生背景数字多媒体技术在过去的数十年里得到了飞速的发展,音乐、电话、电视、电影、视频会议等等,伴随着我们度过每一天。为了给用户提供丰富的多媒体处理能力,业界已经有比较成熟的音视频引擎,比如开源的音视频引擎 GStreamer。为什么我们还要打造一款新的音视频引擎呢?随着万物互联时代的到来,越来越多的智能化设备出现在我们的生活中。比如:智能冰箱可以通过屏幕和声音,告诉人们储藏的菜品快要过期了;智能闸机可以通过人脸识别,自动完成检票工作;智能门锁可以通过语音和视频,提升开锁的效率和安全性......与PC、手机等标准(Standard)设备不同,很多智能化设备的CPU处理能力比较弱、内存也比较小,传统的音视频引擎无法支持此类设备。HiStreamer 应运而生,既支持轻量级的 Mini/Small 设备,也支持 Standard 设备(目前支持部分功能)。HiStreamer 在不断发展和完善中,未来将会支持 Standard 设备的更多功能。二、“管道+插件”,实现弹性部署为了支持 Mini/Small/Standard 设备,HiStreamer 采用管道(Pipeline)和插件(plugin)的软件架构,从而可以根据设备的硬件和需求差异进行弹性部署。HiStreamer 把音视频处理的每个过程抽象成节点,上一个节点的输出,作为下一个节点的输入,把多个节点连接起来,整体形成一个管道(Pipeline),完成音视频的数据读取、解封装、解码、输出的完整流程。同时,插件可以为 Pipeline 的节点提供丰富的扩展功能,让 HiSteamer 的音视频处理能力更强大。 1. Pipeline框架介绍为了让大家理解 HiStreamer 的 Pipeline 框架,下面以 MP3 音频播放为例讲解:输入是一个 MP3 文件,输出是播放出的音乐,这中间经过了很多步骤。先来看一下 MP3 文件结构:图1 MP3文件结构 MP3 文件由 ID3 Metadata 容器头和若干 MP3 Frame(MP3 数据帧)构成。每个 MP3 Frame 又由 MP3 Header(MP3 头信息)和 MP3 Data 构成。这一系列的 MP3 Frame 称为 ES Data( Element Stream Data)。● ID3 Metadata:容器头,主要包括标题、艺术家、专辑、音轨数量等。● MP3 Header:包含 MP3 Sync word(标识 MP3 数据帧起始位置)和 MPEG 版本信息等。● MP3 Data:包含压缩的音频信息。播放 MP3 文件,首先需要把 MP3 文件数据读进来,然后去掉 ID3 Metadata 容器头(即解封装),再把一系列 MP3 Frame 解压缩成 PCM(Pulse-Code Modulation)数据,最后驱动喇叭发声。这个过程按顺序可以抽象成如下四个节点:图2 MP3音频播放的Pipeline1. 输入节点(MediaSourceFilter): 读取 MP3 原始数据,传给下一个节点。2. 解封装节点(DemuxerFilter): 解析 ID3 Metadata 容器头信息,作为后续节点的参数输入,并且把一帧帧 MP3 Frame(即 ES Data)传给后续的解码节点。3. 解码节点(AudioDecoderFilter): 把 ES Data 解码成 PCM 数据,传给输出节点。4. 输出节点(AudioSinkFilter): 输出 PCM 数据,驱动喇叭发声。由以上示例可知,HiStreamer 通过 Pipeline 框架把音视频处理的每个过程抽象成一个个节点。这些节点是解耦的,可以灵活拼装,从而可以根据业务需要拼装出不同的 Pipeline。同时,为了使多个节点能更好地协同工作,HiStreamer 还支持节点间的参数自动协商。2. HiStreamer插件介绍了解了 HiStreamer 的 Pipeline 框架后,我们再来看看 HiStreamer 插件。HiStreamer 的 Pipeline 框架的很多节点(比如输入节点、解封装节点、解码节点、输出节点等)都支持插件扩展。通过插件,节点的功能变得更加丰富、更加强大。插件的应用场景非常广泛,比如:● 媒体格式非常多,且以后还会有新的格式产生,可以通过插件支持新的媒体格式。● 不同 OS 平台或设备,处理方式存在差异,可以通过插件支持不同的处理方式。● 不同类型的设备,需求不同,能提供的 CPU/ROM/RAM 资源多少也不同,也可以通过插件来支持。3. 弹性部署HiStreamer 基于管道(Pipeline)和插件(plugin)的软件架构,可以根据设备的硬件和需求差异实现弹性部署。图3 HiStreamer弹性部署如图 3 所示,Mini 设备(比如音箱),它的 CPU 处理能力很弱,ROM/RAM 资源很少,需要的功能也比较少,只需要音频播放功能。HiStreamer 可以配置成只支持音频播放,并且选择轻量级的插件,配置同步解码模式,减少资源消耗。而 Small 设备,CPU 处理能力强一些,ROM/RAM 空间大一些,需要音频播放和视频播放功能。HiStreamer 可以配置成支持音视频播放,并且选择功能更强的插件。三、HiStreamer逻辑架构经过上面的介绍,我们了解了 HiStreamer 的“管道+插件”的软件架构。下面我们再来看看 HiStreamer 的详细的逻辑架构。图4 HiStreamer逻辑架构图HiStreamer 主要由 HiStreamer 引擎和 HiStreamer 插件构成。其中,HiStreamer引擎又分为以下四层:● 业务封装层:基于 Pipeline 封装实现播放器、录音机功能,简化上层应用使用。● Pipeline 框架层:提供 Pipeline 和若干个节点(输入、解封装、解码和输出)的实现,支持把多个节点连接在一起形成 Pipeline。● 插件管理层:用于插件生命周期管理,支持动态加载或静态链接两种方式使用插件。● 工具库层:提供框架依赖的工具,隔离操作系统差异,提供调测功能。HiStreamer 插件,则分为平台软件插件和厂商硬插件两类:● 平台软件插件:由 OpenHarmony 平台提供,可跨产品复用的软件算法插件。● 厂商硬插件:由厂商提供的基于硬件加速的插件,如硬件加速的编解码插件。应用开发者可以直接使用现成的插件来实现多媒体功能,节省大量的开发时间。插件越丰富,HiStreamer 的音视频处理能力会更强大。欢迎广大开发者参与 HiStreamer 插件的开发,一起来丰富 HiStreamer 插件!四、HiStreamer插件开发及实例下面就为大家介绍 HiStreamer 插件的开发过程及实例讲解,感兴趣的小伙伴们赶紧学起来,一起参与 HiStreamer 插件开发吧~1. 插件的开发HiStreamer 插件的开发主要分为插件定义和功能实现两个部分。(1)插件定义HiStreamer 插件是通过 PLUGIN_DEFINITION 宏来定义的。以输入插件 FileSource 为例,定义代码如下:std::shared_ptr<SourcePlugin> FileSourcePluginCreator(const std::string& name) { return std::make_shared<FileSourcePlugin>(name); } Status FileSourceRegister(const std::shared_ptr<Register>& reg) { SourcePluginDef definition; definition.name = "FileSource"; definition.description = "File source"; definition.rank = 100; // 100: max rank definition.protocol.emplace_back(ProtocolType::FILE); definition.creator = FileSourcePluginCreator; return reg->AddPlugin(definition); } //PLUGIN_DEFINITION传入四个参数 PLUGIN_DEFINITION(FileSource, LicenseType::APACHE_V2, FileSourceRegister, [] {}); 使用 PLUGIN_DEFINITION 宏定义插件(即上面最后一行代码)时,传入了四个参数:a) 插件名称:即示例中的“FileSource”。b) License 信息:即示例中的“LicenseType::APACHE_V2”。c) 插件注册函数:即示例中的“FileSourceRegister”,该函数描述了插件基本信息,包括插件对象创建函数,并且还调用 AddPlugin 把插件注册到系统中。d) 插件反注册函数:可以传为空实现。(2)功能实现实现插件功能时,需根据要实现的插件类型,继承对应插件接口类,并实现相关接口。比如实现输入插件 FileSource,需要继承 SourcePlugin,并实现 SetSource、Read 等接口,代码如下:// 定义FileSourcePlugin类继承SourcePlugin类 class FileSourcePlugin : public SourcePlugin { // 实现SetSource接口, 设置要打开的文件路径 Status SetSource(std::shared_ptr<MediaSource> source) { return OpenFile(source->GetSourceUri()); } // 实现Read接口,它会读取数据用于后续处理 Status Read(std::shared_ptr<Buffer>& buffer, size_t expectedLen) { std::fread(bufData->GetWritableAddr(expectedLen), sizeof(char), expectedLen, fp_); return Status::OK; } }FileSource插件的完整代码可参考:https://gitee.com/openharmony/multimedia_histreamer/tree/master/engine/plugin/plugins/source/file_source2. 插件的部署使用 PLUGIN_DEFINITION 定义的 HiStreamer 插件,可以是单一功能的插件,也可以是有多个功能的插件包。每个这样的插件或插件包,可以独立编译成.a或者.so,分别对应以下两种部署方式:● 静态部署:一般用在 mini 设备上,插件编译成静态库.a,链接到系统中。● 动态部署:一般用在 small/standard 设备上,插件编译成动态库.so,放到系统指定目录下,动态加载运行。3. 插件的运行插件开发完成且部署到系统之后,HiStreamer 启动时就会自动完成插件的注册。下一步,就是运行插件了。运行新实现的插件,需要先满足该插件的运行条件。比如:FileSource 只会在播放本地文件时运行;MP3 解码插件只会在播放 MP3 文件时运行......开发者可以通过日志信息,查看是否运行了自己的插件。如果有别的插件注册到系统中,导致自己的插件无法运行时,可以卸载引起干扰的插件。卸载动态部署的插件,删除对应的.so即可;卸载静态部署的插件,需要修改编译脚本取消对应插件的编译。五、结束语OpenHarmony 欢迎广大开发者一起加入 HiStreamer 插件开发,扩展自己想要的媒体功能,共同丰富 HiStreamer 媒体生态!同时,预告大家:HiStreamer 的下一个版本将为 Standard 设备增强更多功能,敬请期待!本期关于 HiStreamer 的介绍就到这里了。更多HiStreamer信息,请参考:https://gitee.com/openharmony/multimedia_histreamerhttps://gitee.com/openharmony/multimedia_histreamerhttps://gitee.com/openharmony/multimedia_histreamer转载于OpenAtom OpenHarmony微信公众号
  • [赛事资讯] 2022第八届华为软件精英挑战赛全球总决赛收官,获奖名单揭晓
    5月22日,2022第八届华为软件精英挑战赛-“普朗克计划”总决赛及颁奖典礼圆满落幕。历时两个多月的激烈角逐,3291支队伍参赛,经过八大赛区区域初赛、区域复赛等环节的层层考验,共有48支队伍、133名优秀学子成功晋级总决赛,汇聚华为深圳总部巅峰对决。最终,来自粤港澳赛区的“我们啥也不会”队一举夺魁,赢得全球总冠军,独揽20万元奖金;武长赛区的“周五快乐”队、粤港澳赛区的“量化交易研究小组”队夺得亚军,均获10万元奖金;西北赛区的“佛曰不可说”队、杭厦赛区的“土豪法称霸杭厦”队、成渝赛区的“低调就不队”、成渝赛区的“三只Monster立大功”队、上合赛区的“DataIsPower”队等5支队伍获得季军,均获得5万元奖金;粤港澳赛区的“路路的小跟班”队赢得“最优美代码”奖,获得1万元奖金。华为云全球Marketing与销售服务总裁石冀琳、华为云CTO张宇昕、华为云人力资源总裁王海杰等出席了总决赛颁奖典礼并为获奖学生颁奖。张宇昕在颁奖总结致辞中表示:通过本次大赛,我们感受到了所有同学对软件的热爱和技术的追求,也看到很多优秀队伍对代码的可读性、可靠性、安全、效率的追求,甚至有些参赛队伍与工作多年的优秀工程师能力相当。让我们看到了中国软件产业的希望,真正能实现软件技术和工程能力支撑企业和国家的未来的发展。华为坚持技术创新,不断突破技术高峰,保障极致的客户体验,唯有心怀梦想、热爱软件、敢于攀登、负重前行的人与我们一起前进,我们才能将梦想放飞。我们希望找到一群志同道合的人。此外,今年6月我们还会举办华为开发者大赛,欢迎大家关注和参与。作为业内首屈一指的软件编程竞赛平台,华为软件精英挑战赛是华为公司面向全国乃至全球在校大学生举办的大型软件编程竞赛,覆盖了国内外超过1000所高校,吸引了超10万大学生参与,其中超2000名软件精英通过大赛加入华为。在软件精英挑战赛的舞台上,同学们可以充分展示软件设计与编程的能力,享受coding解决问题的乐趣,感受软件改变世界的魅力。本届大赛总奖金池高达66万元,主办方同步“加码”华为校招机试面试绿卡以及华为云700多门高质量免费课程等丰富的资源扶持,吸引了全球21813位来自826所高校学子参赛,高校遍布中国、美国、英国、法国、德国、澳大利亚、加拿大、新加坡、芬兰、马来西亚等10多个国家。今年赛题结合华为云媒体服务面临的真实业务场景,以视频直播服务中流量调度问题为基础,在满足客户稳定、流畅的体验要求的同时,通过方案设计实现对流量的合理调度,最小化网络使用成本。意在让大学生们亲身感受云计算面临的相关问题和挑战,尽情释放软件设计与编程的创新能力,把理论知识结合企业实际业务场景进行思考,享受通过算法解决问题及创造实际价值的过程。华为云赛题组专家表示,人类获得信息,83%是通过视觉获得的;人类处理视觉信息比文本信息快6万倍。正是因为这些特点,视频得到了规模应用,预计2025年视频数据流量占全球网络流量的90%。媒体网络是由端、边和云异构算力和带宽资源构成,不同资源的时延和成本不一致,对构建极致的媒体网络提出了很高的挑战。简单点讲,媒体网络解决的问题是在保证QoS下整体成本最低。在媒体网络中,带宽成本往往大于90%,因此对带宽的计费成本的优化,就显得格外重要。本届赛题基于此背景提出,以华为云视频直播服务流量调度问题为基础,进行一定的抽象、调整和简化。面向未来,华为将依靠人才、科研和创新精神,加大投入研发创新,全力推动软件创新,持续吸引优秀人才,用技术推动世界进步。
  • [行业资讯] 京东方全媒体管控平台落地成都地铁 彰显数字经济时代下物联网行业领军水平
    近年来,以物联网、大数据、人工智能等为代表的数字经济时代飞速发展,促进大批科技成果转化。数字经济正在成为重塑全球经济结构、改变全球竞争格局的关键力量。作为全球领先的物联网创新企业,京东方不断走在行业前端。近日,其自主研发的全媒体管控平台在成都地铁实现落地应用。在数字经济时代,该平台的落地不仅有效助力更高效便捷的地铁媒体运营服务,也对西南地区全场景下的媒体运营管理具有标杆性意义。据了解,此次京东方分别为成都地铁文殊院站、桐梓林站等10余个核心站点提供软硬融合的全媒体智能化升级服务。该平台将京东方物联网技术跨界赋能地铁媒体运营领域,以“AIoT+数字媒体”为特点,融合人工智能、大数据、物联网等新一代信息技术,具备数字可视化媒体运营中心、智能化媒体内容编播、符合国家信息安全等级保护三.级标准等优势,已覆盖成都地铁1号线、6号线、8号线、18号线等4条地铁线路。京东方全媒体管控平台落地成都地铁京东方全媒体管控平台由数字化媒体运营中心、远程媒体编播系统、高性能媒体播控设备等软硬融合的物联网系统平台产品组成,为地铁媒体运营提供高效、安全、可靠的物联网解决方案。其中,数字化媒体运营中心对现有地铁媒体大屏进行物联网系统升级,实现对媒体内容远程统一的数字可视化运维。不仅支持所有主流编程语言的设备接入,助力媒体大屏等海量物联网设备快速上云,同时通过环境监测及预警系统实现了对媒体设备周边的烟雾、温度、湿度等物理环境的远程实时监测和预警,大幅提升运营安全管理能力。从需要每天线下大量人工巡检设备,升级至远程可视化自动管控,播控设备出现故障即可自动报警,有效节约了线下人员成本。远程媒体编播系统则实现了从媒体内容制作、下发到投放的一体化管理,能支持多达43种素材叠加播放及原生4K、8K超高清视频解码,是目前业界极为丰富的媒体编播平台。此外,该系统还可实现远程线上自动刊播,将媒体内容一键同步到地铁进站口、换乘空间的数字化媒体终端上,从而大大缓解了以往内容更新需要平均2小时现场人工操作的状态,极大节省了刊播成本.媒体内容投放安全同样不容忽视。面对无法实时校对地铁媒体刊播内容的难题,京东方全媒体管控平台满足了行业最高级别的信息安全等级保护三.级标准,有效构建了媒体刊播在传输、内容、流程、设备的全链路安全刊播能力。值得一提的是,通过京东方AI技术能够在发现刊播不良信息时自动采取即刻报警、自动关屏等措施,进一步保障多场景下媒体刊播信息服务安全。在数字经济时代,京东方近年来一直以“屏之物联”战略为核心持续深耕物联网创新事业,2021年物联网创新事业营收同比大幅增长,已成为公司发展新引擎。此次京东方全媒体管控平台的首次成功落地不仅为媒体运营赋能,更成为智慧创新物联网解决方案助力全场景智能化升级的行业典范。
  • [技术干货] 使用JojoGAN创建风格化的面部图
    介绍风格迁移是神经网络的一个发展领域,它是一个非常有用的功能,可以集成到社交媒体和应用程序中。几个神经网络可以根据训练数据将图像样式映射和传输到输入图像。在本文中,我们将研究 JojoGAN,以及仅使用一种参考样式来训练和生成具有该样式的任何图像的过程。JoJoGAN:One Shot Face StylizationOne Shot Face Stylization(一次性面部风格化)可用于 AI 应用程序、社交媒体过滤器、有趣的应用程序和业务用例。随着 AI 生成的图像和视频滤镜的日益普及,以及它们在社交媒体和短视频、图像中的使用,一次性面部风格化是一个有用的功能,应用程序和社交媒体公司可以将其集成到最终产品中。因此,让我们来看看用于一次性生成人脸样式的流行 GAN 架构——JojoGAN。JojoGAN 架构JojoGAN 是一种风格迁移程序,可让将人脸图像的风格迁移为另一种风格。它通过GAN将参考风格图像反转为近似的配对训练数据,根据风格化代码生成真实的人脸图像,并与参考风格图像相匹配。然后将该数据集用于微调 StyleGAN,并且可以使用新的输入图像,JojoGAN 将根据 GAN 反转(inversion)将其转换为该特定样式。JojoGAN 架构和工作流程JojoGAN 只需一种参考风格即可在很短的时间内(不到 1 分钟)进行训练,并生成高质量的风格化图像。JojoGan 的一些例子JojoGAN 生成的风格化图像的一些示例:风格化的图像可以在各种不同的输入风格上生成并且可以修改。JojoGan 代码深潜让我们看看 JojoGAN 生成风格化人像的实现。有几个预训练模型可用,它们可以在我们的风格图像上进行训练,或者可以修改模型以在几分钟内更改风格。JojoGAN 的设置和导入克隆 JojoGAN 存储库并导入必要的库。在 Google Colab 存储中创建一些文件夹,用于存储反转代码、样式图像和模型。!git clone https://github.com/mchong6/JoJoGAN.git%cd JoJoGAN!pip install tqdm gdown scikit-learn==0.22 scipy lpips dlib opencv-python wandb!wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip!sudo unzip ninja-linux.zip -d /usr/local/bin/import torchtorch.backends.cudnn.benchmark = Truefrom torchvision import transforms, utilsfrom util import *from PIL import Imageimport mathimport randomimport osimport numpyfrom torch import nn, autograd, optimfrom torch.nn import functionalfrom tqdm import tqdmimport wandbfrom model import *from e4e_projection import projectionfrom google.colab import filesfrom copy import deepcopyfrom pydrive.auth import GoogleAuthfrom pydrive.drive import GoogleDrivefrom google.colab import authfrom oauth2client.client import GoogleCredentials模型文件使用 Pydrive 下载模型文件。一组驱动器 ID 可用于预训练模型。这些预训练模型可用于随时随地生成风格化图像,并具有不同的准确度。之后,可以训练用户创建的模型。#Download models#optionally enable downloads with pydrive in order to authenticate and avoid drive download limits.download_with_pydrive = True  device = 'cuda' #['cuda', 'cpu']!wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2!bzip2 -dk shape_predictor_68_face_landmarks.dat.bz2!mv shape_predictor_68_face_landmarks.dat models/dlibshape_predictor_68_face_landmarks.dat%matplotlib inlinedrive_ids = {   "stylegan2-ffhq-config-f.pt": "1Yr7KuD959btpmcKGAUsbAk5rPjX2MytK",   "e4e_ffhq_encode.pt": "1o6ijA3PkcewZvwJJ73dJ0fxhndn0nnh7",   "restyle_psp_ffhq_encode.pt": "1nbxCIVw9H3YnQsoIPykNEFwWJnHVHlVd",   "arcane_caitlyn.pt": "1gOsDTiTPcENiFOrhmkkxJcTURykW1dRc",   "arcane_caitlyn_preserve_color.pt": "1cUTyjU-q98P75a8THCaO545RTwpVV-aH",   "arcane_jinx_preserve_color.pt": "1jElwHxaYPod5Itdy18izJk49K1nl4ney",   "arcane_jinx.pt": "1quQ8vPjYpUiXM4k1_KIwP4EccOefPpG_",   "arcane_multi_preserve_color.pt": "1enJgrC08NpWpx2XGBmLt1laimjpGCyfl",   "arcane_multi.pt": "15V9s09sgaw-zhKp116VHigf5FowAy43f",   "sketch_multi.pt": "1GdaeHGBGjBAFsWipTL0y-ssUiAqk8AxD",   "disney.pt": "1zbE2upakFUAx8ximYnLofFwfT8MilqJA",   "disney_preserve_color.pt": "1Bnh02DjfvN_Wm8c4JdOiNV4q9J7Z_tsi",   "jojo.pt": "13cR2xjIBj8Ga5jMO7gtxzIJj2PDsBYK4",   "jojo_preserve_color.pt": "1ZRwYLRytCEKi__eT2Zxv1IlV6BGVQ_K2",   "jojo_yasuho.pt": "1grZT3Gz1DLzFoJchAmoj3LoM9ew9ROX_",   "jojo_yasuho_preserve_color.pt": "1SKBu1h0iRNyeKBnya_3BBmLr4pkPeg_L",   "art.pt": "1a0QDEHwXQ6hE_FcYEyNMuv5r5UnRQLKT",}# from StyelGAN-NADAclass Downloader(object):   def __init__(self, use_pydrive):       self.use_pydrive = use_pydrive       if self.use_pydrive:           self.authenticate()   def authenticate(self):       auth.authenticate_user()       gauth = GoogleAuth()       gauth.credentials = GoogleCredentials.get_application_default()       self.drive = GoogleDrive(gauth)   def download_file(self, file_name):       file_dst = os.path.join('models', file_name)       file_id = drive_ids[file_name]       if not os.path.exists(file_dst):           print(f'Downloading {file_name}')           if self.use_pydrive:               downloaded = self.drive.CreateFile({'id':file_id})               downloaded.FetchMetadata(fetch_all=True)               downloaded.GetContentFile(file_dst)           else:               !gdown --id $file_id -O $file_dstdownloader = Downloader(download_with_pydrive)downloader.download_file('stylegan2-ffhq-config-f.pt')downloader.download_file('e4e_ffhq_encode.pt')加载生成器加载原始和微调生成器。设置用于调整图像大小和规范化图像的 transforms。latent_dim = 512# Load original generatororiginal_generator = Generator(1024, latent_dim, 8, 2).to(device)ckpt = torch.load('models/stylegan2-ffhq-config-f.pt', map_location=lambda storage, loc: storage)original_generator.load_state_dict(ckpt["g_ema"], strict=False)mean_latent = original_generator.mean_latent(10000)# to be finetuned generatorgenerator = deepcopy(original_generator)transform = transforms.Compose(   [       transforms.Resize((1024, 1024)),       transforms.ToTensor(),       transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),   ])输入图像设置输入图像位置。对齐和裁剪面并重新设置映射的样式。#image to the test_input directory and put the name herefilename = 'face.jpeg' #@param {type:"string"}filepath = f'test_input/{filename}'name = strip_path_extension(filepath)+'.pt'# aligns and crops facealigned_face = align_face(filepath)# my_w = restyle_projection(aligned_face, name, device, n_iters=1).unsqueeze(0)my_w = projection(aligned_face, name, device).unsqueeze(0)预训练图选择预训练好的图类型,选择不保留颜色的检查点,效果更好。plt.rcParams['figure.dpi'] = 150pretrained = 'sketch_multi' #['art', 'arcane_multi', 'sketch_multi', 'arcane_jinx', 'arcane_caitlyn', 'jojo_yasuho', 'jojo', 'disney']#Preserve color tries to preserve color of original image by limiting family of allowable transformations.if preserve_color:   ckpt = f'{pretrained}_preserve_color.pt'else:   ckpt = f'{pretrained}.pt'生成结果加载检查点和生成器并设置种子值,然后开始生成风格化图像。用于 Elon Musk 的输入图像将根据图类型进行风格化。#Generate resultsn_sample =  5#{type:"number"}seed = 3000 #{type:"number"}torch.manual_seed(seed)with torch.no_grad():   generator.eval()   z = torch.randn(n_sample, latent_dim, device=device)   original_sample = original_generator([z], truncation=0.7, truncation_latent=mean_latent)   sample = generator([z], truncation=0.7, truncation_latent=mean_latent)   original_my_sample = original_generator(my_w, input_is_latent=True)   my_sample = generator(my_w, input_is_latent=True)# display reference imagesif pretrained == 'arcane_multi':   style_path = f'style_images_aligned/arcane_jinx.png'elif pretrained == 'sketch_multi':   style_path = f'style_images_aligned/sketch.png'else:      style_path = f'style_images_aligned/{pretrained}.png'style_image = transform(Image.open(style_path)).unsqueeze(0).to(device)face = transform(aligned_face).unsqueeze(0).to(device)my_output = torch.cat([style_image, face, my_sample], 0)生成的结果结果生成为预先训练的类型“Jojo”,看起来相当准确。现在让我们看一下在自创样式上训练 GAN。使用你的风格图像进行训练选择一些面部图,甚至创建一些自己的面部图并加载这些图像以训练 GAN,并设置路径。裁剪和对齐人脸并执行 GAN 反转。names = ['1.jpg', '2.jpg', '3.jpg']targets = []latents = []for name in names:   style_path = os.path.join('style_images', name)   assert os.path.exists(style_path), f"{style_path} does not exist!"   name = strip_path_extension(name)   # crop and align the face   style_aligned_path = os.path.join('style_images_aligned', f'{name}.png')   if not os.path.exists(style_aligned_path):       style_aligned = align_face(style_path)       style_aligned.save(style_aligned_path)   else:       style_aligned = Image.open(style_aligned_path).convert('RGB')   # GAN invert   style_code_path = os.path.join('inversion_codes', f'{name}.pt')   if not os.path.exists(style_code_path):       latent = projection(style_aligned, style_code_path, device)   else:       latent = torch.load(style_code_path)['latent']   latents.append(latent.to(device))targets = torch.stack(targets, 0)latents = torch.stack(latents, 0)微调 StyleGAN通过调整 alpha、颜色保留和设置迭代次数来微调 StyleGAN。加载感知损失的鉴别器并重置生成器。#Finetune StyleGAN#alpha controls the strength of the stylealpha =  1.0 # min:0, max:1, step:0.1alpha = 1-alpha#preserve color of original image by limiting family of allowable transformationspreserve_color = False #Number of finetuning steps.num_iter = 300#Log training on wandb and interval for image logginguse_wandb = False log_interval = 50if use_wandb:   wandb.init(project="JoJoGAN")   config = wandb.config   config.num_iter = num_iter   config.preserve_color = preserve_color   wandb.log(   {"Style reference": [wandb.Image(transforms.ToPILImage()(target_im))]},   step=0)# load discriminator for perceptual lossdiscriminator = Discriminator(1024, 2).eval().to(device)ckpt = torch.load('models/stylegan2-ffhq-config-f.pt', map_location=lambda storage, loc: storage)discriminator.load_state_dict(ckpt["d"], strict=False)# reset generatordel generatorgenerator = deepcopy(original_generator)g_optim = optim.Adam(generator.parameters(), lr=2e-3, betas=(0, 0.99))训练生成器从潜在空间生成图像,并优化损失。if preserve_color:   id_swap = [9,11,15,16,17]z = range(numiter)for idx in tqdm( z):   mean_w = generator.get_latent(torch.randn([latents.size(0), latent_dim]).to(device)).unsqueeze(1).repeat(1, generator.n_latent, 1)   in_latent = latents.clone()   in_latent[:, id_swap] = alpha*latents[:, id_swap] + (1-alpha*mean_w[:, id_swap]   img = generator(in_latent, input_is_latent=True)   with torch.no_grad():       real_feat = discriminator(targets)      fake_feat = discriminator(img)   loss = sum([functional.l1_loss(a, b) for a, b in zip(fake_feat, real_feat)])/len(fake_feat)        if use_wandb:       wandb.log({"loss": loss}, step=idx)       if idx % log_interval == 0:           generator.eval()           my_sample = generator(my_w, input_is_latent=True)           generator.train()           wandb.log(           {"Current stylization": [wandb.Image(my_sample)]},           step=idx)   g_optim.zero_grad()   loss.backward()   g_optim.step()使用 JojoGAN 生成结果现在生成结果。下面已经为原始图像和示例图像生成了结果以进行比较。#Generate resultsn_sample =  5seed = 3000torch.manual_seed(seed)with torch.no_grad():   generator.eval()   z = torch.randn(n_sample, latent_dim, device=device)   original_sample = original_generator([z], truncation=0.7, truncation_latent=mean_latent)   sample = generator([z], truncation=0.7, truncation_latent=mean_latent)   original_my_sample = original_generator(my_w, input_is_latent=True)   my_sample = generator(my_w, input_is_latent=True)# display reference imagesstyle_images = []for name in names:   style_path = f'style_images_aligned/{strip_path_extension(name)}.png'   style_image = transform(Image.open(style_path))   style_images.append(style_image)face = transform(aligned_face).to(device).unsqueeze(0)style_images = torch.stack(style_images, 0).to(device)my_output = torch.cat([face, my_sample], 0)output = torch.cat([original_sample, sample], 0)生成的结果现在,你可以使用 JojoGAN 生成你自己风格的图像。结果令人印象深刻,但可以通过调整训练方法和训练图像中的更多特征来进一步改进。结论JojoGAN 能够以快速有效的方式准确地映射和迁移用户定义的样式。关键要点是:· JojoGAN 可以只用一种风格进行训练,以轻松映射并创建任何面部的风格化图· JojoGAN 非常快速有效,可以在不到一分钟的时间内完成训练· 结果非常准确,类似于逼真的肖像· JojoGAN 可以轻松微调和修改,使其适用于 AI 应用程序因此,无论风格类型、形状和颜色如何,JojoGAN 都是用于风格转移的理想神经网络,因此可以成为各种社交媒体应用程序和 AI 应用程序中非常有用的功能。       原文标题 : 使用JojoGAN创建风格化的面部图
  • [技术干货] UAP组网介绍
    一、  产品介绍应接入与媒体发展趋势,华为技术有限公司研制了接入和媒体资源一体化的软件通用接入平台UAP9600(历史上UAP产品还有UAP8100、UAP6600等)。作为UAP产品的三大子offering之一,定位如下:1) 支持宽带接入业务应用,支持同时接入NGN、IMS网络。2) 作为纯软化UAP,支持基于通用硬件、虚拟化平台部署;支持集群部署提供大容量解决方案。支撑解决方案构建纯软件化、虚拟化、云化竞争力。 二、  UAP9600系统组成UAP9600系统,可基于Linux操作系统,运行于虚拟机、物理机之上;整个系统由网关控制系统、媒体处理系统、维护管理系统组成。网关控制系统:MGC子系统,主要负责信令接入,座席注册管理,license控制、资源管理,与CTI、AS交互,呼叫控制,资源操作控制。媒体处理系统:MRP子系统,主要支持媒体资源功能,资源操作控制、媒体网关功能。维护管理系统:OM子系统,主要负责程序部署,数据配置,告警,话统,操作维护管理三、  UAP整体组网UAP9600 IPCC组网示例四、  软件结构UAP9600的软件系统由主机软件、NMU软件和客户端软件三部分组成。主机软件主要实现信令与协议适配、呼叫处理、业务控制、媒体资源管理、媒体资源处理等功能。NMU软件作为OAM的服务端,配合主机软件响应客户端软件的操作指令完成OAM功能。客户端软件向用户提供图形化管理界面,支持本地登录和远程访问,进行数据维护、设备管理、告警管理、话务统计和呼叫与信令跟踪等维护操作.
  • [已解决问题归档] 【ICD产品】【媒体话单分析】mysql媒体话单表数据问题
    【问题来源】    荣耀项目   【问题简要】文档名称:ICD 产品文档 V300R006C90U3SPC700话单说明.docmysql媒体话单表数据问题【问题类别】 话单【AICC解决方案版本】【期望解决时间】明早【问题现象描述】         基于上述产品文档,在使用该产品时,存在一下问题,方便能否进行确认下:1,媒体呼叫话单表中,有很多电话记录的数据都会存在两条一模一样的重复数据(其他业务表中也是)。而且电话记录中,很多无device-type等于队列和ivr的记录;2,媒体呼叫话单表中,callidnum = -1 的记录中,realeaseCause值在文档中很多找不着说明含义;3,媒体呼叫话单表中,如果判断该通电话有没有进行过转接、三方、保持等操作。4,坐席操作详单中,表字段和文档中的字段均不相同。
  • [已解决问题归档] 【ICD产品】【媒体话单分析】mysql媒体话单表数据问题
    文档名称:ICD 产品文档 V300R006C90U3SPC700话单说明.doc基于上述产品文档,在使用该产品时,存在一下问题,方便能否进行确认下:1,媒体呼叫话单表中,有很多电话记录的数据都会存在两条一模一样的重复数据(其他业务表中也是)。而且电话记录中,很多无device-type等于队列和ivr的记录;2,媒体呼叫话单表中,callidnum = -1 的记录中,realeaseCause值在文档中很多找不着说明含义;3,媒体呼叫话单表中,如果判断该通电话有没有进行过转接、三方、保持等操作。4,坐席操作详单中,表字段和文档中的字段均不相同。
  • [问题求助] 5G消息-媒体素材上传后,一直在审核状态
    如标题所示,5G消息-媒体素材上传后,一直在审核状态,都2天多了,没有人审核。智能问答的流程说几分钟就可以审核,但是为啥我的这么长时间没有审核通过?
  • [技术干货] 【海思3519A替代方案】基于NPU+AI ISP多媒体SoC开发的4K@60网络摄像机夜间超感光效果测试
    基于NPU+AI ISP多媒体SoC开发4K@60网络摄像机夜间超感光效果测试:硬件资源智能加速4Tops INT8 NN加速引擎,双核Vision Q6的DSP处理。 支持4K60的H.265/H.264编码,支持10路1080p30的H.265/H.264解码。 支持4路4Mp30机内实时硬化拼接,支持2路4K p30机内实时硬化拼接。高速接口支持USB3.0和PCIe2.0高速接口。智能视频分析神经网络加速引擎,高达 4Tops INT8 支持INT4/FP16 支持完整的API和工具链,易于开发双核 Vision Q6 DSP 32K I-Cache /32K D-Cache /32K IRAM/320K DRAM,内置智能计算加速引擎,双目深度加速单元,以及矩阵计算加速单元 感兴趣的圈友可索取测试视频(+V:Todd_Wong2010)
  • [技术干货] 天天用WiFi,但你真的了解它吗?
    Wi-Fi在中文里又称作“行动热点”,是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE 802.11标准的无线局域网技术。基于两套系统的密切相关,也常有人把Wi-Fi当做IEEE 802.11标准的同义术语。“Wi-Fi”常被写成“WiFi”或“Wifi”,但是它们并没有被Wi-Fi联盟认可。并不是每样匹配IEEE 802.11的产品都申请Wi-Fi联盟的认证,相对地缺少Wi-Fi认证的产品并不一定意味着不兼容Wi-Fi设备。IEEE 802.11的设备已安装在市面上的许多产品,如:个人计算机、游戏机、MP3播放器、智能手机、平板电脑、打印机、笔记本电脑以及其他可以无线上网的周边设备。无线网络在无线局域网的范畴是指“无线相容性认证”,实质上是一种商业认证,同时也是一种无线联网技术,以前通过网线连接电脑,而Wi-Fi则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用Wi-Fi连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为热点。无线网络是IEEE定义的无线网技术,在1999年IEEE官方定义802.11标准的时候,IEEE选择并认定了CSIRO发明的无线网技术是世界上最好的无线网技术,因此CSIRO的无线网技术标准,就成为了2010年Wi-Fi的核心技术标准。无线网络技术由澳洲政府的研究机构CSIRO在90年代发明并于1996年在美国成功申请了无线网技术专利。(US Patent Number 5,487,069)发明人是悉尼大学工程系毕业生Dr John O'Sullivan领导的一群由悉尼大学工程系毕业生组成的研究小组 。IEEE曾请求澳洲政府放弃其无线网络专利,让世界免费使用Wi-Fi技术,但遭到拒绝。澳洲政府随后在美国通过官司胜诉或庭外和解,收取了世界上几乎所有电器电信公司(包括苹果、英特尔、联想、戴尔、AT&T、索尼、东芝、微软、宏碁、华硕,等等)的专利使用费。2010年我们每购买一台含有Wi-Fi技术的电子设备的时候,我们所付的价钱就包含了交给澳洲政府的Wi-Fi专利使用费。组成结构一般架设无线网络的基本配备就是无线网卡及一台AP,如此便能以无线的模式,配合既有的有线架构来分享网络资源,架设费用和复杂程度远远低于传统的有线网络。如果只是几台电脑的对等网,也可不要AP,只需要每台电脑配备无线网卡。AP为Access Point简称,一般翻译为“无线访问接入点”,或“桥接器”。它主要在媒体存取控制层MAC中扮演无线工作站及有线局域网络的桥梁。有了AP,就像一般有线网络的Hub一般,无线工作站可以快速且轻易地与网络相连。特别是对于宽带的使用,Wi-Fi更显优势,有线宽带网络(ADSL、小区LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可。普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。硬件设备随着无线网络的不断兴起和发展,2010年无线网络模块的应用领域相当广泛!但是Wi-Fi模块毕竟是高频性质的产品,它不像普通的消费类电子产品,生产设计的时候会有一些莫名其妙的现象和问题,让一些没有高频设计经验的工程师费尽心思,有相关经验的从业人员,往往也是需要借助昂贵的设备来协助分析。对于无线网络部分的处理,有直接把Wi-Fi部分Layout到PCB主板上去的设计,这种设计,需要勇气和技术,因为本身模块的价格不高,主板对应的产品价格不菲,当有Wi-Fi部分产生的问题,调试更换比较麻烦,直接报废可惜;所以很多设计都愿意采用模块化的Wi-Fi部分,这样可以直接让Wi-Fi部分模块化,处理起来方便,而且模块可以直接拆卸,对于产品的设计风险和具体的耗损也有很大帮助。具体的硬件设计应该和相关Wi-Fi模块咨询时,要考虑清楚以下方面:通信接口方面:2010年基本是采用USB接口形式,PCIE和SDIO的也有少部分,PCIE的市场份额应该不大,多合一的价格昂贵,而且实用性不强,集成的很多功能都不会使用,其实也是一种浪费。供电方面:多数是用5V直接供电,有的也会利用主板设计中的电源共享,直接采用3.3V供电。天线的处理形式:可以有内置的PCB板载天线或者陶瓷天线;也可以通过I-PEX接头,连接天线延长线,然后让天线外置。规格尺寸方面:这个可以根据具体的设计要求,最小的有nano型号(可以直接做nano无线网卡);有可以做到迷你型的12*12左右(通常是外置天线方式采用);通常是25*12左右的设计多点(基本是板载天线和陶瓷天线多,也有外置天线接头)。跟主板连接的形式:可以直接SMT,也可以通过2.54的排针来做插件连接(这种组装/维修方便)。软件的调试要结合具体的方案主控,毕竟Wi-Fi部分仅仅是一个无线的收发而已。很多用户在咨询的时候,很容易混淆!可以说,2013年Wi-Fi模块应用最火爆的领域就是MID市场,同时传统的一些网络领域应用市场也有渗透,比如一些工业控制领域/网络播放领域/甚至一些遥控领域也有在考虑的,基本上是能用到网络的部分都希望尝试无线化!网络协议一个Wi-Fi联接点网络成员和结构站点(Station),网络最基本的组成部分。基本服务单元(Basic Service Set,BSS)是网络最基本的服务单元。最简单的服务单元可以只由两个站点组成。站点可以动态地联结(Associate)到基本服务单元中。分配系统(Distribution System,DS)。分配系统用于连接不同的基本服务单元。分配系统使用的媒介(Medium)逻辑上和基本服务单元使用的媒介是截然分开的,尽管它们物理上可能会是同一个媒介,例如同一个无线频段。接入点(Access Point,AP)。接入点既有普通站点的身份,又有接入到分配系统的功能。扩展服务单元(Extended Service Set,ESS)。由分配系统和基本服务单元组合而成。这种组合是逻辑上,并非物理上的--不同的基本服务单元物有可能在地理位置相去甚远。分配系统也可以使用各种各样的技术。关口(Portal),也是一个逻辑成分。用于将无线局域网和有线局域网或其它网络联系起来。这儿有3种媒介,站点使用的无线的媒介,分配系统使用的媒介,以及和无线局域网集成一起的其它局域网使用的媒介。物理上它们可能互相重叠。IEEE802.11只负责在站点使用的无线的媒介上的寻址(Addressing)。分配系统和其它局域网的寻址不属无线局域网的范围。IEEE802.11没有具体定义分配系统,只是定义了分配系统应该提供的服务(Service)。整个无线局域网定义了9种服务,5种服务属于分配系统的任务,分别为,联接(Association),结束联接(Diassociation),分配(Distribution),集成(Integration),再联接(Reassociation)。4种服务属于站点的任务,分别为,鉴权(Authentication),结束鉴权(Deauthentication),隐私(Privacy), MAC数据传输(MSDU delivery)。认证种类前Wi-Fi联盟所公布的认证种类有:1、WPA/WPA2:WPA/WPA2是基于IEEE802.11a、802.11b、802.11g的单模、双模或双频的产品所建立的测试程序。内容包含通讯协定的验证、无线网络安全性机制的验证,以及网络传输表现与相容性测试。2、WMM(Wi-Fi MultiMedia):当影音多媒体透过无线网络的传递时,要如何验证其带宽保证的机制是否正常运作在不同的无线网络装置及不同的安全性设定上是WMM测试的目的。3、WMM Power Save:在影音多媒体透过无线网络的传递时,如何透过管理无线网络装置的待命时间来延长电池寿命,并且不影响其功能性,可以透过WMM Power Save的测试来验证。4、WPS(Wi-Fi Protected Setup):这是一个2007年年初才发布的认证,目的是让消费者可以透过更简单的方式来设定无线网络装置,并且保证有一定的安全性。当前WPS允许透过Pin Input Config(PIN)、Push Button Config(PBC)、USB Flash Drive Config(UFD)以及Near Field Communication 、Contactless Token Config(NFC)的方式来设定无线网络装置。5、ASD(Application Specific Device):这是针对除了无线网络存取点(Access Point)及站台(Station)之外其他有特殊应用的无线网络装置,例如DVD播放器、投影机、打印机等等。6、CWG(Converged Wireless Group):主要是针对Wi-Fi mobile converged devices 的RF 部分测量的测试程序。
  • [MindX SDK] 【Atlas500小站】【MindX Edge 媒体仓】MCS连接不上的问题
    在Atlas500小站上安装了MindX Edge(商用版5.0.4)的媒体服务仓。遇到的问题是访问MCS的Restful接口时连接不上。报错为Max retries exceeded with url: /host/mcs/v1/user/login (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fb9d312b518>: Failed to establish a new connection: [Errno 111] Connection refused',))附件中是MCS容器的配置参数:
  • [技术干货] 【北向接口】【媒体播放管理】获取设备RTSP实况播放地址
    1. RTSP是什么实时串流协议(Real Time Streaming Protocol,RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体服务器。该协议用于建立和控制终端之间的媒体会话。媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流。2. 利用Postman调取好望云北向接口API获取RTSP实况播放地址登录好望云管理后台获取USER ID、AK和SK;利用Postman获取用户认证Token;调取API获取RTSP实况播放地址图1:获取认证Token图二:获取RTSP实况地址3. 在VLC中播放实况在VLC中点击“工具”,选择“偏好设置”。在“输入/编解码器”中将“Live555 传输”设置为“TCP”;选择“媒体”,打开网络串流,将获取的RTSP链接粘贴进去图三:在VLC中设置TCP传输图四:将RTSP复制到VLC的“网络串流”中图五:成功实现拉流具体操作步骤可观看视频RTSP拉通教程视频
  • [技术干货] 【海思3519A替代方案】基于NPU+AI ISP多媒体SoC开发的4K@60网络摄像机夜间超感光效果测试
    基于NPU+AI ISP多媒体SoC开发的4K@60网络摄像机夜间超感光效果测试智能加速4Tops INT8 NN加速引擎,双核Vision Q6的DSP处理。 支持4K60的H.265/H.264编码,支持10路1080p30的H.265/H.264解码。 支持4路4Mp30机内实时硬化拼接,支持2路4K p30机内实时硬化拼接。高速接口支持USB3.0和PCIe2.0高速接口。智能视频分析神经网络加速引擎,高达 4Tops INT8 支持INT4/FP16 支持完整的API和工具链,易于开发双核 Vision Q6 DSP 32K I-Cache /32K D-Cache /32K IRAM/320K DRAM,内置智能计算加速引擎,双目深度加速单元,以及矩阵计算加速单元 有兴趣的圈友可以联系索取测试视频;(Wechat:Todd_Wong2010)