計算機視覺算法工程師開發流程_#計算機視覺

如何才能成為一名專業的計算機視覺工程師呢,尤其是相對於過去,進入機器學習行業的步驟和策略在短時間內發生了巨大的變化。

人工智能以創新的速度前進

你可能不會對ML行業不斷變化的本質感到驚訝,因為你很清楚人工智能是以創新的速度發展的。對於大多數ML從業者來説,在2020年獲得職位所用的方法,在2021年可能不一定起作用。我們都需要適應。

本文將介紹八種你可以探索和使用的方法,現在就開始你成為一名計算機視覺工程師的道路。

1. 大規模在線開放課程(MOOC)

計算機視覺算法工程師開發流程_#深度學習_02

MOOC海報,2013年4月4日,由Mathieu Plourde在Flickr上授權CC-by製作,探討了“大規模開放在線課程”即MOOC的含義

MOOCs是2008年推出的一種現代學習工具,目前是數據科學家和機器學習從業者獲得領域專業知識的首選方法,通常伴隨着公認的認證和證書。

在大多數情況下,mooc要比通過學術機構和大學學習的傳統方法便宜得多。通過折扣項目為學生提供經濟支持的mooc課程並不少見。

mooc相對於學術機構的另一個優勢是,它可以靈活地在適合自己的時間參加課程、在線課程和考試,而不是採用緊湊的時間表結構和設置考試時間分配。

“教育並不是要放羊。教育就是幫助每個學生成功。”——Andrew Ng

互聯網上有大量與計算機視覺相關的mooc課程;你可能面臨的主要障礙是選擇適合你的在線課程。

建議在開始階段就觀察求職者的技能和技術要求,然後再選擇合適的在線課程。

有很多mooc課程,但在搜索時,要考慮以下因素:工作相關性、技術需求、時間長度、課程回顧和成本。

mooc不僅僅針對初學者,經驗豐富的ML從業者和深度學習工程師在特定的計算機視覺相關主題上也會學習中級和高級mooc,以提高技能或獲得領域專業知識。

2021年,速度、適用性和實用性是ML從業者關注的重點。為了從一個機器學習的學生過渡到一個專業人士,選擇mooc來關注ML的實踐方面而不是大學裏教授的理論內容可以節省時間和成本。

請注意,在大學攻讀高級學位有好處,在做出職業生涯決定之前,你應該進行自己的深入研究。

2. 機器學習庫與框架

計算機視覺作為一個領域,包含了許多方法和技術來解決常見的CV問題,如目標檢測,人臉識別,姿態估計等。

你通常不需要重新造輪子或開發新的算法來解決瑣碎的計算機視覺任務(除非你在研究領域工作)。你在學習和職業生涯中使用的許多工具都可以通過ML庫和框架獲得。

ML庫和框架為ML從業者提供了一套工具,供他們實現、訓練、測試和部署計算機視覺解決方案。有流行的工具和庫,如TensorFlow和PyTorch,還有FastAI、Caffe2、Keras、Scikit Learn、MXnet、Darknet等。

計算機視覺算法工程師開發流程_#深度學習_03

計算機視覺算法工程師開發流程_計算機視覺算法工程師開發流程_04

ML行業似乎已經將TensorFlow(Keras)和PyTorch作為行業標準。作為一名計算機視覺工程師,我廣泛使用TensorFlow平台為不同的環境開發ML模型。

下面是一個典型的清單,你可以在學習ML庫時用作指南:

  • 加載結構化的數據集以進行訓練
  • 預處理各種形式的數據集(文本、圖像、數字)
  • 執行數據擴充
  • 從頭開始實現一個神經網絡
  • 從頭開始實現深度神經網絡
  • 實現網絡的自定義訓練過程
  • 使用各種網絡架構執行圖像分類
  • 加載模型以進行遷移學習
  • 從零開始實現神經網絡中的自定義層、dropout層和公共層
  • 培養深度學習模式
  • 用TensorBoard監控訓練過程
  • 保存並加載經過訓練的模型。

注意:上面的列表並沒有包含你需要知道的全部內容,事實上,我懷疑已經觸及了你應該涵蓋的內容的20%,以確保你準備好成為一名專業CV工程師的角色。儘管如此,上面的列表只是一個指南,你可以隨意添加和修改上面的列表。

3. 讀書

要在2021年及以後成為一名計算機視覺工程師,你必須參考實用的機器學習和計算機視覺書籍作為學習資源。

計算機視覺工程師從不停止學習,主要是因為人工智能領域每天都在進步。

在保持職業生涯的同時,遇到與學生學習水平相同的ML從業者是很常見的,他們仍然需要閲讀書籍、博客、研究論文和文章,以確保不會落後於ML行業。

對CV工程師最強烈推薦的一本書是Aurélien Géron的Scikit Learn、Keras和TensorFlow的機器學習手冊。這本書適用於所有ML從業者,從數據科學家到NLP工程師。

計算機視覺算法工程師開發流程_#人工智能_05

使用Scikit Learn、Keras和TensorFlow進行機器學習

以明確地讓你明白,閲讀實用書籍應該是你持續的個人學習策略的一部分。

假設你找到了你所選領域中你可能缺乏專業知識的特定領域,無論是數學、統計學、編程還是算法。在這種情況下,有很多實用的書籍易於學習,並且對所有級別的ML實踐者都有效。

4. 雲服務

計算機視覺工程師應該瞭解雲服務嗎?

是的,但你不需要成為專家,有云和數據工程師,他們的唯一責任是專門從事雲解決方案和服務。

儘管如此,CV工程師瞭解如何在GCP、microsoftazure和AWS等雲服務上運行機器學習模型是必不可少的。

