1. 程式人生 > >CVer想知道的都在這裡了,一起分析下《中國計算機視覺人才調研報告》吧!

CVer想知道的都在這裡了,一起分析下《中國計算機視覺人才調研報告》吧!

最近閒來無事,老潘以一名普通演算法工程師的角度,結合自身以及周圍人的情況,**理性也感性地**分析一下極市平臺前些天釋出的**2020年度中國計算機視覺人才調研報告**。 ![計算機人才年度報表](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225015761-1348733760.png) 以下的“計算機視覺人才”簡稱“人才”,感覺說**人才**有點怪怪的感覺?自己也算人才麼?老潘只不過是一個普普通通的演算法工程師罷了(逃)。 ![一看就是知識分子](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225016033-1121745639.jpg) 這個報告一共分為幾個方面,用大白話講一下就是: - 計算機人才哪個城市最多,哪個專業最多、都喜歡發些什麼論文、喜歡什麼程式語言、深度學習框架、工作地點等等 - 作為計算機人才,我們應該學習什麼才能不被社會所淘汰,如何提升自己 - 計算機人才也會有煩惱,不論是在學校還是在公司... ..都是你想知道的。 再次宣告,該報告是由**極市平臺、中國影象圖形學學會以及Deloitte**聯合釋出。以下圖片內容來源於報告,未做任何修改。一共34頁的報告PDF,感興趣的,公眾號回覆“000”即可。 哎呀,廢話不多說,開始分析(吐槽)吧。 # 第一節 人才現狀? ![調研人才分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225016520-214817482.png) 先看下人才分佈? 調研人才分佈中碩士和本科佔比`80%`挺正常,碩士做演算法**工程**的更多,博士做演算法**研究**的更多。一般在網際網路公司中,大部分都是碩士做演算法工程師,來的實習生也都是碩士研究生,當然也有少許的本科生,**特別優秀**的本科生應該也是可以做演算法工程師這個崗位的。 研究生相比本科生的優勢可能是: - 學位,以及多學了幾年知識? - 但最重要的是在研究生階段你有實驗室,實驗室如果**老師資源夠好經費足夠**,是可以做一些其他人沒有條件去做的事情。 回想起當年本科生的時候,大家都是湊錢參加比賽,所有裝置都是隊員們慘兮兮地從生活費中一點一點扣,買個**主控板**都要精打細算。拿不到好獎項(獎金)的時候也常常**入不敷出**。 不過那會大家都很開心,畢竟是真正的熱愛,當年熬夜通宵的日子現在也一去不復返了。 本科生與研究生做專案的區別還有一個:本科生沒有約束,作比賽更多的是憑著興趣,是**主動**;研究生有導師管著,大部分學生做專案是導師要求,是**被動**。態度決定一切,興趣才是不斷學習的動力。 哦對了,報告中一句話值得推敲:"*在具備相關經驗的群體中,其演算法經驗略多於工程經驗*"。 好好打工程基礎吧! ## 看一下地域分佈 ![人才城市分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225016968-1946726780.png) 來自北京的人才無需質疑數量肯定是第一,原因很簡單,北京相應的人工智慧企業最多,**網際網路氛圍**最好,大家當然都來北京了。接下來是深圳,深圳是創業之都,機具創業熱情,硬體公司也多一些,機器人和**AI**結合的企業一抓一大把。最出名的算是大疆了。 好的企業都被一線二線城市瓜分了,那其他地方呢.. 老潘也面臨著殘酷的事實:我這個專業這個技術方向,回老家實在找不到工作啊。 ![難受想哭](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225017326-698697019.png) ## 專業分佈 再看一下專業分佈。 ![人才專業分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225017607-578374741.png) 學計算機專業的就是好呀,計算機**相關專業**在找工作上是有一定的優勢,畢竟人家底子好一些。但是大家不要灰心,現在是自學的時代,網上好資源一搜一大把,只要你肯下功夫學習,不一定比專業搞計算機的差。 **專業**(相差太大的專業,例如田園設計等,這個難度可能會大些)和你在上學階段**學什麼**關係並不是很大,關鍵還是看自己。 趁著在學校,多找些組織,找些資料,趕緊學習吧! ![我愛學習](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225017908-1402361576.png) ## 研究領域 果然目標檢測的人最多。 目標檢測最好入門,資料最多,變種最多,程式碼最多...特別適合充當畢業生的畢設專案選題。不過如果是找演算法開發相關的工作,只會目標檢測是**遠遠不夠的**。 ![專業研究領域](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225018361-1470068245.png) 老潘在前年找工作的時候主打的也是**目標檢測**,當時在實習時候已經聊好了一個公司leader,答應說秋招的時候會再面試一下(就過)。但是秋招的時候那位leader不好意思地跟我說,他們公司**目標檢測相關任務開發**這一塊的人已經比較多了,他們更想要招有3D生成或者GAN專案經驗的求職者。總而言之就是一句話: 你很優秀,但是不適合我們。 ![看戲](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225018606-36535455.jpg) 不過不同公司的需求是不一樣的,目標檢測這個方向對於大部分公司來說,仍然是需求量比較大的。 時代在發展,AI也在不停進步,你要問我現在CV領域哪兒還不卷? 我也不知道啊~ ## 發表論文分佈 發論文最好發的是什麼話題?當然也是**目標檢測**了。 ![發表論文情況](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225018919-631992247.png) 不得不吐槽一下,不管是anchor-base還是anchor-free的檢測框架,改一下腦袋(head)改一下頸部(neck)改一下身體(backbone)就可以水一篇論文了。什麼?不會改?那就改一下資料集吧~同樣的框架,換個場景,又是一條好漢。 ## 喜歡的程式語言 ![程式語言分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225019334-699995446.png) 還是老潘之前說過的,AI行業最流行的語言就是**Python和C++**。 不論是最火的深度學習框架**Pytorch和Tensorflow**,還是比較流行的模型加速推理框架**TensorRT和TVM**。都會提供Python介面來實現與使用者的互動,提供API供使用者使用,但實際核心程式碼都是使用C++編寫的。原因很簡單,為了保證效能以及方便地使用各種加速庫(MKL、cuDNN)。另外,C++中的各種特性也比較適合團隊協作開發大型專案,感興趣的可以閱讀相關原始碼,親自感受下其牛逼之處。 對Pytorch原始碼感興趣的可以看: - [一個Tensor的生命歷程(Pytorch版)-上篇](https://mp.weixin.qq.com/s?__biz=Mzg3ODU2MzY5MA==&mid=2247484917&idx=2&sn=45a9af04266627e30b9da73a0fbec434&chksm=cf109df0f86714e6517ae70e33849a829e9379df3fe3a8796abca5d6663d74a796e1a04fda5b&token=728670765&lang=zh_CN#rd) - [一個Tensor的生命歷程(Pytorch版)-下篇](https://mp.weixin.qq.com/s?__biz=Mzg3ODU2MzY5MA==&mid=2247484926&idx=1&sn=30d227825335a797f2b8db47c52c6109&chksm=cf109dfbf86714edc63c48764785671287557c859a78e79c48aa107a3b63d7a48fdd51eea9c7&token=728670765&lang=zh_CN#rd) 還有很多這裡暫時不介紹了,有興趣可以關注老潘,時不時會分析一哈框架。 ## 喜歡的深度學習框架 以下內容很真實..國產的深度學習框架使用率7%不到(今年應該超過7%了,paddlepaddle很好用),還是Pytorch和Tensorflow的天下。 PS:感覺Darknet應該是靠**yolov3**火起來的,而且後繼有人不斷更新...純C語言開箱即用對工業界簡直不要太好。Caffe2挺可惜。MXNet小而美。 ![深度學習框架分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225019880-564517390.png) 老潘理性分析一哈。對於學生來說,框架的**易用性**和**社群完善度**很重要(說白了就是遇到不會的問題,百度的時候資料多不多)。還有剛開始入門的小白,會聽別人說什麼什麼好什麼好,跟風使用;但對於公司來說,基本就是**根據實際需求選擇使用框架**,例如這個模型只有Tensorflow的開源版本,有咩有Pytorch的,滅有?復現太耗時間,直接上手Tensorflow吧~畢竟是以業務來驅動的,產出就是第一目標,反之亦然。 目前情況來看,**Pytorch**不論在學生還是公司佔有率優勢很大。老潘3年前開始使用Pytorch進行深度學習研究,那會還是0.2版本,對比當時的TensorFlow,簡直就像螞蟻和大象。但短短2、3年時間,螞蟻已經長大了。 ![還記得那會學習Pytorch記錄的文章](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225020360-1082259216.png) 公司更傾向於Pytorch的原因也很簡單: - 多種模型Pytorch實現最多(例如CenterNet、FCOS) - 多種整合好的訓練框架基於Pytorch(mmdet、detectron2) - Pytorch訓練好的模型部署起來也比較方便(各類推理框架對於Pytorch的支援更多一些,例如TensorRT) - 更多數不清的理由(例如debug方便、對新手友好等等) 當然**TensorFlow**也是有優點的,**TensorFlow-server**很多公司在使用,雖然也有一部分是歷史原因,但是其穩定性和可靠性仍然比大部分的server要強。 PS:推薦一個可以媲美TensorFlow-Server的伺服器推理框架——[triton-inference-server](https://github.com/triton-inference-server/server),前身是TensorRT-server,現已開源,可以部署各種框架模型進去(TensorRT、Pytorch、TensorFlow、Onnxruntime等),老潘研究過一段時間,苦於沒有時間分享,感興趣的可以交流一波~ 什麼?上述框架滿足不了你?你要手擼一個框架自己搞(嚴重懷疑你是來炫技的)?在學生時代是可以花點時間,模仿其他大型框架寫一個小的框架練練手,這裡推薦幾個專案來瞧一瞧學一學: - [tinyflow](https://github.com/tqchen/tinyflow) - [tinygrad](https://github.com/geohot/tinygrad) - [C++模板超程式設計實戰-一個深度學習框架的初步實現](https://book.douban.com/subject/30394402/) 一般來說,框架同時具備訓練和推理功能。但訓練部分寫起來挺難,如果是隻寫推理功能的話,又簡單一些。很多框架只有推理功能,感興趣的可以參考一哈,簡單列了一些(並不全): - NCNN - MNN - TVM 如果是硬體公司(很多這樣的硬體創業公司)使用自己的晶片,也會有相應的AI底層演算法工程師去搭建類似於TensorRT這樣的產品,寫op,操控記憶體介面,最終產出類似於TensorRT這樣的動態連結庫,暴露出API供上層呼叫。 總之,框架這東西還是用的舒服比較好,我嘛,就喜歡用**Pytorch**! ## 薪資情況 大部分網際網路公司搞演算法的薪資比搞開發的可能會高一些,但其實也相差不了多少(真的相差不了多少)。 大部分演算法工程師也會幹開發的活,只是附帶演算法這個屬性罷了。只有真正的演算法研究員才是真正研究演算法理論退出新演算法的。 ![薪資情況](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225020924-714950087.png) 對於硬體公司來說(vivo、oppo這類),演算法工程師和開發工程師薪資並無區別(碩士校招)。都是有好幾檔,看各自水平定級。但是會有些研究性質的崗位只要求博士參與,這也就是博士與碩士的差距。 對於碩士研究生來說,演算法和開發相差並沒有想象中那麼大,也不存在所謂的鄙視鏈。 ## 行業分佈 行業分佈還是比較中肯的,人工智慧領域與深度學習密切相關。大部分網際網路公司也有很多深度學習的業務線存在,例如快手、抖音等各種**AI玩法**,都是與深度學習關係很深的專案。 還有電商的**以圖搜圖、虛擬試妝**;教育領域的視訊教學中的課程互動、拍照搜題、智慧閱卷等等。都是現在很平常融入生活中的AI場景,也可以說,AI無處不在了。 ![人工智慧行業分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225021431-2016458234.png) 借一下報告中的內容: 自2018年起,全球計算機視覺技術不斷成熟,開源生態、技術社群、人工智慧開放平臺的建立也使得演算法的開發與應用門檻顯著下降。德勤在《全球人工智慧發展白皮書》中指出,由深度學習驅動的計算機視覺在某些領域已經超越人類,特別是在**人臉識別、影象分類**等任務中。同時,在我國,計算機視覺技術的應用擁有龐大的市場空間與豐富的場景資料,因而當技術成熟度達到產業要求時,不少垂直行業,尤其是行業中的頭部企業,選擇了在組織內部搭建計算機視覺團隊,打造行業專屬的計算視視覺演算法產品或相關功能。 # 第二節 人才的個人期望與規劃 人才能有什麼規劃?無非就是想不斷提升自己的**技術水平**和**薪資水平**罷了。 ![理解一下](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225021640-24312161.jpg) ## 城市意願 還是北上廣深,老潘作為一名演算法工程師,因為北京的網際網路機會多,就毫不猶豫去了北京。其實對於**任何打工者**來說,哪的工作機會多當然就去哪兒了,在老家空有一身本領,但找不到合適的工作是最無奈的。 ![人才城市發展分佈](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225022030-1817696171.png) 當然也與城市發展以及公司薪資多少有關係,大城市發的錢比較多,但是房租貴,小城市發的錢比較少,但是房租便宜。究竟去哪兒好,還是**看自己**。 ## 提升自己 不得不說,程式設計師這個職業為何**適合年輕人**,有一點原因就是新技術來的很快,我們需要不停地根據業務需求學習新的知識,最好是能夠快速上手。年輕人嘛,不會的東西學學就會了。 ![如何提升自己的水平](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225022554-100923100.png) 上圖已經表達的很清楚了,大部分的程式設計師都是靠**自學**。自學是個主動的過程,自己尋找資料自己決定下一步該學什麼。雖然有點累但是學習效率很驚人。 個人認為網上的付費視訊可以看,但**不是必要的**,視訊只是輔助作用。而且被動學習有時候會讓自己產生感覺**學習了不少**的幻覺,老潘提醒一哈,如果只是光看視訊不進行實戰(完成一些課後作業啥的),學了不多久就會忘得。 遇到問題就**百度或者google**一下就好了,大部分的技術文章出自以下這些平臺,這些平臺是很好交流技術的地方: - 知乎 - CSDN - 掘金 - 部落格園 - 開源中國 - 騰訊雲社群 - 等等 當然也有很多優秀的個人部落格,這裡就不一一列舉了。不要臉地宣傳一下自己的部落格(逃): - [oldpan部落格](https://oldpan.me/) ## 工作崗位選擇? 演算法工程師還是最香的,適合演算法與工程兼備的童鞋。 高校老師和高效研究生適合喜歡搞研究、喜歡**探索新方向**的童鞋。 AI產品經理和AI專案經理據老潘所知**門檻較高**,大廠一般都會要求有實習經驗的童鞋。 ![工作傾向選擇](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225023162-75644666.png) ## 研究興趣變化 報告指出: 在計算機視覺技術發展過程中,隨著前沿理論的不斷突破、產業應用的趨勢變化,計算機視覺領域的人才 研究方向也在相應作出調整。本次報告對在職人員希望未來研究的領域進行了調研,結果發現:目標檢測、影象分割、文字理解、目標跟蹤仍為計算機視覺人才未來研究的重點方向,同時醫學影像處理識別的研究興趣排名由第 7 位上升到第 5 位,這可能與新冠疫情後醫療領域計算機視覺相關需求驟增有關。 ![研究興趣變化](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225023532-207160101.png) 目標檢測目前還是很熱門的研究方向,畢竟**剛需**在那裡擺著。老潘建議,學生階段,最好還是多方向、多嘗試嘗試不同方向的演算法,不要把蘋果放一個籃子裡。 # 第三節 社會對人才的述求 碩士級別是演算法工程師的敲門磚,那是因為之前本科的時候很少有**深度學習的專案**,大部分只是ACM或者大學生電子設計大賽這樣子的。和人工智慧關係不是很大。 現在條件好了,深度學習也普及了,大部分高校也開設了相關的課程。我的表弟他們在本科階段已經參與一些老師的專案,開始訓練yolov3模型部署在TX2上去參加一些比賽,和研究生做的並沒有本質上區別,這都是5年前想都不敢想的。 ![計算機人才要求碩士級別](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225023947-403835985.png) 現在是全民普及AI的時代,AI已經無處不在了。 ![人工智慧教材出版!](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225024133-1872876600.jpg) ## 技術要求 很真實,企業對人才的要求實際只有**一個**: - 能幫我解決問題! ![對於計算機人才的要求](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225024710-273262873.png) 但是解決問題也沒有實際那麼簡單,需要很紮實的基礎和較強的學習能力才行。 在企業不同於在學校,企業要求的不可能是**demo級別的玩具**,更多的是穩定可靠、精度達到要求且可以上線,缺一不可,看似簡單,但實際困難重重。與高校場景完全不同,所以建議大家在高校中儘量多參加一些實際的專案,**要有反饋,千萬不要自嗨**。 PS:作為演算法工程師,往往都是有壓力的!拖大家的福,老潘的頭髮還是很濃密... ## 其他需求崗位 只有一點要提醒的,不是隻有崗位名稱包含CV、影象、AI等的才與深度學習有關係。隨著深度學習的不斷普及,上到演算法層,中到軟體層,下到硬體層,每個層都有與AI、與計算機視覺相關的崗位。 崗位名稱五花八門,這裡只說一句,名稱是一方面,點進去看**崗位介紹**最靠譜! ![其他需求崗位](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225025345-1125638173.png) 關於演算法崗位分佈與特點老潘之後抽空會彙總一波。 # 第四節 人才的培養與發展 雖然說我們大部分人是靠自學,感覺有臺電腦就可以。但是對於**深度學習**這個燒錢的方向來說,**有裝置有機器**是最好的,這裡列一下我們學習可能需要的裝置: - 顯示卡(深度學習訓練必備),關於顯示卡的選擇,可以看下我之前的一篇文章[給你一份配置清單:機器學習、深度學習電腦顯示卡配置指南](https://oldpan.me/archives/machine-deeplearning-station-list),雖然是之前的,但是仍有參考意義。 - 推理卡(如果你不搞訓練只搞部署),類似於英偉達的TX2、Xavier系列、jetson nano系列,或者樹莓派系列。這類板卡適合搞一些工程專案,類似於部署落地 關於部署落地,老潘有話想說: - [CV演算法內卷嚴重,但是我們可以看看視覺演算法工業部署及落地方面的技術知識](https://mp.weixin.qq.com/s?__biz=Mzg3ODU2MzY5MA==&mid=2247484914&idx=1&sn=073ee668b4ef9936d5001fd6b6bd849c&chksm=cf109df7f86714e1dcfec77639384636f9a13d6d79997b914f3948852995e2e6fd5df8ac24ce&token=64973375&lang=zh_CN#rd) 實驗室沒有資源的但是又想參與的,可以自己掏錢買顯示卡(這裡簡單提一下,可以買2月26日釋出的**3060-12G**顯示卡,官方建議價2499,效能和之前的1080ti差不多,如果有條件可以搶到,這款卡很適合做深度學習),也可以白嫖一些GPU資源(例如kaggle): - [隨身GPU伺服器:Kaggle中kernels的快速入門指南](https://oldpan.me/archives/kaggle-kernels-quick-introduction) - 還有一些白嫖的GPU資源老潘還沒有整理,之後會發布相關文章(關注老潘不錯過)。 放心吧,只要你真心想入坑深度學習,GPU資源什麼的不是大問題,可以通過各種方式解決,關鍵還是要有**熱情和興趣**。畢竟深度學習這條路,註定不會一帆風順。 ## 在學校與在公司的煩惱 在學校的煩惱能有啥哦?老潘認為在學校還是很舒服的...想學什麼學什麼,想做什麼做什麼。 不過肯定會有一些**不滿足於現狀**的學弟學妹們,想要突破一下自己,找點事情做。這個時候如果導師不給力,還是要靠自己的,主動找點事情做吧~ 有疑問也可以與我交流。 ![計算機人才發展瓶頸](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225026404-1381217159.png) 關於研究生導師和人工智慧公司的發展瓶頸(煩惱),就不是我們所考慮的了,看看就行啦! ![高校老師與企業的發展瓶頸](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225027281-150086291.png) ## 關於課程 基本高校的課程如下,課程基本是起到引匯入門的作用。渴望學習的我們,更多的是希望自己找自己感興趣喜歡的課程去學習。 課程資源限於篇幅,可以看看這篇: - [2021年了,我們還可以入門深度學習嗎(含資源)](https://mp.weixin.qq.com/s?__biz=Mzg3ODU2MzY5MA==&mid=2247486057&idx=1&sn=e5ed99ef4ec69c1a99f696f76d4bb2c2&chksm=cf10926cf8671b7a784e3f13abfc4d1dc976c374afdade6eece69ad62fd61b0ab3c433df6f43&token=64973375&lang=zh_CN#rd) ![計算機視覺課程](https://img2020.cnblogs.com/other/2304365/202102/2304365-20210224225027780-1741152389.png) 正如報告中所說: 短期內在高校開設細分領域的課程仍有不小的挑戰: - 一方面,計算機視覺細分**領域廣泛**,學生興趣較為分散,細分領域課程可能無法滿足全部學生需要; - 另一方面,由於本領域技術**迭代速度**極快,且部分領域的學習需要多樣化產業實際案例的支援,課程開設難度較大。 所以大部分的高校課程都是以打基礎為主,非常適合剛入門的童鞋,老潘只想說一句:好好珍惜在學校的美好時光,認真學習吧,不要浪費時間~ # 最後 時間總是過的很快,還記得那會剛入門深度學習的時候,看吳恩達和李巨集毅的課看的津津有味,雖然啥也不懂。轉眼間3年過去,現在已經全民AI了,雖然偶爾會迷茫,但已經踏入深度學習的老潘依然會堅持走下去,不論是以何種形式。 希望大家能夠和我一起堅持下去吧~ 文中提到的一些分享資源在[這裡](https://oldpan.me/archives/oldpan-treasure-updating)。 # 撩我 - 如果你與我志同道合於此,老潘很願意與你交流; - 如果你喜歡老潘的內容,歡迎關注和支援。 想知道老潘是如何學習踩坑的(PS:想與我交流問題)來公眾號「[oldpan部落格](http://image.oldpan.me/%E6%96%B0%E7%89%88.png)」找我~ 老潘也會整理一些自己的收藏,希望能幫助到大家,來[神祕傳送門](https://oldpan.me/archives/oldpan-treasure-updating)看看吧~ # 撩我吧 - 如果你與我志同道合於此,老潘很願意與你交流; - 如果你喜歡老潘的內容,歡迎關注和支援。 - 如果你喜歡我的文章,希望點贊