1. 程式人生 > >影象搜尋與匹配

影象搜尋與匹配

對上週影象搜尋調研的情況進行一下總結:

目的:拿出一張圖片在一個擁有百萬級別的池子裡面找出相似的圖片,對相似的圖片進行排序

調研結果過程:

       第一步:

                 首先調研到影象通常匹配的方法是直方圖、aHash、pHash方法

                 參考連結:https://blog.csdn.net/qcloudcommunity/article/details/78274610

                 aHash原理:http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html?20150415102912

                 pHash原理:https://blog.csdn.net/lu597203933/article/details/45798293   

                程式碼實現見github:

https://github.com/wangtao666666/image

       第二步:

               發現第一步中的演算法準確度不夠,因為是hash演算法從演算法本質上來看演算法是基於RGB計算的,所以即使同一人在同一個場景動作不同,演算法都識別不出來。

               又調研一下發現很多采用提取特徵+快速搜尋模式找到相似的幾張圖片

               一般提取特徵有:SIFT、SURF、ORB

               快速搜尋:k近鄰搜尋演算法、暴力搜尋演算法、FLANN

               參考連結:https://blog.csdn.net/zilanpotou182/article/details/66478915

               測試了一下幾個提取特徵的速度:樣本集是拿一張圖片在容器為10000張圖片的池子裡面進行搜尋得到相近的幾張圖片

                演算法組合                           時間

              SIFT+FLANN                    382s

              SURF+FLANN                    141s

              ORB+k近鄰/暴力匹配         41s

              由於41s也不能滿足專案需求,之後又寫成多執行緒的形式,測試一下15s    

              程式碼實現見github:https://github.com/wangtao666666/image

       注:

             還有一種快速影象檢測匹配的一套流程,參考連結https://blog.csdn.net/weixin_41362649/article/details/82861669