# 9/28(四) 1. **Paper**: Complementary Bi-directional FeatureCompression for Indoor 360° Semantic Segmentation with Self-distillation # 9/29(五) 1. 研究Segment-Anything和Yolov5在Panorama照片下的表現 2. ==Yolov5在Cube map下的表現高於Panorama照片下的表現== # 10/1(日) 1. 完成Panorama image轉換到Cubemap # 10/2(一) 1. ==完成Panorama image上的某一點可以找到對應Cubemap上的某一點。 (在P2C_point.py)== # 10/3(二) 1. 測試Yolo-v5檢測效果 2. 比較Yolo-v5的Segment和SA的差異 # 10/4(三) 1. ==完成Panorama 點轉換到 Cubemap,但是在上下的4個角落會無法Project== # 10/5(四) 1. ==完成Cubemap點轉換到Panorama== 2. ==完成Cubemap轉換到Panorama== 3. 座標轉換工具(PanoramaCubemapConverter.py)大致完成 # 10/6(五) 1. ==Yolo-V5 api完成== 2. ==SA api完成== 3. <font color="#D83F31">Yolo-v5的segment api需要花時間去看source code,目前官方不支持 inference使用</font> # 10/12(四) 1. main.py檔案測試完成。可對接Yolo-V5 api和SA api 2. <font color="#D83F31">經過SA完的mask會有重疊的狀況發生(例如: 筆電和筆電的鍵盤)</font> 3. 測試Yolo-V5加SA的總執行時間 # 10/13(五) 1. ==為了使用yolo的segmentation,改用yolo-v8做為主要檢測網路== 2. 重新實驗SA+yolo-v8和yolo-v8所需執行時間和效果 4. ==完成main.py的SA+yolo-v8部分和yolo-v8的segmentation功能,現在可以做到得出panorama上的mask== 5. <font color="#D83F31">經過SA完的mask會有重疊的狀況可以被yolo-v8的segmentation解決</font> # 10/14(六) 1. 針對mask接合處的問題,提出以下方法: * <font color="#D83F31">Cubemap辨識下用循環查詢,但是如果連接處的物件沒有在其他地方被偵測到還是會斷掉</font> * <font color="#D83F31">直接將Panorama照片送入Yolo-v8,但是小東西會辨識不到,而最左邊和最右邊也會有斷掉的狀況。無法直接使用Yolo-v8的segmentation,出來的解析度太低,且mask會有跑掉的狀況</font> 2. ==撰寫combine_mask function處理,但是有bub== # 10/15(日) 1. ==完成panorama 直接送入Yolo-v8,效果還不錯== 2. 改寫框架,將每一種方法寫在strategies.py中 3. <font color="#D83F31">發現昨天的bug由兩個原因組成 * py360convert的p2c轉換後會把R、B左右顛倒,U則是上下顛倒 (已修正) * 原本預設在cubemap下的bbox轉換到panorama也會是正常的,但是後面測試發現轉換後有些點會跑到別的方向的cubemap,所以這種方法不適合作後續的斷點處處理。 </font> # 10/16(一) 1. ==完成Yolo-v8 segmentation vs Yolo-v8 segmentation with SA在panorama下的比較(目前覺得後者比較好)== 2. ==完成Demo.py檔案,可以利用滑鼠查看有mask的物件== 3. <font color="#D83F31">Yolo-v8 segmentation with SA所產生的mask會出現有重複的現像(待處理)</font> # 10/17(二) 1. 將目前的code整理完後上傳到git了 # 10/18(三) 1. 創建好github,須按照以下步驟: 1. git clone https://github.com/Zhong-Zi-Zeng/VR-Project.git 2. cd VR-Project 3. git checkout <你的使用者名稱> 2. 如果要push東西則按照以下步驟 1. git add . 2. git status # 確認檔案都有被加入 3. git commit -m "<此次更新的內容>" 4. git push origin <你的使用者名稱> # 10/19(四) 1. ==main.py可以自動儲存帶有mask的panorama== # 10/20(五) 1. 重新整理git,<font color="#D83F31">現在上傳大檔案會有問題,嘗試使用lfs,但是現在無法取消指定要加入.gitattributes檔案,只能加入</font> 2. 所有本地分支跟遠端分支都已經同步 # 10/23(一) 1. ==後面將大型檔案加到gitignore後可以push到git了== 2. 以測試過在在不同台電腦開unity不會發生問題 3. 建構狀態機狀態: * <font color="#D83F31">BeginState</font>: * Action: 1. 選擇場景 (圖片) 2. 基礎設置 (mask產生方法、model選擇) * Process: 1. 若選擇完成,進入 <font color="#e89845">WaitPython</font> * <font color="#e89845">WaitPython</font>: * Process: 1. 將使用者選定的圖片名稱和各參數傳給python端 2. Python端生成mask和obj_data(包含各類別的mask和label,為pkl檔) 3. Unity接收到資料後render scene 4. 進入 <font color="#16539E">InGame</font> * <font color="#16539E">InGame</font>: * Action: 1. 選擇物件 2. 確定選擇的物件 3. 重新選擇場景 * Process: 1. 當使用者hover到帶有mask的物件後,重新render場景。若確定選擇此物件則進入Learning 2. 當使用者想要重新選擇場景,則進入 <font color="#D83F31">BeginState</font> * <font color="#754492">Learning</font>: * Action: 1. 選擇是否離開此狀態 * Process: 1. 若使用者選擇離開,則進入<font color="#16539E">InGame</font> # 10/25(三) 1. 將git上的main分支處理完成,現在變成大家都對main進行update # 10/26(四) 1. 研究整體framework和狀態機如何設置 # 10/27(五) 1. 完成第一版framework # 10/30(一) 1. ==合併Ya的部分到main.py中,測試完成== 2. ==將Ya的Unity部分整和到GameManager中。還在調整資料格式== # 11/6(一) 1. 使用Mask2Former和OneFormer比較兩個sota模型在panorama下的表現,==Yolo比較好== # 代辦事項 - [x] Panorama to cubemap transform - [x] Segment-Anything結合Yolov5辨識出來的框 - [x] 比較Yolo-v8的Segment和SA的差異 (速度、效果) - [x] Panorama 點轉換到 Cubemap - [x] Cubemap轉換到Panorama - [x] Cubemap的點轉換到Panorama - [x] 在Cubemap的mask轉換到 Panorama下 - [ ] 解決Segment接合處的問題 - [x] Yolo-v8、SA API - [ ] mask重疊問題 - [x] Yolo-v8 Seg API - [x] 完成第一版測試(可從panorama指定一點後渲染該點物件的mask,不須解決Segment接合處的問題) - [x] 能夠生成mask結合原圖的照片在資料夾下 - [x] 傳輸、接收api - [x] 比較在不同pretrain model下的表現 # 優化 - [ ] cubemap to panorama轉換速度 - [ ] 增加能夠辨識的類別數量