# 2024 年「資訊科技產業專案設計」作業 3
## 符合自身規劃的職務描述 & 所需能力 & 匹配程度
### <u>Qualcomm</u> Computer Vision Systems Engineer, up to Staff
<details>
<summary>職務描述 & 所需能力</summary>
**General Summary:**
Qualcomm Computer Vision Systems group develops computer vision IP solutions for all of Qualcomm’s Snapdragon platforms including mobile, automotive, VR/AR. The team’s scope includes computer vision algorithm, architecture design and software implementation for CV solutions with power and performance optimization.
We seek Systems Engineers with demonstrable knowledge and hands-on experience in one or more of the following areas:
* Define systems architecture for computer vision solutions including data flow, task partition, user interface, systems interoperation, test plan and quality closure.
* Design and implement simulator for computer vision functions to be used for algorithm evaluation, hardware verification, and customer training
* Define methodology for performance and power analysis and develop innovative technologies to reduce memory bandwidth, processing latency, power consumption
* Collaborate with other teams to commercialize the technologies and provide strong customer support to enable the best visual analytics experiences
**Qualifications**
* Required: Bachelors in, Computer Science and/or Electrical Engineering
*
* Preferred: Masters or Doctorate, Computer Science, and/or Electrical Engineering
**Minimum Skills**
* Working knowledge of visual signal processing, and computer vision
* Strong analytical and mathematical skills to develop new computer vision algorithms
* Proficiency in C/C++/Python or other programming languages
* Experience with OpenCV library
* Strong communication skills
* Working Knowledge of Embedded systems and architectures
* DSP/Neon/GPU optimization and multi-thread programming is a plus
**Minimum Qualifications:**
* Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Systems Engineering or related work experience.
OR
* Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Systems Engineering or related work experience.
OR
* PhD in Engineering, Information Systems, Computer Science, or related field.
</details>
<br>
**匹配程度**
* 尚可
* 電資相關科系畢業,修課和專案內容主題皆是電腦視覺
* 熟悉Python
* 有使用OpenCV的經驗
* 溝通能力強,具有跟不同學科的人長期溝通合作的經驗
* 不足
* 缺乏工作知識,例如:視覺信號跟電腦視覺、嵌入式系統和架構
* DSP/Neon/GPU optimization and multi-thread programming 皆沒接觸過
<br>
### <u>Synology</u> Product Developer (深度學習應用開發)
<details>
<summary>職務描述 & 所需能力</summary>
**Job content**
Synology's product developers create cutting-edge products used by millions of users around the world. Our portfolio of data storage, networking, and surveillance products are powered by our own software solutions, giving us a unique edge in today's crowded market. We are looking for engineers that can make an impact, bringing in fresh ideas from different areas to help expand our team of high-energy developers.
Video surveillance solutions are ubiquitous and vital in maintaining accountability in our society today. They can serve as silent witnesses to a scene, act as a deterrent, and often simply serve as a means to reassure a property owner. Synology has been consistently innovating in the field of video surveillance, leveraging our storage expertise to built robust, feature-rich, and cost-effective solutions that are overseeing countless locations today. You’ll be joining an experienced team to build our next generation products.
You will:
* Create more capable video surveillance solutions using computer vision and deep learning techniques
* Develop user-facing frontend applications using JavaScript
* Optimize for performance and increase the reliability and capabilities of the entire system, whether through traditional or more creative techniques
* Stay on top of cutting-edge machine learning developments and techniques
Tools Proficiency:Linux、C、C++、JavaScript
You are expected to have:
* Proficiency in C/C++, Python and JavaScript
* Proficiency with at least one framework: PyTorch, or Tensorflow
* Experience with or a strong understanding of computer vision and deep learning applications and processes
* Experience with or a strong understanding of deep learning, CNNs, and inferencing
* Familiarity with programming in Linux environments
* Excellent communication skills and the ability to work well alone or as part of a team
</details>
<br>
**匹配程度**
* 尚可
* 熟悉Python、Pytorch
* 深度學習有多個專案經驗
* 溝通能力
* 不足
* 不熟悉C/C++/JavaScript
* 不熟悉 Linux 環境中的程式設計
<br>
### <u>NOVATEK</u> 影像處理演算法工程師
<details>
<summary>職務描述 & 所需能力</summary>
工作內容
【產品線描述】
行車及監控視訊相關產品
(CarDV, Surveillance relative video product)
【工作說明】
1. 影像處理演算法及ISP開發
(Digital Signal/Image Processing algorithm development)
2. 與IC designer合作完成演算法之硬體實作及驗證
(Co-work with IC designer for RTL implementaion and verification)
【必要條件】
1. 良好的溝通能力與團隊合作觀念, 快速的學習能力
2. 熟悉3A/Denoise/Sharpen/3DNR/HDR等數位影像處理演算法與ISP pipeline架構
3. C語言影像處理實作能力
4. 熟悉Matlab
5. 具備影像畫質分析能力, 熟悉Imatest操作
</details>
**匹配程度**
* 尚可
* 修過影像處理,對基礎的影像演算法有認知
* 不足
* 不熟悉3A/Denoise/Sharpen/3DNR/HDR與ISP pipeline架構
* 對C語言影像處理實作沒經驗
* 沒用過Matlab
* 不具備影像畫質分析能力, 熟悉Imatest操作
## 上述職缺 (或類似的職缺) 的面試題目
電腦視覺/影像處理:
* [Top 50 Computer Vision Interview Questions](https://www.geeksforgeeks.org/computer-vision-interview-questions/)
* 實作(sobel 遮罩)高頻強化
* 影像強度剖面圖如果邊界很明顯會長怎樣
* 高頻強化的影像強度剖面圖長怎樣
* 均值濾波、中值濾波有什麼特色
* 影像中有一個圓 怎麼計算最左上角到該圓的距離
* 給一個圓然後詢問如何找尋圓的中心點
AI:
* [Deep Learning Interview Questions](https://www.geeksforgeeks.org/deep-learning-interview-questions/)
* 手寫 Convolution, Multi-Layer Perception (MLP), Gradient Descent
* 寫一個 Dataset 的 Class 要能夠處理 Imbalanced Data Sampling
* 能否給出一個完整的 Machine Learning Pipeline,舉例來說 “請告訴我如何建構一個物件偵測系統預測農作物”。
* 推導Forward & Backward Propagation & Neural Network
* 可參考資源:深度學習500問以及深度學習面試寶典
* 什麼是Support Vector Machine (SVM)? 請詳細解釋
* 解釋CNN、RNN差別,Resnet原理以及好處
* 解釋cross-entropy
* 訓練模型時為什麼通常需要正則化?請解釋L1和L2正則化的差異
* 什麼是 confusion matrix? 怎麼從 confusion matrix 計算 sensitivity 以及 precision?
* 請描述偏差(Bias)與變異(Variance)之差別,訓練過程哪項指標更重要?
* 要如何做 Hyper-parameter tuning,請說明方法及原因
* KNN和multi-nominal logistic regression之間有什麼不同
* 何時需要進行降維?請詳細描述兩種降維方法
* 除了Mean Square Error (MSE)之外,如何評估回歸模型?
## 模擬面試
>:sunglasses::interviewer
>👨🎓:interviewee
#### 背景詢問
:sunglasses: :你好,想請問你在電腦視覺與深度學習等領域的相關經驗
👨🎓:相關經驗的部分可以以下幾個專案作為代表,第一個是使用OpenCV和Dlib來實作使用人臉特徵點,進行疲勞狀態的檢測。第二個是在某堂電腦視覺相關課程的專案中,使用影像處理技術與OpenCV,實作出車道線檢測的系統,第三個是與xx醫院合作的專案。目標是使用雙階段多模態醫學影像模型進行多種疾病預測,此專案目前還在進行中。
:sunglasses: :實驗室研究領域是什麼
👨🎓:實驗室主要是在做AI視覺相關的研究,而我目前的題目是XXX
#### 專案詢問
:sunglasses: :可以說明一下你剛剛提到的車道線檢測系統是怎麼做到的嗎
👨🎓:好的,可以分為5個步驟,1. xxx、2. Edge detection、3. xxx、4. xxx、5. xxx
:sunglasses: :你是使用哪種Edge detection的方法
👨🎓:我使用的是Canny edge detection,步驟為:1.高斯濾波去噪 2.計算梯度幅值和方向 3.非極大值抑制 4.雙閾值處理 5.邊緣追蹤
:sunglasses: :那如果你輸入的影像前面有一輛卡車擋住大部分的畫面,你的系統還可以運作嗎
👨🎓:沒辦法,會在第四個步驟的時候出錯,導致沒辦法正確畫出車道線
:sunglasses: :你會怎麼解決這個問題
👨🎓:我目前想到的方法是在做完Canny detection之後,先判斷前方有沒有卡車,如果有的話我再把第X個步驟的ROI設定縮小,沒有的話系統就照舊
:sunglasses: :為什麼你最後一個專案的評估指標會這樣選擇
👨🎓:只使用準確率的話,會在評估模型時產生盲點,許多醫學影像資料集都存在資料不平衡的問題,例如陽性病患是占極少數,如果模型盲目的猜測陰性,就會使準確率很高,所以我們使用這個評估指標來衡量模型的整體能力
## Resume
[Resume Link](https://drive.google.com/file/d/1PNxY1yoqOLphJ5AOrBTdgPjO-4Zg_6ty/view?usp=sharing)
## 參考資料
* 自身經驗
* [北美正職面試經驗分享](https://medium.com/@tsaolin/%E4%B9%BE%E8%B2%A8%E6%BB%BF%E6%BB%BF-2024-new-grad-in-machine-learning-computer-vision-robotics-%E5%8C%97%E7%BE%8E%E6%AD%A3%E8%81%B7%E9%9D%A2%E8%A9%A6%E7%B6%93%E9%A9%97%E5%88%86%E4%BA%AB-e11c8882dbc7)
* [電腦視覺/ML/DL/AI 面試分享](https://www.ptt.cc/bbs/Soft_Job/M.1535716676.A.12B.html)
* [美國軟體求職心得 (電腦視覺/自駕)](https://www.ptt.cc/bbs/studyabroad/M.1575218908.A.C69.html)
* [Top 50 Computer Vision Interview Questions](https://www.geeksforgeeks.org/computer-vision-interview-questions/)
* [AI演算法面試考題整理](https://medium.com/@ntuteeee/ai%E6%BC%94%E7%AE%97%E6%B3%95%E9%9D%A2%E8%A9%A6%E8%80%83%E9%A1%8C%E6%95%B4%E7%90%86-0ad09b42c73d)
* [科技業公司面試心得(上)](https://home.gamer.com.tw/creationDetail.php?sn=4331239)