開源
自從yolov5開源以來祟剔,(不管因為啥原因算是)深受矚目挚歧,最近我用tensorflow實現(xiàn)了其主要部分于宙。就孤陋的我看來浮驳,是第一個純正的tensorfow2版本,歡迎try and star:
https://github.com/LongxingTan/Yolov5
?
之前在工作中接觸過yolov3(跑過demo應(yīng)該就算接觸過了)捞魁,效果驚艷至会。我在視覺領(lǐng)域只是個新人(悲傷的是我一個中年人卻在哪兒哪兒都TM是新人),能力有限谱俭,疏漏難免奉件。從頭開始實現(xiàn),對我來說是一次不錯的經(jīng)歷昆著,遇到和解決了一些細節(jié)問題县貌。
如readme中所指出的,主要特點如下:
- 純tensorflow2的實現(xiàn)
- 用yaml文件來配置模型和控制模型大小
- 支持自定義數(shù)據(jù)訓(xùn)練
- 馬賽克數(shù)據(jù)增強
- 通過iou或長寬比匹配anchor
- 相鄰正樣本增強
- 支持多GPU訓(xùn)練
- 相對詳細的代碼注釋
- 缺點多凑懂,提升空間巨大
原理
結(jié)合代碼簡單回顧一下其主要原理和改進煤痕。當(dāng)然知乎上已經(jīng)有不少非常不錯的解析文章可以參考,尤其是下面列舉的接谨。當(dāng)然杭攻,如有可能,讀代碼應(yīng)該是更清晰疤坝、細節(jié)的了兆解。
- https://zhuanlan.zhihu.com/p/172121380
- https://zhuanlan.zhihu.com/p/183838757
- https://mp.weixin.qq.com/s/yXcoRK6btznOdxMjAncIlQ
損失函數(shù)部分,還沒有完全和v5的設(shè)置一樣跑揉。v5中做了一些優(yōu)化锅睛,如不同scale的平衡,如目標confidence損失的權(quán)重等历谍。
效果
如果想要效果最佳现拒,還是推薦原版pytorch,畢竟一直在更新中望侈,v4和v5的作者也一直還在發(fā)力優(yōu)化印蔬。如果對tensorflow有謎之愛好,或者想通過代碼了解yolov5脱衙,我覺得我的版本寫的更清楚一些(與之相應(yīng)的代價是可能有細節(jié)遺漏甚至不對的地方)侥猬,總之歡迎大家嘗試例驹。
在MNIST檢測數(shù)據(jù)上的效果:
在voc2012數(shù)據(jù)集上的效果(效果還有待加強):
再大的數(shù)據(jù)集我就跑不動啦,畢竟只有1080Ti可用退唠。
歡迎關(guān)注