1. 程式人生 > >表情識別(二)--基於CNN分類

表情識別(二)--基於CNN分類

說白了,就是個分類任務,但是純粹的CNN分類,只是對傳統方式的提升,本質思路沒有改變,效果也不是很明顯。

轉自:https://blog.csdn.net/walilk/article/details/58709611

前言

  [機器學習] 實驗筆記系列是以我在演算法研究中的實驗筆記資料為基礎加以整理推出的。該系列內容涉及常見的機器學習演算法理論以及常見的演算法應用,每篇部落格都會介紹實驗相關的資料庫,實驗方法,實驗結果,評價指標和相關技術目前的應用情況。 
  本文主要整理自筆者在表情識別(emotion recognition)研究上的實驗筆記資料,給出了表情識別常用的資料庫,論文資料,識別方法,評價指標,以及筆者的實驗筆記和實驗結果。 
  文章小節安排如下:
  1)表情識別的意義
  2)表情識別的應用
  3)常用的資料庫及比賽
  4)實驗-演算法說明
  5)實驗-效果展示
  6)結語 

一、表情識別的意義

1.1 什麼是表情?

  我們天天都在展示自己的表情並且看到其他人的表情,那麼表情到底是什麼?
  看看維基百科的定義: 
  面部表情是面部肌肉的一個或多個動作或狀態的結果。這些運動表達了個體對觀察者的情緒狀態。面部表情是非語言交際的一種形式。它是表達人類之間的社會資訊的主要手段,不過也發生在大多數其他哺乳動物和其他一些動物物種中。
  人類的面部表情至少有21種,除了常見的高興、吃驚、悲傷、憤怒、厭惡和恐懼6種,還有驚喜(高興+吃驚)、悲憤(悲傷+憤怒)等15種可被區分的複合表情。 

1.2 表情的意義?

  表情是人類及其他動物從身體外觀投射出的情緒指標,多數指面部肌肉及五官形成的狀態,如笑容、怒目等。也包括身體整體表達出的身體語言。


  
  參考:
  https://zh.wikipedia.org/wiki/%E9%9D%A2%E9%83%A8%E8%A1%A8%E6%83%85
  
  簡單來說,
  面部表情是人體(形體)語言的一部分,是一種生理及心理的反應,通常用於傳遞情感。 

1.3 表情的研究

  面部表情的研究始於 19 世紀,
  1872年,達爾文在他著名的論著《人類和動物的表情(The Expression of the Emotions in Animals and Man,1872)》中就闡述了人的面部表情和動物的面部表情之間的聯絡和區別。 
  1971年,Ekman 和 Friesen 研究了人類的 6 種基本表情 (即高興、悲傷、驚訝、恐懼、憤怒、厭惡 ) ,並系統地建立了人臉表情圖象庫,細緻的描述了每一種表情所對應的面部變化,包括眉毛、眼睛、眼瞼、嘴脣等等是如何變化的。 

表情的面部模式

  1978年,Suwa等人提出了在影象序列中進行面部表情自動分析。
  從20世紀90年代開始,由Mase和Pentland提出的光流法進行面部表情識別之後,自動面部表情識別進入了新的時期。 

1.4 微表情

  隨著研究的深入和應用的廣泛,人們逐漸開始研究一種更細微的表情:微表情。
  看維基百科的定義:
  微表情是一種人類在試圖隱藏某種情感時無意識做出的、短暫的面部表情。
  微表情的持續時間僅為 1/25 秒至 1/5 秒,表達的是一個人試圖壓抑與隱藏的真正情感。
  微表情的在自動謊言識別等眾多領域有巨大的潛在應用價值,比如那部著名的電視劇《Lie to Me》,卡爾·萊特曼博士就是利用“臉部動作編碼系統”(Facial Action Coding System)分析被觀察者的肢體語言和微表情,進而向他們的客戶(包括FBI等美國執法機構或聯邦機構)提供被觀測者是否撒謊等分析報告。 
  隨著科技進步和心理學的不斷髮展,對錶情的研究越來越豐富,應用也越來越廣泛。有興趣的讀者可以Google一下人類表情的研究歷史,以及在心理學用的應用。 

