关于modelarts:国庆出游神器魔幻黑科技换天造物让vlog秒变科幻大片
摘要:国庆旅游景点人太多,拍进去的照片全是人人人、车车车,该怎么办?无妨试试这个黑科技,让你的出游vlog秒变科幻大片。本文分享自华为云社区《国庆出游神器,魔幻黑科技换天造物,让vlog秒变科幻大片!》,作者:技术火炬手 。 国庆出游,无论是拍人、拍景或是其余,“天空”都是要害元素。比方,一张平平无奇的风物图加上落日余晖的天空色调,气氛感就有了。 当然,自然景观的天空还不是最酷炫的。明天给大家介绍一款基于原生视频的AI解决办法,不仅能够一键置换天空背景,还能够打造任意“天空之城”。 比方换成《星际迷航》中的浩瀚星空、宇宙飞船,将本人顺手拍的平平无奇vlog秒变为科幻大片,画面毫无违和感。 该办法源自Github上的开源我的项目SkyAR,它能够自动识别天空,而后将天空从图片中切割进去,再将天空替换成指标天空,从而实现魔法换天。 上面,咱们将基于SkyAR和ModelArts的JupyterLab从零开始“换天造物”。只有脑洞够大,利用这项AI技术,就能够发明出有限种玩法。 本案例在CPU和GPU上面均可运行,CPU环境运行预计破费9分钟,GPU环境运行预计破费2分钟。 试验指标通过本案例的学习: 理解图像宰割的根本利用; 理解静止预计的根本利用; 理解图像混合的根本利用。 注意事项如果您是第一次应用 JupyterLab,请查看《ModelArts JupyterLab应用领导》理解应用办法;如果您在应用 JupyterLab 过程中碰到报错,请参考《ModelArts JupyterLab常见问题解决办法》尝试解决问题。试验步骤1、装置和导入依赖包import osimport moxing as moxfile_name = 'SkyAR'if not os.path.exists(file_name): mox.file.copy('obs://modelarts-labs-bj4-v2/case_zoo/SkyAR/SkyAR.zip', 'SkyAR.zip') os.system('unzip SkyAR.zip') os.system('rm SkyAR.zip')mox.file.copy_parallel('obs://modelarts-labs-bj4-v2/case_zoo/SkyAR/resnet50-19c8e357.pth', '/home/ma-user/.cache/torch/checkpoints/resnet50-19c8e357.pth')INFO:root:Using MoXing-v1.17.3-43fbf97fINFO:root:Using OBS-Python-SDK-3.20.7!pip uninstall opencv-python -y!pip uninstall opencv-contrib-python -yFound existing installation: opencv-python 4.1.2.30Uninstalling opencv-python-4.1.2.30: Successfully uninstalled opencv-python-4.1.2.30WARNING: Skipping opencv-contrib-python as it is not installed.!pip install opencv-contrib-python==4.5.3.56Looking in indexes: http://repo.myhuaweicloud.com/repository/pypi/simpleCollecting opencv-contrib-python==4.5.3.56 Downloading http://repo.myhuaweicloud.com/repository/pypi/packages/3f/ce/36772cc6d9061b423b080e86919fd62cdef0837263f29ba6ff92e07f72d7/opencv_contrib_python-4.5.3.56-cp37-cp37m-manylinux2014_x86_64.whl (56.1 MB) |████████████████████████████████| 56.1 MB 166 kB/s eta 0:00:01|█████▋ | 9.8 MB 9.4 MB/s eta 0:00:05 MB 9.4 MB/s eta 0:00:05███▏ | 26.6 MB 9.4 MB/s eta 0:00:04/s eta 0:00:03��██▍ | 35.8 MB 9.4 MB/s eta 0:00:03�███████████▌ | 42.9 MB 9.4 MB/s eta 0:00:02��██████████████▎ | 49.6 MB 166 kB/s eta 0:00:40Requirement already satisfied: numpy>=1.14.5 in /home/ma-user/anaconda3/envs/PyTorch-1.4/lib/python3.7/site-packages (from opencv-contrib-python==4.5.3.56) (1.20.3)Installing collected packages: opencv-contrib-pythonSuccessfully installed opencv-contrib-python-4.5.3.56WARNING: You are using pip version 20.3.3; however, version 21.1.3 is available.You should consider upgrading via the '/home/ma-user/anaconda3/envs/PyTorch-1.4/bin/python -m pip install --upgrade pip' command.cd SkyAR//home/ma-user/work/Untitled Folder/SkyARimport timeimport jsonimport base64import numpy as npimport matplotlib.pyplot as pltimport cv2import argparsefrom networks import *from skyboxengine import *import utilsimport torchfrom IPython.display import clear_output, Image, display, HTML%matplotlib inline# 如果存在GPU则在GPU下面运行device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")INFO:matplotlib.font_manager:generated new fontManager2、预览一下原视频video_name = "test_videos/sky.mp4"def arrayShow(img): img = cv2.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST) _,ret = cv2.imencode('.jpg', img) return Image(data=ret)# 关上一个视频流cap = cv2.VideoCapture(video_name)frame_id = 0while True: try: clear_output(wait=True) # 革除之前的显示 ret, frame = cap.read() # 读取一帧图片 if ret: frame_id += 1 if frame_id > 200: break cv2.putText(frame, str(frame_id), (5, 15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1) # 画frame_id tmp = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 转换色调模式 img = arrayShow(frame) display(img) # 显示图片 time.sleep(0.05) # 线程睡眠一段时间再解决下一帧图片 else: break except KeyboardInterrupt: cap.release()cap.release() ...