用深度學習做球星顏值打分完整案例(一)
已經上傳了完整的程式碼和資料,資料比較少,大家可以幫忙補充。
專案地址(記得給個start):https://github.com/jimenbian/face_rank
先來說一下專案的背景,這次做的是一個最基礎的影象識別案例,通過訓練一個模型來給NBA球星的顏值打分,嗯,樓主麥迪、艾弗森球迷。選擇NBA的資料是因為,NBA球星都有正裝照,比較好收集。我們最終呈現的效果是這樣的:先收集球星大臉照,標記出顏值高的和顏值低的,然後使用Tensorflow的CNN網路訓練顏值打分模型,最後可以利用模型對任意球星臉是高顏值或者低顏值來評分。
另外還有一種資料收集的方法,悄悄透漏給大家,如果做美女的顏值打分訓練,男同學可以開啟T盤的唐詩三百首目錄,在裡面可以方便的擷取高清人臉大圖。
講一下工程
實驗環境是PYTHON2.7,Tensorflow版本1.4,無其它依賴庫。
下面看一下整個工程,
face_train.py用來訓練模型
face_test.py用來預測
TrainDataSet存訓練資料
講一下資料
開啟trainDataSet這個資料夾,裡面是分了class1和class2兩個目錄,class1用來存放顏值比較高的球星圖片,如下圖:
class2存放顏值不那麼高的,這樣在訓練的時候就會做到區分,也構成了一個二分類場景,以下是class2的一張例圖:
在構建訓練資料的時候有三個注意事項:
圖片要儘可能清晰,要儘可能多
大小尺寸最好要相同
最好每個圖片只有一張人臉,而且佔據篇幅很大
講一下模型訓練
開啟face_train.py檔案,可以看到整個的訓練程式碼,可以執行這個檔案生成model,下面講一下其中一些關鍵函式的含義,請對照程式碼理解。
1.Model目錄設定
MODE ='folder' # or 'file', if you choose a plain text file (see above).
DATASET_PATH = 'trainDataSet' # the dataset file or root folder path.
# ImageParameters
N_CLASSES= 2 # CHANGE HERE, total number of classes
IMG_HEIGHT= 64 # CHANGE HERE, the image height to be resized to
IMG_WIDTH= 64 # CHANGE HERE, the image width to be resized to
CHANNELS= 3 # The 3 color channels, change to 1 if grayscale
MODE設定了檔案讀取方式,這裡使用folder模式
DATASET_PATH指定的是訓練資料資料夾
N_CLASSES分類的種類,這裡因為分美和醜,所以是2類
IMG_HEIGHT、IMG_WIDTH、CHANNELS:表明資料是64*64畫素的3元彩色圖片
2.讀資料
呼叫的是read_images函式,把訓練資料進行queue讀取,然後把圖片二進位制轉碼,並且將圖片的尺寸統一。生成X,Y對應的是兩個列表,分別對應每個圖片的二進位制格式和所屬的類別是美還是醜。
3.CNN網路
本案例使用的是4層CNN網路結構,對應的是conv_net,具體的CNN說明可以看我之前發的關於CNN的文章:深度學習CNN眼中的圖片是什麼樣的
4.訓練
現在已經生成了整個CNN網路,也有了資料流,接下來就是通過後向傳播訓練整個網路。
通過tf.global_variables_initializer()為訓練網路生成預設引數
然後通過reduce_mean、train.AdamOptimizer這些OP來做模型的引數訓練
train.Coordinator是構建資料流讀取執行緒,一定要加上,不然無法執行
利用tf.train.Saver()儲存整個模型的引數
以上就是模型訓練的一些關鍵的函式,在使用的時候只要clone專案,在根目錄下執行:
python face_train.py
即可生成模型資料夾model目錄:
ok~模型訓練就講完了,下次講如何通過這個模型對單個NBA球星的顏值打分,不知道大家看懂了沒有,此文先給想完整體驗一下深度學習做圖片分析的小白使用者,用的是最基礎的程式碼。最近跳票有點多,主要是加班太猛了~
相關文章
- 《深度學習案例精粹:基於TensorFlow與Keras》案例集用於深度學習訓練深度學習Keras
- 給別人的顏值打分,也能月入過萬?
- 深度學習有哪些好玩的案例?深度學習
- 深度學習及深度強化學習應用深度學習強化學習
- 【蜂口 | AI人工智慧】人臉顏值——龍鵬 深度學習與人臉影像應用連載(五)AI人工智慧深度學習
- 最“全”深度學習的完整硬體指南!深度學習
- 人臉識別用來測顏值(一)
- (1) Pytorch深度學習—數值處理PyTorch深度學習
- RxSwift 案例學習(一)Swift
- python深度學習(一)Python深度學習
- 深度學習很難?一文讀懂深度學習!深度學習
- 深度學習(啟用函式)深度學習函式
- 深度學習 筆記一深度學習筆記
- 深度學習一:深度前饋網路深度學習
- 深度學習 DEEP LEARNING 學習筆記(一)深度學習筆記
- 用python客戶價值分析案例一則Python
- 深度學習哪家強?用資料來一較高下吧深度學習
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- CSS樣式中顏色與顏色值的應用CSS
- 機器學習框架ML.NET學習筆記【7】人物圖片顏值判斷機器學習框架筆記
- 學習筆記【深度學習2】:AI、機器學習、表示學習、深度學習,第一次大衰退筆記深度學習AI機器學習
- 深度學習及深度強化學習研修深度學習強化學習
- 深度學習day1(第一章:什麼是深度學習?)深度學習
- 深度學習學習框架深度學習框架
- 深度學習在OC中的應用深度學習
- 深度學習的應用與實踐深度學習
- 深度學習之卷積模型應用深度學習卷積模型
- 用深度學習網路搭建一個聊天機器人(下篇)深度學習機器人
- 用深度學習網路搭建一個聊天機器人(上篇)深度學習機器人
- ####深度學習深度學習
- 深度學習深度學習
- 深度 學習
- 技術部落格丨我用深度學習做個視覺AI微型處理器!深度學習視覺AI
- 深度學習的一些思考深度學習
- 如何用 Python 和深度遷移學習做文字分類?Python遷移學習文字分類
- 深度學習:隨機值不可思議的有效性深度學習隨機
- 【強化學習篇】--強化學習案例詳解一強化學習
- 《深度學習入門:》學習基本第一章深度學習