二、表情識別的應用

2.1 表情識別的應用場景

  面部表情識別技術主要的應用領域包括人機互動、智慧控制、安全、醫療、通訊等領域。筆者目前接觸過的兩個領域, 
  第一個是商場門店的顧客情緒分析。即通過攝像頭捕獲商場或門店的顧客畫面,分析其面部表情,再進一步解讀出客人的情緒資訊,從而分析顧客在商場的體驗滿意度。 
  第二個是人機互動。在筆者參與的一個教育輔助機器人專案中,負責視覺部分的研發工作,其中一項功能就是通過面部表情分析來判斷機器人眼前的使用者的情緒和心理。 

2.2 線上應用介面

微軟表情識別API

  Face++也提供了介面,並通過JSON返回識別結果,如下:
  人臉檢測 

Face++的人臉檢測API

三、常用的資料庫及比賽

3.1 表情識別常用資料庫

  1)The Japanese Female FacialExpression (JAFFE) Database
  釋出時間:1998
  詳細說明:
  The database contains 213 images of 7 facial expressions (6 basic facial expressions + 1 neutral) posed by 10 Japanese female models. Each image has been rated on 6 emotion adjectives by 60 Japanese subjects. The database was planned and assembled by Michael Lyons, Miyuki Kamachi, and Jiro Gyoba. We thank Reiko Kubota for her help as a research assistant. The photos were taken at the Psychology Department in Kyushu University.
  表情:sad, happy, angry, disgust,surprise, fear, neutral.
  地址:http://www.kasrl.org/jaffe.html 
  2)The Extended Cohn-Kanade Dataset(CK+) (這個資料庫有人有嗎?能共享下嗎?)
  釋出時間:2010
  詳細說明:
  The Cohn-Kanade AU-Coded Facial Expression Database is for research in automatic facial image analysis and synthesis and for perceptual studies. Cohn-Kanade is available in two versions and a third is in preparation.
  Version 1, the initial release, includes 486 sequences from 97 posers. Each sequence begins with a neutral expression and proceeds to a peak expression. The peak expression for each sequence in fully FACS (Ekman, Friesen, & Hager, 2002; Ekman & Friesen, 1979) coded and given an emotion label. The emotion label refers to what expression was requested rather than what may actually have been performed. For a full description of CK, see (Kanade, Cohn, & Tian, 2000).For validated emotion labels, please use version 2, CK+, as described below. 
  論文:P.Lucey, J. F. Cohn, T.Kanade, J. Saragih, Z. Ambadar, and I. Matthews, “TheExtended Cohn-KanadeDataset (CK+)_ A complete dataset for action unit andemotion-specifiedexpression,” inComputer Vision andPattern RecognitionWorkshops (CVPRW), 2010 IEEE Computer Society Conference on,2010, pp. 94-101.
  地址:http://www.pitt.edu/~emotion/ck-spread.htm 

  3)GEMEP-FERA 2011
  釋出時間:2011
  詳細說明:
  該庫是在 IEEE 的 Automatic Face & GestureRecognition and Workshops (FG 2011), 2011 IEEE International Conference on 上提供的一個數據庫,如果要獲取這個資料庫,需要簽署一個assignment,而且只有學術界可以免費使用。
  論文:M.F. Valstar, M. Mehu, B.Jiang, M. Pantic, and K. Scherer, “Meta-Analysis ofthe First FacialExpression Recognition Challenge,”Systems,Man, andCybernetics, Part B: Cybernetics, IEEE Transactions on, vol. 42,pp. 966-979,2012.
  地址:https://gemep-db.sspnet.eu/ 
  4)AFEW_4_0_EmotiW_2014
  詳細說明:
  該資料庫用作 ACM 2014 ICMI TheSecond Emotion Recognition In The Wild Challenge and Workshop。資料庫中提供原始的video clips,都擷取自一些電影,這些clips 都有明顯的表情,這個資料庫與前面的資料庫的不同之處在於,這些表情影象是 in the wild, not inthe lab。所以一個比較困難的地方在於人臉的檢測與提取。
  論文:A.Dhall, R. Goecke, J. Joshi,M. Wagner, and T. Gedeon, “Emotion RecognitionIn The Wild Challenge2013,” inProceedings of the 15thACM on Internationalconference on multimodal interaction, 2013, pp.509-516.
  地址:https://cs.anu.edu.au/few/emotiw2014.html  
  5)GENKI-4K
  詳細說明:
  The MPLab GENKI Database is an expanding database of images containing faces spanning a wide range of illumination conditions, geographical locations, personal identity, and ethnicity. Each subsequent release contains all images from the previous release, and so is guaranteed to be backward compatible. The database of images is divided into overlapping subsets, each with its own labels and descriptions. For example, the GENKI-4K subset contains 4000 face images labeled as either “smiling” or “non-smiling” by human coders. The pose of the faces is approximately frontal as determined by our automatic face detector. The GENKI-SZSL subset contains 3500 images containing faces. They are labeled for the face location and size. The images are available for public use.
  The current release of the GENKI database is GENKI-R2009a. It contains 7172 unique image files, which combine to form these subsets:
  GENKI-4K: 4000 images, containing expression and head-pose labels.
  GENKI-SZSL: 3500 images, containing face position and size labels.
  論文:WhitehillJ, Littlewort G, Fasel I, et al. Toward practical smile detection[J]. PatternAnalysis and Machine Intelligence, IEEE Transactions on, 2009, 31(11):2106-2111.
  地址:http://mplab.ucsd.edu/wordpress/?page_id=398   
  6)The UNBC-McMaster shoulder painexpression archive database
  論文:Lucy,P., Cohn, J. F., Prkachin, K. M., Solomon, P., & Matthrews, I. (2011).Painful data: The UNBC-McMaster Shoulder Pain Expression Archive Database. IEEEInternational Conference on Automatic Face and Gesture Recognition (FG2011).
  地址:http://www.pitt.edu/~emotion/um-spread.htm 

