• [Atlas 300] Live555离线视频转RTSP说明文档
    Live555离线视频转RTSP说明文档1      下载安装包http://www.live555.com/liveMedia/public/live555-latest.tar.gz2      解压执行命令:tar -zxvf live555-latest.tar.gzcd live/3      编译并安装执行命令:./genMakefiles linux-64bit #注意后面这个参数是根据当前文件夹下config.<后缀>获取得到的make最后就会在当前目录下生成mediaServer 文件夹,有一个live555MediaServer可执行文件4      运行执行命令(所有的视频文件放在mediaServer文件夹同一目录下),产生的RTSP流的地址如下图所示,文件名为上一步放入mediaServer 文件夹的视频文件。cd mediaServer./live555MediaServer5      视频文件格式根据提示当前只支持部分视频格式,并不支持.mp4后缀的文件,但可以通过ffmpeg转换生成,如下所示为MP4转换为h.264命令:ffmpeg -i test.mp4 -vcodec h264 -bf 0 -g 25 -r 10 -s 1280*720 -an -f h264 test1.264//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制 -an关闭音频, -r 指定帧率6      高分辨率帧花屏live555推送之后的视频流出现花屏,查看源码DynamicRTSPServer.cpp文件,源码如下: sms->addSubsession(MPEG4VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));  } else if (strcmp(extension, ".264") == 0) {    // Assumed to be a H.264 Video Elementary Stream file:    NEW_SMS("H.264 Video");    OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.264 frames    sms->addSubsession(H264VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));  } else if (strcmp(extension, ".265") == 0) {    // Assumed to be a H.265 Video Elementary Stream file:    NEW_SMS("H.265 Video");    OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.265 frames    sms->addSubsession(H265VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));  } else if (strcmp(extension, ".mp3") == 0) {    // Assumed to be a MPEG-1 or 2 Audio file:    NEW_SMS("MPEG-1 or 2 Audio") 查看上面红色部分对于H264和H265输出包最大缓冲100000字节(100K),对于高清视频缓冲区太小了,必需更改大些。目前更改到800000,对于1080P视频使用VLC播放时,不会再出现花屏。备注:一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数7      视频循环推流在liveMedia库下的ByteStreamFileSource.cpp文件中的95行,找到void ByteStreamFileSource::doGetNextFrame() {  if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) {    handleClosure();    return;  }更改为void ByteStreamFileSource::doGetNextFrame() {  if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) {    //handleClosure();    //return;         fseek(fFid, 0, SEEK_SET);  } 参考链接:https://blog.csdn.net/lbc2100/article/details/80745162安装教程参考链接:https://www.jianshu.com/p/2432cbce5b22
  • [技术干货] 显示器分辨率和刷新率越高视频就越清晰了吗?
    解答这个问题,有3个关键的点,分别是分辨率,刷新率,视频源显示器分辨率,又称解析度、解像度,可以细分为显示分辨率、图像分辨率、打印分辨率和扫描分辨率等。显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。 显示器刷新率,分为垂直刷新率和水平刷新率,一般提到的刷新率通常指垂直刷新率。垂直刷新率表示屏幕的图象每秒钟重绘多少次,也就是每秒钟屏幕刷新的次数,以Hz(赫兹)为单位。刷新率越高越好,图象就越稳定,图像显示就越自然清晰,对眼睛的影响也越小。刷新频率越低,图像闪烁和抖动的就越厉害,眼睛疲劳得就越快。一般来说,如能达到80Hz以上的刷新频率就可完全消除图像闪烁和抖动感,眼睛也不会太容易疲劳。目前, 大多数显示器根据其设定按 30Hz、 60Hz、 120Hz 或者 144Hz 的频率进行刷新。 而其中最常见的刷新频率是 60 Hz。 这样做是为了继承以前电视机刷新频率为 60Hz 的设定。 视频源使用显示器所观看的视频格式,视频源也有分辨率和帧率之分。 视频分辨率,是用于度量图像内数据量多少的一个参数,通常表示成ppi(每英寸像素Pixel per inch)那个视频的320X180是指它在横向和纵向上的有效像素,窗口小时ppi值较高,看起来清晰;窗口放大时,由于没有那么多有效像素填充窗口,有效像素ppi值下降,就模糊了。(放大时有效像素间的距离拉大,而显卡会把这些空隙填满,也就是插值,插值所用的像素是根据上下左右的有效像素“猜”出来的“假像素”,没有原视频信息)习惯上我们说的分辨率是指图像的高/宽像素值,严格意义上的分辨率是指单位长度内的有效像素值ppi。差别就在这里。图像的高/宽像素值的确和尺寸无关,但单位长度内的有效像素值ppi和尺寸就有关了,显然尺寸越大ppi越小。视频帧率,是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简:FPS)或“赫兹”(Hz)。此词多用于影视制作和电子游戏。由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16的时候,就会认为是连贯的,此现象称之为视觉停留。这也就是为什么电影胶片是一格一格拍摄出来,然后快速播放的。而对游戏,一般来说,第一人称射击游戏比较注重FPS的高低,如果FPS<30的话,游戏会显得不连贯。所以有一句有趣的话:“FPS(指FPS游戏)重在FPS(指帧率)。每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。 由此可知,这需要看你播放的视频是什么分辨率和帧率1.视频源分辨率<2K,无论是用2K还是8K显示器播放都是一个清晰度。2.视频源分辨率>2K,根据源的清晰度选择匹配的显示器会达到最佳效果。
  • [技术干货] 视频入门:快来康康,什么是帧,帧数,帧率
    帧(Frame)简单的理解帧就是为视频或者动画中的每一张画面,而视频和动画特效就是由无数张画面组合而成,每一张画面都是一帧。帧数(Frames)帧数其实就是为帧生成数量的简称,可以解释为静止画面的数量帧率(Frame Rate)帧率(Frame rate) = 帧数(Frames)/时间(Time),单位为帧每秒(f/s, frames per second, fps)。 帧率关键值10~12 FPS:由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约10至12帧的时候,就会认为是连贯的,此现象称之为视觉暂留。24 FPS:一般电影的拍摄及播放帧数是每秒24帧。60 FPS:这个帧率对人眼识别来说已经具备较高的平滑度。85 FPS:人类大脑处理视频的极限,人眼无法分辨更高频率的差异。60FPS在做页面性能优化时,常用60FPS作为一个基准,所以需要尽量让每一帧的渲染控制在16ms内,这样才能达到一秒60帧的流畅度。 
  • [技术干货] 视频会议需要的带宽是多少?
    公网接入满足云会议的网络指标要求即可,不强求专线网络。同时提醒客户做好会议 终端的带宽预留。 虽然华为云会议最大支持 20%的视频抗丢包,但为确保最佳音视频体验,建议网络 QoS 和带宽的要求如下。 网络 QoS 的要求 QoS 项QoS 指标时延150ms抖动50ms抗丢包率视频 20%,语音 60%,数据   20%  对 IP 承载网的 QoS 要求,如果不能满足,通话质量将有所降低。由于 IP 系统是多业 务系统,承载多种业务数据。因此在进行华为云会议部署时,需着重考虑带宽占用对 原有业务系统的影响,进行合理带宽准备。 带宽的要求 视频分辨率 视频帧率(帧/秒) 带宽(bps) 4CIF(704×576) 30512K720P(1280×720) 301M1080P(1920×1080) 302M
  • [技术干货] web播放器demo--播放VIS视频流
    一些开发的小伙伴,有疑问,vis的取流地址对应的https协议的flv格式网络视频流,(1)可以通过相关视频分析库进行分析,(2)可以通过vlc等流行播放器播放网络流;但是,vis的视频流还可以在浏览器中进行播放,就像VIS控制台界面那样,我怎么开发一个web播放器呢?可以快速通过flv.js去实现,该开源技术框架github库https://github.com/bilibili/flv.js/blob/master/docs/api.md别急,demo来啦(见末尾附件)详情请点击博文链接:https://bbs.huaweicloud.com/blogs/168668
  • [技术干货] 什么是视频时移?
    所谓时移,是指观众可以任意回放过去时间的直播内容。时移是直播与点播相结合而形成的一种新业务,是直播业务的补充。用户在观看直播节目时,中途可以暂停,过后可以从暂停处继续收看,以免错过某些重要情节。从技术上讲,在暂停请求时,播放服务器把节目录下来,在继续播放时,再把录下的节目采用单播形式重新播放。对于直播的节目,具有时移功能的流媒体直播系统可以在之后的任何时间看节目,不一定要同步,可以随时暂停,播放。也就是把节目的时间同步性给去掉了,想什么时候看就什么时候看。  时移一般分为两种:·             网络时移:指由运营商事先录制在网络侧,通过用户请求来选择播放。·             终端时移:指用户通过终端的记录功能,类似于录像机一样将自己要的电视节目录制在本地,把收到的数据分成平均的时间碎片,打上标签来标注时间位置,在需要的时候根据标签标注的时间位置,从视频的感兴趣时段开始回放。 由于传统视频信号受传输、播控模式的限制,传统的直播只能单向推送--观众不能对已播放的直播内容进行实时的回放。这会在某些时候让观众不爽--因为该死的工作电话耽误了一个世界杯精彩进球。目前主要还是采用网络时移,主要功能如下:·             暂停:与点播一样,在时移状态下,发送暂停指令就可以了。·             快进:与点播一样,在时移状态下,发送倍速(目前支持2倍、4倍、8倍、16倍、32倍和64倍)播放指令,但最多只能快进到直播的当前点。·             快退:与点播一样,在时移状态下,发送倍速回退指令就可以了(支持的倍速同快进播放)。·             定位播放:即直接给定时间点(要求在时移范围内,因为是采用网络录制方式来支持时移,所以可时移的时长受限于服务器容量),系统从该时刻开始播放。 直播时移技术的优势:直播时移技术采用独特而高效的方式实现,无限长存储和实时流缓存结合,在这之间实现了录播和直播无缝融合。用户可以任意选择频道、码率、和时间点,可在任意时刻观看任意节目,可在任意时刻回到直播点。 华为云视频直播解决方案,支持用户在任何时间、任何地点、任意终端访问任意内容,创造优秀的用户体验。https://www.huaweicloud.com/solution/Onlinevideolive/
  • [技术干货] 视频中的码率是什么意思?
    视频中的码率是数据传输时单位时间传送的数据位数,单位千位每秒 ,通俗理解为取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,也就是说画面的细节越丰富,所以说影响视频画面质量,进而影响体验质量。 也就是说视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高,这样表现出来的的效果就是:视频画面更清晰画质更高。 超清码率: 1024kbps、 分辨率1280*720、 俗名720P高清码率: 512kbps 、分辨率640*480、俗名480P流畅码率: 256kbps、分辨率480*360、俗名360P    码率计算公式:基本的算法是:【码率】(kbps)=【文件大小】(字节)X8/【时间】(秒)*1000音频文件专用算法:【比特率】(kbps)=【量化采样点】(kHz)×【位深】(bit/采样点)×【声道数量】(一般为2)举例,D5的碟,容量4.3G,其中考虑到音频的不同格式,所以算为600M,(故剩余容量为4.3*1000-600=3700M),所以视频文件应不大于3.7G,本例中取视频文件的容量为3.446G,视频长度100分钟(6000秒),计算结果:码率约等于4933kbps  码率几点原则:1、码率和质量成正比,但是文件体积也和码率成正比。2、码率超过一定数值,对图像的质量没有多大影响。  常用的调节码率手段包括:①调节编码的帧率。通过调节序列在时间上的分辨率达到控制码率的目的。当码率高于信道时,通过丢帧来降低码率;当码率低于信道时,可提高帧率以提高视觉效果。②调节图像大小。通过调节序列在空间上的分辨率来达到控制码率的目的。当码率高于信道时,减小尺寸来降低码率;当码率低于信道时,增加图像尺寸以获得更好的效果。③调节量化参数。编码残差系数的量化参数会直接影响到码率。量化参数变大,则编码的比特数降低;量化参数变小,编码的比特数提高。 
  • [AI实战营] 【手摸手学ModelArts】第六章视频分析课程打卡及作业打卡分享
    > 本文首次发表于华为云社区ModelArts版块,主要是作者在学习使用AI开发平台ModelArts过程中的一些经验产出。大家好,我是**Copy攻城狮**胡琦!此次要和大家分享的是学习过程中的一些小的心得及作业分享。感觉我又有很久没有活跃在社区了,也很久没有产出文章了。回顾AI实战营过去五章的学习,我们已经掌握了图像分类、物体检测、图像分割、人脸识别、OCR等常用的算法和技巧,应该对ModelArts也是能够熟练使用了。第六章视频分析将是AI实战营视觉领域的最后一个章节。 ## 准备 请新建一个**Python3、GPU环境**的NoteBook,开始我们第六章的课程学习和打卡!本章我们又会学习**Pytorch**、**TensorFlow**等框架的知识。如果您有购买**3元资源包**的话,建议您使用付费版本的且硬盘增大到20G,我遇到因为磁盘空间不足导致**tools**目录等文件无法正常解压出来,如果您恰好也遇到了**can't open file 'tools/video_inpaint.py: No such file or directory**的错误,那么基本上是磁盘空间不足的锅了。 - 拉取代码 ``` import os import pathlib if "ModelArts-Lab" in pathlib.Path.cwd().parts: while "ModelArts-Lab" in pathlib.Path.cwd().parts: os.chdir('..') elif not pathlib.Path('ModelArts-Lab').exists(): !git clone --depth 1 https://gitee.com/hu-qi/ModelArts-Lab print('代码下载完成,撸起袖子就是干!') ``` - 复制文件 ``` %%bash cp //home/ma-user/work/ModelArts-Lab/notebook/DL_video_object_segmentation/object_segmentation.ipynb /home/ma-user/work/huqi88.ipynb cp //home/ma-user/work/ModelArts-Lab/notebook/DL_video_action_recognition/action_recognition.ipynb /home/ma-user/work/huqi88-action.ipynb ``` 第六章我们学习视频分析,学习资料在**ModelArts-Lab/notebook/DL_video_object_segmentation/object_segmentation.ipynb**和**ModelArts-Lab/notebook/DL_video_action_recognition/action_recognition.ipynb**,就是我们要学习的**使用OSVOS算法实现视频物体分割**和**使用C3D和I3D模型实现视频动作识别**。其实,通过对打卡文档的分析,不难看出这种的打卡任务依旧只需简单的复制粘贴就能完成,当然这对号称**Copy攻城狮**的我来说,小菜一碟,更多地是想跟大家分享课程背后的心得,比如排错技巧。废话不多说,撸起袖子就是干! ## 课程打卡 > 课程要点: 环境 课程打卡的任务就是跑一遍OSVOS算法实现视频抠图,对应的文件是我们刚下载的**ModelArts-Lab/notebook/DL_video_object_segmentation/object_segmentation.ipynb**。别忘了按照打卡要求,我们需要将文件重命名成自己的华为云账号,按照老师的文档进行操作应该是没太大问题。不过我还是遇到了坑,自己给自己挖的:一是没有选用**Pytorch**的格式运行代码,二是由于磁盘不足导致视频物体分割应用的时候,拉取OBS的代码进行解压时无法正常解压导致部分文件丢失。还有一个特别要注意的点,也是老师重点标注的:**注意!安装完以上模块后,会有一些c++库的更新,因此需要点击本页面顶部菜单栏的 Kernel,再点 Restart**。当然,如果不听老人言强行一次执行所有代码是会导致进程死掉的,然后就会有熟悉的**core-xxx**文件夹生成,不过也不用慌,用命令行**rm -rf core-xxx**删除这个大文件就行。课程打卡其实分为两部分:OSVOS算法训练和预测、视频物体分割的应用之一--视频抠图。我这里提到的关键词是**环境**,上文两个坑其实都反应了环境的重要性, 为什么同一份代码别人能运行成功我就各种报错呢?重要的一点就是环境不同,比如,一开始我没注意是用的**Pytorch**框架,那我的环境就不对了,运行的结果肯定也会不同;其次,本次实践依赖的torch版本又比较特殊,而且还涉及到C++库的更新,如果不执行**Restart**操作就会导致进程die;还有一个环境影响的因素就是磁盘空间不足的问题,在视频分割应用之前我们需要下载一些代码和数据,而解压是通过**os.system**去执行一些命令行操作,操作过程是没有日志输出的。当我们发现一大串代码执行结果与预期不一致时,可以将代码拆分一步一步排查。 ### 自己挖坑之一:没有使用Pytorch框架 ![error-1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/131533rclcxxwjahp6piyn.png) 如图所示,最终导致**cannot import name '_version'**,这是因为代码采用的**Pytorch**,而我设置的格式不对。解决方法就是严格按照教程使用**Pytorch**。 ### 自己挖坑之二 ![notices-2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/130642dr9p2yzuhi3na4k2.png) 如图所示,导致**The kernel appears to have died. It will restart automatically.**,原因是没有按照教程进行**Restart**操作,一些依赖的c++库没更新到,导致的异常。解决方法就是严格按照教程在安装完依赖模块后点击页面顶部菜单栏的 Kernel,再点 Restart。 ### 自己挖坑之三 ```py import os import moxing as mox print('Downloading datasets and code ...') if not os.path.exists('./video_object_segmention/Deep-Flow-Guided-Video-Inpainting'): mox.file.copy('s3://modelarts-labs-bj4/notebook/DL_video_object_segmentation/Deep-Flow-Guided-Video-Inpainting.zip', './video_object_segmention/Deep-Flow-Guided-Video-Inpainting.zip') os.system('cd ./video_object_segmention/;unzip Deep-Flow-Guided-Video-Inpainting.zip;rm Deep-Flow-Guided-Video-Inpainting.zip') if os.path.exists('./video_object_segmention/Deep-Flow-Guided-Video-Inpainting'): print('Download success') else: raise Exception('Download failed') else: print('Download success') ``` 以上这段代码就是获取视频物体分割应用相关代码、数据、模型的,但是我执行完代码发现有些文件目录缺失,如**tools**目录;通过**README.md**发现其实**Deep-Flow-Guided-Video-Inpainting**就是一个开源项目,在**github**上能看到完整的代码。回到文件缺失的问题,从代码的来看有两种可能:一是官方提供分润OBS中本身就缺失相关的文件,不过可能性比较小;二是**os.system**执行的脚本出了差错。按照这两种可能,我们先验证一下:先把**Deep-Flow-Guided-Video-Inpainting**删除再重新执行文件下载操作(不执行解压代码)。然后通过**Terminal**来进行解压。运行结果如下: ![unzip-1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/1307032hqjbzes995rwjjw.png) ![unzip-2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/130725uyucjihe6i7vkspi.png) ![unzip-3.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/130736pyydrtpb5uvjtocn.png) **write error (disk full?)**提示磁盘已满,我滴乖乖,二话不说转手就重建了一个20G的实例,继续实践,结果一把过! ## 作业打卡 本章的作业打卡依旧比较简单,只需简单的修改或者复制即可完成。作业一实现对另一段视频进行动作识别预测,运用的是**TensorFlow**,作业二是在课程作业的基础上对另一个数据集进行训练和应用。废话不多说,直接开干: > 作业一要点:获取numpy矩阵 I3D模型的输入是视频流的numpy矩阵文件,在对新的视频进行动作识别预测的时候,我们先要拿到视频的**rgb.npy**和**flow.npy**这两个文件以及视频总帧数。好在老师又提供了代码,先看看怎么拿到视频的***.npy**文件: - 通过脚本拿到**compute_rgb_flow.py** ``` %%bash wget https://ai-course-common-26-bj4.obs.cn-north-4.myhuaweicloud.com/video/compute_rgb_flow.py ``` - 打开**compute_rgb_flow.py**找到**TODO**补充视频路径: 视频在**dataset_subset**目录下,我这里以**dataset_subset/Bowling/v_Bowling_g03_c03.avi**为例 ```py # …… video_path = 'dataset_subset/Bowling/v_Bowling_g03_c03.avi' # TODO,填写视频所在的路径 save_dir = os.path.dirname(video_path) + '_out' if not os.path.exists(save_dir): os.mkdir(save_dir) # …… ``` - 执行**compute_rgb_flow.py** ``` !python compute_rgb_flow.py ``` ![homework1-1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/130425nurhwe2gfewccbow.png) 稍等片刻我们能拿到视频的总帧数、rgb npy路径、flow npy 路径; - 替换参数 ```py # …… # 视频的帧数 _SAMPLE_VIDEO_FRAMES = 137 # 输入数据包括两部分:RGB和光流 # RGB和光流数据已经经过提前计算 _SAMPLE_PATHS = { 'rgb': 'dataset_subset/Bowling_out/v_Bowling_g03_c03_rgb.npy', 'flow': 'dataset_subset/Bowling_out/v_Bowling_g03_c03_flow.npy', } # …… ``` ![homework1-2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/130552hr5qkhti4ztcbwbo.png) 依次执行即可完成新视频的动作识别预测。 > 作业二要点:数据集替换 作业二主要是将课程中用到的flamingo数据集替换为breakdance,最终达到剔除视频中跳舞的对象。踩过课程作业的坑之后,再来完成作业二真的简单了许多,大概有6处需要替换的。 - 替换 ```py # 第一处:定义模型和训练超参 # Setting of parameters if 'SEQ_NAME' not in os.environ.keys(): seq_name = 'breakdance' ``` ```py # 第二、三处:查看视频分割结果 # Setting of parameters src_dir = './video_object_segmention/OSVOS-PyTorch/DAVIS_2016/JPEGImages/480p/breakdance' result_dir = './video_object_segmention/OSVOS-PyTorch/./models/Results/breakdance' ``` ```py # 第四、五处:运行算法Demo(在Terminal中执行) source activate /home/ma-user/anaconda3/envs/Pytorch-1.0.0 cd `find ~/work/ -name &amp;quot;Deep-Flow-Guided-Video-Inpainting&amp;quot;` bash install_scripts.sh python tools/video_inpaint.py --frame_dir ../OSVOS-PyTorch/DAVIS_2016/JPEGImages/480p/breakdance --MASK_ROOT ../OSVOS-PyTorch/DAVIS_2016/Annotations/480p/breakdance --img_size 512 832 --FlowNet2 --DFC --ResNet101 --Propagation --enlarge_mask ``` ```py # 第六处:查看视频抠图结果 src_dir = './video_object_segmention/OSVOS-PyTorch/DAVIS_2016/JPEGImages/480p/breakdance' ``` ![end.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/28/131258qt96hxceqqivcj4z.png) 基本一遍过。此次分享就到这,希望对大家有所帮助,赶紧完成打卡吧! ## 加入组织 MDG 是 ModelArts Developer Groups 的缩写。是由 ModelArts 开发者发起的开放、创新、多元的开发者社区组织。致力于帮助开发者学习提升、互动交流、挖掘机会,推动 AI、互联网等产业生态的建立和发展。MDG 是面向人工智能、AI 技术、开源项目及 ModelArts 平台技术感兴趣的公益性开发者社区,相关开发者、软件工程师、创业者、运营人、产品人、大学生、老师等都可以参加到 MDG 社区。 MDG 秉承开放、创新、多元的社区文化,完全由各地志愿者自发组织和建立。目前,我们已在北京、上海、杭州、重庆建立了社区组织。自 2019 年12月起陆续开展了多次线上、线下活动。许多小伙伴正是参与了华为云 ModelArts 的相关活动后,申请加入MDG志愿者组织,从而更深入地了解ModelArts平台。 |![1048095jdntqe5crxewsqq.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/17/175509iwqoqihodxhihkrv.png)| | :----:| ## 关于作者 新晋华为云云享专家Copy攻城狮,我是胡琦,近期有幸参与【2020华为云AI实战营】,学习ModelArts并加入[【MDG社区】](https://bbs.huaweicloud.com/forum/thread-60471-1-1.html),期待在这里与你相遇! |![0.jpg](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/17/175524mdkiurcscpkdiiid.jpg)| | :----:|
  • [AI实战营] 华为云2020 AI实战营 第六章 视频分析-作业2快速打卡
    打卡链接为: https://bbs.huaweicloud.com/forum/thread-67178-1-1.html  操作文档6.3链接地址:https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_video_object_segmentation/object_segmentation.ipynb#%E6%B3%A8%E6%84%8F%EF%BC%81%E5%AE%89%E8%A3%85%E5%AE%8C%E4%BB%A5%E4%B8%8A%E6%A8%A1%E5%9D%97%E5%90%8E%EF%BC%8C%E4%BC%9A%E6%9C%89%E4%B8%80%E4%BA%9Bc++%E5%BA%93%E7%9A%84%E6%9B%B4%E6%96%B0%EF%BC%8C%E5%9B%A0%E6%AD%A4%E9%9C%80%E8%A6%81%E7%82%B9%E5%87%BB%E6%9C%AC%E9%A1%B5%E9%9D%A2%E9%A1%B6%E9%83%A8%E8%8F%9C%E5%8D%95%E6%A0%8F%E7%9A%84-Kernel%EF%BC%8C%E5%86%8D%E7%82%B9-Restart然后可以一键用我作业代码2来一键操作就可以搞定的了。1、打开课程案例代码文件object_segmentation.ipynb,按ctrl+F,搜索flamingo,尝试将flamingo字样都替换成breakdance;------代码中 已经搞定的了。2、替换完成后,按ctrl+s保存脚本,点击页面顶部菜单栏的 File -> Close and Halt 关闭当前ipynb脚  本,再重新打开object_segmentation.ipynb,从第一个代码块开始,重新跑一遍整个案例; -------------全部代码包含前面的要全部打卡一下。3、在Terminal中执行"python tools/video_inpaint.py ...... "那行代码的时候,注意检查其中的flamingo是否已替换。------这个在执行有四行代码,最后一行用 这个就可以了。python tools/video_inpaint.py --frame_dir ../OSVOS-PyTorch/DAVIS_2016/JPEGImages/480p/breakdance --MASK_ROOT ../OSVOS-PyTorch/DAVIS_2016/Annotations/480p/breakdance --img_size 512 832 --FlowNet2 --DFC --ResNet101 --Propagation --enlarge_mask
  • [AI实战营] 华为云2020 AI实战营 第六章 视频分析-作业1快速打卡
    打卡链接为: https://bbs.huaweicloud.com/forum/thread-67178-1-1.html 操作文档6.2链接地址: https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_video_action_recognition/action_recognition.ipynb其实可以直接一键用我的作业1的代码直接运行,然后就可以打卡了。代码都安装作业打卡的作业1的要求修改对应的地方的,并且运行成功得到。
  • [Atlas500] 如在atlas500进行多路视频目标检测?
    请问有多路视频目标检测的例子吗?请大神指点一下
  • [AI实战营] 华为云2020 AI实战营 第六章 视频分析-课程打卡体验
    在这里打卡就可以了https://bbs.huaweicloud.com/forum/thread-67500-1-1.html 实战操作文档链接: https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_video_object_segmentation/object_segmentation.ipynb 新建notebook的时候记得选择obs模式,不然有报错,也能解决问题的,就是可能麻烦一点,操作文档上说用EVS模式,但是可能存储不够大,所以报错吧,建议选择用OBS,然后操作跟文档是一模一样的,当然也可以跟进操作文档和我的代码一键搞定。
  • [云商店直播] 【直播资讯】视频营销时代,B2B企业私域直播转化的三大制胜路径
    2020年疫情恐慌下,有一种改变正在悄然发生,而中国就处在这一变化的最前沿——数字化技术正悄悄融入我们的真实世界,为生活、经济和社会发展带来各种各样的影响。这次疫情让本该3~5年才能完成的变化,在短时间内席卷而来,这是对每个企业的一次考验,催促我们全面调整自己。即使你已经有了一个不错的产品,但如果你无法根据环境变化及时调整的话,你的竞争者就会追上去,或者会有另一个品类替代你。在这样一个不进则退、充满不确定性的世界中,我们该如何面对?如何调整自己的战略部署?艾瑞咨询数据显示,2020年春节期间,企业直播行业客户数量同比增长8-10倍 ,基于企业私域流量运营的需求以及用户教育的普及,未来,企业直播服务将有望成为企业业务标配。  从用户端来看,疫情后,用户的观看直播/线上获取企业咨询的行为已经常态化;从企业端来看,企业通过直播获取用户关注日益常态化。  直播服务或将成为B2B服务的标配。  区别于一般企业,B2B企业在直播中不仅面对自身的营销需求,也面对客户的营销需求。  因此,我们在讨论B2B直播时,其实讨论的是两大核心问题:  1. B2B企业如何通过私域直播营销,进行高效获客?2. B2B企业如何快速建立直播服务能力,赋能B端客户的直播需求?7月29日,华为云云市场直播间特邀保利威副总裁周老师发表主题演讲《视频营销时代,B2B企业私域直播转化的三大制胜路径》,从2个经典解决方案和3大关键闭环切入,畅谈企业直播获客方法论。   更多精彩直播,请锁定【云市场直播间】,每周三15:00-18:00为您带来一场精彩直播。【华为云云市场,助您上云无忧】
  • [Atlas500] Samples / InferObjectDetection这个例程 可以输入.mp4视频数据作为输入吗?
    Samples / InferObjectDetection可以检测单张图片,本地MP4视频可以吗
  • [Atlas300] Atlas300视频推理稳定性问题,Device侧日志分析求助
    处理rtsp或循环处理离线视频,程序运行一段时间后,可能是几个小时或十几个小时,device侧会异常退出,日志如下:处理9路离线视频最后divice侧日志如下:[ERROR] KERNEL(1230,sklogd):2020-07-25-00:43:04.625.088 [25683.895916] arm-smmu-v3 140100000.smmu_a0: EVTQ overflow detected -- events lost  SUBSYSTEM=platform  DEVICE=+platform:140100000.smmu_a0[ERROR] KERNEL(1230,sklogd):2020-07-25-00:43:04.625.502 [25683.896037] arm-smmu-v3 140300000.smmu_a1: EVTQ overflow detected -- events lost  SUBSYSTEM=platform  DEVICE=+platform:140300000.smmu_a1[ERROR] KERNEL(1230,sklogd):2020-07-25-00:43:05.681.984 [25684.958274]  [devdrv] [devdrv_heart_beat_callback 1350] <swapper/5:0> receive ts exception msg, call mntn_system_error: 0xa4060006, time: 1595637785.679313, arg: 0.处理4路rtsp最后divice侧日志如下:[ERROR] TSCH(-1,null):2020-07-25-04:46:18.434.663 1 (cpuid:0) ai_cpu_dispatcher.c:870 ai_cpu_timeout_proc_done: ai_cpu_id= 0 response timeout![ERROR] TSCH(-1,null):2020-07-25-04:46:18.434.692 2 (cpuid:0) ai_cpu_dispatcher.c:887 ai_cpu_timeout_proc_done:  bs slot id is invalid [ERROR] TSCH(-1,null):2020-07-25-04:46:18.434.703 3 (cpuid:0) ai_cpu_dispatcher.c:870 ai_cpu_timeout_proc_done: ai_cpu_id= 1 response timeout![ERROR] TSCH(-1,null):2020-07-25-04:46:18.434.713 4 (cpuid:0) ai_cpu_dispatcher.c:887 ai_cpu_timeout_proc_done:  bs slot id is invalid 程序开始能跑起来,结果也能正确输出,看内存带宽基本都在60%以下,只是跑长时间就会出现问题,请问这些日志了反映了什么问题?