神通情人夢的願望(第一步自創美女頭像)
神通情人夢的願望(第一步自創美女頭像) |
小時候一直很喜歡這部電影 "神通情人夢 (Electric Dreams)" , 不曉得你有沒有跟我一樣 , 看完了這部電影 , 一直幻想著有一天創造出一個自己的 "AI情人" !?
隨著AI技術的進步 , 因為工作關係 , 比較沒有深入領域的去研究 , 但空閒時間還是會朝著興趣方面去爬爬文 , 底下來筆記一下最近看到一個對岸大神寫的文章 "用DCGAN生成女朋友"
用DCGAN生成女朋友 |
首先 , 先了解什麼是GAN (生成對抗網路) , GAN 是2014年蒙特婁大學博士生 Ian Goodfellow 提出來的 (參考此篇 29 歲就做出近 20 年最重要 AI 突破,讓人類 CONNECT with AI 的男人 Ian Goodfellow )
圖. GAN Architecture,圖片來源:generative-adversarial-networks |
1. 第一步他先用爬蟲抓取所需要的樣本 百度圖片爬蟲,基於python3
2. 使用Opencv中自带的adaboost的目標檢測算法得到單純頭像
Sample code (修正了部分報錯問題 , 使用 python3.5.1 ):
======================================================
# Sample code ( python3.5.1 with cv2 module) import cv2 import sys import os.path from glob import glob def detect(filename, cascade_file="/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml"): if not os.path.isfile(cascade_file): raise RuntimeError("%s: not found" % cascade_file) cascade = cv2.CascadeClassifier(cascade_file) image = cv2.imread(filename) if image is None: # read failure and skip this image return if image.shape[2]==1: # drop gray images return gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray = cv2.equalizeHist(gray) faces = cascade.detectMultiScale(gray, # detector options scaleFactor=1.1, minNeighbors=3, minSize=(96, 96)) for i, (x, y, w, h) in enumerate(faces): face = image[y: y + h, x:x + w, :] face = cv2.resize(face, (96, 96)) save_filename = '%s-%d.jpg' % (os.path.basename(filename).split('.')[0], i) cv2.imwrite("face/" + save_filename, face) if __name__ == '__main__': if os.path.exists('face') is False: os.makedirs('face') file_list = glob('./test/*.jp*') for filename in file_list: print(filename) detect(filename)==============================================================
3. DCGAN訓練和生成圖像 DCGAN in Tensorflow
經過一番苦戰 終於可以成功運行Github上的程式 ( DCGAN-tensorflow) 但使的VM實在太慢 , 25個epoch 跑超久 XD ...只是先測試可否運行 |
這是他的訓練成果 DCGAN訓練和生成圖像 不過看來這方式訓練出來的成果離真實感還有點差距 , 也許訓練的樣本不夠 !? 找時間自己來實做玩看看 ... |
網路已經很多利用AI創建的頭像 , 有些根本真假難辨不知怎麼做到的 ?
Can You Tell the Difference Between a Human Face and an AI-Created Fake?
後記 : 另外GAN的應用還可以來做內容審核 (參考此篇 一个22万张NSFW图片的鉴黄数据集?我有个大胆的想法 ) , 讓央喜想到以前做scale out影音倉儲系統時 , 其實可以加入此應用 , 在影片上傳時自動分類並加入人名.事件等檢索 , 可惜已沒法加以實現 , 只好改天有時間先從家裡NAS的"愛情動作片"開始實驗了 ... ( 央喜只是要技術實驗 XD )
回味一下吧 神通情人夢(劇情配樂)
留言
張貼留言