簡體   English   中英

在發布/調試模式下,Haar級聯的結果不同

[英]Different results with Haar cascade when in release/debug mode

我正在使用從MIT汽車數據集訓練的Haar級聯分類器來檢測OpenCV中的車輛(使用隨OpenCV提供的實用程序進行訓練)。 在調試模式下編譯時,這種方法工作得相當好,但是在發布模式下編譯時,級聯根本不會進行任何檢測。 在下面的測試圖像上運行以下代碼可以在調試模式下進行檢測,但在發布模式下無任何檢測(此行為將繼續通過我的數據序列中的所有圖像)。

你能說出為什么會出現這種情況,更重要的是,在發布模式下運行時我能做些什么才能獲得檢測?

級聯文件

cv::Mat testImage = cv::imread("testImage.png",0);
cv::equalizeHist(testImage, testImage);

cv::CascadeClassifier vehicleCascade;
vehicleCascade.load("cars3.xml");

// Detect vehicles
std::vector<cv::Rect> cars;
vehicleCascade.detectMultiScale(
    testImage,                  // Input image
    cars,                   // Output bounding boxes
    1.1,                    // scale factor - how much image size is reduced at each scale
    5,                      // min neighbours - how many neighbours required to maintain rect
    0|CV_HAAR_SCALE_IMAGE,  // Not used
    cv::Size(30,30),        // Min poss object size
    cv::Size()              // Max poss object size
    );

std::cout << "Found " << cars.size() << " objects.\n";

for (int i=0; i<cars.size(); ++i)
    cv::rectangle(testImage, cars.at(i), CV_RGB(255,0,0), 3);

cv::namedWindow("Haar cascade");
cv::imshow("Haar cascade", testImage);
cv::waitKey(0);
cv::imwrite("output.png", testImage);

TestImage

testImage

  1. 這很奇怪,但對我來說,你的代碼在兩種模式下都能正常工作。 我在Windows 7 32bit上使用Visual Studio 2010。 這是我的項目 - https://www.dropbox.com/s/5kubn5tlu7k6ziy/opencvhw.rar ,因此您可以檢查可執行文件(Release和Debug目錄)。 如果您正在使用visual studio並希望自己構建它,則必須更改庫的路徑並包含兩種模式的目錄(包括目錄路徑相同,庫目錄路徑不同)。 (項目 - > ...屬性 - >配置屬性 - > vc ++目錄)

  2. 一般來說,我建議仔細檢查項目配置。 制造一個可能導致非常奇怪的行為的小錯誤真的很容易。 有時最好的選擇是再次從頭開始配置所有內容。

  3. OpenCV有非常奇怪的錯誤 - 它不是什么新東西:)例如我在調試時不能使用一些編解碼器 - 如果我在調試模式下運行程序,但沒有調試一切都很好,但如果我嘗試調試 - 每個幀從文件readed是空的(但它的大小是正確的)。 你可能剛剛遇到了類似的東西。 嘗試將圖像轉換為不同的格式(我認為bmp是測試的最佳選擇 - 它應該始終在沒有任何其他庫的情況下工作)。

  4. 另請注意,您已經上傳了jpg文件,因此我必須自己重命名和轉換它 - 也許在轉換期間此文件中的某些內容已更改,因此我們不會在完全相同的文件上測試您的代碼 - 在dropbox上傳您的png文件所以我可以測試一下。

看到這篇文章 :這種類型的錯誤可能是由於在發布模式下鏈接到opencv的調試庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM