<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 教程詳解:用卷積神經(jīng)網(wǎng)絡(luò )檢測臉部關(guān)鍵點(diǎn)(一)

教程詳解:用卷積神經(jīng)網(wǎng)絡(luò )檢測臉部關(guān)鍵點(diǎn)(一)

作者: 時(shí)間:2018-08-03 來(lái)源:網(wǎng)絡(luò ) 收藏

這是一個(gè)手把手教你學(xué)習深度學(xué)校的教程。一步一步,我們將要嘗試去解決Kaggle challenge中的臉部關(guān)鍵點(diǎn)的檢測問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/201808/385311.htm

這份教程介紹了Lasagne,一個(gè)比較新的基于Python和Theano的神經(jīng)庫。我們將用Lasagne去模擬一系列的神經(jīng)結構,討論一下數據增強(data augmentaTIon)、流失(dropout)、結合動(dòng)量(momentum)和預先訓練(pre-training)。這里有很多方法可以將我們的結果改善不少。

我假設諸位已經(jīng)知道了一些關(guān)于神經(jīng)的只是。所以我們就不介紹神經(jīng)網(wǎng)絡(luò )的背景知識了。這里也提供一些好的介紹神經(jīng)網(wǎng)絡(luò )的書(shū)籍和視頻,如Neural Networks and Deep Learning online book。Alec Radford的演講Deep Learning with Python’s Theano library也是一個(gè)快速介紹的好例子。以及ConvNetJS Browser Demos

預先準備

如果你只需要看懂的話(huà),則不需要自己寫(xiě)一個(gè)代碼然后去執行。這里提供一些安裝的教程給那些配置好CUDA的并且想要運行試驗的那些人。

我假設你們已經(jīng)安裝了CUDA toolkit, Python 2.7.x, numpy, pandas, matplotlib, 和scikit-learn。安裝剩下的依賴(lài)包,比如Lasagne和Theano都可以運行下面的指令

pip install -r https://raw.githubusercontent.com/dnouri/kfkd-tutorial/master/requiremen...

注意,為了簡(jiǎn)潔起見(jiàn),我沒(méi)有在命令中創(chuàng )建虛擬環(huán)境,但是你需要的。

譯者:我是在windows10上面配置這個(gè)環(huán)境的,安裝anaconda(再用此環(huán)境安裝依賴(lài)包)、VS2013(不推薦2015)、CUDA工具即可。

如果一切都順利的話(huà),你將會(huì )在你的虛擬環(huán)境下的src/lasagne/examples/目錄中找到mnist.py并運行MNIST例子。這是一個(gè)對于神經(jīng)網(wǎng)絡(luò )的“Hello world”程序。數據中有十個(gè)分類(lèi),分別是0~9的數字,輸入時(shí)28TImes;28的手寫(xiě)數字圖片。

cd src/lasagne/examples/

python mnist.py

此命令將在三十秒左右后開(kāi)始打印輸出。 這需要一段時(shí)間的原因是,Lasagne使用Theano做重型起重; Theano反過(guò)來(lái)是一個(gè)“優(yōu)化元編程代碼生成面向數組的優(yōu)化Python數學(xué)編譯器”,它將生成需要在訓練發(fā)生前編譯的C代碼。 幸運的是,我們組需要在第一次運行時(shí)支付這個(gè)開(kāi)銷(xiāo)的價(jià)格。

譯者:如果沒(méi)有配置,用的是的話(huà),應該是不用這么久的編譯時(shí)間,但是執行時(shí)間有一些長(cháng)。如果用GPU,在第一次跑一些程序的時(shí)候,會(huì )有提示正在編譯的內容。

當訓練開(kāi)始的時(shí)候,你會(huì )看到

Epoch 1 of 500

training loss: 1.352731

validaTIon loss: 0.466565

validaTIon accuracy: 87.70 %

Epoch 2 of 500

training loss: 0.591704

validation loss: 0.326680

validation accuracy: 90.64 %

Epoch 3 of 500

training loss: 0.464022

validation loss: 0.275699

validation accuracy: 91.98 %

如果你讓訓練運行足夠長(cháng),你會(huì )注意到,在大約75代之后,它將達到大約98%的測試精度。

如果你用的是GPU,你想要讓Theano去使用它,你要在用戶(hù)的主文件夾下面創(chuàng )建一個(gè).theanorc文件。你需要根據自己安裝環(huán)境以及自己操作系統的配置使用不同的配置信息:

[global]

floatX = float32

device = gpu0

[lib]

cnmem = 1

譯者:這是我的配置文件。

[cuba]

root = C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0

[global]

openmp = False

device = gpu

floatX = float32

allow_input_downcast = True

[nvcc]

fastmath = True

flags = -IC:Anaconda2libs

compiler_bindir = C:Program Files (x86)Microsoft Visual Studio 12.0VCbin

base_compiledir = path_to_a_directory_without_such_characters

[blas]

ldflags =

[gcc]

cxxflags = -IC:Anaconda2MinGW

數據

面部關(guān)鍵點(diǎn)檢測的訓練數據集包括7049(96x96)個(gè)灰度圖像。 對于每個(gè)圖像,我們應該學(xué)習找到15個(gè)關(guān)鍵點(diǎn)的正確位置(x和y坐標),例如

left_eye_center

right_eye_outer_corner

mouth_center_bottom_lip

一個(gè)臉部標記出三個(gè)關(guān)鍵點(diǎn)的例子。

數據集的一個(gè)有趣的變化是,對于一些關(guān)鍵點(diǎn),我們只有大約2,000個(gè)標簽,而其他關(guān)鍵點(diǎn)有7,000多個(gè)標簽可用于訓練。

讓我們編寫(xiě)一些Python代碼,從所提供的CSV文件加載數據。 我們將編寫(xiě)一個(gè)可以加載訓練和測試數據的函數。 這兩個(gè)數據集的區別在于測試數據不包含目標值; 這是預測這些問(wèn)題的目標。 這里是我們的load()函數:

# file kfkd.py

import os

import numpy as np

from pandas.io.parsers import read_csv

from sklearn.utils import shuffle

FTRAIN = '~/data/kaggle-facial-keypoint-detection/training.csv'

FTEST = '~/data/kaggle-facial-keypoint-detection/test.csv'

def load(test=False, cols=None):

Loads data from FTEST if *test* is True, otherwise from FTRAIN.

Pass a list of *cols* if you're only interested in a subset of the

target columns.

fname = FTEST if test else FTRAIN

df = read_csv(os.path.expanduser(fname)) # load pandas dataframe

# The Image column has pixel values separated by space; convert

# the values to numpy arrays:

df['Image'] = df['Image'].apply(lambda im: np.fromstring(im, sep=' '))

if cols: # get a subset of columns

df = df[list(cols) + ['Image']]

print(df.count()) # prints the number of values for each column

df = df.dropna() # drop all rows that have missing values in them


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>