yolov5網絡結構分析


 

  學習YOLOv5算法,發現搜到的網絡結構圖不方便自己理解記憶,並且將pt模型轉化成onnx之后,模型可視化后差異太大,簡直看不出是同一個模型,雖然結果大致相同...,所以整理了一版網絡結構圖堅固原始模型在心里的地位,並配上yaml網絡設置相關代碼。

  YOLOv5s網絡結構:

 

  其中橙色的數字表示層號,0-9層構成backbone,10-23層構成head,17、20、23 層的輸出是Detect()函數的輸入。C3后的參數表示(c_in, c_out)* 該模塊堆疊的次數,Conv和Focus參數(c_in, c_out, kernel_size, stride), SPP后的參數(c_in, c_out, [kernel_size1,kernel_size2,kernel_size3]),Concat是axes=1時的合並,upsample的scale_factor為2,輸出圖像為輸入的2倍。

  模塊表示如下圖:

 

  

 

 

 

  相關開源yaml截圖為:

 

 

  值得注意的地方是,推理的時候self.training 應該為False,開源代碼給了額外的靈活性(方便onnx轉換的訓練和推理驗證)添加了export變量,

self.training |= self.export

  如果設置self.export為True,則self.training為True,那么在onnx推理時,需要注意將self.export設置為False。

 

以上。

 


 

個人公眾號會定期進行一些技術更新,感興趣的同學可以掃碼關注。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM