隨手扎
輪廓標記&霍夫曼變換&蒙地卡羅馬可夫 實現結果紀錄
我很想把詳細內容寫下來,好好說明一番。但東西多到可能會需要非常的花費時間。只是又非常非常想大喊:「想到這些方法的人們,根本就是鬼(才)吧!!」
所以這篇,就只簡單記錄一下各種方式的優缺點。
先說明一下問題:現在需要在一張圖片裡,尋找一個二維條碼的位置。
方法一:輪廓標記
優點:這種方式非常的快速,而且不受到形狀、大小、角度的影響。
缺點:尋找到的boundingRect可能只是剛好框住而已,還有可能找到以下幾種結果:
也就是結果蠻容易受到形狀本身、週邊和噪點影響。
方法二:霍夫曼變換
優點:非常精準、方形有缺陷依然可以正確找到,而且不受到噪點影響。
缺點:計算量非常高。有固定大小、旋轉方向的限制。
方法三:蒙地卡羅馬可夫
基於霍夫曼變換,然後再使用蒙地卡羅馬可夫方法。原本還想在加點退火進去,但就需求上好像意義不大,而且我寫的蒙地卡羅馬可夫方法…後來想想感覺也有一點退火的味道。
優點:在使用恰當的情況下,能夠足夠精準、方形有缺陷依然可以正確找到,而且不受到噪點影響。
缺點:要調整蒙地卡羅馬可夫方法到比較好的結果,真的又夠麻煩的!需要在計算量、精確度找到一個良好可接受的平衡。此外尋找方式,也就是機率轉移的處理有夠難找到非常恰當又好寫的Orz。
電腦視覺和人工智慧(Computer Vision & AI)
結論上,各種處理方式有其適用範圍。感覺若能將三者結合起來處理或許可以得到更好的程式。
這次也順便看了一下基於類神經網路的電腦視覺處理方式–YOLO。在這自己處理影像的過程中,能夠更清楚的理解,爲什麼影像辨識不但可以識別物件,還可以找到物件在圖像中的位置。
此外,在調整蒙地卡羅馬可夫方法和輪廓標記的參數過程中,也能體會爲啥需要類神經網路來找到一個恰當的參數模型了Orz…