负数如何归一化处理_小白的图像处理入门(一)
這學(xué)期有兩門(mén)課程與圖像處理有關(guān),一門(mén)是圖像處理與內(nèi)容分析(數(shù)字圖像處理+機(jī)器學(xué)習(xí)),另一門(mén)SLAM課程,SLAM的全稱(chēng)為Simutaneously Localization and Mapping,具體來(lái)說(shuō)就是即使獲取圖像,處理圖像并進(jìn)行路徑規(guī)劃與場(chǎng)景建模,下面是第一次作業(yè)的小結(jié)
作業(yè)1:實(shí)現(xiàn)SSD算法:
SSD算法的思路很簡(jiǎn)單,假設(shè)要找的模塊為target, 找的對(duì)象是img, 那就不斷從img里面截取target大小的子圖像,然后計(jì)算兩個(gè)模塊每個(gè)像素灰度值的差的取絕對(duì)值,再平方求和得到誤差,誤差最小的子圖就是匹配得出的對(duì)象了 ,想法簡(jiǎn)單很簡(jiǎn)單,匹配下面這個(gè)玩意兒:
但是一看結(jié)果。。
這么簡(jiǎn)單的算法也能出錯(cuò)???
然后一番摸索,甚至從原圖中摳圖再匹配誤差仍然大得驚人,輸出一看,咋這么多255?
然后一番思索,發(fā)現(xiàn):
原來(lái),圖像每個(gè)像素灰度值被表示成了np.int8,兩個(gè)numpy數(shù)組在計(jì)算差的時(shí)候,負(fù)數(shù)還會(huì)補(bǔ)碼,嚇得趕緊展開(kāi)成一維的圖像進(jìn)行處理:
后來(lái)發(fā)現(xiàn),在很多代碼中都采用了展開(kāi)成一維,再用.dot()運(yùn)算,運(yùn)算速度也快了起來(lái),匹配成功
作業(yè)2:實(shí)現(xiàn)ZNCC算法:
ZNCC,在這篇文章中有詳細(xì)的寫(xiě)公式Zero Mean Normalized Cross-Correlation,意為零均值歸一化交叉熵,零均值肯定要每項(xiàng)減去均值,歸一化意味著要除以標(biāo)準(zhǔn)差,交叉熵體現(xiàn)在兩個(gè)圖片'向量'的點(diǎn)乘上,如果說(shuō)SSD關(guān)注的是像素上的相似性,那么ZNCC關(guān)注的,更多是結(jié)構(gòu)上的相似性。
為了證明上述猜測(cè),可以對(duì)原圖進(jìn)行Histogram Specification,即直方圖特例化,向檢測(cè)目標(biāo)進(jìn)行轉(zhuǎn)換,圖為轉(zhuǎn)化前,參考圖,以及轉(zhuǎn)化后圖
特例化后,SSD算法明顯變好
ZNCC算法評(píng)價(jià)指標(biāo)可有下式子計(jì)算:
總結(jié)
以上是生活随笔為你收集整理的负数如何归一化处理_小白的图像处理入门(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 使用jstack_案例解析:
- 下一篇: sql count用法_SQL是一门手艺