目環境
語言: Python3
工具:Pycharm
想要學習Python。關注小編頭條號,私信【學習資料】,即可免費領取一整套系統的板Python學習教程!
工具準備
ffmpeg,剛才說的處理視頻的程序,可去官網下載https://www.ffmpeg.org/download.html#build-windows。
PIL 包:Python 的圖形處理庫。
numpy 包:Python 的一種開源的數值計算擴展,可用來存儲和處理大型矩陣。
程序結構
我寫了三個 py 文件,一個用來把視頻轉換為圖片,一個用來把圖片轉為編碼,最后一個來做最后的執行。
視頻處理
下面的 ffmpeg 程序后面的幾個參數我解釋一下,-i 后面需要指定輸入的文件名。-f 指定格式(音頻或視頻格式)。-vframes 設置轉換多少楨(frame)的視頻。-ss 從指定的時間(s)截圖。
def getImage(videoPath, imagePath): img_count=1 crop_time=0.0 while crop_time <=15.0: os.system('ffmpeg -i %s -f image2 -ss %s -vframes 1 %s.png'% (videoPath, str(crop_time), imagePath + str(img_count))) img_count +=1 print('Geting Image ' + str(img_count) + '.png' + ' from time ' + str(crop_time)) crop_time +=0.1 print('圖片收集結束!!!')
用這個函數獲取視頻的每幀圖片,給出的視頻存放路徑和獲取圖片的路徑調用此函數就可以獲取視頻每幀的圖片,我設置了每 0.1 秒保存一張圖片。
圖片轉換
用 convert('L') 把圖片轉換為為二值圖像,非黑即白。但是它每個像素用 8 個bit 表示,0 表示黑,255 表示白。
def image2txt(inputFile, outputFile): im=Image.open(inputFile).convert('L') charWidth=100 im=im.resize((charWidth, charWidth // 2)) target_width, target_height=im.size data=numpy.array(im)[:target_height, :target_width] f=open(outputFile, 'w',encoding='utf-8') for row in data: for pixel in row: if pixel > 127: f.write('1') else: f.write(' ') f.write('\n') f.close()
執行這個函數不會有數據返回,用下一個 go.py 文件導入調用才行。
控制輸出
調用上個函數 image2txt,圖片轉換為編碼。
def getTxt(imagePath, txtPath): img_count=1 while img_count <=len(os.listdir(imagePath)): imageFile=imagePath + str(img_count) + '.png' txtFile=txtPath + str(img_count) + '.txt' image2txt.image2txt(imageFile, txtFile) print('MJ舞蹈加載中: ' + str(img_count) + '%') img_count +=1
通過 os.system('cls') 控制屏幕的及時清除,以便及時顯示下一幀圖片的編碼。
def play(txtPath): txt_count=1 while txt_count <=len(os.listdir(txtPath)): os.system('type ' + txtPath + str(txt_count) + '.txt') txt_count +=1 os.system('cls')
給出編碼文件路徑和圖片路徑,執行函數。
txt_dir_path=r'D:\MJ\mjtxt' + '\\' img_dir_path=r'D:\MJ\mjimages' + '\\' getTxt(img_dir_path, txt_dir_path) play(txt_dir_path)
收集完視頻圖片后在 cmd 控制臺執行 go.py 文件,編碼出現后點擊視頻播放就能達到剛才視頻中的效果了。
你們可以用自己的視頻去做,視頻背景固定的話效果更好。
寫在最后
方法教給大家了,視頻素材可以優化,大家可以自己收集好的視頻素材,發到朋友圈,讓代碼騷動起來!
說之前網頁大家都知道,那么網頁到底是什么?誰知道?
網頁是構成網站的基本元素,是承載各種網站應用的平臺。通俗地說,您的網站就是由網頁組成的,如果您只有域名和虛擬主機而沒有制作任何網頁的話,您的客戶仍舊無法訪問您的網站。
網頁是一個包含HTML標簽的純文本文件,它可以存放在世界某個角落的某一臺計算機中,是萬維網中的一“頁”,是超文本標記語言格式(標準通用標記語言的一個應用,文件擴展名為.html或.htm)。網頁通常用圖像檔來提供圖畫。網頁要通過網頁瀏覽器來閱讀。
知道404是什么意思嗎?
網頁又分為兩種:
靜態頁
靜態網頁,其內容是預先確定的,并存儲在Web服務器或者本地計算機/服務器之上。
特點:
動態頁
動態網頁,是取決于由用戶提供的參數,并根據存儲在數據庫中的網站上的數據中創建的頁面。
通俗地講,靜態頁是照片,每個人看都是一樣的,而動態頁則是鏡子,不同的人(不同的參數)看都不相同。
萬維網聯盟創建于1994年,是Web技術領域最具權威和影響力的國際中立性技術標準機構。到目前為止,W3C已發布了200多項影響深遠的Web技術標準及實施指南,如廣為業界采用的超文本標記語言(標準通用標記語言下的一個應用)、可擴展標記語言(標準通用標記語言下的一個子集)以及幫助殘障人士有效獲得Web內容的信息無障礙指南(WCAG)等,有效促進了Web技術的互相兼容,對互聯網技術的發展和應用起到了基礎性和根本性的支撐作用。
W3C為解決 Web 應用中不同平臺、技術和開發者帶來的不兼容問題,保障 Web 信息的順利和完整流通,萬維網聯盟制定了一系列標準并督促 Web 應用開發者和內容提供者遵循這些標準。標準的內容包括使用語言的規范,開發中使用的導則和解釋引擎的行為等等。
W3C也制定了包括XML和CSS等的眾多影響深遠的標準規范。 但是,W3C 制定的 web 標準似乎并非強制而只是推薦標準。因此部分網站仍然不能完全實現這些標準。特別是使用早期所見即所得網頁編輯軟件設計的網頁往往會包含大量非標準代碼。
W3C 致力于對web 進行標準化
W3C 創建并維護了 WWW 標準
W3C 標準被稱為 W3C 推薦標準(W3C Recommendations)W3C 最重要的工作是發展 web 規范,也就是描述 web 通信協議(比如 HTML 和 XML)和其他構建模塊的“推薦標準”。
那么前端是什么?
前端即網站前臺部分,運行在PC端,移動端等瀏覽器上展現給用戶瀏覽的網頁。隨著互聯網技術的發展,HTML5,CSS3,前端框架的應用,跨平臺響應式網頁設計能夠適應各種屏幕分辨率,完美的動效設計,給用戶帶來極高的用戶體驗。
上圖是寫網頁的編程語言中的三個。
那么前端工程師所需要的技術有哪些?都是什么?
HTML、CSS、JavaScript
這三個是前端開發中最基本也是最必須的三個技能。前端的開發中,在頁面的布局時, HTML將元素進行定義,CSS對展示的元素進行定位,再通過JavaScript實現相應的效果和交互。雖然表面看起來很簡單,但這里面需要掌握的東西絕對不會少。在進行開發前,需要對這些概念弄清楚、弄明白,這樣在開發的過程中才會得心應手。
HTML
指的是超文本標記語言 (Hyper Text Markup Language),這個也是我們網頁最常用普通的語言了,經歷了多個版本的發展,已經發展到5.0版了,得力于W3C建立的標準和規范,已普遍升級到了XHTML,XHTML 指可擴展超文本標簽語言(EXtensible HyperText Markup Language), XHTML 于2000年的1月26日成為 W3C 標準,是更嚴格更純凈的 HTML 代碼,XHTML 的目標是取代 HTML。XHTML 與 HTML 4.01 幾乎是相同的,XHTML 是作為一種 XML 應用被重新定義的 HTML,是一個 W3C 標準。W3C 將 XHTML 定義為最新的HTML版本。所有新的瀏覽器都支持 XHTML。
CSS
級聯樣式表(Cascading Style Sheet)簡稱“CSS”,通常又稱為“風格樣式表(Style Sheet)”,它是用來進行網頁風格設計的。比如,如果想讓鏈接字未點擊時是藍色的,當鼠標移上去后字變成紅色的且有下劃線,這就是一種風格。通過設立樣式表,可以統一地控制HTML中各標志的顯示屬性。級聯樣式表可以使人更能有效地控制網頁外觀。使用級聯樣式表,可以擴充精確指定網頁元素位置,外觀以及創建特殊效果的能力。
Javascript
是一種由Netscape的LiveScript發展而來的原型化繼承的面向對象的動態類型的區分大小寫的客戶端腳本語言,主要目的是為了解決服務器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當時服務端需要對數據進行驗證,由于網絡速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。于是Netscape的瀏覽器Navigator加入了Javascript,提供了數據驗證的基本功能。
漂亮嗎?
如果說HTML是一個框架,CSS就是給這個框架添加裝飾品,JS就是在CSS上添加更炫酷的樣式。比如:一只鳥小的時候沒有羽毛,就相當于網頁只有HTML;而有了羽毛之后,就相當于添加了CSS;完全成長后羽毛非常漂亮,還能飛翔,就相當于添加了JS。(如上圖,就可以看作HTML+CSS+JS網頁的觀賞度)
你用過幾個?
前端開發很快就能出效果,讓人很有成就感,因為有技術做出來的頁面是非常炫酷的,如果你可以,那么你就可以在女生面前打開一個炫酷的網頁說,這是我做出來的。你可以想想那是什么感覺。
imicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
近期,騰訊聯合上海交通大學開源了一個可控視頻生成框架:MimicMotion,類似阿里的全民舞王,只需要上傳一張照片,然后再上傳一段人物的舞蹈或者動作視頻,就可以生成以照片中人物為原型的動作或者舞蹈視頻了。
MimicMotion 可以根據我們上傳的視頻生成任意長度的高質量視頻。通過漸進式潛融合策略,不管多長的視頻都可以使用固定的資源進行生成,理論上多長的視頻生成都只是時間問題,不會爆顯存了。
并且通過置信度感知姿態引導「這是指在生成視頻的過程中,系統會考慮它對于每個動作的確定程度。如果系統對某個動作非常確定,它就會更自信地生成這個動作;如果不太確定,它可能會更謹慎一些。」,讓生成的視頻更加流暢,過渡更加平滑。
而且基于姿態置信度的區域損失放大顯著緩解了圖像的失真情況,更好的保證了視頻生成的質量。
這個對顯卡要求較高,N卡,顯存16G起可玩,請先確認自己的顯卡是否能運行再下載!
MimicMotion簡介
MimicMotion 是由騰訊公司推出的一款人工智能人像動態視頻生成框架。該框架利用先進的技術,能夠根據用戶提供的單個參考圖像和一系列要模仿的姿勢,生成高質量、姿勢引導的人類動作視頻。MimicMotion 的核心在于其置信度感知的姿態引導技術,確保視頻幀的高質量和時間上的平滑過渡。
MimicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
MimicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
MimicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
項目地址:https://tencent.github.io/MimicMotion/
一鍵整合包下載:https://deepface.cc/thread-281-1-1.html
功能特色
MimicMotion 的功能特色包括:
生成案例
MimicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
MimicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
MimicMotion - 一張圖片實現視頻跳舞,騰訊開源照片跳舞模型
使用教程
1.下載解壓一鍵包,雙擊一鍵啟動,等待自動進入WebUI界面
2、上傳一張 參考圖片 和 參考視頻
“
這里還需要提一下,如果視頻中的人物是全身的話,上傳照片中的人物也盡量用全身照,要不然出來的效果可能沒那么好。
如果視頻中的人物是半身的,那也可以上傳半身的照片。
半身照,人物臉部的細節比較到位,人物的臉部就不太容易崩壞,人物一致性保持的還是相當不錯的。
”
3、高級設置參數可以默認,也可以調節幀率、分辨率等參數,最后點生成即可。
注:目前整個項目生成速度較慢,尤其是參數越高,速度越慢,請根據自己的顯卡設置參數。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。