京東實習總結

       研一上學期實在是太閒了,課少,自學能力又差,一學期下來感覺沒學到什麼東西。這學期索性就在京東找了個實習。到週五離職的時候,算了算,自己在京東呆了也有半年了。現在想想,這半年真是一晃就過了。半年前自己不知道該幹什麼、學什麼的小白,現在總算是找到了感興趣的方向。

      這半年一直在做圖像檢測,更準確的說應該是文字檢測。印象最深的事兒,想想有那麼兩件。

       之前對圖像處理丁點不懂,只能從最基礎的一點點開始學。第一個月基本都是在學習。這個項目文字檢測的方法主要有FCN和MSER兩種。Mentor的意思是想讓我負責FCN檢測文字這塊。所以就開始看FCN的論文,跑通原有的FCN程序,逐步的理解代碼。當然,所有的程序都是在Linux服務器上跑的,這讓從沒用過Linux的我確實頭疼了一段時間。當時的項目還是身份證識別。之前由於沒有人工的標註數據,所以就用CTPN的方法,標註了兩萬張身份證數據,訓練FCN。CTPN檢測橫行文字效果還不錯,但是檢測旋轉或者豎行文字奇差無比,而FCN就能克服文字行旋轉的問題,這也是爲什麼選FCN的主要原因。我接手的時候人工標註的數據也陸續到位了,要做的就是用人工標註的新數據重新訓練FCN檢測模型。用前任的寫網絡結構,用前任寫的代碼,直接根據標註數據製作的圖片標籤,直接用FCN模型預測出的結果。

       現在想想第一個月做的事情真的好簡單啊,真的沒什麼難度。可爲什麼自己剛開始學的時候那麼頭大、學的那麼鬱悶、還花費了那麼久的時間呢?我覺得主要還是自己的學習方式不太對:對自己要做的事情沒有明確的認識,在學習過程中沒能跟mentor時時交流。剛開始的時候,mentor告訴了自己大致要做什麼,大致的學習步驟。可是我卻沒能很快的對自己要做有個真正的明確認識。Mentor告訴我123,我就知道123,而不會對123之外的東西發問。當然mentor對某事表述123,這個123其實只能是大概的描述下,更詳細的信息就需要我自己去詢問他、自己去挖掘。因爲他本身已經十分了解這個項目了,沒講到的456可能對要做的事兒影響不太大,但是這些細節最終會影響自己對事情的理解。或者他潛意識的默認爲你能想到,可自己根本就沒往這邊思考。Mentor告訴我123,我知道123,這隻能對事情有個大致、淺顯的認識。自己對要做的事兒沒有明確認識的根本原因,在於自己沒有深入的理解和思考mentor所說的123.這是一個思考方式的錯誤。正確的思考方式應該是:mentor告訴你了123,應該想這個123是否有把事情清晰、明確的完整描述,如果是否的話,哪一部分不清晰,哪一部分不完整。其次思考mentor告訴你123是想讓你做什麼、完成什麼工作,把自己理解的要做的事兒複述給mentor,看是否理解對了,不對的話哪裏不對,及時糾正。再大致構思下做這件事情的步驟,可能會遇到哪些困難,將困難說出來。對自己是困難的事兒,對mentor可能只是小菜一碟,即使mentor不能直接解決,給出的建議或大致解決方向也很有參考價值,能大大節約自己私下搜索解決方案的時間。最後再思考mentor做這件事兒的原因是什麼,就是把自己要做的事兒放到一個更大的環境裏去理解。瞭解這件事兒在一個更大環境裏的位置,明白它產生的原因,知道這件事情的上下游。這樣一套思索的過程下來,纔算是對事情有了很好認識。認識明確了做的時候纔不會拖拖拉拉的。

       另一件是同步待標註數據的事兒。當時要做票據識別,沒有現成的訓練數據,所以跟業務方聯繫了,他們找了一批實習生用手機拍攝發票、火車票、打車票等票據。因爲當時的標註平臺功能還不是很完善,沒有上傳的功能,只能由我們研發這邊用程序上傳新拍的待標註圖片。上傳圖片這種小活,自然就落在我的頭上了。

