Profile 03 00@2x

許哲偉  Tony Hsu

   Software Engineer,喜歡思考、學習各種新技術,擅於分析與結構化處理複雜問題,樂於鼓勵他人以及督促自我,能以積極樂觀的心面對一切事情。 

 自學過 Stanford 吳恩達教授的 Deep Learning 課程與作業以及 Kaggle和 Github 等網站上大量 Open Source 的知識。


Software Engineer
  新北市,TW, Tel: 0937848413
 [email protected]

Skills


程式語言-program                        機器學習-ML-1                              機器學習-ML-2

 Front-End, Template

  • JavaScript
  • Html5 
  • CSS 
  • JQuery 
  • Ajax
  • Bootstrap
 Back-End, Framework, Crawler                   
  • Python
  • C++
  • Django 
  • Fastapi
  • Flask

 Process Data Package & Skills
  • Numpy
  • Pandas
  • Matplotlib
  • EDA
 ML Package

  • Scikit-learn
  • Tensorflow
           TFRecords
           TF Data API (Pipeline)
           TF Hub
  • Keras

  




 Computer Vision Package
  • OpenCV
  • Dlib
  • Mediapipe
  • Darknet
 Training Hardware

  • GPU Tesla K8, T4 (Colab)
  • GPU P100-16GB (Kaggle)
  • TPUv3-8 128GB (Kaggle)


版本控制  - 資料庫  

  • Git / Github 
  • MySQL
  • MongoDB


系統與開發工具 

  • VSCode
  • Jupyter / Colab / Kaggle notebook
  • Raspberry Pi-3B
  • Linux - Ubuntu18.04
  • Docker
  • AWS EC2



經歷(Experience)

奕瑞科技有限公司, Software Engineer - 2022/03 ~ 2022/11

         1. 奕瑞科技的訓練資料網站:

         與 Frontend Engineer 合作開發公司內部系統,負責 Backend,以 Object Detection 需要的 Data 為主,使用 Yolo 系列算法所需的 Data labeling XML(PascalVOC) format,再將所需要的資料訊息轉成 json 儲存在 MongoDB database。用 Nosql 應對日後百萬至千萬的資料查詢。編寫資料搜尋引擎、XML 轉 json 工具、自動匯入 DB 工具、自動上傳下載工具優化,運用 Docker 部署在 Ubuntu上。


        2. Camera Integrity Check System (AI 影像辨識妥善率監控系統)」的「友達」維護案子:

        與 System Technical Supervisor, AI Engineer 負責處理公司自行研發的系統問題,了解網路架構、IP Camera 視訊串流( RTSP 協定),使用過 Clonezilla 硬碟分割備份技術,學習解決連接 483 台監控設備遇到的問題,等等。


        3. 運維「泛亞智慧工地」案子:

        了解 Face Recognition device 規格書,MQTT 通訊協定,實作過 Subscriber and Publisher 測試工具,等等。


        4. 影片訓練資料的收集與硬體 api 串接:
        協助處理「泛亞專案」影片訓練資料的收集,使用切影片 frame 程式、編寫 frame_to_time 程式,等等工具。 協助處理「華夏塑膠」專案的 IP Speaker api 串接。

        5.泰國超商」人流、物品偵測與追蹤專案:
        協助交接與練習,Detection 使用 Darknet Yolov4 Model 做訓練,Tracking 使用 FastMot 算法判斷。


Project 開發與自學 - 伯父指導 (Guide project development and Self-Study) - 2021/05 ~ 2021/12 