3.2 表情識別比賽

  1)The Third Emotion Recognition in the Wild Challenge
  這是ACM International Conference on Multimodal Interaction (ICMI 2015)舉辦的一個表情識別的競賽,每年都舉辦,感興趣的可以參加一下。

    2)Challenges in Representation Learning: Facial Expression Recognition Challenge
    https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge

四、實驗-演算法說明

4.1 表情資料庫

  Fer2013:Kaggle facial expression recognition challenge dataset
  詳細說明:
  The training set consists of 28,709 examples. The public test set used for the leaderboard consists of 3,589 examples. The final test set, which was used to determine the winner of the competition, consists of another 3,589 examples.
  表情分類:
  0=Angry, 1=Disgust, 2=Fear, 3=Happy, 4=Sad, 5=Surprise, 6=Neutral
  資料分佈:  
  ~/trainImg.zip     訓練集,28709
  ~/privateTestImg.zip  測試集,3589
  ~/publicTestImg.zip   測試集,3589
  
  資料分佈(訓練集):
  Angry:3995
  Disgust:436
  Fear:4097
  Happy:7215
  Sad:4830
  Surprise:3171
  Neutral:4965
  
  資料分佈(fer2013_privatetest.csv):
  Angry:3995
  Disgust:436
  Fear:4097
  Happy:7215
  Sad:4830
  Surprise:3171
  Neutral:4965
  
  關於fer2013資料檔案的使用:
  fer2013中的圖片以“標籤 影象向量”的形式儲存在.csv檔案中,即每一個列向量是一張圖片,第一個數字是標籤,剩下的數字是圖片資料(將圖片矩陣按列展開儲存的),可以利用matlab的reshape函式將圖片還原出來,影象尺寸是48x48大小。 

4.3 參考論文

  論文:
  Jeon, Jinwoo, et al. “A Real-time Facial Expression Recognizer using Deep Neural Network.” International Conference on Ubiquitous Information Management and Communication ACM, 2016:94.
  基本方法:
  採用深度神經網路演算法,其網路結構是在AlexNet上修改得到,減少了3個卷積層,示意如下: 

網路結構示意圖


  網路結構:
  

