人臉情緒識別 第一次迭代總結
思考總結
設想和目標
- 咱們的軟件要解決什麼問題?是否認義得很清楚?是否對典型用戶和典型場景有清晰的描述?
- 咱們軟件很明確的定義爲,在給定圖片或者必定的圖片序列(包括視頻)的狀況下,對輸入結果的情緒種類進行斷定並給出各類情緒的指望值。
- 典型用戶:算法研究人員,心理/教育從業人員,安保人員等
- 典型場景:教室課堂等
- 咱們達到目標了麼(原計劃的功能作到了幾個? 按照原計劃交付時間交付了麼? 原計劃達到的用戶數量達到了麼?
- 原計劃功能:經過圖片、視頻獲取情緒信息表/曲線圖。
- 實現狀況:
- 功能已能實現,正確率仍然須要提升。在同數據集的測試上能達到90%正確率,在跨數據集的測試上能達到50%左右正確率,在隨機圖片的測試正確率會稍微更低一點。
- 交付和用戶:軟件功能基本實現,已作好用戶界面,能夠基本知足用戶使用須要。
- 用戶量, 用戶對重要功能的接受程度和咱們事先的預想一致麼? 咱們離目標更近了麼?
- 暫未投入使用,用戶實際接受成度未知
- 總體算法基本實現,固然離目標更近了
- 有什麼經驗教訓? 若是歷史重來一遍, 咱們會作什麼改進?
- 從最開始就應該分模塊分功能寫,而不是先用很亂的、面向過程的結構總體實現一下試試看,再換成面向對象的思路。
計劃
- 是否有充足的時間來作計劃?
- 團隊在計劃階段是如何解決同事們對於計劃的不一樣意見的?
- 你原計劃的工做是否最後都作完了? 若是有沒作完的,爲何?
- 團隊總體項目推動很順利,alpha版本的計劃都悉數完成了
- 有沒有發現你作了一些過後看來不必或沒多大價值的事?
- 最開始就應該按一個個類一個個模塊寫好註釋規規矩矩地寫,否則到最後再次分塊再次寫註釋會感到很是繁瑣。
- 是否每一項任務都有清楚定義和衡量的交付件?
- 沒有,你們遵循的代碼規範等都不大統一,須要通過修改後才能合併。
- 是否項目的整個過程都按照計劃進行,項目出了什麼意外?有什麼風險是當時沒有估計到的,爲何沒有估計到?
- 主要意外是到驗收前一兩個星期在測試數據上的正確率仍然至關低(15%左右)
- 由於沒有對卷積神經網絡模型有一個特別系統的瞭解,只用其在MNIST數據集上訓練過,沒有遷移到其餘任意的圖片上,從而致使不少地方沒考慮到
- 在計劃中有沒有留下緩衝區,緩衝區有做用麼?
- 有緩衝區:即便算法方面正確率較低,其餘部分仍然在有條不紊地進行,仍然能有能夠交付的軟件成品。算法優化能夠留到第二次迭代。
- 有用。
- 未來的計劃會作什麼修改?(例如:緩衝區的定義,加班)
- 咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
- 制定計劃仍是至關必要的,可讓你知道你這一週的任務有哪些,又須要去學習哪些知識,要寫出能完成什麼功能的代碼。
資源
- 咱們有足夠的資源來完成各項任務麼?
- 有,時間不算緊張,其他學術問題能夠看國外論文和請教指導老師。
- 各項任務所需的時間和其餘資源是如何估計的,精度如何?
- 測試的時間,人力和軟件/硬件資源是否足夠? 對於那些不須要編程的資源 (美工設計/文案)是否低估難度?
- 人力資源足夠,硬件雖然不太好(NVIDIA 1050的顯卡),但也能在GPU版的Tensorflow上較快地進行訓練。
- 此項目沒有太多UI界面,並不須要不少的美工設計和文案
- 你有沒有感到你作的事情可讓別人來作(更有效率)?
- 有什麼經驗教訓? 若是歷史重來一遍, 咱們會作什麼改進?
- 遇到困難上仍是要多利用手上資源,多去找老師而不是本身埋頭苦幹。
變動管理
- 每一個相關的員工都及時知道了變動的消息?
- 咱們採用了什麼辦法決定「推遲」和「必須實現」的功能?
- 顯然最關鍵的神經網絡設計與訓練等功能是必須實現的,以後的UI設計,進一步提升正確率推遲一下也是能夠的
- 項目的出口條件(Exit Criteria – 什麼叫「作好了」)有清晰的定義麼?
- 對於可能的變動是否能制定應急計劃?
- 沒有提早制定應急計劃,但有變動時會及時作出反應和調整
- 員工是否可以有效地處理意料以外的工做請求?
- 咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
設計/實現
- 設計工做在何時,由誰來完成的?是合適的時間,合適的人麼?
- 設計工做有沒有碰到模棱兩可的狀況,團隊是如何解決的?
- 團隊是否運用單元測試(unit test),測試驅動的開發(TDD)、UML, 或者其餘工具來幫助設計和實現?這些工具備效麼?
- 我寫的每個類或模塊都附上了主函數測試類的功能,這對於測試類或模塊的功能有着至關重要的做用
- 比較項目開始的 UML 文檔和如今的狀態有什麼區別?這些區別如何產生的?是否要更新 UML 文檔?
- 什麼功能產生的Bug最多,爲何?在發佈以後發現了什麼重要的bug? 爲何咱們在設計/開發的時候沒有想到這些狀況?
- 神經網絡訓練部分Bug最多,由於對輸入圖片數據的預處理(如維度)等出現了一些疏忽
- 尚未發佈
- 一開始只覺得是神經網絡設計的問題形成的Bug,而沒從數據預處理的方向去想
- 代碼複審(Code Review)是如何進行的,是否嚴格執行了代碼規範?
測試/發佈
- 團隊是否有一個測試計劃?爲何沒有?
- 暫時沒有詳細的測試計劃
- 由於該項目屬於那種須要一邊修改代碼(調參)一邊測試的項目
- 是否進行了正式的驗收測試?
- 團隊是否有測試工具來幫助測試?
- 團隊是如何測量並跟蹤軟件的效能的?從軟件實際運行的結果來看,這些測試工做有用麼?應該有哪些改進?
- 在發佈的過程當中發現了哪些意外問題?
- 咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
團隊的角色,管理,合做
- 團隊的每一個角色是如何肯定的,是否是人盡其才?
- 團隊角色肯定,以尊重我的意願爲首要因素,並考慮時間精力等方面
- 團隊成員之間有互相幫助麼?
- 當出現項目管理、合做方面的問題時,團隊成員如何解決問題?
總結
- 你以爲團隊目前的狀態屬於 CMM/CMMI 中的哪一個檔次?
- 你以爲團隊目前處於 萌芽/磨合/規範/創造 階段的哪個階段?
- 你以爲團隊在這個里程碑相比前一個里程碑有什麼改進?
- 你以爲目前最須要改進的一個方面是什麼?
歡迎關注本站公眾號,獲取更多信息