GPU加速型ECS的使用

黄生 发表于 2022/04/20 21:47:40 2022/04/20
【摘要】 因为在试用一个抠图Matting的应用的时候,在Modelarts里面有些不太对劲,生成的图像上好像是蒙了一层灰,而生成的视频有一些颜色的闪烁。所以自己使用ECS试一下。购买了一个比较便宜在售的按需每小时三元五购买时却说资源已售罄,所以选了一个六块多的。看一下GPU:第一步是yum安装python3。很不幸centos8官方源被下线了,所以得先小小的处理一下。python3-devel也安装...

因为在试用一个抠图Matting的应用的时候,在Modelarts里面有些不太对劲,生成的图像上好像是蒙了一层灰,而生成的视频有一些颜色的闪烁。所以自己使用ECS试一下。
购买了一个比较便宜在售的按需每小时三元五
image.png

购买时却说资源已售罄,所以选了一个六块多的。
看一下GPU:
image.png

第一步是yum安装python3。很不幸centos8官方源被下线了,所以得先小小的处理一下。python3-devel也安装上,免得安装av python模块时报python.h没有。
第二步是pip3安装Python需求库,先改一下镜像。
image.png

其中torch是比较大的有800多M
安装av出错了,因为这里对于ffmpeg是有一个依赖的。
image.png

yum里没有,所以编译安装ffmpeg,要加上enable-shared编译选项,还有要支持h264编码。所以先从gitee下载编译x264安装到/data/lib。
在此之前yum先安装好nasm,然后x264 lib安装好后,
export PKG_CONFIG_PATH=/data/lib/lib/pkgconfig/
然后配置ffmpeg,后编译安装
./configure --prefix=/data/ffmpeg --enable-shared --enable-libx264 --enable-gpl
安装好后
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/data/ffmpeg/lib/pkgconfig/
再pip3单独安装av试试,一起安装怕了,一个小包坏了一批包要重新安装

至此,安装pillow时又报错了:
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
安装开发库吧:yum install libjpeg-turbo-devel zlib-devel
至此是Python库都可以安装成功了。

哎,这时回过头去看了一下modelarts里的代码,

model = MattingNetwork('mobilenetv3').eval().cuda()   # 或 "resnet50"(比较大) 
#model.load_state_dict(torch.load('rvm_mobilenetv3.pth')) #这一行不知道什么时候被自己注释了

将第二行注释去掉,得出的抠图视频就很完美(运行前不用升级conda环境里的ffmpeg库)

一天忙到晚,总是会有这种顾头不顾腚的事情发生…惭愧,要反思啊

不过既然ECS都有了,就做到底吧
因为自己安装的FFMEPG库和x264库,运行之前,设置一下库路径,不然import av就要报错
export LD_LIBRARY_PATH=/data/ffmpeg/lib/:/data/lib/lib

运行成功,生成的mp4完美
代码:

import torch
from model import MattingNetwork

model = MattingNetwork('mobilenetv3').eval().cuda()   # 或 "resnet50"
model.load_state_dict(torch.load('rvm_mobilenetv3.pth'))


from inference import convert_video

convert_video(
    model,                           # 模型,可以加载到任何设备(cpu 或 cuda)
    input_source='t1.mp4',        # 视频文件,或图片序列文件夹
    output_type='video',             # 可选 "video"(视频)或 "png_sequence"(PNG 序列)
    output_composition='t2.mp4', # 若导出视频,提供文件路径。若导出 PNG 序列,提供文件夹路径
    output_video_mbps=4,             # 若导出视频,提供视频码率
    downsample_ratio=None,           # 下采样比,可根据具体视频调节,或 None 选择自动
    seq_chunk=2,                     # 设置多帧并行计算 默认为12
)

最后,总结一下操作:

  1. yum安装系统库:python38 python3-devel libjpeg-turbo-devel zlib-devel
  2. 手工配置编译安装x264, ffmpeg. 注意配置选项、环境变量PKG_CONFIG_PATH的设置
  3. pip3安装python库
  4. 运行前配置环境变量LD_LIBRARY_PATH
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。