網路結構詳細描述

  實驗結果:
  The average accuracy for all categories was 70.74%. Accuracy for the happy and surprise category was higherthan the others, but accuracy for the fear category was poor. 
  混淆矩陣:
  

論文的混淆矩陣

4.3 實驗環境

  深度學習框架:caffe
  GPU卡:GeForce GTX TITAN Black 

4.4 訓練配置檔案(solver.prototxt)

  net: “./train_val_rferdnn.prototxt”
  test_iter: 1200
  test_interval: 1000
  base_lr: 0.001
  lr_policy: “fixed”
  display: 500
  max_iter: 100000
  momentum: 0.9
  weight_decay: 0.0005
  snapshot: 20000
  snapshot_prefix: “./models/rt_exprec”
  solver_mode: GPU 

4.5 實驗重現

  經過不斷的調整引數和資料處理方法,筆者最後基本復現了論文中的實驗結果,達到 70.2% 的準確率。 
  具體如下:
  average accuracy:
  70.2%
  confusion matrix:
  

我實驗復現的混淆矩陣

4.6 資料擴充套件方法 

  論文《A Real-time Facial Expression Recognizer using Deep Neural Network》中採用的是隨機crop出5個影象,說是可以 spatial invariance is induced。但文中的配圖看起來並不像是隨機取樣的,如下:
  

資料擴充套件方法

  這裡是直接按照四個角+中間進行取樣的,不過這也可以看做是隨機的一種吧。我在實驗中也是這麼取樣的,然後再mirror一下,這樣就將訓練資料量擴大了10倍。 

4.7 預測方法 

  1)規則擴充套件測試影象,即crop測試影象四個corner區域+一個center區域,再做映象(mirror),也就是每個原始樣本擴展出10個crop_image;
  2)得分融合:averaging method,即計算原始影象的10個擴充套件的預測結果的均值作為最終得分。 
  測試集:fer2013_privatetest.csv(我記得應該是這個,還有一個,還有一個fer2013_publictest.csv我忘記測試了沒有了(⊙﹏⊙)) 

4.8 模型下載 

  http://pan.baidu.com/s/1jI1kwya,這是私有連結,需要下載的朋友請私信我。我希望各位同學能夠自己琢磨演算法、訓練模型,這樣才能有進步,而不是直接拿來用。 

4.9 訓練過程 

  為了更好的展示實驗,這裡給出我當時的訓練輸出。不過我的硬盤裡只找到了一部分輸出和最終訓練結果,非常抱歉!

Iteration 0
I0421 08:09:17.860702 27484 solver.cpp:341] Iteration 0, Testing net (#0)
I0421 08:10:26.924216 27484 solver.cpp:409] Test net output #0: accuracy = 0.142594
I0421 08:10:26.924386 27484 solver.cpp:409] Test net output #1: loss = 1.94273 (* 1 = 1.94273 loss)
I0421 08:10:27.081188 27484 solver.cpp:237] Iteration 0, loss = 1.94555
I0421 08:10:27.081243 27484 solver.cpp:253] Train net output #0: loss = 1.94555 (* 1 = 1.94555 loss)
I0421 08:10:27.081269 27484 sgd_solver.cpp:106] Iteration 0, lr = 0.001

I0421 08:11:52.943675 27484 solver.cpp:237] Iteration 500, loss = 1.81799
I0421 08:11:52.943876 27484 solver.cpp:253] Train net output #0: loss = 1.81799 (* 1 = 1.81799 loss)
I0421 08:11:52.943889 27484 sgd_solver.cpp:106] Iteration 500, lr = 0.001
I0421 08:13:20.381688 27484 solver.cpp:237] Iteration 1000, loss = 1.73778
I0421 08:13:20.381914 27484 solver.cpp:253] Train net output #0: loss = 1.73778 (* 1 = 1.73778 loss)
I0421 08:13:20.381924 27484 sgd_solver.cpp:106] Iteration 1000, lr = 0.001

