top of page

​學習

Python虛擬環境建置

Python虛擬環境建置

由於實驗途中會經常使用到Python,並分別使用不同的套件,所以我們採用了Pyenv-win配合virtualenv來輔助我們。Pyenv-win可以在一台電腦中安裝多種Python的環境,並透過CMD中輸入指令即可切換所需的Python版本,切換到我們所需的版本之後,便可再透過安裝virtualenv的Python套件實現虛擬環境的功能,讓我們可以不用顧慮會影響到主要的環境,因為虛擬環境是跟外界隔離的,只要直接將虛擬環境刪除便可重新建置環境,相當方便。

CNN

CNN

卷積神經網路(Convolutional Neural Network,簡稱CNN)是深度學習的一個神經網路架構,由輸入層(Input Layer)、一個或多個卷積層(Convolution Layer)、池化層(Pooling Layer)以及頂部的全連接層(Fully Connected Layer)所組成。在影像處理方面的效果很好,與傳統的人工神經網路相比更有效率也減少了參數的使用。下圖為CNN的始祖Model => LeNet的模型架構。

YOLO

YOLO

YOLO是一個物體識別模型(Object Detection Model)。物體識別是電腦視覺中比較簡單的任務,用來在一張圖片中找到某些特定的物體,物體識別不僅要求我們識別這些物體的種類,同時要求我們標出這些物體的位置。以下是YOLO的架構。

而YOLOv4-tiny則是縮減了卷積層的數量,在犧牲一些精確度的同時讓模型的size及訓練時間大幅度的縮小。以下是我們實際用YOLOv4-tiny訓練出來的模型所辨識的圖片。

GAN

GAN

GAN(生成對抗網路)是非監督式學習方式的一種,主要由兩個網路構成,分別是鑑別網路(Discriminating Network)與生成網路(Generative Network),透過兩者相互對抗產生學習的運作原理。

Generator是根據輸入的圖像數據去生成目標;而Discriminator是當Generator生成照片時,透過這個網路對生成的照片做評分或者驗證品質。因此在訓練的過程中Generator 會不斷想辦法"騙過" Discriminator。而Discriminator 會努力的去判別,辨別出此圖像是真實圖片還是由Generator所生成的,藉由這種對抗方式讓雙方不斷的進步成長,且只有Discriminator能得知真實圖像數據;Generator無法得知。因此,Generator才能產出沒有看過的圖片!

在模型訓練上往往需要大量的數據集,且利用人工標註和收集數據成本過高,因此利用GAN達到擴增數據資料同時降低成本。除了生成圖像之外,還可以利用GAN達到:   圖像轉換(白天換黑夜、圖片變油畫…) 、特徵更改(面部表情、性別、馬變斑馬、眼鏡配戴) 、圖像修復(修復圖像回初始狀態) 、生成3D圖像…… 不同的功能。

在這次比賽中,主辦方提供的訓練集各類別僅10張,但測試集卻達到8萬多張,對於AI訓練來說,學習越多的東西,越可以成功的預測與應變各種不同的狀況與問題,少量的資料量或變化性不大的資料,對訓練後的AI模型會不足以面對所有不同的狀況與問題。因此我們使用GAN來擴增資料集,這次我們使用StyleGAN2來幫助我們生成數據。

​原圖

利用StyleGAN2所產生的圖片

bottom of page