目標檢測模型的發佈論文一般給出了基於VOC或COCO等數據集的AP和AR等指標值,這個可以作爲比較選擇模型的一個參考,實際效果怎麼樣還是得自己動手實驗了才知道真實效果是怎麼樣,最好採用需要在實際項目中應用的自己製作的同一數據集來訓練和比較比較直觀和有說服力。
近兩個月來斷斷續續用一部分時間使用同一自有數據集(內有1個類別)完成了CenterNet、EfficientDet(backbone是adv EfficientNet b7)的訓練、爲加快進度,讓同事同時完成了backbone分別採用ResNet101和HRNet的Cascade-RCNN的訓練,最後我測試比較這四種訓練出來的模型的效果如下:
1)EfficientDet的理論指標值:
2)CenterNet的理論指標值:
3)Cascade-RCNN(HRNet)的理論指標值:
4)Cascade-RCNN(ResNet101)的理論指標值:
性能上分別測試了在AI訓練服務器上的識別性能和在Xavier板子上的識別性能:
1)CenterNet在AI服務器上識別性能,識別一張圖需要0.16-0.2秒:
2)CenterNet在Xavier上的識別性能,識別一張圖需要0.9秒多:
3)EfficientDet在AI服務器上的性能,識別一張圖只需要0.1秒左右:
4)EfficientDet在Xavier上的性能,識別一張圖需要0.3秒多:
5) Cascade-RCNN(HRNet)在AI服務器上的性能,識別一張圖需0.12-0.16秒多的樣子:
6)Cascade-RCNN(HRNet)在Xavier上的性能,識別一張圖需1.5-1.8秒多的樣子:
7)Cascade-RCNN(ResNet101)在AI服務器上的性能,識別一張圖需不到0.1秒的樣子:
8)Cascade-RCNN(HRNet)在Xavier上的性能,識別一張圖需1.2-1.3秒多的樣子:
實際誤識別:
測試樣本共有694張圖, CenterNet和EfficientDet以及Cascade-RCNN(ResNet101)沒有誤識別,Cascade-RCNN(HRNet)有一張誤識別。
召回率實際效果:
假如一張圖裏只要發現一個目標即視爲成功召回(這個根據具體項目需求定)的話,測試樣本694張圖裏,CenterNet有8張完全沒有召回,EfficientDet有12張完全沒有召回,Cascade-RCNN(ResNet101)有20張完全沒有召回,而Cascade-RCNN(HRNet)則只有2張完沒有召回。
可見各個模型有各自的優缺點,有的模型在論文中給出的指標非常高,例如efficientdet,實際測試值也差不多,但是Cascade-RCNN(ResNet101)這樣的老模型的論文指標不是最好的,但實際測試中理論上指標最優秀,居然遠超efficientdet,但是實際召回效果卻又不是理論計算出的值那麼回事,所以,盲目相信論文中的理論指標值也會害死人,各個模型都有自己的優勢和侷限性,不同的部署環境裏在性能上表現也差異挺大的,比如Cascade-RCNN在服務器上性能很好,在Xavier上就最差了,所以需要根據是需要將模型用於比賽還是實際項目應用,實際項目應用中的部署環境條件和項目對AI模型提出的關鍵需求等因素綜合考慮選擇合適的模型。