我要做的就是把業務方幫忙拍攝的圖片上傳到雲空間。具體步驟就是業務方會把拍攝的圖片傳到內網雲盤中,然後發給我們組一個鏈接,我拿到鏈接後,從雲盤上把圖片下載下來,再用程序把圖片傳到雲空間。聽起來很簡單的樣子,沒有任何的複雜操作。最初我們和業務方是建了一個羣,有什麼要求都在羣裏說,他們拍攝完的圖片鏈接也發在羣裏。剛開始還好,後來拍攝的多了,羣裏的聊天也很頻繁,鏈接很容易淹沒在羣聊中。其次業務方發鏈接的時間很不規律,有時候一天兩次,有時候三四天的攢在一起發。而且有時,由於網絡的問題,一整個壓縮包下載到1G 多的時候會自動中斷,更坑的是這個沒下完的壓縮包還可以正常打開,雖然可以檢查大小看是不是有損的,但是文件一多,很容易就漏掉了。每次發的壓縮包裏文件夾命名很隨意,搞不清楚哪個是什麼票據。剛開始的幾天真的很煩,天天要寫程序,還要整理這些瑣碎的圖片。還有一次一不小心上傳重了幾百張,mentor語重心長的跟我說,小心點啊,標註一張發票成本要5塊錢呢……嗯,我這手一抖損失了好幾千。感覺那一個多星期好心情都全陷在圖片中了。也反思過爲什麼會犯錯,不過也只是認爲自己工作不夠細心,再用心點就不會犯這種簡單的錯誤,從始至終也都沒有懷疑是不是這個流程有什麼問題。後來跟mentor抱怨,說整理圖片太麻煩了。Mentor就說這麼做不行,併發郵件跟業務方溝通(注意哦,不是在羣裏溝通,是郵件):建議業務方實習生拍攝照片後文件夾按一定規則命名,發鏈接的方式由羣裏改爲郵件;郵件中每個壓縮包的拍攝日期,每個壓縮包包含哪幾種票據,每種票據多少張;郵件抄送羣裏所有人。其實這樣做並沒有增加多少業務方的工作量,但是卻大大減輕了我的工作。郵件的方式更有序,有跡可查;有序的命名規則,不需要我每次打開文件夾看了圖片之後才知道這個文件夾裏是什麼票據。每次的拍攝日期和每種票據的數據,便於我檢查下載的壓縮包是否有損,也便於統計業務方上傳的總數和我方的接收總數是否一致。其實這本是一件很小的事中的一個很小的改進,但是確這實我之前所不曾關注的。錯誤的根本原因是流程複雜、不規範。當發生錯誤時,我的第一反應是反思我自己:自己爲什麼會做錯,自己如何纔不能不做錯。但是很明顯這次的事情是一個協同配合才能完成的,是最開始流程就有問題。是,如果自己更細心、更認真,也能避免錯誤的發生,但是自己有付出更大的精力;如果改進流程的話,每個環節的人稍微多付出一點精力,就能使整個事情做的更好,這難道不是最好的解決方式嗎?這件事給我最大的啓示是,當出現問題時,是可以自我反思,但是還應該反思自我之外的流程、制度、環境是不是有問題,有些事情不是自己更仔細、更認真了就能有質的改進,需要參與的所有人協同並進纔會更好。

       這算是對我的思維方式改變最大的兩件小事了。

       技術方面,這半年算是圖像處理、深度學習簡單入門了。前期都是在學習、調模型參數,實際上並沒有產生多大質的提升。自己也在看物體檢測相關的論文,逐步瞭解檢測領域的基本算法和前沿的通用算法,大致對這一塊有了基本的認識。直到後來做營業執照識別的時候,才真正的稍有創新。營業執照文字多,特別是經營範圍一塊,文字周密,文字行間距小,預測的文字行基本都是粘連在一起。無論怎麼調模型參數,都不太能直接分開,只能通過對預測結果的處理把粘連的文字行分隔開。這一部分,自己費了一些功夫。再到發票檢測的時候,僅對預測結果進行處理又不可行了,這時開始在製作標籤這塊動心思,後來取得的效果還不錯。實習期間還研究了直線檢測和tiny-DNN框架,把前任固定大小的FCN檢測模型改成任意大小的。雖然做的一切最終使用效果還行,但總覺得沒有質的改變。質的改變是在於模型的改變或者模型結構的改變。自己現在會用FCN,也理解它的原理,卻沒有改進它的思路,也找不到更好的替代方法,這令我很不開心。究其原因,還是自己對物體檢測、文字檢測這塊瞭解的不夠深入。所以離職,回學校,好好研究下這塊。

       這半年,學到很多,可是發現自己不知道的更多。

       研二這學期有這麼幾個想法:

       1.    把Deep learning 的英文版刷完

       2.    研究文字檢測

       3.    研究文字識別。爲自己的文字檢測結果找個應用的地兒。

       4.    認真學習一下區塊練技術

       5.    修身養性。補充補充人文歷史的知識,多點人文關懷,讓這學期的生活不那麼枯燥。


 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章