項目裏用caffe進行人臉檢測。驗證集爲2000張圖片時,存在內存泄漏。調用opencv的convertTo和subtract函數都會減少6200KB的內存。
經過多次安裝驗證,使用以下的編譯選項組合可以避免內存泄漏。
在opencv安裝包解壓後的目錄中,編輯腳本opencv_build.sh
#/bash/bin
cd build
rm * -fr
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=~/work/opencv346 \
-D USE_O3=ON \
-D ENABLE_CXX11=ON \
-D BUILD_TIFF=OFF \
-D WITH_TBB=OFF \
-D WITH_IPP=OFF \
-D WITH_OPENMP=ON \
-D WITH_WEBP=OFF \
-D ENABLE_FAST_MATH=1 \
-D BUILD_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF ..
make -j12
sudo make install
執行此腳本,即可快速安裝opencv.
此外,還有個疑問:tensorRT代碼中的opencv convert函數,用這一套編譯選項還是會有內存泄漏,每次調用後,會減少6200KB內存。