×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

基于寒武纪,用style_transfer风格转化蔡徐坤打篮球的视频 lj10652019-05-23 23:06:48 回复 24 查看 经验交流 编程库 BangC
基于寒武纪,用style_transfer风格转化蔡徐坤打篮球的视频
分享到:

1、将视频转化成图片

视频是在B站下载的FLV格式的,然后我采用网上找的python代码将视频转成了1078张图片。


(PS:这是我第二次写的,第一次写的时候网页出了问题,貌似本地保存没起作用???)


2.PNG

3.PNG




2、处理图片

因为老师给的代码一次只能处理一张图片,且处理后的图片名固定为st.jpg,而且貌似不太方便将输入时的文件名在输出时读出来,所以我想法是直接他输出的文件名为随机的,这样一来不会导致覆盖,二来可以通过生成文件的时间戳来进行排序。

后来我探索了几种方法,以下是总结的两种。嫌麻烦的话,可以直接看2.2, 2.1是在硬件上做的,出的问题比较多比较麻烦。


2.1、方法一

看了给的源码,我改了src下面的post_processor.cpp中的代码。使其输出的文件名不唯一,是随机的字符串,输出文件统一放到一个out文件夹下,这个out文件夹需要手动创建,与src文件夹同级。

以下是部分截图 :

11.PNG

4.PNG

5.PNG

6.PNG

7.PNG


修改完post_processor.cpp后,在服务器端进入Cambricon-Test文件夹,设置环境,X86貌似不用设置,但是ARM的话,一定要设置,不然make代码的时候,会报错。

cd Cambricon-Test

source env.sh


经过环境设置后,然后进入style_transfer_x86/build文件夹,命令行输入

cmake .. 

make

编译完成后,就可以让输出的图片名是随机的了。然后我们再去改run_style_transfer.sh,让他可以处理多个图片,这里我是重新创建了一个1.sh文件。

8.PNG

改完之后,连上寒武纪的ARM板子,处理:

ping 10.100.8.234

telnet 10.100.8.234

mount -t nfs -o tcp,nolock 10.100.8.235:/opt/Cambricon/nfs /NFS

cd NFS

export LD_LIBRARY_PATH=/NFS/lib32

cd style_transfer_arm/

sh 1.sh


运行结束后,就可以在out文件夹下看到1478张处理后的图片,但是文件夹里面的文件名都是随机的、混乱的,所以我们要按照他们生成的时间戳来对其排序,在out文件夹创建一个operation.sh

9.PNG


然后打开终端,cd 到out文件夹下,然后输入

sh operation.sh


稍等片刻,就处理完了,图片名全部成了生成时的字符串。

然后将out文件夹,复制出虚拟机,放到电脑桌面,然后全选所有图片,再按空格,再用鼠标左键点击文件夹空白处,所有的图片就会按照顺序排列。


10.PNG




2.2、处理图片

上面方法我试了不下十次,花了两天,结果不是板子上报错,就是处理的图片没有1478张,所以,我后来选择在服务器上操作了。


换了一个思路,改文件名的方法老是出各种问题,导致出来的图片数量没那么多。于是,我想到了直接写一个shell,在每次程序出一个st.jpg图片之后,就马上将那个图片重名为输入的名。



首先,在src同级目录下,新建一个out文件夹,放处理后的图片,然后新建一个1.sh,

代码如下:

12.PNG


然后在服务器端,

sh 1.sh

就在out处获得了处理后的图片,我还让处理的结果输入到1.text,看是否有漏掉的。




3、做成视频

我是用AE做成视频的,所以这里说下流程,其他软件流程应该是相似的。

打开AE后,点击文件,导入,多个文件,然后选择 JPEG序列 ,然后得到序列后,将序列从项目框下,拖动到合成的那个轨道上,然后导入最初的FLV视频,放到视频轨道上,关闭视频,打开音频。

我们发现原视频是59:04,但是图片序列只有49:08,所以需要将图片序列的时间等比增加,故点击合成框的左下角的 {} 符号,然后合成框会多一个持续时间、伸缩,然后点击持续时间,会弹出一个框,将里面的49:08改成59:04。


接着点击顶部菜单栏中的合成,点击 添加到渲染队列,然后在下方会看到一个渲染队列框。这里点击渲染,就可以得到视频了,但是这样输出的视频很大,有一个多G,所以需要让输出的视频很小。

点击输出模块对应的 无损 ,然后将格式改为QuickTime,然后点击右边的 格式选项,将视频编解码器,设置为H.264,然后确定,渲染,就可以得到想要的视频啦。

具体操作图如下:


13.png


15.png


16.png

17.png


18.png


19.png


20.png

21.png




4、视频结果


23.png

欢迎大家去点赞、评论、收藏。


https://www.bilibili.com/video/av53303275/




最后提几个编辑器的建议:

每次加图片都要滑到顶端去加,很麻烦,能否改成跟CSDN一样,跟html 的class wrap topfr一样就行了。

另外建议加一个像CSDN一样的放代码的标签,


版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