Iteration 5000
I0421 08:24:59.778053 27484 solver.cpp:341] Iteration 5000, Testing net (#0)
I0421 08:26:16.136390 27484 solver.cpp:409] Test net output #0: accuracy = 0.562633
I0421 08:26:16.136633 27484 solver.cpp:409] Test net output #1: loss = 1.15914 (* 1 = 1.15914 loss)
I0421 08:26:16.282253 27484 solver.cpp:237] Iteration 5000, loss = 1.20592
I0421 08:26:16.282282 27484 solver.cpp:253] Train net output #0: loss = 1.20592 (* 1 = 1.20592 loss)
I0421 08:26:16.282294 27484 sgd_solver.cpp:106] Iteration 5000, lr = 0.001
I0421 08:27:43.646217 27484 solver.cpp:237] Iteration 5500, loss = 1.18084
I0421 08:27:43.646412 27484 solver.cpp:253] Train net output #0: loss = 1.18084 (* 1 = 1.18084 loss)
I0421 08:27:43.646425 27484 sgd_solver.cpp:106] Iteration 5500, lr = 0.001

Iteration 10000
0421 08:40:47.484722 27484 solver.cpp:341] Iteration 10000, Testing net (#0)
I0421 08:42:00.271831 27484 solver.cpp:409] Test net output #0: accuracy = 0.665208
I0421 08:42:00.272018 27484 solver.cpp:409] Test net output #1: loss = 0.891976 (* 1 = 0.891976 loss)
I0421 08:42:00.417796 27484 solver.cpp:237] Iteration 10000, loss = 0.875526
I0421 08:42:00.417830 27484 solver.cpp:253] Train net output #0: loss = 0.875526 (* 1 = 0.875526 loss)
I0421 08:42:00.417840 27484 sgd_solver.cpp:106] Iteration 10000, lr = 0.001

Iteration 15000
I0421 08:56:28.140434 27484 solver.cpp:341] Iteration 15000, Testing net (#0)
I0421 08:57:43.430665 27484 solver.cpp:409] Test net output #0: accuracy = 0.780628
I0421 08:57:43.430855 27484 solver.cpp:409] Test net output #1: loss = 0.612954 (* 1 = 0.612954 loss)
I0421 08:57:43.581197 27484 solver.cpp:237] Iteration 15000, loss = 0.656312
I0421 08:57:43.581219 27484 solver.cpp:253] Train net output #0: loss = 0.656312 (* 1 = 0.656312 loss)
I0421 08:57:43.581230 27484 sgd_solver.cpp:106] Iteration 15000, lr = 0.001

Iteration 20000
I0421 09:12:06.863005 27484 solver.cpp:341] Iteration 20000, Testing net (#0)
I0421 09:13:22.342000 27484 solver.cpp:409] Test net output #0: accuracy = 0.865189
I0421 09:13:22.342190 27484 solver.cpp:409] Test net output #1: loss = 0.389436 (* 1 = 0.389436 loss)
I0421 09:13:22.488214 27484 solver.cpp:237] Iteration 20000, loss = 0.539341
I0421 09:13:22.488237 27484 solver.cpp:253] Train net output #0: loss = 0.539341 (* 1 = 0.539341 loss)
I0421 09:13:22.488248 27484 sgd_solver.cpp:106] Iteration 20000, lr = 0.001

Iteration 25000
I0421 09:27:55.352700 27484 solver.cpp:341] Iteration 25000, Testing net (#0)
I0421 09:29:10.297168 27484 solver.cpp:409] Test net output #0: accuracy = 0.914303
I0421 09:29:10.297345 27484 solver.cpp:409] Test net output #1: loss = 0.256905 (* 1 = 0.256905 loss)
I0421 09:29:10.442956 27484 solver.cpp:237] Iteration 25000, loss = 0.365221
I0421 09:29:10.442978 27484 solver.cpp:253] Train net output #0: loss = 0.365221 (* 1 = 0.365221 loss)
I0421 09:29:10.442988 27484 sgd_solver.cpp:106] Iteration 25000, lr = 0.001

Iteration 100000
accuracy = 0.996794
loss = 0.010607 (* 1 = 0.010607 loss) 

五、實驗-效果展示

  基於訓練好的模型做了一些測試,效果如下:
  

示例1     示例2

示例3     示例4

示例5     示例6

示例7

示例8

