Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
上一節(jié),這節(jié)我們講解網(wǎng)頁(yè)材料在SuperMemo中的處理方法,首先回顧下我們之前流程步驟:
如上圖示,在之前的學(xué)習(xí)中,我們有了解到,可以使用Obsidian進(jìn)行知識(shí)點(diǎn)鏈接,在Obsidian中創(chuàng)建新節(jié)點(diǎn),關(guān)聯(lián)已存在節(jié)點(diǎn)的形式,來(lái)獲取及擴(kuò)充我們的學(xué)習(xí)材料范圍.本文正是對(duì)此部分內(nèi)容,對(duì)前文進(jìn)行了工程實(shí)踐探討. 如果你還不太清楚相關(guān)的概念或流程,你可以先參考我之前的原文大體了解,前文鏈接如下:
我們主要的學(xué)習(xí)材料常見(jiàn)為PDF/視頻/筆記/網(wǎng)頁(yè)等四種. 對(duì)于PDF/視頻/筆記類的材料一般比較好處理,獲取到資源后直接把對(duì)應(yīng)的路徑信息整理好,放置入SM學(xué)習(xí)軟件即可(操作見(jiàn)上文).但對(duì)于網(wǎng)頁(yè)類的信息處理則比較麻煩,因此本文也把主要的目標(biāo)放置在介紹網(wǎng)頁(yè)類材料的處理操作.
在正常的學(xué)習(xí)過(guò)程中,網(wǎng)頁(yè)類型的信息比較豐富,常見(jiàn)來(lái)源如RSS訂閱 / 公眾號(hào)訂閱 / 知乎關(guān)注/ 引擎工具搜索 / 網(wǎng)址收藏夾等.所有的這些信息都是通過(guò)網(wǎng)址鏈接的形式呈現(xiàn)的.這些網(wǎng)址如果按文件夾結(jié)構(gòu)批量放置于收藏夾來(lái)操作會(huì)比較麻煩,因?yàn)橥ㄟ^(guò)文件夾方式管理會(huì)遇到怎么命名文件夾的糾結(jié),也會(huì)遇到網(wǎng)址信息過(guò)多后,內(nèi)容各種冗余等常見(jiàn)的問(wèn)題.
這里我先放置一張最終的效果圖:(此方案流程及意義: 通過(guò)這種方法,我們可以指定關(guān)鍵字檢索來(lái)批量處理網(wǎng)頁(yè)材料,對(duì)要添加至學(xué)習(xí)的網(wǎng)頁(yè)則在左下角保存記錄,最終生成的文件可以直接拷貝內(nèi)容或者改后綴為網(wǎng)頁(yè)直接用SuperMemo軟件來(lái)處理,大大的提高了網(wǎng)頁(yè)材料處理的效率.)
在本文中,我們通過(guò)批量對(duì)網(wǎng)址鏈接進(jìn)行處理,創(chuàng)建了一個(gè)交互網(wǎng)頁(yè),通過(guò)交互式展現(xiàn),實(shí)現(xiàn)快速檢索 / 分類 / 整理多個(gè)網(wǎng)址.其中具體使用到了streamlit / pyecharts 的 python組件,通過(guò)streamlit編寫交互式腳本,pyechars進(jìn)行詞云圖展示,whoosh進(jìn)行全文檢索.我這里放置了對(duì)應(yīng)的官網(wǎng)鏈接.
步驟一: 獲取多個(gè)網(wǎng)址鏈接,這里通過(guò)Edge演示,使用了Copy All URLs插件,具體安裝使用如圖:
使用插件來(lái)獲取多個(gè)網(wǎng)址
步驟二: 拷貝獲取到的鏈接信息到腳本文件,并通過(guò)命令行運(yùn)行腳本streamlit run Gist2.py,程序會(huì)自動(dòng)打開(kāi)一個(gè)網(wǎng)頁(yè).即上面的效果圖網(wǎng)頁(yè).
先放置獲取到的多個(gè)網(wǎng)址腳本運(yùn)行后鏈接自動(dòng)打開(kāi)按關(guān)鍵字搜索使用即可
可以在右上角設(shè)置中,設(shè)置寬屏及實(shí)時(shí)運(yùn)行模式.
設(shè)置項(xiàng)配置寬屏及實(shí)時(shí)模式
步驟三: 直接放置代碼了,按需安裝對(duì)應(yīng)的Python包,放置多網(wǎng)址鏈接,命令行直接運(yùn)行腳本即可.
最新的Gist腳本可通過(guò)GitHub訪問(wèn): https://gist.github.com/ef56f43040244978fd2714608dc3d115
#!/usr/bin/env python# -*- coding: utf-8 -*-# 批量網(wǎng)頁(yè)分析處理# 作者:一只小胖子# 版本:V0.1# 知乎:https://www.zhihu.com/people/lxf-8868# 使用:# 1.Copy All URLs 插件獲取多個(gè)網(wǎng)頁(yè)地址# 2.命令行執(zhí)行streamlit run Gist2.pyurl_texts = """ 提示: 在這里放置多個(gè)網(wǎng)址信息"""# ===== 一.使用pyecharts生成詞云圖 =====# 參考:朱衛(wèi)軍# 鏈接:https://zhuanlan.zhihu.com/p/113312256# https://blog.csdn.net/zx1245773445/article/details/98043120import jiebafrom collections import Counterimport pyecharts.options as optsfrom pyecharts.charts import WordCloud# # 讀取內(nèi)容來(lái)源,返回文本數(shù)組# def get_text(goods, evaluation):# if evaluation == '好評(píng)':# evaluation = 1# else:# evaluation = 0# path = 'excel/comments.csv'# with open(path, encoding='utf-8') as f:# data = pd.read_csv(f)# # 商品種類# types = data['類型'].unique()# # 獲取文本# # text = data[(data['類型']==goods)&(data['標(biāo)簽']==evaluation)]['內(nèi)容'].values.tolist()# text = data['內(nèi)容'].values.tolist()# text = str(text)[1:-1] # 去符號(hào) []# print(types)# return text### stext = get_text('1', '好評(píng)')# print(stext)## 結(jié)巴分詞字典加載 對(duì)文本內(nèi)容進(jìn)行jieba分詞 https://zhuanlan.zhihu.com/p/41032295def split_word(text): word_list = list(jieba.cut(text)) print(len(word_list)) # 去掉一些無(wú)意義的詞和符號(hào),我這里自己整理了停用詞庫(kù) with open('停用詞庫(kù).txt') as f: meaningless_word = f.read().splitlines() # print(meaningless_word) result = [] # 篩選詞語(yǔ) for i in word_list: if i not in meaningless_word: result.append(i.replace(' ', '')) return result# collections 的使用 https://zhuanlan.zhihu.com/p/108713135# 統(tǒng)計(jì)詞頻def word_counter(words): # 詞頻統(tǒng)計(jì),使用Count計(jì)數(shù)方法 words_counter = Counter(words) # 將Counter類型轉(zhuǎn)換為列表 words_list = words_counter.most_common(2000) return words_list# 制作詞云圖def word_cloud(data): ( WordCloud().add( series_name="熱點(diǎn)分析", # 添加數(shù)據(jù) data_pair=data, # 字間隙rue word_gap=5, # 調(diào)整字大小范圍 word_size_range=[15, 80], shape="cursive", # 選擇背景圖,也可以不加該參數(shù),使用默認(rèn)背景 # mask_image='購(gòu)物車.jpg') ).set_global_opts( # title_opts=opts.TitleOpts( # title="熱點(diǎn)分析", title_textstyle_opts=opts.TextStyleOpts(font_size=12) # ), tooltip_opts=opts.TooltipOpts(is_show=True), ).render("basic.html") # 輸出為html格式 )# [測(cè)試Demo]:# stext = ''' '書(shū)籍1做父母一定要有劉墉這樣的心態(tài),不斷地學(xué)習(xí),不斷地進(jìn)步,不斷地給自己補(bǔ)充新鮮血液,讓自己保持.',# '書(shū)籍1作者真有英國(guó)人嚴(yán)謹(jǐn)?shù)娘L(fēng)格,提出觀點(diǎn)、進(jìn)行論述論證,盡管本人對(duì)物理學(xué)了解不深,但是仍然能感受到.書(shū)籍', '1作者長(zhǎng)篇大論借用詳細(xì)報(bào)告數(shù)據(jù)處理工作和計(jì)算結(jié)果支持其新觀點(diǎn)。為什么荷蘭曾經(jīng)縣有歐洲最高的生產(chǎn).. 1',# '書(shū)籍1作者在戰(zhàn)幾時(shí)之前用了“擁抱"令人叫絕.日本如果沒(méi)有戰(zhàn)敗,就有會(huì)有美軍的占領(lǐng),沒(méi)胡官僚主義的延.書(shū)籍1作者在少年時(shí)即喜閱讀,能看出他精讀了無(wú)數(shù)經(jīng)典,因而他有一個(gè)龐大的內(nèi)心世界。他的作品最難能可貴..',# '書(shū)籍1作者有一種專業(yè)的謹(jǐn)慎,若能有幸學(xué)習(xí)原版也許會(huì)更好,簡(jiǎn)體版的書(shū)中的印刷錯(cuò)誤比較多,影響學(xué)者理解.',# '書(shū)籍1作者用詩(shī)一樣的語(yǔ)言把如水般清澈透明的思想娓娓道來(lái),像一個(gè)經(jīng)驗(yàn)豐富的智慧老人為我們解開(kāi)一個(gè)又一.書(shū)籍1作者提出了一種工作和生活的方式,作為咨詢界的元老,不僅能提出理念,而且能夠身體力行地實(shí)踐,并.'# sword = split_word(stext)# print(sword)# word_stat = word_counter(sword)# print(word_stat)# word_cloud(word_stat)# show_WordCounter()# ===== 二.使用Whoosh進(jìn)行全文檢索 =====# 參考:酷python# 鏈接:https://zhuanlan.zhihu.com/p/172348363# https://www.cnblogs.com/mydriverc/articles/4136754.htmlimport os, errnofrom whoosh.qparser import QueryParser, MultifieldParser# from whoosh.fields import TEXT, SchemaClassfrom whoosh.query import compound, Term, Queryfrom whoosh.index import create_infrom whoosh.index import open_dirfrom whoosh.fields import *from jieba.analyse import ChineseAnalyzerimport htmlimport reimport jsonimport streamlit as st# 而對(duì)于Python 3.X(X >= 2)版本,os.makedirs 函數(shù)還有第三個(gè)參數(shù) exist_ok,該參數(shù)為真時(shí)執(zhí)行mkdir -p,# 但如果給出了mode參數(shù),目標(biāo)目錄已經(jīng)存在并且與即將創(chuàng)建的目錄權(quán)限不一致時(shí),會(huì)拋出OSError異常def mkdir_p(path): try: os.makedirs(path) except OSError as exc: # Python >2.5 (except OSError, exc: for Python <2.5) if exc.errno == errno.EEXIST and os.path.isdir(path): pass else: raise# 存儲(chǔ)schema信息至indexdir目錄index_dir = 'es/index_dir_1/'if not os.path.exists(index_dir): mkdir_p(index_dir)# 就如同定義一張mysql里的表,你需要指出需要存儲(chǔ)哪些字段,以及這些字段的類型class ArticleSchema(SchemaClass): title = TEXT(stored=True, analyzer=ChineseAnalyzer()) content = TEXT(stored=True, analyzer=ChineseAnalyzer()) author = TEXT(stored=False, analyzer=ChineseAnalyzer())# create_in會(huì)創(chuàng)建一個(gè)名為index_dir的文件夾,添加文檔時(shí),一定要根據(jù)你所定義的索引模式進(jìn)行添加,# 這樣就創(chuàng)建好了索引,添加文檔的過(guò)程,就如同向mysql的表里寫入數(shù)據(jù)。schema = ArticleSchema()ix = create_in(index_dir, schema, indexname='article_index')if not ix: ix = open_dir(index_dir, indexname='article_index')# 處理文檔writer = ix.writer()s_url_arr = url_texts.split("<br/>")print("url待處理項(xiàng): {}".format(len(s_url_arr)))for i in range(len(s_url_arr)): # 網(wǎng)頁(yè)格式 # reg_arr = re.findall("">(\w.*)</a><br/>", s_url_arr[i]) if str(s_url_arr[i]).__contains__("href"): reg_href = re.findall('href="(.*)"', s_url_arr[i])[0] reg_text = re.findall(">(.*)<", s_url_arr[i])[0] # 其它格式 # if reg_href or reg_text: # print(reg_href, html.unescape(reg_text)) # 更新也會(huì)添加重復(fù)內(nèi)容! # writer.update_document(title= reg_href, author="admin") # , content=html.unescape(reg_text)) # add_document # 添加內(nèi)容 reg_title = html.unescape(reg_text) # .encode('unicode-escape') writer.add_document(title=reg_href, author="admin", content=reg_title) # add_document # print(json.dumps(json_str, sort_keys=True, indent=4, separators=(',', ': '),ensure_ascii=False))# 刪除文檔# Because "path" is marked as unique,calling update_document with path = u"/a" will# delete any existing document where the path field contains /a writer.delete_by_term("author", "admin")writer.commit()# 設(shè)置iframe長(zhǎng)寬高r_width = 1200r_height = 400r_scrolling = True# 展示詞云圖def show_WordCounter(): st_file_arr = [] st_file_lines = open("./basic.html").readlines() for st_file_str in st_file_lines: st_file_arr.append(st_file_str.strip("")) st_file_arr_str = " ".join(st_file_arr) # 顯示云圖 st.components.v1.html(st_file_arr_str, width=r_width, height=r_height, scrolling=r_scrolling)# 文本輸入及展示search_key = "簡(jiǎn)書(shū)"search_key = st.text_input('[1].請(qǐng)輸入查詢關(guān)鍵詞:', search_key)# st.write('你輸入的關(guān)鍵詞為:', search_key)# st.text('輸入關(guān)鍵詞為:' + search_key)if not ix: ix = open_dir(index_dir, indexname='article_index')title_lists = []content_list = []href_title_dict = {}with ix.searcher() as searcher: # author_query = [Term('author', 'admin'), Term('author', 'admin')] # content_query = [Term('content', 'python'), Term('content', 'jupyter')] # query = compound.Or([compound.Or(author_query), compound.Or(content_query)]) # content_query = [Term("content", "playwright"), Term("content", "jupyter")] # query = compound.Or(content_query) # 多條件查詢 # query = QueryParser("content", ix.schema).parse("簡(jiǎn)書(shū)") # query = MultifieldParser(["content"], ix.schema).parse("知乎") # default_set() # query = _NullQuery() # 搜索所有內(nèi)容 results = searcher.documents() # print(results) content_all = [] for data in results: content_all.append(data["content"]) sword = split_word("".join(content_all)) print(sword) word_stat = word_counter(sword) print(word_stat) # 生成詞云圖 word_cloud(word_stat) # 展示詞云圖 show_WordCounter() if not search_key: st.error("請(qǐng)輸入查詢條件!") else: # 按關(guān)鍵詞查詢 query = MultifieldParser(["content"], ix.schema).parse(search_key) print("查詢條件:", query) results = searcher.search(query) # print(results[0].fields()) print(query, '一共發(fā)現(xiàn)%d份文檔。' % len(results)) # 高亮效果 # if len(results) > 0: # data = results[0] # text = data.highlights("content","title") # print(text) for data in results: # json_text = json.dumps(data.fields()["title"], ensure_ascii=False) # print(data.fields()["title"]) reg_href = data.fields()["title"] reg_title = data.fields()["content"] # 網(wǎng)頁(yè)高亮展示 # reg_title = data.highlights("content") if reg_href not in title_lists and reg_title not in content_list: title_lists.append(reg_href) content_list.append(reg_title) href_title_dict[reg_title] = reg_href # print(data.fields())ix.close()st.text("總共查詢到 {} 項(xiàng)".format(len(href_title_dict)))# 寫入內(nèi)容reg_href_s = "" # 選擇的URL記錄save_file_path = "備注數(shù)據(jù).txt"# 下拉框展示select_box_list = list(href_title_dict.keys())if len(select_box_list) > 0: reg_title = st.selectbox('[2].選擇要打開(kāi)的網(wǎng)址:', select_box_list) reg_href = href_title_dict[reg_title] reg_href_s = "{} : {} {}".format(search_key, reg_title, reg_href) st.text('當(dāng)前選擇: {}'.format(reg_href)) # 可通過(guò)以下兩種方式加載 # url_display = f'<embed type="text/html" src="' + reg_href + '" width="1200" height="600">' # iframe # st.markdown(url_display, unsafe_allow_html=True) st.components.v1.iframe(reg_href, width=r_width, height=r_height, scrolling=r_scrolling) # 按鈕 if st.button('保存此條記錄'): if not os.path.exists(save_file_path): with open(save_file_path, 'w') as file_: file_.writelines("搜索項(xiàng) ----- 標(biāo)題 ------ 鏈接 -----") pass reg_href_s2_arr = [] # 要寫入的內(nèi)容 with open(save_file_path, 'r') as file_: # 不添加重復(fù)內(nèi)容 search_arr = re.findall(re.escape(reg_href_s), "".join(file_.readlines()), re.I | re.M) print(search_arr) if len(search_arr) == 0: reg_href_s2_arr.append(" " + reg_href_s + "<p>") st.write("寫入成功!") elif len(search_arr) == 1 and str(search_arr[0]).strip(" ") == "": st.write("無(wú)查詢值!") else: st.write("已經(jīng)存在!") with open(save_file_path, 'a') as file_: if len(reg_href_s2_arr) > 0: file_.writelines("".join(reg_href_s2_arr)) with open(save_file_path, "r") as file_: st_content = (" ".join(file_.readlines())) # <br> # st.components.v1.html(st_content) # 網(wǎng)頁(yè)高亮展示 st.write(st_content)# 默認(rèn)展示內(nèi)容if st.button('加載默認(rèn)文件'): if os.path.exists(save_file_path): with open(save_file_path, "r") as file_: st.write(" ".join(file_.readlines())) else: st.write("還未保存記錄,請(qǐng)先保存!")if st.button('清空文件內(nèi)容'): # https://blog.csdn.net/weixin_36118143/article/details/111988403 if os.path.exists(save_file_path): os.remove(save_file_path) else: # os.mknod(save_file_path) pass
步驟四: 交互式方案 ipywidgets/ Streamlit/ Plotly Dash , 其它有價(jià)值的參考鏈接.
我是一只熱愛(ài)學(xué)習(xí)的小胖子,如果你也熱愛(ài)學(xué)習(xí),并且對(duì)SuperMemo感興趣,歡迎轉(zhuǎn)發(fā)和評(píng)論!
標(biāo)題 | 10 Free tools to get started with Data Visualisation-Easily & Instantly.
作者 | Parul Pandey
譯者 | 汪鵬(重慶郵電大學(xué))、alexchung(福州大學(xué))
圖片來(lái)源于rawpixel.com
不要簡(jiǎn)單地展示數(shù)據(jù),用它講個(gè)故事!
是的,我們有數(shù)據(jù),并有了數(shù)據(jù)的洞察,然后呢?顯然,下一步將是與人們交流這些發(fā)現(xiàn),以便他們采取必要的行動(dòng)。最有效的數(shù)據(jù)交流方式之一就是講故事。但是要成為有效的講述者,我們需要簡(jiǎn)化事情,而不是使事情復(fù)雜化,這樣使得分析的真正本質(zhì)不會(huì)丟失。
在講故事和可視化方面,有許多工具可供選擇。有些是免費(fèi)的,有些是付費(fèi)訂閱的。有些簡(jiǎn)單直觀,但缺乏互動(dòng)性,而有些復(fù)雜,需要一些努力才能開(kāi)始。
如果你剛剛開(kāi)始使用數(shù)據(jù)可視化,沒(méi)有藝術(shù)或圖形設(shè)計(jì)經(jīng)驗(yàn),或者不想編碼,而想立即開(kāi)始制作圖形或地圖,那么本文就是為你準(zhǔn)備。本文還嘗試使用除流行工具(如Tableau Public、Powerbi和Google Charts)之外的其他工具,這些工具其實(shí)在數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)中很常用。
所以,這里有十個(gè)免費(fèi)提供的工具,讓初學(xué)者可以立即開(kāi)始構(gòu)建漂亮的視覺(jué)效果。
這些數(shù)據(jù)可視化工具都是免費(fèi)提供的,但是如果你想升級(jí)和訪問(wèn)更多選項(xiàng),尤其是云服務(wù),就需要用到一個(gè)高級(jí)版本。
Datawrapper可以輕松創(chuàng)建圖表和圖。只需單擊鼠標(biāo),即可輕松創(chuàng)建等值線,符號(hào)或定位圖。同樣,您也可以根據(jù)數(shù)據(jù)創(chuàng)建自己選擇的圖表。這些圖表是互動(dòng)的,響應(yīng)性的,可嵌入您的網(wǎng)站。該工具的免費(fèi)版本適用于單個(gè)用戶,支持10,000個(gè)月圖表視圖。
Datawrapper主要面向記者。世界各地的新聞?dòng)浾叨际褂肈atawrapper來(lái)構(gòu)建他們的圖表和地圖。然而,對(duì)于任何想要可視化來(lái)伴隨他們的文章的人來(lái)說(shuō),它都非常有用。該網(wǎng)站還辦了名為CHARTABLE的博客,他們定期撰寫有關(guān)數(shù)據(jù)可視化的最佳實(shí)踐。
處理
只需從Excel或Google表格中復(fù)制您的數(shù)據(jù)即可。您還可以上傳CSV文件或鏈接到URL以獲取實(shí)時(shí)更新圖表。只需單擊一下,即可從多種圖表和地圖類型中進(jìn)自定義和注釋圖表以使其更有效。將即用型嵌入代碼復(fù)制到CMS或網(wǎng)站中,或?qū)D表導(dǎo)出為圖像或PDF以進(jìn)行打印。
演示
RAWGraphs是一個(gè)開(kāi)放的Web工具,可以在令人驚嘆的d3.js庫(kù)之上創(chuàng)建基于矢量的自定義可視化庫(kù)。
RAWGraphs主要被設(shè)想為設(shè)計(jì)師和極客的工具,旨在提供電子表格應(yīng)用程序(例如Microsoft Excel,Apple Numbers,Google Docs)和矢量圖形編輯器(例如Adobe Illustrator,Inkscape等)之間的缺失鏈接。
RAWGraphs具有高度可定制性和可擴(kuò)展性,可接受用戶定義的新自定義布局。有關(guān)如何添加或編輯布局的詳細(xì)信息,請(qǐng)?jiān)L問(wèn)其網(wǎng)站。
處理
RAWGraphs使用表格數(shù)據(jù)(例如電子表格和逗號(hào)分隔值)以及來(lái)自其他應(yīng)用程序的復(fù)制粘貼文本(例如Microsoft Excel,TextWrangler,TextEdit等)。基于SVG格式,可以使用矢量圖形應(yīng)用程序輕松編輯可視化以進(jìn)行進(jìn)一步細(xì)化,或直接嵌入到網(wǎng)頁(yè)中。
只需在RawGraphs中插入原始數(shù)據(jù),在各種可視模型中進(jìn)行選擇,然后調(diào)整創(chuàng)建的圖表并瀏覽數(shù)據(jù)。
使用RAWGraphs的最簡(jiǎn)單方法是訪問(wèn)官方應(yīng)用頁(yè)面上的最新版本。但是,RAWGraphs也可以在您的計(jì)算機(jī)上本地運(yùn)行。安裝時(shí)請(qǐng)遵循Github倉(cāng)庫(kù)的說(shuō)明。
演示
Charted可讓您可視化數(shù)據(jù)并自動(dòng)創(chuàng)建漂亮的圖表。它由Medium的產(chǎn)品科學(xué)團(tuán)隊(duì)開(kāi)發(fā)。Charted故意保持簡(jiǎn)單易用。它不存儲(chǔ),操作或轉(zhuǎn)換數(shù)據(jù),因此它不是格式化工具。但是,它有一些強(qiáng)大的核心功能:
適用于所有屏幕尺寸,包括顯示器
每30分鐘重新獲取數(shù)據(jù)并更新圖表
將數(shù)據(jù)系列移動(dòng)到單獨(dú)的圖表中
調(diào)整圖表類型,標(biāo)簽/標(biāo)題和背景
處理
提供數(shù)據(jù)文件的鏈接,Charted返回一個(gè)漂亮,交互,可共享的數(shù)據(jù)圖表。目前圖表支持.csv,.tsv。谷歌電子表格和保管箱共享鏈接。還可以生成HTML代碼,然后可以將其嵌入到網(wǎng)站中。
演示
下載repo并運(yùn)行npm install以安裝依賴項(xiàng)。之后,您將能夠runnpm start。這將在localhost:3000啟動(dòng)服務(wù)器。或者,它也可以在charted.co上試用。
Chart Studio是Plotly強(qiáng)大的,基于網(wǎng)絡(luò)的在線圖表創(chuàng)建者。它是用于創(chuàng)建D3.js和WebGL圖表的最復(fù)雜的編輯器之一。它作為基本版本提供,可免費(fèi)使用。此外,還有付費(fèi)的企業(yè)版和云版。任何人都可以使用源代碼集成到他們的應(yīng)用程序中。
處理
拖放數(shù)據(jù)文件或通過(guò)Falcon SQL客戶端連接到SQL。然后只需使用提供的選項(xiàng)即可立即獲取交互式圖表。
演示
FastCharts是Financial Times DataViz團(tuán)隊(duì)的產(chǎn)品。他們最近推出了一個(gè)公共版本的內(nèi)部瀏覽器圖表工具,供人們工作和提供反饋。
該工具可用于:
只需將數(shù)據(jù)直接粘貼到瀏覽器中即可制作直線圖,條形圖和面積圖
向繪圖的點(diǎn)和/或區(qū)域添加注釋
下載PNG和可編輯的SVG
雖然這個(gè)工具是為內(nèi)部使用而制作的,但FastCharts在創(chuàng)建演示圖表時(shí)也在業(yè)務(wù)的其他部分贏得了聲譽(yù) - 這是一個(gè)比Excel或Google表格更簡(jiǎn)單的工具,并為用戶提供更專業(yè)的圖表FT品牌推廣。
處理
可以使用CSV或TSV格式的任何數(shù)據(jù)創(chuàng)建圖表,然后可以根據(jù)用戶的偏好進(jìn)一步自定義。
演示
這有一個(gè)演示GIF,展示如何在一分鐘內(nèi)制作圖表。
https://fastcharts.io/
Palladio是一款免費(fèi)的數(shù)據(jù)驅(qū)動(dòng)工具,旨在輕松可視化復(fù)雜的歷史數(shù)據(jù)。該項(xiàng)目旨在了解如何基于人文查詢?cè)O(shè)計(jì)圖形界面。Palladio 位于歷史與設(shè)計(jì)的交匯處。
可以使用Palladio創(chuàng)建四種類型的可視化:
地圖視圖:將坐標(biāo)數(shù)據(jù)轉(zhuǎn)換為地圖上的點(diǎn)
圖表視圖:允許您可視化數(shù)據(jù)的任何兩個(gè)維度之間的關(guān)系
列表視圖:可以安排數(shù)據(jù)的維度以制作自定義列表
圖庫(kù)視圖:數(shù)據(jù)可以在網(wǎng)格設(shè)置中顯示,以便快速參考
處理
任何可以表格/電子表格格式表示的信息集合都可以與Palladio一起使用,唯一要求所有數(shù)據(jù)都由分隔符號(hào)值(包括逗號(hào),分號(hào)和制表符)表示。
我們可以粘貼,上傳或提供數(shù)據(jù)鏈接,以便創(chuàng)建新的Palladio項(xiàng)目。
演示
Opeheatmap是一個(gè)非常簡(jiǎn)單的工具,可以立即將電子表格轉(zhuǎn)換為地圖。從將鄰居的房?jī)r(jià)映射到Twitter,openheatmap可以將所有這些轉(zhuǎn)化為交互式可視化,而不涉及任何復(fù)雜性。
處理
只需上傳電子表格或提供指向Google云端硬盤的鏈接即可。如果數(shù)據(jù)沒(méi)有問(wèn)題,您將能夠查看下一個(gè)地圖。您的電子表格應(yīng)包含要映射的位置的列,一個(gè)用于值,另外一個(gè)用于每行的時(shí)間(如果需要?jiǎng)赢嫷貓D)。例如:
演示
讓我們使用openheatmap展示一下“倫敦地鐵站”。
MyHeatMap是另一種可以交互式查看地理數(shù)據(jù)的工具。 但是,免費(fèi)版本只允許用戶創(chuàng)建最多只有20個(gè)數(shù)據(jù)點(diǎn)的公共地圖,實(shí)際上這個(gè)數(shù)據(jù)點(diǎn)非常少。Myheatmap輸出顏色編碼的熱圖,這些熱圖非常容易讓目標(biāo)受眾理解。 地圖不會(huì)被標(biāo)記,旗幟,等高線或不斷增長(zhǎng)的斑點(diǎn)混亂。 此外,使用myheatmap創(chuàng)建的熱圖是完全交互式的,具有平移和縮放功能。
處理
用戶只需要以CSV格式上傳地理數(shù)據(jù)。 該文件應(yīng)包含至少包含三個(gè)字段的標(biāo)題行。 其中兩個(gè)字段必須命名為“緯度”和“經(jīng)度”,其相應(yīng)的列必須包含緯度和度經(jīng)度的地理坐標(biāo)。
演示
Chartbuilder是一個(gè)前端圖表應(yīng)用程序,可以輕松創(chuàng)建簡(jiǎn)單漂亮的圖表。Chartbuilder是用戶和導(dǎo)出界面。Chartbuilder支持Atlas開(kāi)發(fā)的所有圖表,這是Quartz開(kāi)發(fā)的圖表平臺(tái)。Chartbuilder不是數(shù)據(jù)分析或數(shù)據(jù)轉(zhuǎn)換工具。它只是以一致的預(yù)定義樣式創(chuàng)建圖表。
處理
將csv或tsv格式的數(shù)據(jù)粘貼到chartbuilder中并導(dǎo)出代碼以繪制移動(dòng)友好的響應(yīng)圖表或靜態(tài)SVG或PNG圖表。對(duì)于那些對(duì)定制圖表樣式不感興趣的人,項(xiàng)目地址:http://quartz.github.io/Chartbuilder
它也可以在本地下載和安裝。
演示
TimelineJS是一個(gè)開(kāi)源工具,任何人都可以構(gòu)建視覺(jué)豐富的交互式時(shí)間表。初學(xué)者只需使用Google電子表格即可創(chuàng)建時(shí)間表。專家可以使用他們的JSON技能來(lái)創(chuàng)建自定義安裝,同時(shí)保持TimelineJS的核心功能。
TimelineJS可以從各種來(lái)源獲取媒體。Twitter,F(xiàn)lickr,YouTube,Vimeo,Vine,Dailymotion,谷歌地圖,維基百科,SoundCloud,文檔云等等!
處理
創(chuàng)建時(shí)間表是一個(gè)簡(jiǎn)單的過(guò)程。提供了一個(gè)電子表格模板,需要填寫該模板,然后簡(jiǎn)單地發(fā)布內(nèi)容。然后,可以將生成的鏈接嵌入到媒體中或在期望時(shí)間線的任何網(wǎng)站上。該網(wǎng)站有一個(gè)很好的介紹性視頻,以開(kāi)始使用Timeline JS。
演示
如何在中型博客/網(wǎng)站中呈現(xiàn)時(shí)間軸的示例。
曼德拉:一種有目的的生活
TimelineJS Embed
http://cdn.knightlab.com/libs/timeline/latest/embed/index.html
數(shù)據(jù)可視化不一定非常困難或昂貴。代碼肯定會(huì)為你提供更多選項(xiàng)來(lái)創(chuàng)建和自定義圖形,尤其是在數(shù)據(jù)混亂時(shí),但這些工具在提供即時(shí)數(shù)據(jù)可視化時(shí)可以提供很好的選擇。這不是一個(gè)詳盡的列表,我一直在尋找更多的工具,試圖簡(jiǎn)化其他人的可視化過(guò)程。
本文編輯:王立魚(yú)
英文原文:https://towardsdatascience.com/10-free-tools-to-instantly-get-started-with-data-visualisation-d7fadb5f6dce
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
點(diǎn)擊【10種免費(fèi)的工具讓你快速的、高效的使用數(shù)據(jù)可視化】即可訪問(wèn)!
福利大放送——滿滿的干貨課程免費(fèi)送!
「好玩的Python:從數(shù)據(jù)挖掘到深度學(xué)習(xí)」該課程涵蓋了從Python入門到CV、NLP實(shí)踐等內(nèi)容,是非常不錯(cuò)的深度學(xué)習(xí)入門課程,共計(jì)9節(jié)32課時(shí),總長(zhǎng)度約為13個(gè)小時(shí)。。
課程頁(yè)面:https://ai.yanxishe.com/page/domesticCourse/37
「計(jì)算機(jī)視覺(jué)基礎(chǔ)入門課程」本課程主要介紹深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)方向的算法與應(yīng)用,涵蓋了計(jì)算機(jī)視覺(jué)的歷史與整個(gè)課程規(guī)劃、CNN的模型原理與訓(xùn)練技巧、計(jì)算機(jī)視覺(jué)的應(yīng)用案例等,適合對(duì)計(jì)算機(jī)視覺(jué)感興趣的新人。
課程頁(yè)面:https://ai.yanxishe.com/page/domesticCourse/46
現(xiàn)AI研習(xí)社將兩門課程免費(fèi)開(kāi)放給社區(qū)認(rèn)證用戶,只要您在認(rèn)證時(shí)在備注框里填寫「Python」,待認(rèn)證通過(guò)后,即可獲得該課程全部解鎖權(quán)限。心動(dòng)不如行動(dòng)噢~
認(rèn)證方式:https://ai.yanxishe.com/page/blogDetail/13999
器之心報(bào)道
編輯:Panda W
圖像生成、視頻生成、整合語(yǔ)音合成的人臉動(dòng)畫、生成三維的人物運(yùn)動(dòng)以及 LLM 驅(qū)動(dòng)的工具…… 一切都在這篇文章中。
生成式 AI 已經(jīng)成為互聯(lián)網(wǎng)的一個(gè)重要內(nèi)容來(lái)源,現(xiàn)在你能看到 AI 生成的文本、代碼、音頻、圖像以及視頻和動(dòng)畫。今天我們要介紹的文章來(lái)自立陶宛博主和動(dòng)畫師 aulerius,其中按層級(jí)介紹和分類了動(dòng)畫領(lǐng)域使用的生成式 AI 技術(shù),包括簡(jiǎn)要介紹、示例、優(yōu)缺點(diǎn)以及相關(guān)工具。
他寫道:「作為一位動(dòng)畫制作者,我希望一年前就有這樣一份資源,那時(shí)候我只能在混亂的互聯(lián)網(wǎng)上自行尋找可能性和不斷出現(xiàn)的進(jìn)展。」
本文的目標(biāo)讀者是任何對(duì)這一領(lǐng)域感興趣的人,尤其是不知如何應(yīng)對(duì) AI 領(lǐng)域新技術(shù)發(fā)展的動(dòng)畫師和創(chuàng)意人士。另需說(shuō)明,視頻風(fēng)格化雖然也是相關(guān)技術(shù),但本文基本不會(huì)涉及這方面。
本文的文章結(jié)構(gòu)。
圖像生成
圖像生成技術(shù)是指使用 AI 模型生成圖像的技術(shù),這些 AI 模型的訓(xùn)練使用了靜態(tài)圖像。
將生成的圖像用作素材
將任意 AI 應(yīng)用生成的靜態(tài)圖像用作 2D 剪貼畫、數(shù)字處理、拼貼等傳統(tǒng)工作流程中的素材,或者用作其它 AI 工具的資源,比如提供給圖像轉(zhuǎn)視頻(image2video)工具來(lái)生成視頻。除了作為圖像和素材來(lái)源,這類技術(shù)還需依賴剪切和圖像編輯等一些常用技能。
短片《Planets and Robots》中使用了數(shù)字剪貼畫來(lái)將生成的 AI 圖像動(dòng)畫化,其中的配音也是使用 LLM 基于腳本生成的。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650907887&idx=4&sn=ca30f3fbde94ec74b32d75b638013594&chksm=84e46091b393e987d442c8c414bdb9b76741d60116bee3419f36a3cb5961906e5d33b4ab312b&token=1179435113&lang=zh_CN#rd
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具(任何生成圖像模型或應(yīng)用):
插件和附加組件:
此外,Hugging face space 上還有一些免費(fèi)的演示:https://huggingface.co/spaces
付費(fèi)工具(任何生成圖像模型或應(yīng)用):
注:動(dòng)畫制作使用的工具包括 After Effects、Moho、Blender……
逐幀生成圖像
這類技術(shù)是以一種相當(dāng)程度上立足動(dòng)畫根源的精神來(lái)使用生成式擴(kuò)散圖像模型,其是以逐幀方式生成動(dòng)作序列,就像是傳統(tǒng)動(dòng)畫制作的繪制再拍攝過(guò)程。其中的一大關(guān)鍵是這些模型在生成每張圖像時(shí)沒(méi)有時(shí)間或運(yùn)動(dòng)的概念,而是通過(guò)某種機(jī)制或各種應(yīng)用或擴(kuò)展來(lái)幫助得到某種程度上的動(dòng)畫,從而實(shí)現(xiàn)所謂的「時(shí)間一致性(temporal consistency)」。
這些技術(shù)得到的動(dòng)畫往往會(huì)出現(xiàn)閃爍現(xiàn)象。盡管許多使用這些工具的用戶會(huì)努力清理這些閃爍,但動(dòng)畫師卻會(huì)把這視為一種藝術(shù)形式,稱為 boiling。
這方面最常用的是 Stable Diffusion 等開(kāi)源模型以及基于它們構(gòu)建的工具。用戶可以使用公開(kāi)的參數(shù)來(lái)配置它們,還可以將它們運(yùn)行在本地計(jì)算機(jī)上。相較之下,MidJourney 工具的模型沒(méi)有公開(kāi),而且主要是為圖像生成設(shè)計(jì)的,因此無(wú)法用來(lái)生成逐幀動(dòng)畫。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650907887&idx=4&sn=ca30f3fbde94ec74b32d75b638013594&chksm=84e46091b393e987d442c8c414bdb9b76741d60116bee3419f36a3cb5961906e5d33b4ab312b&token=1179435113&lang=zh_CN#rd
動(dòng)畫也可能使用 Stable WarpFusion 來(lái)制作,這其中涉及到圖像轉(zhuǎn)圖像的工作流程,通過(guò)一些扭變(置換)將底層的視頻輸入變成動(dòng)畫。視頻作者:Sagans。
用逐幀圖像來(lái)制作動(dòng)畫通常需要混合使用以下工具:
一步到位的工具(文本轉(zhuǎn)圖像)
有一些新技術(shù)支持直接通過(guò)文本 prompt 和參數(shù)調(diào)配來(lái)生成動(dòng)畫:
在每張生成的圖像幀上逐漸進(jìn)行參數(shù)插值,以得到過(guò)渡動(dòng)畫。這里的參數(shù)可能包括任何與模型相關(guān)的設(shè)定,比如文本 prompt 本身或底層的種子(隱空間游走)。
prompt 編輯法,即通過(guò)逐漸改變權(quán)重來(lái)創(chuàng)建動(dòng)畫過(guò)渡。這里使用了 Depth ControlNet 來(lái)保持手部整體形狀的一致性。
通過(guò)圖像到圖像技術(shù),將每張生成的圖像幀作為輸入來(lái)生成動(dòng)畫的下一幀。這樣在其它參數(shù)和種子變化時(shí)也可以生成看起來(lái)相似的幀序列。這個(gè)過(guò)程通常由 Deforum 中的「去噪強(qiáng)度」或「強(qiáng)度調(diào)度」來(lái)控制。起始幀可以是已有的圖片。
這是大多數(shù)使用 Stable Diffusion 的動(dòng)畫實(shí)現(xiàn)的一個(gè)核心組件,而 Stable Diffusion 是下列許多應(yīng)用依賴的技術(shù)。這種技術(shù)很難平衡,并且很大程度上取決于使用的采樣器(噪聲調(diào)度器)。
使用一張起始圖像,然后使用一個(gè)稍有不同的 prompt,使其逐幀變化成其它形態(tài)。
逐漸變換每一幀生成圖像,之后再將其作為 I2I 循環(huán)的輸入。2D 變換對(duì)應(yīng)于簡(jiǎn)單的平移、旋轉(zhuǎn)和縮放。3D 技術(shù)則會(huì)想象一個(gè)在 3D 空間中移動(dòng)的虛擬相機(jī),這通常需要估計(jì)每幀生成圖像的 3D 深度,然后根據(jù)想象中的相機(jī)運(yùn)動(dòng)來(lái)進(jìn)行變形處理。
想必你已經(jīng)看過(guò)這種無(wú)限放大的動(dòng)畫。它的視覺(jué)效果如此之棒,是因?yàn)槠涫褂昧?SD 來(lái)持續(xù)構(gòu)建新細(xì)節(jié)。
運(yùn)動(dòng)合成的目標(biāo)是「想象」后續(xù)生成幀之間的運(yùn)動(dòng)流,然后使用這個(gè)運(yùn)動(dòng)流來(lái)逐幀執(zhí)行變形處理,從而基于 I2I 循環(huán)注入有機(jī)的運(yùn)動(dòng)。這通常需要依賴在視頻的運(yùn)動(dòng)估計(jì)(光流)上訓(xùn)練的 AI 模型,只不過(guò)其關(guān)注的不是后續(xù)視頻幀,而是后續(xù)生成幀(通過(guò) I2I 循環(huán)),或是使用某種混合方法。
其它技術(shù)還包括圖像修復(fù)和變形技術(shù)搭配使用、采用多個(gè)處理步驟或甚至捕獲模型訓(xùn)練過(guò)程的快照等先進(jìn)技術(shù)。舉個(gè)例子,Deforum 有很多可供用戶調(diào)控的地方。
使用 SD-CN Animation 制作,其使用了一種在生成幀之間產(chǎn)生幻覺(jué)運(yùn)動(dòng)的獨(dú)特方法。起始圖像只是作為起點(diǎn),沒(méi)有其它用途。
變換型技術(shù)(圖像到圖像):
此外還可以使用某個(gè)來(lái)源的輸入來(lái)助力生成的幀和所得的動(dòng)畫結(jié)果:
這類方法范圍很廣,做法是使用輸入視頻來(lái)混合和影響生成的序列。這些輸入視頻通常分為多個(gè)幀,作用通常是風(fēng)格化現(xiàn)實(shí)視頻。在現(xiàn)如今的風(fēng)格化跳舞視頻和表演熱潮中,這類技術(shù)常被用于實(shí)現(xiàn)動(dòng)漫造型和性感體格。但你可以使用任何東西作為輸入,比如你自己動(dòng)畫的粗略一幀或任何雜亂抽象的錄像。在模仿 pixilation 這種定格動(dòng)畫技術(shù)和替換動(dòng)畫技術(shù)方面,這類技術(shù)有廣泛的可能性。
在每一幀,輸入幀要么可以直接與生成圖像混合,然后再輸入回每個(gè) I2I 循環(huán),要么可以采用更高級(jí)的設(shè)定附加條件的做法,比如 ControlNet。
Deforum 搭配 ControlNet 條件化處理的混合模式,左圖是原視頻。遮掩和背景模糊是分開(kāi)執(zhí)行的,與這項(xiàng)技術(shù)無(wú)關(guān)。
「光流」是指視頻中估計(jì)的運(yùn)動(dòng),可通過(guò)每一幀上的運(yùn)動(dòng)向量表示,其指示了屏幕空間中每個(gè)像素的運(yùn)動(dòng)情況。當(dāng)估計(jì)出變形工作流程中的源視頻的光流后,就可以根據(jù)它對(duì)生成的幀執(zhí)行變形,使得生成的紋理在對(duì)象或相機(jī)移動(dòng)時(shí)也能「粘黏」在對(duì)象上。
Deforum 的混合模式支持這種技術(shù)搭配各種設(shè)置使用。為了得到閃動(dòng)更少的結(jié)果,也會(huì)增加 cadence,使得變形的效果更好。遮掩和背景模糊是分開(kāi)執(zhí)行的,與這項(xiàng)技術(shù)無(wú)關(guān)。
通過(guò)變形工作流程完成的條件處理也可能直接關(guān)聯(lián) 3D 數(shù)據(jù),這可以跳過(guò)一個(gè)可能造成模糊的環(huán)節(jié),直接在視頻幀上完成處理。
舉個(gè)例子,可以直接通過(guò)虛擬 3D 場(chǎng)景提供 openpose 或深度數(shù)據(jù),而不是通過(guò)視頻(或經(jīng)過(guò) CG 渲染的視頻)估計(jì)這些數(shù)據(jù)。這允許采用最模塊化和最可控的 3D 原生方法;尤其是組合了有助于時(shí)間一致性的方法時(shí),效果更佳。
這可能是現(xiàn)有技術(shù)與用于 VFX 的 AI 技術(shù)之間最有潛力的交叉領(lǐng)域,如下視頻所示:https://youtu.be/lFE8yI4i0Yw?si=-a-GvsaIVPrdaQKm
有一個(gè)廣泛應(yīng)用的工具也使用了該技術(shù),其可簡(jiǎn)化并自動(dòng)化用 Blender 生成直接適用于 ControlNet 的角色圖像的過(guò)程。在這個(gè)示例中,ControlNet 使用手部骨架來(lái)生成 openpose、深度和法線貼圖圖像,最終得到最右側(cè)的 SD 結(jié)果。(openpose 最終被舍棄了,因?yàn)槭聦?shí)證明它不適用于只有手部的情況。)
將所有這些技術(shù)結(jié)合起來(lái),似乎有無(wú)盡的參數(shù)可以調(diào)整動(dòng)畫的生成結(jié)果(就像模塊化的音頻制作)。它要么可以通過(guò)關(guān)鍵幀進(jìn)行「調(diào)度」并使用 Parseq 這樣的工具繪制圖形,要么可以與音頻和音樂(lè)關(guān)聯(lián),得到許多隨音頻變化的動(dòng)畫。只需如此,你就能使用 Stable Diffusion 幫你跳舞了。
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具:
可在 A1111 webui 中使用的工具:
插件和附加組件:
付費(fèi)工具:
(通常也依賴于 SD,但運(yùn)行在「云」上,用起來(lái)也更簡(jiǎn)單):
插件和附加組件:
市面上還有許多應(yīng)用和工具,但如果是付費(fèi)工具,多半是基于開(kāi)源的 Deforum 代碼。
注:最好的情況是你有足夠的優(yōu)良硬件(即 GPU)在本地運(yùn)行這些工具。如果沒(méi)有,你也可以嘗試運(yùn)行在遠(yuǎn)程計(jì)算機(jī)上的、功能有限的免費(fèi)服務(wù),比如 Google Colab。不過(guò),Google Colab 上的筆記本也可以運(yùn)行在本地硬件上。
視頻生成技術(shù)
這類技術(shù)使用在運(yùn)動(dòng)視頻上訓(xùn)練的視頻生成 AI 模型,另外可以在神經(jīng)網(wǎng)絡(luò)層面上使用時(shí)間壓縮來(lái)增強(qiáng)。
目前,這些模型有一個(gè)共同特征是它們僅能處理時(shí)間很短的視頻片段(幾秒),并受到 GPU 上可用視頻內(nèi)存的限制。但是,這方面的發(fā)展速度很快,并且可以用一些方法將多個(gè)生成結(jié)果拼接成更長(zhǎng)的視頻。
視頻生成模型
這是指使用從頭構(gòu)建和訓(xùn)練的模型來(lái)處理視頻。
現(xiàn)今的這類模型得到的結(jié)果往往晃動(dòng)很大、有明顯的 AI 痕跡、顯得古怪。就像是很久之前生成圖像的 AI 模型一樣。這個(gè)領(lǐng)域的發(fā)展落后一些,但進(jìn)展很快,我個(gè)人認(rèn)為在靜態(tài)圖像生成上取得的進(jìn)展并不會(huì)同等比例地在視頻生成方面重現(xiàn),因?yàn)橐曨l生成的難度要大得多。
Paul Trillo 使用 Runway 的 Gen-2,僅通過(guò)圖像和文本 prompt 讓 AI 生成的視頻。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650907887&idx=4&sn=ca30f3fbde94ec74b32d75b638013594&chksm=84e46091b393e987d442c8c414bdb9b76741d60116bee3419f36a3cb5961906e5d33b4ab312b&token=1179435113&lang=zh_CN#rd
我認(rèn)為在這方面,動(dòng)畫和傳統(tǒng)電影之間的界限很模糊。只要其結(jié)果還與現(xiàn)實(shí)有差異,那么我們就可以在一定程度上把它們看作是動(dòng)畫和視頻藝術(shù)的一種怪異新流派。就目前而言,我認(rèn)為大家還是別想著用這類技術(shù)做真實(shí)風(fēng)格的電影了,只把它視為一種新形式的實(shí)驗(yàn)媒體即可。玩得開(kāi)心哦!
一步到位的工具(文本轉(zhuǎn)視頻):使用文本 prompt 生成全新的視頻片段
理論上講,這類技術(shù)有無(wú)限可能性 —— 只要你能將其描述出來(lái)(就像靜態(tài)圖像生成那樣),就可能將其用于直播表演或生成任何超現(xiàn)實(shí)和風(fēng)格化的內(nèi)容。但從實(shí)踐角度看,為了訓(xùn)練視頻模型,收集多樣化和足夠大的數(shù)據(jù)集要難得多,因此僅靠文本來(lái)設(shè)定生成條件,很難用這些模型實(shí)現(xiàn)利基(niche)的美學(xué)風(fēng)格。
使用這種方法,只能很寬松地控制創(chuàng)意工作。當(dāng)與圖像或視頻條件化處理(即變形工作流程)組合使用時(shí),這種技術(shù)就會(huì)強(qiáng)大得多。
Kyle Wiggers 做的動(dòng)畫生成測(cè)試,使用了 Runway 的 Gen-2
變形:使用文本 prompt,再根據(jù)已有的圖像或視頻進(jìn)行進(jìn)一步的條件化處理
很多視頻生成工具都能讓你以圖像為條件生成視頻。其做法可以是完全從你指定的圖像開(kāi)始生成,也可以將指定圖像用作語(yǔ)義信息、構(gòu)圖和顏色的粗略參考。
人們經(jīng)常會(huì)使用傳統(tǒng)的靜態(tài)圖像模型生成起始圖像,然后再將其輸入視頻模型。
這里生成的每一段視頻都是使用一張唱片封面作為起始圖像,作者:Stable Reel
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650907887&idx=4&sn=ca30f3fbde94ec74b32d75b638013594&chksm=84e46091b393e987d442c8c414bdb9b76741d60116bee3419f36a3cb5961906e5d33b4ab312b&token=1179435113&lang=zh_CN#rd
類似于圖像生成模型中的圖像到圖像過(guò)程,也有可能將輸入視頻的信息嵌入到視頻模型中,再加上文本 prompt,讓其生成(去噪)輸出。
我并不理解這其中的具體過(guò)程,但似乎這個(gè)過(guò)程不僅能在逐幀層面上匹配輸入視頻片段(如同使用 Stable Diffusion 進(jìn)行風(fēng)格化處理),而且能在整體和運(yùn)動(dòng)層面上匹配。和圖像到圖像生成過(guò)程一樣,這個(gè)過(guò)程受去噪強(qiáng)度控制。
如果運(yùn)氣好并且有合適的 prompt,你也可以輸入視頻來(lái)「啟發(fā)」模型重新想象源視頻中的運(yùn)動(dòng),并以完全不同的形式將其呈現(xiàn)出來(lái)。使用 webui txt2vid 中的 Zeroscope 完成,使用了 vid2vid 模式。
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具:
插件和附加組件:
付費(fèi)工具(有試用版):
注:最好的情況是你有足夠的優(yōu)良硬件(即 GPU)在本地運(yùn)行這些工具。如果沒(méi)有,你也可以嘗試運(yùn)行在遠(yuǎn)程計(jì)算機(jī)上的、功能有限的免費(fèi)服務(wù),比如 Google Colab,不過(guò)大多數(shù)免費(fèi)或試用服務(wù)的功能都有限。
使用運(yùn)動(dòng)壓縮增強(qiáng)的圖像模型
隨著 AnimateDiff 的日益流行,出現(xiàn)了一個(gè)使用視頻或「運(yùn)動(dòng)」壓縮來(lái)增強(qiáng)已有圖像擴(kuò)散模型的新興領(lǐng)域。相比于使用逐幀技術(shù)生成的結(jié)果,其生成的結(jié)果更相近于原生視頻模型(如上面介紹的)。這種技術(shù)的優(yōu)勢(shì)是你還可以使用為 Stable Diffusion 等圖像模型構(gòu)建的工具,如社區(qū)創(chuàng)建的任何檢查點(diǎn)模型、LoRA、ControlNet 以及其它條件化處理工具。
你甚至有可能通過(guò) ControlNet 提供視頻條件化處理,就像是使用逐幀技術(shù)一樣。社區(qū)仍在積極實(shí)驗(yàn)這一技術(shù)。可用的技術(shù)有的來(lái)自靜態(tài)圖像模型(比如 prompt 遍歷),也有的來(lái)自視頻原生模型。
如下視頻為使用 ComfyUI 中 AnimateDiff 完成的動(dòng)畫,過(guò)程使用了多個(gè)不同的 prompt 主題。
視頻鏈接:https://www.instagram.com/p/Cx-iecPusza/?utm_source=ig_embed&utm_campaign=embed_video_watch_again
這種技術(shù)中的運(yùn)動(dòng)本身通常非常原始,只是在視頻片段中松散地插入對(duì)象和流,這往往會(huì)將事物變形成其它模樣。不過(guò),這種技術(shù)有更好的時(shí)間一致性,而且仍處于起步階段。當(dāng)場(chǎng)景很抽象,沒(méi)有具體物體時(shí),這種方法能得到最好的結(jié)果。
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具:
目前,AnimateDiff (SD v1.5) 的實(shí)現(xiàn)一馬當(dāng)先:
付費(fèi)工具:
整合語(yǔ)音合成的人臉動(dòng)畫
大家都知道,這是一個(gè)流行迷因背后的技術(shù)。你可能看過(guò)一個(gè)相對(duì)靜止的人物(相機(jī)可能在移動(dòng))只有臉動(dòng)著說(shuō)話,這多半是用到了 AI 人臉動(dòng)畫化和語(yǔ)音合成工具的組合方法。
這其中組合了多個(gè)技術(shù)步驟和組件。其源圖像多半是使用圖像生成 AI 制作的,但也可以使用任何帶有人臉的圖像。語(yǔ)音是根據(jù)文本生成的,并根據(jù)所選任務(wù)的音色進(jìn)行了條件化處理。然后再使用另一個(gè)工具(或工具包中的某個(gè)模型)合成與音頻唇形同步的人臉動(dòng)畫 —— 通常只生成圖像中臉部和頭部區(qū)域的運(yùn)動(dòng)。使用預(yù)訓(xùn)練的數(shù)字化身也能讓身體動(dòng)起來(lái)。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650907887&idx=4&sn=ca30f3fbde94ec74b32d75b638013594&chksm=84e46091b393e987d442c8c414bdb9b76741d60116bee3419f36a3cb5961906e5d33b4ab312b&token=1179435113&lang=zh_CN#rd
在發(fā)布熱門的 Belenciaga 視頻之前,作者 demonflyingfox 就已經(jīng)發(fā)布了一篇分步教程:https://youtu.be/rDp_8lPUbWY?si=BWNKe7-KTJpCrNjF
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具:
你也可以在網(wǎng)上直接搜索文本轉(zhuǎn)語(yǔ)音服務(wù),不可勝計(jì),但效果多半趕不上 ElevenLabs。
至于全臉動(dòng)畫化,就我所知,目前僅有一些付費(fèi)應(yīng)用提供了試用版,而且使用很受限。
付費(fèi)工具(有試用版):
人臉動(dòng)畫制作(通常會(huì)搭配語(yǔ)音合成):
搜索「D-ID 替代品」就能找到很多。
生成三維的人物運(yùn)動(dòng)
這是指為 3D 人物合成運(yùn)動(dòng)的技術(shù)。這類技術(shù)可以應(yīng)用于 3D 動(dòng)畫電影、視頻游戲或其它 3D 交互應(yīng)用。正如圖像和視頻領(lǐng)域一樣,新興的 AI 工具讓人可通過(guò)文本來(lái)描述人物的運(yùn)動(dòng)。此外,一些工具還能根據(jù)很少的關(guān)鍵姿勢(shì)來(lái)構(gòu)建運(yùn)動(dòng)或者在交互環(huán)境中實(shí)時(shí)動(dòng)態(tài)地生成動(dòng)畫。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650907887&idx=4&sn=ca30f3fbde94ec74b32d75b638013594&chksm=84e46091b393e987d442c8c414bdb9b76741d60116bee3419f36a3cb5961906e5d33b4ab312b&token=1179435113&lang=zh_CN#rd
Nikita 的充滿天才巧思的元人工智能電影預(yù)告片,其中將 AI 的運(yùn)動(dòng)學(xué)習(xí)過(guò)程展現(xiàn)成了一部滑稽幽默的有趣短片。
由于本文的關(guān)注重點(diǎn)是生成工具,因此沒(méi)有包含自動(dòng)化某些非創(chuàng)意任務(wù)的 AI 應(yīng)用,比如 AI 驅(qū)動(dòng)的運(yùn)動(dòng)跟蹤、合成、打碼等,例子包括 Move.ai 和 Wonder Dynamics。
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具(或可免費(fèi)使用部分功能的服務(wù)):
付費(fèi)工具:
LLM 驅(qū)動(dòng)的工具
從理論上講,由于大型語(yǔ)言模型(LLM)在編程任務(wù)上表現(xiàn)出色,尤其是經(jīng)過(guò)微調(diào)之后,那么我們就可以在制作動(dòng)畫的軟件中讓其編程和編寫腳本。這就意味著按照常規(guī)工作流程制作動(dòng)畫時(shí),能讓 AI 從頭到尾一直輔助。極端情況下,AI 能幫你完成一切工作,同時(shí)還能為后端流程分配適當(dāng)?shù)娜蝿?wù)。
在實(shí)踐中,你也能嘗試這么做了!舉個(gè)例子,Blender 配備了非常廣泛的 Python API,允許通過(guò)代碼操作該工具,因此現(xiàn)在已經(jīng)有幾個(gè)類似 ChatGPT 的輔助工具可用了。這個(gè)趨勢(shì)不可避免。只要有代碼,LLM 多半就會(huì)有用武之地。
優(yōu)點(diǎn):
缺點(diǎn):
免費(fèi)工具:
付費(fèi)工具:
注:還有一個(gè)即將推出的 ChatUSD—— 這是一個(gè)可以操作和管理 USD 的聊天機(jī)器人,這是由皮克斯最初創(chuàng)建的標(biāo)準(zhǔn),用以統(tǒng)一和簡(jiǎn)化動(dòng)畫電影制作中的 3D 數(shù)據(jù)交換和并行化。目前沒(méi)有更多相關(guān)消息了,但英偉達(dá)似乎很歡迎這項(xiàng)標(biāo)準(zhǔn)并在推動(dòng)其成為各種 3D 內(nèi)容的標(biāo)準(zhǔn),而不只是電影。
終于完結(jié)了!內(nèi)容很多,但我多半還是遺漏了一些東西。你覺(jué)得還有什么內(nèi)容有待補(bǔ)充或還有什么相關(guān)工具值得提及,請(qǐng)?jiān)谠u(píng)論區(qū)與我們分享。
原文鏈接:https://diffusionpilot.blogspot.com/2023/09/overview-ai-animation.html#id_generative_video_models
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。