超酷! Atlas给黑白视频“上色”
摘要:随着人工智能技术发展,AI已经能够为黑白的老视频 “上色”,重现昔日的情景,让黑白图像变得栩栩如生。
怎么样,是不是看起来题目跟昨天的博客名称差不多?昨天是图片,今天是视频。从道理上说,将视频中的图像一一抓取,上色,合起来就是视频了。。。(我猜原理就是这样的)
所以,让我们把18.04的quick-start的demo折腾完吧。这次是根据 https://gitee.com/lovingascend/quick_start/blob/master/Atlas200DK_separate_MD/video_sample.md ,将视频给上色了。
闲话少说,我们按照说明来,使用”开发环境交叉编译第三方库,再将第三方库导入运行环境,提供运行调用“的方法。
先在虚拟机环境装presentagent:




然后依次照做:
bash configure
make -j8(编译的时间会有点长。。。)

sudo make install

下面编译arm版本的so,为迁移到开发板做准备:
make distclean
./configure --build=x86_64-linux-gnu --host=aarch64-linux-gnu --with-protoc=protoc
make -j8(耐心地等编译结束。。。)

sudo make install



下面到运行环境同步刚才编译好的第三方库:
注意这里手册有个bug:(scp需要加上一层arm目录),否则会找不到文件:scp $HOME/ascend_ddk/arm/lib/libpresenteragent.so HwHiAiUser@192.168.1.2:/home/HwHiAiUser
然后登录开发板,再拷贝so文件:

我们再做最后的一步,获取视频项目:
回到虚拟机的开发环境:

unzip colorization_video.zip 解压
建好目录,下载模型和权重文件:(好像跟上次是一样的)

回到MindStudio.关闭原来的工程并打开新下载的工程:

下面的步骤跟上次图片上色的那个基本是一致的:转换模型,加载模型到项目中,编译,运行。。。
个人感觉模型转换可以省略,因为图片上色的时候已经做过了。这次仅仅选择了加载。

检查下虚拟网卡的地址 192.168.1.223

以及 script/presentserver/display/config/config.conf中的presenter_server_ip 是否对应:

没问题。
再检查 src/colorize_process.cpp 106行地址是否跟前面对应:

也没问题。
修改编译参数(每次手册都说要该centos7.6,其实这倒是缺省的。倒是Target Architecture每次都要改成aarch64.手册每次都不说。只好笔者帮你说了。。。

点击Build。。。会生成build和out文件夹:

启动colorization-video应用的Presenter Server主程序:

居然报错了!!
看来这里还不能完全按照手册来,因为前面虽然都是按照手册装的,但是系统内分布了多个python版本,有apt-get安装的python3,也有用源码编译的python3.7.5.那么既然前面用的都是3.7.5.,那么这里的命令就应该改为:
python3.7.5 script/presenterserver/presenter_server.py --app=display & (手工加粗加红)

可以切换到 MindStudio Run一下了:先配置:

apply, ok后,再运行:

好像缺个动态库 libascendcl.so
经 @Jokey 大大的指点,
去开发板后台检查文件:

有这个文件,而且LD_LIBRARY_PATH也指向了这个so所在的目录:

另外,到开发板的工程out目录下,手工执行,好像是可以执行完毕的:


本来想修改下run.sh,在前面增加LD_LIBRARY_PATH变量。

结果发现,每次修改,都会被run程序将后台还原成一行的run.sh
这个就需要专家来回答了。暂时不管。。。(以后管。。。)
那我们看看在运行的时候,presenter_server怎么样?
在虚拟机打开浏览器:http://127.0.0.1:7009

可以看到有一路视频,点击view的名称,会弹出view的窗口,在run.sh执行的过程中,这里会有变化,截几个屏:


从视频效果来看,应该还是较为流畅的。fps=14.
我把原始视频和上色后的视频都传上来了。有兴趣的童鞋可以看下效果。剩下那个运行的问题,就等着专家来解决了。。。
另外,笔者去腾讯视频拍了一段 卓别林《摩登时代》的1分钟视频(参见附件),将其传入开发板的data目录:

然后run的参数再改成这个mp4的名称:

最后看到的效果如下:


转换好的视频(只录了一点点,因为太慢了影响我的感受,就没录完。。。)也上传到附件。
从转换的结果可以看出,fps=8.感觉有点慢。可能是200DK的推理能力还没这么快,也许300i可以快一点。。。
附上历史折腾清单:
华为Atlas 200DK初体验——写在昇腾新品发布的第二天 https://bbs.huaweicloud.com/blogs/193847
Atlas 200DK系统折腾纪实:(1)论图片及18.04.1的诞生 https://bbs.huaweicloud.com/blogs/194291
Atlas 200DK系统折腾纪实:(2)视频的诞生 https://bbs.huaweicloud.com/blogs/194641
Atlas 200DK系统折腾纪实:(3)强大的yolo3物体检测——你想看的内容已被系统提取 https://bbs.huaweicloud.com/blogs/194816
Atlas 200DK系统折腾纪实:(4)18.04.1的软件安装及双系统切换验证 https://bbs.huaweicloud.com/blogs/195227
Atlas 200DK系统折腾纪实:(5)Atlas让黑白照片原彩重现 https://bbs.huaweicloud.com/blogs/195391
(全文完,谢谢阅读,本文中的问题看看下次能不能解决。。)
超酷! Atlas给黑白视频“上色”的更多相关文章
- android实现超酷的腾讯视频首页和垂直水平网格瀑布流一揽子效果
代码地址如下:http://www.demodashi.com/demo/13381.html 先来一波demo截图 实现ListView.GridView.瀑布流 1.导入RecyclerView的 ...
- C#完成超酷的图像效果 (附demo)
如果您觉得C#制作的艺术字比较好玩, 但是还觉得没看够,不过瘾,那么我今天就让您一饱眼福, 看看C#如何制作的效果超酷的图像. (注: 我之前曾写过类似的文章, 但没有原理说明, 代码注释不够详细, ...
- 分享9款最新超酷HTML5/CSS3应用插件
新的一周开始了,小编继续要为大家分享实用超酷的HTML5应用,今天分享的这9款最新HTML5/CSS3应用你一定会很喜欢,一起来看看. 1.HTML5 Canvas模拟衣服撕扯动画 超级逼真 今天又要 ...
- 超酷的实时颜色数据跟踪javascript类库 - Tracking.js
来源:GBin1.com 今天介绍这款超棒的Javascript类库是 - Tracking.js,它能够独立不依赖第三方类库帮助开发人员动态跟踪摄像头输出相关数据. 这些数据包括了颜色或者是人, 这 ...
- jQuery超酷下拉插件6种效果演示
原始的下拉框很丑啦, 给大家一款jQuery超酷下拉插件6种效果 效果预览 下载地址 实例代码 <div class="container"> <section ...
- 超酷HTML5 Canvas图表应用Chart.js自定义提示折线图
超酷HTML5 Canvas图表应用Chart.js自定义提示折线图 效果预览 实例代码 <div class="htmleaf-container"> <div ...
- 10个你必须掌握的超酷VI命令技巧
摘要:大部分Linux开发者对vi命令相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率. ...
- 使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果
360度的全景图片效果常常可以用到给客户做产品展示,今天这里我们推荐一个非常不错的来自Robert Pataki的360全景幻灯实现教程,这里教程中将使用javascript来打造一个超酷的全景幻灯实 ...
- 基于Bootstrap的超酷jQuery开关按钮插件
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAAA2CAIAAAC0tsfoAAAB/0lEQVR4nO3bQWrCQBTGcc/mbVz0DD
- 8款超酷的HTML5 3D图片动画源码
1.HTML5移动端图片左右切换动画 今天要给大家分享一款很不错的图片左右切换焦点图动画,并且支持移动端触摸滑动.功能上,这款HTML5图片播放器支持鼠标滑动.手机端触摸滑动以及自动播放.外观上,这款 ...
随机推荐
- SonarQube系列-通过配置扫描分析范围,聚焦关键问题
在许多情况下,你可能不希望分析项目中每个源文件的各个方面.例如,项目可能包含生成的代码.库中的源代码或有意复制的代码.在这种情况下,跳过这些文件分析的部分或全部方面是有意义的,从而消除干扰并将焦点缩小 ...
- getc()、getchar()、getch() 和 getche() 的区别
所有这些函数都从输入中读取一个字符并返回一个整数值.返回整数以容纳用于指示失败的特殊值.EOF值通常用于此目的. getc() 它从给定的输入流中读取单个字符,并在成功时返回相应的整数值(通常 ...
- CSP2021游记
题外话 中午十二点半到了考场.没到时间不让进,恰巧发现 lhm 在对面饭店于是去讨论了一下上午 J 组的题,复习了线段树板子( 等到进考场坐好的时候已经两点半了,看考号本来以为我们同机房三个同学会坐一 ...
- HttpWebResponse获取DOM数据注意之ContentEncoding
public string GetKaiJ(string type = "ssq") { /*1.通过WebBrowser控件&HttpWebRequest获得网站信息*/ ...
- ASP.NET CORE MVC的一些说明
1.ASP.NET CORE MVC 是微软公司的Web应用开发框架,结合了MVC架构的高效.简洁等优秀思想并融合了.NET的灵活性. 2.ASP.NET诞生于2002年,当时微软想保持桌面应用程序的 ...
- C# 压缩PDF文件
PDF 文件可以包含文本.图片及各种媒体元素,但如果文件太大则会影响传输效果同时也会占用过多磁盘空间.通过压缩PDF文件,能够有效减小文件大小,从而提高传输效率并节省存储空间.想要通过C#代码快速有效 ...
- [Python急救站课程]汇率转换程序
汇率转换程序 i = input("请输入金额用"¥"或"$"结束:") if i[-1] in ['¥']: C = (eval(i[0: ...
- 格局决定结局,进化还是毁灭,Prompt在其中扮演什么角色
GPT 时代, Prompt 的价值你们可能不懂 最近, OpenAI 推出了基于 GPT 模型的 GPTs 以及 Agent Stroe 系统,引发广泛关注.业内讨论热点主要集中在吸引用户体验方面. ...
- 2021 ICPC济南 J Determinant
题意就是给定一个矩阵,然后给出他的行列式的绝对值,这个值是精确的,然后让我们判断行列式的正负. 思路来源:一个Acmer 首先做这个题要明白一个性质才可以做,一个数和它的相反数对一个奇数的取模一定不同 ...
- 0x02.加密和编码
识别算法编码类型 看密文位数 看密文特征(数字.字母.大小写.符号等) 看当前密文存在的地方(web.数据库.操作系统等) 密码存储加密 md5:16位和32位由0-9和a-f组成的字符串 ,该加密方 ...