六、結語

  現在人臉分析技術火遍大江南北,Microsoft,Face++,Linkface等都提供了表情識別技術,但從該技術的難度和現階段的準確度來看,表情識別還只能用於那些對準確率要求不高的場景下,做一些輔助分析的工作。 
  那麼表情識別技術是否就不那麼重要了呢???不是!如同筆者在文章開頭所說,表情是人內心的直觀反應,因此表情識別技術是人機互動技術的重要元件。未來機器人想要更懂人類更好的跟人類互動,那麼表情識別技術是必不可少的。 

參考

參考論文:
Jeon, Jinwoo, et al. “A Real-time Facial Expression Recognizer using Deep Neural Network.” International Conference on Ubiquitous Information Management and Communication ACM, 2016:94.

其實FER2013測試級有很多標籤錯誤,能做到70%不錯了,看2013比賽的排名:

之後就沒有更新了。

2013-fer2013第一名71.2%:損失函式為L2-SVM的表情分類《Deep Learning using Linear Support Vector Machines》

  • 將損失函式Softmax改為L2-SVM,相比L1-SVM,它具有可微,並且對誤分類有更大的懲罰。
  • SVM約束函式如右公式4。改寫為無約束優化問題如公式5,即為L1-SVM的最初形式。公式6為L2-SVM的形式。

  • L2-svm通過 argtmax(wTx)t(tn∈{−1,+1})來判斷x的類別。
  • 在反向傳播需要對其求導。如公式10為L1-SVM的,它是不可微。而公式11是L2-SVM的且是可微的。 且L2-SVM比L1-SVM效果好些。
  • Softmax和L2-SVM在FER2013中的效果如圖:

相關推薦

表情識別--基於CNN分類

說白了,就是個分類任務,但是純粹的CNN分類,只是對傳統方式的提升,本質思路沒有改變,效果也不是很明顯。 轉自:https://blog.csdn.net/walilk/article/details/58709611 前言   [機器學習] 實驗筆記系列是以我在演算法

人臉識別表情識別--MBP+CNN

轉自:https://blog.csdn.net/app_12062011/article/details/80482048 EmotiW 2015 LBP特徵輸入到CNN模型中,並經過特殊對映,得到高於基線15%的效能提升。 作者採用了: 4個cnn模型VGG S,VGG M-2

人工智慧小例子-基於keras+openCV的人臉識別

目前keras是對人工智慧來說,入門比較好的一款中介軟體,遮蔽了很多引數配置和實現細節,直接一層層進行網路搭建就可以。最近一直在學習相關知識,但是一直也沒有啥實用的功能出現,在網上有個例子,一下子就吸引住了我,使用keras迅速搭建一套人工智慧系統,輸入自己的照片和他人照片,

人臉識別——訓練分類

上一篇簡單整理了下人臉識別的相關基礎知識,這一篇將著重介紹利用pencv(2.4.9)已有的模型進行分類器訓練。 一、關於ORL人臉資料庫  ORL是一個40個人,每人採取10張人臉頭像構成的一

基於tensorflow的MNIST手寫數字識別--入門篇

一、本文的意義       因為谷歌官方其實已經寫了MNIST入門和深入兩篇教程了,那我寫這些文章又是為什麼呢,只是抄襲?那倒並不是,更準確的說應該是筆記吧,然後用更通俗的語言來解釋,並且補充

【深度學習】基於caffe的表情識別:在Intel AI DevCloud上訓練模型

一、註冊申請Intel AI DevCloud   2.填寫註冊資訊:   3.Submit提交,提交後會出現下面的介面:   4.說明已經申請成功了,大概等2個工作日左右,會收到一封郵件,郵件長這樣:   第一個紅框內的連結是使用教程,教你怎麼連線到dev

基於HMM的語音識別

今天進入特徵提取部分,原文的2.1部分,進入正題。特徵提取階段試圖提供語音波形的緊湊形式(這裡我理解不是很好,往下看)。這種形式最大限度的減少單詞間的區分資訊的丟失,並且與聲學模型的分佈假設進行良好的匹配。比如,如果對角協方差高斯分佈用於狀態輸出分佈,那麼這些特徵應該被設計為

兩種開源聊天機器人的性能測試——基於tensorflow的chatbot

