把玩 Edge Detection (with PyTorch) 範例

動機:想要玩玩 Edge Detection 效果程式(PyTorch)而不使用OpenCV library,可以辦到嗎?!

準備環境
1.MacOS平台
2.Python 3.7
3.PyCharm CE

實作步驟
1.作者(Domenic Curro)分享了範例碼,但沒寫啥安裝指示(如~參攷1.),我是利用 git 指令下載相關程式,如下
$ git clone https://github.com/DCurro/CannyEdgePytorch.git
2.再執行上述作者提供的範例碼,如下
$ python3 canny.py
它會產生四個圖片,分別是... gradient_magnitude.png, thin_edges.png, final.png, thresholded.png
其中的 final.png 就是本篇的主角了,如下圖


3.上述 canny.py 作者並未寫自動判斷GPU的程式,若是像我在 Mac筆電 上執行就要改 Line#31(remove comment), 而將 Line#32(comment)了...另外,還有執行程式碼時會有 imageiowarning,就端視看倌要不要解決了...


心得
1.其實作者真正厲害的演算法是寫在 net_canny.py 中,它點出了 gradientedge 的數學美妙之處,值得細細品味!!
2.針對 edge detector 不得不提 HED(如~參攷2.),但深層研究它需要讀 citation 及 下載一堆程式及訓練集,有空再來玩玩了...

參攷
1.DCurro/CannyEdgePytorch, https://github.com/DCurro/CannyEdgePytorch
2.zchrissirhcz/pytorch_hed, https://github.com/zchrissirhcz/pytorch_hed

留言