Project 開發
        1. 實作人臉偵測、識別 (Face Detection, Recognition):   
        偵測與辨識人臉系統,寫入 CSV 檔管理出勤人名中英文轉換 

        2. 種族分類器 (Race Classifier):   
        以 Kaggle UTKFace datasetEDA 種族辨識,存成 TFRecords 檔使用tf.data pipeline (載入資料, 預先處理, cache, map, shuffle, prefetch),建立模型 (VGG16, ResNet50, Xception, EfficientnetB5-7-L2, EfficientnetV2-m-l-xl),使用 Transfer Learningpre-trained model weights (ImageNet) or Self-Supervised learning weights (Noisy-student, ImageNet21K, ImageNet21K-ft1K)Kaggle TPU/GPU 訓練& Fine-tuningTest Top1 accuracy ≈ 85.x%。 

        3. 物件偵測 (Custom Multi-Object Detection - using YOLOv4):   
        使用 open images dataset v6 (Google Datasets) Custom 3 classes Datasets (train 90%, test 10%),以 yolov4-custom.cfg 架構 + Colab GPU 從頭訓練 2000 次,達到 mAP=91%
 
        其餘時間寫的: 
        Web Crawler:  1. Google Image  2. Unsplash 圖庫。 
        Dataset practice:  Fashion-Mnist:  best accuracy ≈ 94~95%,  Cifar10:  best accuracy ≈ 93~94%,  CNN training model:  VGG16,  ResNet34,  ResNet50,  Fine-tuning tool:  Keras-tuner . 

        Self-Study:  
        學習 ML Official API 文件、hands on ML 書籍、Open Source,看台大李弘毅 ML Youtube 教程,練習實作 Model Architecture 與運用一些 SOTA ModelSelf-Supervised Learning 技術。

Coursera Deep Learning Specialization (Self-Study) - 2019/05 ~ 2019/11 
Instructor:  Stanford's Andrew Ng 
學習課程:
        1. Neural Networks and Deep Learning 
        2. Improving Deep Neural Networks Hyperparameter tuning, Regularization and Optimization 
        3. Structuring Machine Learning Projects 
        4. Convolutional Neural Networks 
        5. Sequence Models

學歷(Education)

2018/08 ~ 2018/12

策會 - AI 人工智慧創新應用就業養成班


訓練課程

前端網頁設計、Django 後端開發、Python Data Analysis、網頁爬蟲、Machine Learning、Deep Learning、OpenCV、AWS Cloud、LineBot、Git/Github、RaspberryPi-3B、Linux(Ubuntu18.04)、MySQL

小組專題製作:

1. Fusic 音樂網站 (5人)   2. 咖啡廳 AI Service (6人)

Took extra courses: 

- Edx & Microsoft:  Logic and Computational Thinking  

- Edx & Microsoft:  Introduction to Python for Data Science  

Paragraph image 00 00@2x

2011/09 ~ 2017/01

文化大學 - 資訊工程學系 (畢業)

學習經歷:  在大學修習時期有些課程不認真,以至於延宕畢業時間。迫使我更加珍惜努力學習,而找到編程 (programing) 之樂趣。放棄與克服之間我最終選擇後者,克服它。因此,透過不斷的練習,在資料結構 (Data Structure) 的正課上獲得84分,程式實作課總平均提高到90分。


- 參與社團: 系上系籃
- 暑期工讀: PX Mart (全聯)

- TOEIC成績: 460分 (2020/10)

Paragraph image 00 00@2x

奕瑞科技 Projects


2022/03 ~ In progress

奕瑞科技的訓練資料網站 - (Internal System)

負責 Backend,以 Object Detection 需要的 Data 為主,使用 Yolo 系列算法所需的 Data labeling XML (PascalVOC) format,再將所需要的資料訊息轉成  json 儲存在 MongoDB database。用 Nosql 應對日後百萬至千萬的資料查詢。


編寫資料搜尋引擎、XML 轉 json工具、自動匯入 DB 工具、自動上傳下載工具優化,運用 Docker 部署在 Ubuntu 上。

2022/04 ~ In progress

Camera Integrity Check System (AI 影像辨識妥善率監控系統) - (Operation and Maintenance)

與 System Technical Supervisor, AI Engineer 處理運維系統問題,了解網路架構、IP Camera 視訊串流 ( RTSP 協定),使用過 Clonezilla 硬碟分割備份技術,學習解決連接 483 台監控設備遇到的問題,等等。

2022/09 ~ In progress

泛亞智慧工地 - (Operation and Maintenance)

與 System Technical Supervisor, AI Engineer 運維「泛亞智慧工地」案子,了解 Face Recognition device 規格書,MQTT 通訊協定,實作過 Subscriber and Publisher 測試工具,等等。 


