shape_based_matching icon indicating copy to clipboard operation
shape_based_matching copied to clipboard

Cmake + OpenCV3.0無法通過

Open DennisLiu-elogic opened this issue 5 years ago • 17 comments

您好,我使用Cmake-gui嘗試建置專案。 我的OpenCV安裝路徑 : C:/OpenCV3.0

CMakeLists.txt中 :

...

opencv

set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} C:/OpenCV3.0/opencv/build) find_package(OpenCV 3 REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) ...

Configure第一次結果 :

OpenCV ARCH: x86 OpenCV RUNTIME: OpenCV STATIC: ON CMake Warning at C:/OpenCV3.0/opencv/build/OpenCVConfig.cmake:166 (message): Found OpenCV Windows Pack but it has no binaries compatible with your configuration.

You should manually point CMake variable OpenCV_DIR to your build of OpenCV library. Call Stack (most recent call first): CMakeLists.txt:32 (find_package)

CMake Error at CMakeLists.txt:32 (find_package): Found package configuration file:

C:/OpenCV3.0/opencv/build/OpenCVConfig.cmake

but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be NOT FOUND.

能否給點建議?感謝

DennisLiu-elogic avatar Aug 08 '19 10:08 DennisLiu-elogic

可以试试绕过cmake,新建个vs工程,手动把opencv配置下,然后把MIPP加到include path里。

meiqua avatar Aug 08 '19 11:08 meiqua

你好,照了你的建議建置VS工程,專案可以使用了 但是執行速度極慢 (如圖) image

這樣是正常的嗎?

DennisLiu-elogic avatar Aug 09 '19 19:08 DennisLiu-elogic

--old-- image 我的電腦使用checkHardwareSupport查看優化狀態為如此 還是我需要自己define SSE AVX (如mipp.h中的內容)...?

---06:08--

設定O2、OpenMP後速度明顯快很多 ( < 1s) 但MIPP_test ()訊息依然是 Instr. type: NO Instr. full type: NO_INTRINSICS Instr. version: 1 Instr. size: 0 bits Instr. lanes: 1 64-bit support: no Byte/word support: yes in this SIMD, int8 max is not inplemented by MIPP in this SIMD, int8 shuff is not inplemented by MIPP

是否有東西我沒注意到? 感謝回復!

DennisLiu-elogic avatar Aug 09 '19 20:08 DennisLiu-elogic

VS里也需要设置下SIMD

meiqua avatar Aug 10 '19 01:08 meiqua

你好 : 避免多開一issue,直接在這發問

image 這張圖是我拿其他專案來測試的,模板與來源都為二值化的後的影像 但這次結果似乎是匹配到梯度為0的地方,有什麼想法嗎?謝謝

DennisLiu-elogic avatar Aug 15 '19 16:08 DennisLiu-elogic

粗匹配的结果差一两个像素正常。如果需要完全对准,可以后面加icp,参考其他branch。

meiqua avatar Aug 16 '19 02:08 meiqua

你好,我下載了cuda_icp資料夾,放到MIPP同層 專案多設定一個include目錄(cuda_icp) (不使用CMake) 編譯時會找不到Eigen相關的目錄,這個是要額外下載的嗎?

--16:10-- 將cuda_icp的.h .cpp全部加入專案內,include Eigen資料夾 編譯後的錯誤訊息都跟OpenMP相關

  1. 'declare': 需要 OpenMP 指示詞名稱
  2. 'reducer': 'reduction' 子句中的變數必須有純量算術類型
  3. 'pcd_iter': OpenMP 'for' 陳述式中的索引變數必須具有帶正負號的整數類資料類型

DennisLiu-elogic avatar Aug 16 '19 07:08 DennisLiu-elogic

是的

meiqua avatar Aug 16 '19 08:08 meiqua

可以把openmp这几行注释掉,影响不大

meiqua avatar Aug 16 '19 08:08 meiqua

@meiqua 感謝大神快速回復!

另外有些想法想與你討論,昨天我看了工廠的機台用Cognex的形狀匹配,發現Cognex訓練模板時會將整個輪廓畫出來,與使用Canny時非常相似 (我猜選用的特徵點也幾乎遍布畫出來的輪廓,數量多),是否在選定特徵點的時候參考Canny的算法比較好? 我知道雙閥值已經有Canny的味道,但是現在這個專案就算把feature number調高也沒辦法找到那麼多特徵點

DennisLiu-elogic avatar Aug 16 '19 08:08 DennisLiu-elogic

画出来的不一定都会选。设置成固定数量主要是这么多已经够了,点选特别多反而拖慢速度。当然想全选也可以。

meiqua avatar Aug 16 '19 09:08 meiqua

--old-- image 我的電腦使用checkHardwareSupport查看優化狀態為如此 還是我需要自己define SSE AVX (如mipp.h中的內容)...?

---06:08--

設定O2、OpenMP後速度明顯快很多 ( < 1s) 但MIPP_test ()訊息依然是 Instr. type: NO Instr. full type: NO_INTRINSICS Instr. version: 1 Instr. size: 0 bits Instr. lanes: 1 64-bit support: no Byte/word support: yes in this SIMD, int8 max is not inplemented by MIPP in this SIMD, int8 shuff is not inplemented by MIPP

是否有東西我沒注意到? 感謝回復!

Hi @DennisLiu-elogic , could you explain to me more details "設定O2、OpenMP後速度明顯快很多"? how to do this?

huynhbaobk avatar Mar 19 '20 08:03 huynhbaobk

@huynhbaobk image set O2 here

image set OpenMP here

DennisLiu-elogic avatar Mar 19 '20 10:03 DennisLiu-elogic

@huynhbaobk 可以參考我的github,shape matching的替代方案 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

DennisLiu1993 avatar May 08 '22 13:05 DennisLiu1993

可以參考我的github,shape matching的替代方案

Great work!

huynhbaobk avatar Jul 26 '22 03:07 huynhbaobk

您好,我留意过您的github,想了解一下你这里用ncc方式是如何实现亚像素的效果呢

cheny00 avatar Jul 27 '22 08:07 cheny00

這裡

DennisLiu1993 avatar Jul 29 '22 17:07 DennisLiu1993