---
# System prepended metadata

title: 天桐工作區
tags: [畢業專題]

---

# 天桐工作區
###### tags: `畢業專題`

### 任務列表
1. [任務範本](#任務範本)


## 任務範本
**任務目標：** 即時色彩校正的演算法
**描述：** 通過演算法把AR 物體的顔色融入到場景。
**參與人員：** 曾天桐
**預估完成時間：** 此工程似乎超越了我的想象，先前預計的**3月24號**完成有可能會需要延遲，但會盡量的在不需要延遲的情況下先弄出來。
- [x] 已審核
- [ ] 已完成

**目標：**


---
<font color="#f00">**失敗品 ：演算法的資訊不足，能力不足，至少我沒辦法從文字把演算法寫出來，嘗試過將延申的論文都讀了但是實際測試過第一步就失敗，第一步是所謂的找到兩圖的共同特徵點，論文内寫SIFT，但簡單的圖計算時間都超過一分鐘，更不用説即使，加上論文中後續的部分都是大超乎我個人能力及理解範圍。但也因爲一直尋找延申的論文又讀到了一篇，從新的一篇得到了靈感，將寫在下面。**</font>

- [<font color="#f00">失敗</font>] 尋找有人實作過虛擬實境的色彩矯正的樣本來學習其概念及想法。【PDF資料<1>】【Github資料<2>】

:::warning
雖然已經找到了，但是由於對C++的不熟悉，環境雖然終於解決了，但是程式碼並沒辦法跑起來，也不確定是否是我環境問題還是程式碼本身問題。現在我打算的是看能不能自行瞭解轉成我能理解的語言並用出來。若失敗可能要請隊員幫忙一起理解或尋找其他實作。
:::
    
- [<font color="#f00">失敗</font>] 把學習到的演算法概念先用Python的語法寫出來,選擇先轉成Python是因爲Python在於影像處理上的套件比較多。此部分若成功會先與隊員討論是否結果理想以及有否偏向了主題以避免先前的錯誤。

- [<font color="#f00">失敗</font>] 把實作出來的程式與AR的程式做結合，根據得到的結果繼續對演算法做調整。目前有提到關於改善調整係數的資料有找到.【PDF資料[3]】

- [<font color="#f00">失敗</font>] 測試lαβ的效果

---



---

新的idea,成功率和可能性比較高，可以先做初版后再做調整。

靈感來自於【PDF資料[4]】。

方法的難度相對較低。但是以能力作爲範圍看起來比較可能做得到。
下方有流程圖以及示意圖，目標在示意圖之後。



流程圖如下 ：

![](https://i.imgur.com/jVpY2Qi.png)

示意圖如下 ：

![](https://i.imgur.com/CZpF6bu.png)



現階段目標 ：

- [x] 偵測一個假作爲Marker的物體，每幀捕抓顔色，儲存，並用一個視窗展示捕抓到的顔色。做好了這個再制定我的下一個目標。(<font color="#f00">2020年4月3日成功</font>)
 
效果展示 (程式碼在我調整好后會補上來)

![](https://i.imgur.com/ofSZPuf.png)
![](https://i.imgur.com/IPh2UJN.png)


第二階段目標 :
- [x] 接下來要做的是偵測真實的Marker后抓到顔色，並把顔色填入模組並觀察效果,但是目前發現顏色的亮度是個問題，可能是分辨顔色的方法有誤，日後可以再修改(<font color="#f00">2020年4月12日成功</font>)
注 ：由於JS模組比較難處理所以暫時都用Python來做嘗試和提升認知
    程式碼已上傳到github,接下來將會根據老師的回饋做調整。
    https://github.com/dentchan/Region_Color_Transfer
    
第三階段目標    ：
- [ ] 根據老師的回饋做調整。
(<font color="#f00">注 : 此段目標暫時延期，由於還未確定最終填色的方法。</font>)

新第三階段目標    ：
- [x] 可以對多個部分做顔色調整(先前的只能針對一個固定的部分去做調整)，已找到參考資料，是用C寫的，但是目測計算量龐大，只能抽取其精華，做個簡易版的。
- [x] 處理多個部分的關鍵在於如何分割(Image segmentation),偵測到dominant colors后把對應的部分都切割出來做處理

 若是能處理好這個之後無論面對什麽樣的模組都能夠順利的做色彩的調整
參考資料 : 【網頁資料[5]】
想法概念圖
![](https://i.imgur.com/hKDKe0O.png)
(<font color="#f00">2020年5月9日成功</font>)


![](https://i.imgur.com/tH7zAkB.jpg)
左為原圖 ， 右邊為利用K-Means切割顏色的分佈后所做的Color Transfer

![](https://i.imgur.com/uf5PFRY.jpg)
左為原圖， 右邊一樣是K-Means切割出來后對黃色區域做Color Transfer,顯示出K-Means是屬於比較Flexible的做法

與先前的不同之處

**之前**

之前是需要自定義顔色，再對偵測到的顔色做更動

例子: 定義要找紅色，找到后才能做Color Transfer,這方法很取決於色彩飽和度，不同色彩飽和度不同有時候沒辦法完整的偵測出來

**現在**

現在可以直接利用K-Means去分類顔色，分類顔色後去做Color Transfer

但是現階段分類后還是需要自己手動對應參考色做Color Transfer,下階段要加入計算並自動選擇對應的參考色

K-Means的壞處在於需要先自定義要分類幾個顔色，但這個問題不會影響太大，可以找個適合的constant 


第四階段目標    ：
- [x] 加入計算並自動選擇對應的參考色

成果已在臺上展現

原圖

![](https://i.imgur.com/dvFJaT4.jpg)

利用現成的github程式碼
![](https://i.imgur.com/1NkBZI3.jpg)

我自己研究的成果 雖然有些地方處理不好，但是其實效果上而言我自認還蠻偏理想的
![](https://i.imgur.com/M39yLdF.jpg)



**14/7/2020 進度**

這周基本上都在研究我要如何處理白平衡的問題，但是還沒有抓到訣竅，白平衡要如何運用對我來説還是個問題

拿了之前我處理起來比較黑暗的圖片來做測試

白平衡處理前
![](https://i.imgur.com/eqV4TVL.jpg)

白平衡處理後

![](https://i.imgur.com/obrIcFb.jpg)

現階段只有統一處理，我應該要做的是對ar物體的白平衡做改變，但這個要計算場景的白平衡后再套入，正在處理中。

---

**資料蒐集：**
1. [【PDF資料】Fast and Stable Color Balancing for Images and Augmented Reality](https://drive.google.com/open?id=1omkZ_xsRxD6Zv4Z6tRLH3-o7hczaSQvo)
1. [【Github資料】Fast and Stable Color Balancing for Images and Augmented Reality](https://github.com/AndreaMelle/arcolorbalancing)
2. [【PDF資料】Real-time color blending of rendered and captured video](https://drive.google.com/open?id=1biJwOH5Ve391D_4Tj_kVT_m_6HSEzeEm)
3. [【PDF資料】Adaptive camera-based color mapping for mixed-reality applications](https://drive.google.com/open?id=155ka3RDEL1tPW0eSW8Z3K79gkcpGMRm1)
4.  [【網頁資料】Color Tone Mapping — Local Color Transfer](https://medium.com/@michalconos/color-tone-mapping-local-color-transfer-95d7cb9f3d5b)

**結果展示**

**結語：** 


---