協助處理「泛亞專案」影片訓練資料的收集,使用切影片 frame 程式、編寫 frame_to_time 程式,等等工具。


協助處理「華夏塑膠」專案的 IP Speaker api 串接。

2022/03 ~ 2022/04

「泰國超商」人流、物品偵測與追蹤專案

協助交接與練習,Detection 使用 Darknet Yolov4 Model 做訓練,Tracking 使用 FastMot 算法判斷。

AI Projects


2021/05 ~ 2020/12 

Custom YOLOv4 (Multi-Object Detection Project)

軟體實作:

使用 Open Images Dataset V6 (Google Datasets) 做Custom 3 classes Datasets (train: 三個類別各 1500 張 img + annotaions, test: 三個類別各 300 張img + annotaions),以 darknet yolov4-custom.cfg 架構 + Colab GPU training 1800 iterations,達到mAP=91%。

Paragraph image 02 00@2x

工具: 

Python, OpenCV, Darknet, 

Macbook Pro Camera, VSCode, 

Colab (GPU) 

 

參考資料 & Open Source: 

ScaledYOLOv4 (Github) 

https://github.com/WongKinYiu/ScaledYOLOv4 

YOLOv4: Optimal Speed and Accuracy of Object Detection 


My Github:   

Paragraph image 04 01@2x

2021/05 ~ 2020/12

種族分類器 (Race Classifier Project) 


軟體開發

Data:

Kaggle UTKFace (Open Data) 

Data Preprocess:

Python, Numpy, Pandas, Matplotlib, EDA

Build Model: 

Tensorflow, Keras 

CNN Architecture: 

VGG16, ResNet50, Xception, EfficientnetB4-5-7-L2 (SOTA), EfficientnetV2-m-l-xl (SOTA)


Skills used

1. Data-cleaning (Sklearn IsolationForest) -> not good

2. Data-Augmentation 

3. Transfer learning 

4. Learning Rate Scheduler

5. Tensorboard 

6. ImageNet pre-trained model 

7. Self-Supervised-Learning pre-trained model (Noisy Student, ImageNet21k or 21K-ft1k) 

8. Fine-tuning

9. TFRecords (protobuffer)

10. TF Data API (shuffle -> map -> batch -> prefetch)


Hardware

1. NV GPU K8, T4 (Colab) 

2. NV GPU P100-16GB (Kaggle) 

3. TPUv3-8 128GB (Kaggle)

  • TPU Skills - Convert tf.float32  to tf.bfloat16

Problem Solved: 

Training model

  • GPU Out of Memory
  • TPUv3 (Exceeded hbm capacity) 
  • Cloud VM problem

Project process: 

分析&預處理:

使用 Kaggle UTKFace 約 23708 張 Face dataset -> 做 EDA 分析 (ex: sex, age, race) -> Data cleaning -> 將資料用Sklearn train_test_split 方法切割成 train: 80%, valid: 10%, test: 10% -> 將分好的資料寫成二進位格式轉成TFRecords 檔 (能夠在訓練時快速讀取大量資料) -> 讀取大量圖片檔案並轉成 numpy 格式,遇到 I/O 問題,使用 multiprocessing 跟容器減少讀取時間跟記憶體消耗 -> 解析 TFRecords 檔使用 tf.data pipeline (載入資料, 預先處理, cache, map, shuffle, prefetch) 

建模&訓練:

建立模型 (ex: VGG16, ResNet50, Xception, EfficientnetB5-7-L2, EfficientnetV2-m-l-xl) -> 使用 Transfer Learning 加 pre-trained model weights (ex: ImageNet) or Self-Supervised learning weights (ex: Noisy-student, ImageNet21K, ImageNet21K-ft1K) -> Fine-tuning -> 使用 Kaggle TPU/GPU 訓練 -> Evaluate Accuracy -> Plot predict curves -> Confusion Matrix -> Visualize prediction images -> F1 score 

Test Top1 Accuracy: ≈ 85.x%                                                                                                                   My Github:  