drive 找到 環境配置 gpu版本 hat dict 終端 開源 fontsize http://blog.csdn.net/hfutdog/article/details/78155676 開源項目鏈接:https://github.com/dennybritz/c

linux web服務器 基於域名,ip,端口的web虛擬主機

田峰 IT linux linux web服務器(二) 1 :搭建基於域名的虛擬主機 首先為兩個網站搭建dns服務器,並新建區域,分別為:www.goole.co

Mybatis基於註解的入門實例

調用 getc val void pass 搭建 for erb date 前言 上一篇簡單的介紹了Mybatis的概念和基於XML來實現數據庫的CRUD,這篇給大家實現基於註解的CRUD。 一、初始搭建 在基於註解當中前四步和上一篇基於XML是一樣的,分別是: 1)創建數

cs231n學習筆記圖像分類

根據 stanford nbsp 學習筆記 cif 線性分類 這一 差異 測距 圖像分類可說是計算機視覺中的基礎任務同時也是核心任務,做好分類可為檢測,分割等高階任務打好基礎。 本節課主要講了兩個內容,K近鄰和線性分類器,都是以貓的分類為例。 一.  K近鄰 以貓的分

NLPCC2013中文微博細粒度情感識別

token special 環境 美化 lin pil real param annotate 偷懶若幹天後回歸。。在上一篇中我們得到了NLPCC2013的中文微博數據,將其按照8:1:1的比例分成了訓練集,驗證集和測試集。下一步就是對數據進行預處理以及embedding。

基於SSM+Redis+Nginx+FastDFS的部落格網站

上一篇簡單介紹了該網站的所用的框架、技術之類,這篇就開始講搭建過程。本篇為配置檔案。 其中redis和fastdfs的後續用到時再寫。 一、搭建基礎框架SSM之配置檔案 maven工程的pom.xml,基

Spring MVC基於標註的MVC

1.基於標註的Spring MVC 1.1 建立一個專案匯入jar包(ioc aop mvc) 拷貝容器對應的配置檔案到src下 在WEB-INF建立一個login.jsp 1.2 在web.xml 配置一個DispatcherServlet 並且使用 初始化引數 contextConfigLocati

MySQL技巧——無限級分類表設計

無限級分類表的設計(掌握'自身連線') 類似圖書這種,會有很多種分類,而且在現實生活中這種分類會無限的往下分,所以不可能每有一個分類就建立一個分類表。應該使用下面這種語句    DROP TABLE IF EXISTS tdb_goods_types; CREATE TABLE tdb_goods

SpringSecurity基於資料庫使用者登入

一、使用SpringSecurity提用的User物件 1. 新建一個MyUserService類 @Component public class MyUserService implements UserDetailsService { @Override public

Java程式設計師從笨鳥到菜鳥之三十大話設計模式設計模式分類和三種工廠模式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android-谷歌語音識別之離線識別

1/上一篇部落格寫了安卓呼叫本地自帶的谷歌語音識別,但是需要聯網並且在大陸需要翻牆,這文章來講下如何離線進行谷歌的語音識別。 2/因為已經有了上一篇的demo和程式碼,程式碼方面就不多說了。 3/用谷歌離線識別需要下載谷歌離線包,所以一樣需要帶谷歌服務的機子,比如三星。

python分散式事務方案基於訊息最終一致性

python分散式事務方案(二)基於訊息最終一致性 上一章採用的是tcc方案,但是在進行批量操作時,比如說幾百臺主機一起分配策略時,會執行很長時間,這時體驗比較差。 由於zabbix隱藏域後臺,而這個慢主要是集中在呼叫zabbix介面,這裡我們就基於訊息最終一致性來進行優化 訊息一致性方案是通過

計算機視覺與模式識別色彩遷移

色彩遷移 這一個學期任務量比較大,主要是計算機視覺這門課和計算機圖形學任務量有點大,所以暑假才有時間更新這系列部落格,這系列部落格主要是利用CImg這個庫來實現一些演算法,而不是應用一些演算法。 下面開始本期的介紹! 1.什麼是色彩遷移? 對於搞CV(Compu