# Super Resolution 研究
###### tags: `coding365` `機器學習`
## 運行過程
### DockerHub 網址
>[DockerHub for srgan](https://hub.docker.com/r/william104/srgan/)
### 環境依賴項
1. 安裝 docker
2. 下載這個資料夾(其實就是 git clone +訓練素材包,都已經放到對應的位置了+模型)
https://drive.google.com/drive/folders/1n9sF_s_60GUgbyOzyh630NiAgye9WJVg?usp=sharing
終端任意位置,運行以下指令(這邊路徑以 windows 為例, linux 的記得反斜線,或是直接複製
### docker_run_指令
```shell=
docker run -it --rm -p 8889:8888 -p 6007:6006 -e PASSWORD=JUPYTER_NB_PASSWORD -v C:\Users\willi\Documents\srgan:/srgan william104/srgan /bin/bash
```
#### 這邊是要自行更改的
>-v 代表文件映射,把host 的資料夾映射到 container 內使用,這邊資料夾是可以雙向的更改的。
> C:那邊是你存放上述資料夾的位置,:冒號以後是你在 docker 容器內的位置,預設我直接存在根目錄下的 srgan 資料夾。
#### 這邊是其他參數解釋
>-p 是 port 映射,前面是本機host,後面是容器container,因為不要打到各位可能已經在運行的程序,我把端口映射 +1
>-e 是環境變數設定,其中的一個變數 PASSWORD 是原鏡像(tensorlayer)用來生成 jupyter notebook 密碼用,自行更改,不改沒差。
接著他會自己去 pull images ,run 並開啟 bash,然後下以下指令啟動程序:
```shell=
cd /srgan
python main.py
```
開始執行這支程式,然後我們繼續來研究ㄅ
## 運行紀錄
### 設備紀錄
>CPU 紀錄
>
>GPU紀錄
>
>運行完成
>
### 討論紀錄
> 這個東西ㄋ,用到 CNN + GAN,所以ㄋ,你要會現在所以機器學習熱門關鍵字中。幾乎全盤的知識XDD
>雖然他說他是 SR"GAN"
但是,他的 GAN 裡面包著 CNN
所以,這個東西訓練要一次訓練兩個神經網路 generator and discriminiator
其中的神經網路是用 CNN 為樣本
>然後因為提到 CNN ,所以作者選用 CNN 目前的最佳解之一 VGG來當 model , 這又害我不得不去找 VGG 19是啥
>所以才會出現這份筆記 http://gan.seal.moe 裡面的外部資源就是我刷過的文章..
## 運行結果
### LR Original image
>
### HR by GAN transfer
>
### HR by other transfer
>
### HR Original image
>
### 模型 npz 連結
[google drive](https://drive.google.com/drive/folders/1rFc4tD1LkH3W-BzCjfmFveNIEDOK7BgS?usp=sharing)
## 遠見與下一步
### 我想架一個伺服器讓大家傳送圖片進來可以 返回高清圖片
* 例如 png 才能受到較好的優化(我指的是 jpg 的破壞性壓縮並不能被很好得還原)
* 優化的圖片不能太大的問題,500*800 的可以10s內生出,但是1000*700 的卻會直接把16GB內存吃完也生不出來。(i5 8th on mac os CPU mode),
* 優化算法使應用更廣泛
### 下個目標就是,低畫質的影片,轉高清
* 楓 Black, [30.11.18 21:50]
[In reply to William Mou]
@WilliamMou 如果每兩幀 只優化一幀 效果上會如何呀 還滿好奇的
* 老師:IPM 壓縮對於幀數的影響,參考壓縮可還原的部分
* 楓 Black, [30.11.18 21:50]
會不會因為視覺暫留 讓使用者感覺不出來
## 外部資源
### SRGAN
[srgan paper](https://arxiv.org/abs/1609.04802)
>[srgan GitHub](https://github.com/tensorlayer/srgan)
>[srgan Data](https://data.vision.ee.ethz.ch/cvl/DIV2K/)
>[srgan prepare model](https://mega.nz/#!xZ8glS6J!MAnE91ND_WyfZ_8mvkuSa2YcA7q-1ehfSm-Q1fxOvvs)
[srgan 掘金搜尋](https://juejin.im/search?query=srgan)
### GAN
[令人拍案叫绝的Wasserstein GAN](https://zhuanlan.zhihu.com/p/25071913)
[教電腦畫畫:初心者的生成式對抗網路(GAN)入門筆記(TensorFlow + Python3)](https://medium.com/@gau820827/%E6%95%99%E9%9B%BB%E8%85%A6%E7%95%AB%E7%95%AB-%E5%88%9D%E5%BF%83%E8%80%85%E7%9A%84%E7%94%9F%E6%88%90%E5%BC%8F%E5%B0%8D%E6%8A%97%E7%B6%B2%E8%B7%AF-gan-%E5%85%A5%E9%96%80%E7%AD%86%E8%A8%98-tensorflow-python3-dfad71662952)
### CNN
[CNN Visual Recognition](http://cs231n.github.io/convolutional-networks/)
[VGG model 心得](https://blog.csdn.net/qq_40027052/article/details/79015827)
[用PaddlePaddle和Tensorflow实现经典CNN网络Vgg](https://cloud.tencent.com/info/ec5b15617775d3d310be4cbfc2146d63.html)
[用tensorflow.slim簡單建立VGG19](https://blog.csdn.net/mao_xiao_feng/article/details/73409975)
### Kaggle
[分分钟带你杀入Kaggle Top 1%](https://zhuanlan.zhihu.com/p/27424282)
[XGboost](https://medium.com/@yehjames/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC5-2%E8%AC%9B-kaggle%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%AB%B6%E8%B3%BD%E7%A5%9E%E5%99%A8xgboost%E4%BB%8B%E7%B4%B9-1c8f55cffcc)
### Tensorlayer
[Tensorlayer GitHub](https://github.com/tensorlayer/tensorlayer)
[Tensorlayer Tutorials](https://tensorlayercn.readthedocs.io/zh/latest/user/tutorial.html)
### Deep Learning
[Deep Learning:中文學習資源整理](https://jerrynest.io/deep-learning-resource/)
### Machine learning
[CNN visual recognization](https://medium.com/@yehjames/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC3-3%E8%AC%9B-%E7%B7%9A%E6%80%A7%E5%88%86%E9%A1%9E-%E9%82%8F%E8%BC%AF%E6%96%AF%E5%9B%9E%E6%AD%B8-logistic-regression-%E4%BB%8B%E7%B4%B9-a1a5f47017e5)
### Docker
[菜鳥教程 Docker](http://www.runoob.com/docker/docker-image-usage.html)
[Docker和宿主机之间共享文件](https://blog.csdn.net/xiangxianghehe/article/details/77131962)
### Python
[[資料分析&機器學習] 第2.5講:資料視覺化(Matplotlib, Seaborn, Plotly)](https://medium.com/@yehjames/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC2-5%E8%AC%9B-%E8%B3%87%E6%96%99%E8%A6%96%E8%A6%BA%E5%8C%96-matplotlib-seaborn-plotly-75cd353d6d3f)
[Python 的 .py 和 .pyc 檔有什麼不同 ? ](https://www.arthurtoday.com/2010/02/python-py-pyc.html)
[pandas提供了一些option设置](https://www.jianshu.com/p/7e19bf77e314)
### 額外
[check point](https://drive.google.com/drive/folders/1rFc4tD1LkH3W-BzCjfmFveNIEDOK7BgS)