專案 Project
1. 遊戲腳本
由於開始工作後可使用時間比較少,希望可以最大化的利用自己的時間
而有些重複的任務可以用腳本達成,且這個腳本任務並不會影響他人,僅僅是與人機Bot對戰
因而做出此專案來達成自動與人機對戰領取獎勵
由於遊戲只接收 DirectX input,所以選用 PyDirectInput 套件作為鍵盤指令的輸入
以及 threading 的 Timer 定時觸發 function,實現完整遊戲腳本自動化
2. 麻雀天眼通
我們觀察到,在日常的休閒與朋友打麻將時,不少人不會計算台數,亦或是不同人有不同計算台數的方式,更甚是漏算、多算台數的狀況也不在少數,因而有了這個專題的發想。 為了解決這個問題,我們利用自定義訓練出來的深度學習網路架構模型,辨識出每張麻將的牌面後,在透過邏輯演算法判定胡牌正確性及計算本次胡牌(自摸)所得台數。
在資料集蒐集的部分,最初我們是經由手機拍照取得圖片後,再利用OpenCV將照片resize成適當的大小,以降低訓練模型時的負擔,但又能保留圖片該有的特徵,再進行人工手動的label,以產生我們的資料集。而後我們寫出了一隻能自動生成資料集的程式,既可降低手動label的人為誤差,也可以節省人力,及大量生成資料集。
而在模型訓練及選擇上,我們選用YOLO v5的模型,結合更多元的訓練資料集,及調整anchor size、blur及不同的optimizer嘗試後,我們得到擁有超過9成辨識率的模型。並將其轉換為前端架構使用的Tensorflow.js模型,以增強客戶端響應運算結果的速度。 最後在視覺呈現上,我們使用flask框架架設了一個網站,在進入頁面後,我們會用相機偵測牌型,而後讓使用者設定、調整網頁上的選項,進而得到驗證結果。
3. Flask 網站架設
我在Udemy上自學了一堂課程,這是一個模仿twitter的專案實現,在經過簡易的註冊後即可登入至主頁面,主頁面會顯示用戶自己的推文,以及用戶所追蹤的用戶發送的推文,在Explore頁面可以探索所有用戶發送的推文,而在個人頁面可以編輯個人資料
- 前端知識:透過HTML作呈現,並加上簡易的Bootstrap做為美化
- 資料庫應用:使用ORM框架的Flask-SQLAlchemy,在本地開發時用SQLite,部署到雲端時使用MySQL,作為存儲用戶資料、用戶推文的資料庫
- 重製密碼:以email發送帶有token的認證連結,在確認是該用戶後,將用戶重新導向至密碼重製頁面
- 非同步請求:以AJAX實現主頁面的總推文數統計
- 虛擬容器與雲端平台使用:部署到GCP上並且以Docker作為容器,使網頁能順暢運作
- 第三方API串接:使用Oauth 2.0,實現以Google登入網站
#Flask #HTML #Bootstrap #Flask-SQLAlchemy #SQLite #MySQL #token #AJAX #GCP #Docker
GitHub:https://github.com/Touyu-Pan/twittor