2021/05 ~ 2020/12 

Face Detection and Recognition (Face Attendance Project)  


軟體實作:

Python, OpenCV, Pillow, Dlib, MediapipeFace_recognition


Paragraph image 02 00@2x
Paragraph image 03 00@2x

功能:

1. 偵測與辨識人臉系統,寫入CSV檔管理出勤 2. 人名中英文轉換

實作工具:

Macbook Pro Camera, VSCode








My Github:  

2018/8 ~ 2018/12

Automatic-Cafe (Group Project) 

Web 開發:

JavaScript, Html5, CSS, Bootstrap,

Nginx

軟體開發:

Tensorflow, Jupyter notebook, 

OpenCV, Tesseract OCR, Linux(Ubuntu18.04), Linebot

硬體 & 開源工具:

RaspberryPi-3B, Nvidia GPU 2080, LabelImg, Donkey Car & Ducky Car Framework

功能:

1. Web 顧客選位  

2. LineBot 語音點餐、拉花遊戲、滿意度調查服務  

3. 以 Donkey Car 架構為基礎訓練的送餐車

4. 用 LineBot 呈現以 RNN 做的詩詞

5. CNN 老鼠辨識器,用以解決倉儲中環境衛生問題。

6. 我的功能以下面的 Text Recognition 專題介紹。

Group of 6.

Paragraph image 02 00@2x

Text Recognition (My Project)

軟體實作:

Python, OpenCV, Tesseract OCR,

EAST pre-trained model and Ubuntu18.04.

功能:

Text Recognition 用在辨識顧客的牌子文字

參考資料 & Open Source: 

1. EAST: An Efficient and Accurate Scene Text Detector (Github)

2. PyImageSearch

My Github:    

https://github.com/tonyhsu32/AI-Cafe-with-machine-learning

My Demo:  https://www.youtube.com/channel/UC8Rz5NB_A_FCEAXJjIC8xqw


Paragraph image 00 00@2x

Paragraph image 00 00@2x

Web Crawler


Paragraph image 05 00@2x
Paragraph image 05 01@2x

2021/05 ~ 2020/12 

圖片爬蟲程式(Web Crawler)

1. Google Image Crawler

軟體實作:

Python, Selenium, urllib

2. Unsplash 圖庫 Crawler

軟體實作:

Python, Selenium, urllib, BeautifulSoup

功能: 自動化圖片抓取

My Github:  

Web Projects


Paragraph image 03 00@2x

2018/8 ~ 2018/12

Music Web (Group Project)

前端開發:

JavaScript, Html5, CSS, Bootstrap

後端開發:

Python, Django, MySQL

功能:

CRUD 服務, 註冊會員, 留言板, 聊天功能 (我), 自動匹配喜好 Youtube 音樂, FB Chatbot 服務。

UI介面: 參考 Spotify 網站

Group of 5.

My Github:  https://github.com/tonyhsu32/team4project                   

葆光系統 - POS 網站開發-Case (Project)

軟體開發:

JavaScript, Html5, CSS, Bootstrap, UI

資料: 

葆光系統 - POS 管理 Data

功能: 

POS 網站首頁動態介紹 (Self-Study期間完成)

My Github:  https://github.com/tonyhsu32/FitSoft-web


Paragraph image 00 00@2x

Paragraph image 00 00@2x

Edx x Microsoft Certificate:


  1. Logic and Computational Thinking 

  2. Introduction to Python for Data Science

  3. Microsoft Professional Orientation Front-End Web Developer

  4. Essential Math for Machine Learning Python Edition

  5. Algorithms and Data Structures

  2018.8 ~ 2019.2

Coursera Certificate:


Deep Learning Specialization  

 Instructor:  Stanford's Andrew Ng

 5 courses: 

        - Neural Networks and Deep Learning 

        - Improving Deep Neural Networks Hyperparameter tuning, Regularization and Optimization 

        - Structuring Machine Learning Projects 

        - Convolutional Neural Networks 

        - Sequence Models

             

 2019.5 ~ 2019.11    Coursera link:   

      ( Self-study )

Paragraph image 01 00@2x