對於畫素級別的影象預處理,如:將3通道的rgb彩色標籤圖對映為標籤連續的單通道8bit掩碼圖,在同樣呼叫opencv並且採用相同演算法時,c++的處理速度可能是python(opencv-python)的近百倍。目前不清楚具體原因,但是根據觀察,實際python執行時只呼叫了單個cpu,而c++版本則將任務平均分配給了所有cpu。但是python的檔案介面很好用,在處理輕量級任務優先python。
語義分割影象的label圖需要轉換為標籤連續的單通道8bit掩碼圖,並用-1表示不感興趣的類別。
影象預處理方法:參見文章自己寫了一部分在語義分割上的復現:
影象預處理在分割、檢測、分類上的應用(gridmask data augmentation):
這裡還是主要聚焦於如何調整損失函式,以tensorflow和keras為樣本,介紹tensor張量的使用與調整。
首先,我們要了解在tensorflow中,loss是怎樣被構建的。正常來說,loss的構建是在模型搭建這一步被選擇,如:
parallel_model.
compile
(loss=loss_func,optimizer=optimizer_name,metrics=
['accuracy'
])
這之後再會填充資料:
history = parallel_model.fit_generator(train_ge, epochs=epochs, callbacks=call_backs,
steps_per_epoch=
int(num_train / train_batch_size)
, verbose=
1, shuffle=
true
, max_q_size=
10, workers=
1)
1 語義分割部分
參考:基於交叉熵的損失函式系列:通過逐畫素計算**分布與groundtruth分布之間的「差距」得到損失函式的值。數學上可證明交叉熵損失函式等價於最大似然估計
基於重合度度量的損失函式:基於重疊度量的方法在克服不平衡方面表現出相當好的效能。
2 目標檢測bounding box regression部分
參考:smooth l1 loss→
\to→ iou loss→
\to→ giou loss→
\to→ diou loss →
\to→ ciou loss
smooth l1 loss(fast rcnn):
iou loss
giou loss
diou/ciou loss
參考:
打造深度學習煉丹爐
其中本地安裝指的是本地帶有顯示卡的台式主機或者筆記本,遠端安裝特指雲端需要遠端連線的伺服器 以上兩種情況都各包含三種安裝方式 直接安裝 anaconda安裝 docker安裝。直接安裝的意思就是直接將框架裝在系統的 python 的 warper 下,最常用的就是 sudo pip install ...
深度煉丹術
神經網路模型的設計和訓練十分複雜,initialization,activation,normalization,優化器,學習率 等等無不是四兩撥千斤,這篇文章主要是總結一些煉丹技巧,討論下關於如何初始化 選擇啟用函式 正則化的方式和優化器的選擇等。乙個框架看懂優化演算法之異同 sgd adagra...
Ubuntu 深度煉丹環境配置
深度煉丹最麻煩的就是環境配置了,下面過程記錄了本人進行深度煉丹環境的配置。首先是安裝圖形顯示卡驅動,按如下指令進行即可 sudo add apt repository ppa graphics drivers ppa sudo apt get update sudo apt get upgrade ...