<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          "螞蟻呀嘿",快用 ModelArts 自己實現(xiàn)一個!

          共 6289字,需瀏覽 13分鐘

           ·

          2021-03-02 05:27

          ?

          一夜之間,朋友圈都在“螞蟻呀嘿”!網(wǎng)友卻擔(dān)心......"Baby, don't worry, we have ModelArts!",是的,咱用 ModelArts 來制作,無需擔(dān)心“有人模仿我的臉?”,也不用擔(dān)心偌大的水印。不過,使用別人的臉可能真的有法律風(fēng)險!本文將介紹如何借力一站式 AI 開發(fā)平臺,“傻瓜式”操作實現(xiàn)生成“螞蟻呀嘿“小視頻。

          ?

          環(huán)境準備

          ModelArts 和她的最佳搭檔--對象存儲服務(wù) OBS ,您可以理解為是“網(wǎng)盤”,主要要來存放數(shù)據(jù)集、模型或其他文件。

          6baaba4558ee3e4850e71480bf473711.webpWhat'sModeArts.png

          ModelArts: https://www.huaweicloud.com/product/modelarts.htmlAI開發(fā)平臺ModelArts是面向開發(fā)者的一站式AI開發(fā)平臺,為機器學(xué)習(xí)與深度學(xué)習(xí)提供海量數(shù)據(jù)預(yù)處理及半自動化標注、大規(guī)模分布式Training、自動化模型生成,及端-邊-云模型按需部署能力,幫助用戶快速創(chuàng)建和部署模型,管理全周期AI工作流。

          44a8f3654e47c7d380dfd02ee1a6298d.webpWhat'sOBS.png

          OBS: https://www.huaweicloud.com/product/obs.html
          對象存儲服務(wù)(Object Storage Service,OBS)提供海量、安全、高可靠、低成本的數(shù)據(jù)存儲能力,可供用戶存儲任意類型和大小的數(shù)據(jù)。適合企業(yè)備份/歸檔、視頻點播、視頻監(jiān)控等多種數(shù)據(jù)存儲場景。

          使用以上服務(wù)會有一定費用產(chǎn)生,或者您可以嘗試認證為開發(fā)者會有一定代金券贈送,當(dāng)然關(guān)注 ModelArts 和加入 ModelArts 開發(fā)者社區(qū)也會有機會獲得大額代金券。

          模型、素材準備

          本次實現(xiàn)使用的是用于圖像動畫的一階運動模型,這是一種基于關(guān)鍵點和局部仿射變換的圖像動畫方法,
          論文地址:https://arxiv.org/abs/2003.00196

          下載預(yù)訓(xùn)練模型及素材

          最近手頭緊,非常抱歉不能為大家提供 OBS 路徑直接下載,我已將預(yù)訓(xùn)練模型及素材上傳到 AI Gallery 數(shù)據(jù)集,請自行下載到您的 OBS 中。
          當(dāng)然如果您有可快速下載的地址,歡迎分享!
          源文件地址:https://drive.google.com/drive/folders/1kZ1gCnpfU0BnpdU47pLM_TQ6RypDDqgw?usp=sharing 或者https://drive.google.com/drive/folders/16inDpBRPT1UC0YMGMX3dKvRnOUsf5Dhn?usp=sharing因為是源文件,因此不包含”螞蟻呀嘿“原視頻素材,但我已添加至AI Gallery 數(shù)據(jù)集
          如仍有需求,可以直接找我要,公眾號:胡琦,WeChat:Hugi66;
          歡迎加入 ModelArts 開發(fā)者社區(qū),廣州地區(qū)的小伙伴可以加入我們共創(chuàng) MDG 廣州站哦!

          • AI Gallery 是在 ModelArts 的基礎(chǔ)上構(gòu)建的開發(fā)者生態(tài)社區(qū),提供模型、算法、HiLens技能、數(shù)據(jù)集等內(nèi)容的共享和交易。因此您可以下載分發(fā)的數(shù)據(jù)集或文件到您的 OBS ,使用時請遵守相應(yīng)的政策和規(guī)則!打開?? https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=00bc20c3-2a00-4231-bdfd-dfa3eb62a46d 點擊「下載按鈕」進入「下載詳情」,設(shè)置 OBS 路徑,「確定」下載即可將模型和素材下載到自己的 OBS 中,比如我路徑是/modelarts-lab/first-order-motion-model。下載進度可以在 AI Gallery 「個人中心-我的下載」查看。

          cf5bce29d1d527a6f22e6eb045a5f0f2.webp
          35971c672ffe5a8e5fb7b439512b09a3.webp
          f86e9f8ea77ccf59ab1562b9a160caf9.webp
          bc6b2125ea49eabaca2f7d861cce13d7.webp

          JUST DO IT -- ModelArts 我的筆記本

          接下來開始使用 「ModelArts--我的筆記本」 ,即開即用的在線集成開發(fā)環(huán)境,可以輕松的構(gòu)建、訓(xùn)練、調(diào)試、部署機器學(xué)習(xí)算法與模型。當(dāng)前使用免費規(guī)格用于體驗, 值得留意的是 72 小時內(nèi)沒有使用,會釋放資源,因此需要注意文件備份。當(dāng)然還可以使用 Notebook 免費算力,記得選擇 GPU 環(huán)境哦!cef8b38945f94477d81fbba768a5d879.webp

          當(dāng)我們使用「我的筆記本」時默認開啟的是 CPU 環(huán)境,因此我們需要切換到 GPU 環(huán)境。目前「ModelArts-我的筆記本」支持8 vCPU + 64 GiB + 1 x Tesla V100-PCIE-32GB52efc7d3a7ea044888b8120b5c107fa2.webp

          新建Pytorch 1.0.ipynb文件,開始我們的“螞蟻呀嘿”體驗之旅。87d734953ebf2756e666da2d4f6a3c90.webp

          • 下載代碼

            !git?clone?https://github.com/AliaksandrSiarohin/first-order-model
            #?or
            !git?clone?https://codehub.devcloud.cn-north-4.huaweicloud.com/ai-pome-free00001/first-order-model.git

            github 速度慢,建議轉(zhuǎn)存到華為云代碼托管平臺再拉取。
            此處提供我已經(jīng)緩存好的代碼倉庫地址,因此不再演示如何將 github 代碼遷移到 codehub。
            (不保證我的賬號欠費而無法訪問,因此建議大家以自己的方式上傳代碼到 Notebook !)

            d8f34b441dd2bf34d5b3884f8288378e.webp
          • 利用 Moxing 拷貝文件到 JupyterLab
            將之前下載到 OBS 中的模型和素材通過 Moxing 拷貝過來,此處注意替換為您的 OBS 路徑。02.mp4是“螞蟻呀嘿”的模版視頻,

            #?此處牛刀小試--用?Moxing?下載文件
            import?moxing?as?mox

            #?此處需要替換您的?OBS?地址
            mox.file.copy_parallel('obs://modelarts-lab/first-order-motion-model/first-order-motion-model-20210226T075740Z-001.zip'?,?'first-order-motion-model.zip')
            mox.file.copy_parallel('obs://modelarts-lab/first-order-motion-model/02.mp4'?,?'02.mp4')
            #?解壓
            !unzip?first-order-motion-model.zip

            #?模版視頻
            !mv?02.mp4?first-order-motion-model/
            9193cba22ed52c7dde466a00451cfc78.webp
          • JUST DO IT
            準備工作完成之后,擼起袖子就是干!切換到first-order-model目錄,然后將 source_image_path中的路徑替換為”您的臉”所在的路徑,臉的照片可以直接通過 Notebook 的文件上傳功能上傳。
            當(dāng)然您還可以將默認的“螞蟻呀嘿”視頻替換為您自定義的視頻,格式為 mp4。一路執(zhí)行可以查看到合成前的預(yù)覽。

            cd?first-order-model
            import?imageio
            import?numpy?as?np
            import?matplotlib.pyplot?as?plt
            import?matplotlib.animation?as?animation
            from?skimage.transform?import?resize
            from?IPython.display?import?HTML
            import?warnings
            warnings.filterwarnings("ignore")

            #?此處替換為您的圖片路徑,圖片最好為?256*256,這里默認為普京大帝
            source_image_path?=?'/home/ma-user/work/first-order-motion-model/02.png'
            source_image?=?imageio.imread(source_image_path)

            #?此處可替換為您的視頻路徑,這里默認為“螞蟻牙黑”
            reader_path?=?'/home/ma-user/work/first-order-motion-model/02.mp4'
            reader?=?imageio.get_reader(reader_path)


            #?調(diào)整圖片和視頻大小為?256x256

            source_image?=?resize(source_image,?(256,?256))[...,?:3]

            fps?=?reader.get_meta_data()['fps']
            driving_video?=?[]
            try:
            ????for?im?in?reader:
            ????????driving_video.append(im)
            except?RuntimeError:
            ????pass
            reader.close()

            driving_video?=?[resize(frame,?(256,?256))[...,?:3]?for?frame?in?driving_video]

            def?display(source,?driving,?generated=None):
            ????fig?=?plt.figure(figsize=(8?+?4?*?(generated?is?not?None),?6))

            ????ims?=?[]
            ????for?i?in?range(len(driving)):
            ????????cols?=?[source]
            ????????cols.append(driving[i])
            ????????if?generated?is?not?None:
            ????????????cols.append(generated[i])
            ????????im?=?plt.imshow(np.concatenate(cols,?axis=1),?animated=True)
            ????????plt.axis('off')
            ????????ims.append([im])

            ????ani?=?animation.ArtistAnimation(fig,?ims,?interval=50,?repeat_delay=1000)
            ????plt.close()
            ????return?ani


            HTML(display(source_image,?driving_video).to_html5_video())
            a5d98424b3b8ec6bc68eb9fe382a0673.webp
          • 創(chuàng)建模型并加載 checkpoints
            這一步完成之后,我們便得到了“螞蟻呀嘿”的視頻了--“generated.mp4”,這就結(jié)束了?不過,問題來了……

            from?demo?import?load_checkpoints
            generator,?kp_detector?=?load_checkpoints(config_path='config/vox-256.yaml',?
            ????????????????????????????checkpoint_path='/home/ma-user/work/first-order-motion-model/vox-cpk.pth.tar')
            from?demo?import?make_animation
            from?skimage?import?img_as_ubyte

            predictions?=?make_animation(source_image,?driving_video,?generator,?kp_detector,?relative=True)

            #?保存結(jié)果視頻
            imageio.mimsave('../generated.mp4',?[img_as_ubyte(frame)?for?frame?in?predictions],?fps=fps)
            #?在?Notebook?根目錄能找,/home/ma-user/work/

            HTML(display(source_image,?driving_video,?predictions).to_html5_video())
            58bf685dc7e708b2afc1b4521e3d0849.webp
          • 后續(xù)操作
            如果您和我一樣直接下載并打開上面操作的產(chǎn)物--generated.mp4,您一定會和我一樣困惑:聲音呢?
            是的,聲音丟失了,因為核心代碼只處理圖像,聲音需要我們自行找回,因為我們使用moviepy。
            不僅如此,我們還可以為視頻加水印

            • 安裝 moviepy,為視頻剪輯做準備

          #?安裝視頻剪輯神器?moviepy
          !pip?install?moviepy
          0fbd4c632e455d127be174334f238cc1.webp
          • 合成背景音樂
            #?為生成的視頻加上源視頻聲音
            from?moviepy.editor?import?*

            videoclip_1?=?VideoFileClip(reader_path)
            videoclip_2?=?VideoFileClip("../generated.mp4")

            audio_1?=?videoclip_1.audio

            videoclip_3?=?videoclip_2.set_audio(audio_1)

            videoclip_3.write_videofile("../result.mp4",?audio_codec="aac")
            172f9f47d77572fedf1593e73c354cdf.webp
          • 別人花錢去水印,我卻還要加水印
            #?還可以給視頻加水印
            video?=?VideoFileClip("../result.mp4")
            #?水印圖片請自行上傳
            logo?=?(ImageClip("/home/ma-user/work/first-order-motion-model/water.png")
            ????????.set_duration(video.duration)?#?水印持續(xù)時間
            ????????.resize(height=50)?#?水印的高度,會等比縮放
            ????????.margin(right=0,?top=0,?opacity=1)?#?水印邊距和透明度
            ????????.set_pos(("left","top")))?#?水印的位置

            final?=?CompositeVideoClip([video,?logo])
            final.write_videofile("../result_water.mp4",?audio_codec="aac")

            final_reader?=?imageio.get_reader("../result_water.mp4")

            fps?=?final_reader.get_meta_data()['fps']
            result_water_video?=?[]
            try:
            ????for?im?in?final_reader:
            ????????result_water_video.append(im)
            except?RuntimeError:
            ????pass
            reader.close()
            result_water_video?=?[resize(frame,?(256,?256))[...,?:3]?for?frame?in?result_water_video]
            HTML(display(source_image,?driving_video,?result_water_video).to_html5_video())
          • 07717c37d470711dd190c5c5855349c7.webp

          至此,本次實現(xiàn)先告一段落,關(guān)于“多人運動”--合照的解決辦法還沒來得及探索,歡迎您在評論區(qū)分享指導(dǎo),感謝!

          最后,打個小廣告:廣州的小伙伴歡迎加入我們,共建 ModelArts 生態(tài)!



          瀏覽 92
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲操B网| 亚洲无码视屏 | 午夜精品成人无码 | 欧美在线视频播放 | 九一久久|