機器學習根據文字生成圖片教程(附python程式碼)
背景
其實在過往我們生活的世界裡,當人們需要獲取資訊的時候,更多地強調的是資訊的檢索和遍歷,意味著去已經存在的物品中找到自己合適的。在我看來這是一種很低階的生活形態,比如我的意識中有一個某種圖案的杯子,想要它,只能開啟淘寶根據標籤去找已經設計好的款式有沒有相近的,而不能直接根據我的想法自動生成一個我需要的杯子。
又比如,我想要一張貓正在喝水的照片,只能去搜尋引擎裡去根據關鍵詞搜尋已經存在的貓喝水的照片,而不是自動生成一張符合我要求的照片。隨著人工智慧的升級,這種低階的資訊獲取方式一定會淘汰。
今天就介紹一種深度學習方法,如何根據文字自動生成圖片。先來看下效果:
輸入文字:
sky is above the grass, man standing on the grass
生成的圖片,是不是有點神奇:
詳細流程
關於具體的演算法細節可以看下這個論文:“Image Generation from Scene Graphs”
1.下載程式碼
程式碼可以在Github找到: https://github.com/google/sg2im?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
需要把sgim資料夾複製到scripts資料夾下面:
2.安裝需要的第三方庫
建議用python3以上版本,在資料夾下執行
sudo pip3 install -r requirements.txt
3.下載模型
首先自行安裝好wget,然後在程式碼目錄下執行:
bash scripts/download_models.sh
4.建立圖片
首先,要先自己搞個描述指令碼,這個指令碼需要描述生成圖片中的物件以及物件間的位置關係。比如以下指令碼(看過《機器學習實踐應用》的同學是不是會眼熟,有點像裡面知識圖譜的內容):
[
{
"objects": ["car", "street", "line", "sky"],
"relationships": [
[0, "on", 1],
[2, "on", 1],
[3, "above", 1]
]
}
]
描述的是car在street的上面,line在street的上面,sky也在street上面。然後在程式碼的根目錄下執行以下程式碼(程式碼中的括號內容是註釋,執行前需要去掉):
python3 scripts/run_model.py(預測指令碼) --checkpoint sg2im-models/vg128.pt(下載好的模型所在地址) --scene_graphs aohai.json(上面寫的指令碼) --output_dir outputs(圖片輸出路徑)
最終生成的圖片效果:
總結
是不是很好玩,可以自己任意新增描述指令碼,生成自己想要的圖片,是不是非常酷。目前來看畫素還比較低,希望以後該專案可以繼續更新,可以生成更多高清大圖。
相關文章
- 根據api檔案生成程式碼API
- Python 根據id生成唯一碼Python
- 微信小程式根據本地快取圖片路徑,生成縮圖的方法微信小程式快取
- Android 根據View生成圖片簡易參考AndroidView
- 前端慌不慌?AI根據手繪原型生成HTML【附程式碼】前端AI原型HTML
- 前端利器!讓AI根據手繪原型生成HTML | 教程+程式碼前端AI原型HTML
- PHP根據wsdl生成呼叫soapwebservice程式碼PHPWeb
- python生成驗證碼,文字轉換為圖片Python
- mybatis根據表逆向自動化生成程式碼MyBatis
- EF3.1 根據資料庫生成程式碼資料庫
- 根據比例縮放圖片的尺寸不變形程式碼例項
- 根據URL地址生成二維碼
- OpenAPI Generator,根據Swagger/OpenAPI生成程式碼的工具APISwagger
- 用python生成驗證碼圖片Python
- python生成圖片Python
- iOS根據圖片比例計算顯示大小iOS
- 【python】圖片插入文字Python
- 用python寫個爬取指定網址上所有圖片,並能根據獲取到的圖片網址,進入網址,再次進行圖片獲取 的程式碼指令碼Python指令碼
- 圖片設定level-list,根據不同狀態顯示不同圖片
- (IOS)根據bundle中的檔名讀取圖片iOS
- 自定義Drawable:實現文字生成圖片
- C# 讀取Word文字框中的文字、圖片和表格(附VB.NET程式碼)C#
- Python+SeaTable | 從數字、文字列生成條形碼圖片並寫入表格Python
- 一個根據程式碼自動生成UML的外掛,助你看原始碼事半功倍原始碼
- 根據現有 C#程式碼檔案生成擴充套件程式碼檔案的想法C#套件
- 根據表結構,自動生成匯入指令碼指令碼
- 根據事務程式碼找User exit
- Python 提取PDF文字和圖片Python
- SwiftUI 簡明教程之文字與圖片SwiftUI
- 根據業務摸索出的一個selenium程式碼模版(python)Python
- 堆糖網爬蟲(根據關鍵字下載圖片)爬蟲
- Android根據螢幕寬度,按比例縮放圖片Android
- python - 根據均值和標準差生成隨機整數Python隨機
- linux根據字尾查詢文字Linux
- 根據字元型別和密碼長度隨機生成密碼字元型別密碼隨機
- PHP生成一張含有二維碼的圖片(文章末尾附程式碼下載連結)PHP
- golang 生成圖片驗證碼Golang
- php生成二維碼圖片PHP