以下是CV工程師應該理解和使用雲服務的一些原因:

  1. 計算資源可用性。訓練深度學習模型可能成本高昂,尤其是如果你必須購買價值數千美元的工作站和機器。雲服務提供不同計算規範的gpu,用於運行特定的作業。這些計算機資源按小時收費。
  2. 遠程訪問共享工作區。大多數團隊利用在線開發環境的雲服務來確保每個團隊成員都可以訪問遠程工作區和資源。
  3. 現成的解決方案和經過訓練的模型
  4. 通過API等為機器學習模型提供服務的平台

使用雲服務可能會讓人望而生畏,有時成本會出乎意料——尤其是當你忘記關閉實例時。擁有云服務的知識確實會讓你在這個行業的CV工程師中具有一定的優勢。

5. 所獲證書

指的不是參加在線課程時獲得的證書或認證。提供給ML從業者的認證可以展示特定庫、雲服務和框架內的專業知識。

TensorFlow、AWS和GCP都是在本文中提到的工具和資源。另一條信息是,提供這些工具和服務的公司和組織也會頒發認可的證書。

幾年前擁有一個具有高級學位的檔案袋足以確保ML角色。隨着ML從業人員的涌入,似乎有可能看到用證書來篩選招聘人員和僱主候選人的名單。

以下是與ML從業者相關的認證列表:

TensorFlow開發人員證書

  • https://www.tensorflow.org/certificate
  • Google Cloud ML工程師證書
  • https://cloud.google.com/certification/machine-learning-engineer
  • AWS認證的機器學習專家
  • https://aws.amazon.com/certification/certified-machine-learning-specialty/
  • Google Cloud專業數據工程師
  • https://cloud.google.com/certification/data-engineer
  • Google Cloud Associate Cloud Engineer
  • https://cloud.google.com/certification/cloud-engineer
  • DeepLearning.AI TensorFlow開發人員專業證書
  • https://www.coursera.org/professional-certificates/tensorflow-in-practice

從這一點開始,所包含的關於成為計算機視覺工程師的部分包含了明顯的信息。不過,有些內容你會發現很有價值。

6. 深度學習

深度學習是一個利用深度人工神經網絡來檢測數據模式的領域。

計算機視覺工程師通常利用深度學習模型來解決CV任務。輕描淡寫地説,CV工程師必須瞭解DL領域的基本概念和想法。

到2021年,深度學習將從主要使用卷積神經網絡作為模型的構建塊,轉向最近引入的Transformer結構。

ML從業者很可能不需要了解如何實現和利用Transformer來完成計算機視覺任務-

ML從業者很可能不需要了解如何為計算機視覺任務實現和利用Transformer,因為這仍然是一個研究領域。

一些積極主動的ML從業者現在正在探索Transformer,並瞭解如何實現和應用它們。

7. 移動和邊緣設備

Instagram、TikTok、YouTube、Facebook……這些都是擁有移動應用程序的公司,在這些公司中,你會發現ML模型以某種形式被利用。

在2021年,計算機視覺工程師必須瞭解能夠在移動環境中開發和集成模型的工具和框架。

CV工程師應瞭解以下幾個平台、工具和框架:

TensorFlow Lite

  • https://www.tensorflow.org/lite
  • 核心語言
  • https://developer.apple.com/documentation/coreml
  • 蘋果視覺框架
  • https://developer.apple.com/documentation/vision
  • TensorFlow反應
  • https://blog.tensorflow.org/2020/02/tensorflowjs-for-react-native-is-here.html
  • 創建語言
  • https://developer.apple.com/machine-learning/create-ml/

對於理解計算機視覺和深度學習在移動環境中的應用,一個有用的學習資源是《針對雲、移動和邊緣的實用深度學習》:https://www.amazon.co.uk/Practical-Learning-Cloud-Mobile-Hands/dp/149203486X

8. 程序設計語言

任何形式的軟件工程專業都要求至少了解一種編程語言。

通常,計算機視覺工程師精通Python。你很可能會發現,在大多數與機器學習相關的工作角色中,Python是最需要的編程語言。

到2021年,CV工程師將需要至少有一種語言的專業知識,並在兩個或三個其他語言的中級水平。

究其原因,是因為深度學習模式在不同的平台和環境中得到了應用。這些環境中的每一個都利用其他核心編程語言來執行功能和操作。

我目前正在移動環境中集成深度學習模型,這要求我精通Python、JavaScript和Swift。在2021年,我將擴展我的編程語言技能,包括Kotlin和Java。

這裏的訣竅是不要死記硬背一種語言中所有可用的語法,然後繼續下一種語言。相反,理解面向對象編程的基本原理和大多數編程語言中使用的編碼模式更為重要。

結論

對計算機視覺/深度學習工程師的需求很可能會隨着更多面向相機的人工智能應用的採用而增加。

ML從業者學習成為CV工程師所需的內容可能非常多,但一旦你開始學習,完成一些MOOC,學習核心ML庫,你會發現學習會變得更容易。

在這篇文章中,介紹了八種方法,你可以採取和行動今年成為CV工程師在2021年。總而言之,以下是總結列表:

  1. 參加在線課程以獲得專業知識或提高知識。
  2. 使用機器庫和框架。
  3. 閲讀實用的ML/DL書籍
  4. 瞭解雲服務,如GCP、AWS等
  5. 考慮獲得某些工具和庫的認證
  6. 瞭解深度學習基礎
  7. 學習能夠在移動環境中集成深度學習模型的工具、庫和框架。
  8. 瞭解編程模式和原理,如面向對象編程。