doppia 모델 설치
8243 단어 우분투14.04CNNDeepLearning
소개
GitHub에 DeepCascade 모델을 설치하려고 좌절했다.
DeepCascade 모델 설치 (1)
ぃ tp // 이 m / 설마 46 / ms / 61032 4470 35557389
DeepCascade 모델 설치 (2)
ぃ tp // 이 m / 설마 46 / ms / df3b9 아바 6 ~ 7dc6 ~ b f5
문제의 대부분은 원래 코드에 추가 된 부분
src/objects_detection/GpuVeryFastIntegralChannelsDetector.cpp
등이라고 생각된다. 따라서 정책을 변경하고 원래 코드 doppia를 설치합니다.
doppia의 코드는 이쪽
h tps : // / t t c c t. 오 rg / 로 d 사다리 b / 도피아
환경
우분투14.04
GitHub에 DeepCascade 모델의 dependencies가 설치됨
step 1
이하, OverView에 따라 진행한다.
우선
common_settings.cmake
의 338 행당의 컴퓨터명을 변경한다.common_settings.cmake
elseif(${HOSTNAME} STREQUAL "the_name_of_your_machine")
# change the_name_of_your_machine to what /bin/hostname returns
message(STATUS "Using ohmasa-com compilation options")
the_name_of_your_machine
를 자신의 컴퓨터 이름으로 변경. 다음./generate_protocol_buffer_files.sh
실행하고 문제가 있는지 확인합니다.
step 2
step 2에서는 CPU만으로 컴파일을 실시한다.
cd doppia/src/applications/ground_estimation
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo . && make -j4
cmake . && make -j4 && ./ground_estimation -c test.config.ini
cd doppia/src/applications/stixel_world
cmake . && make -j2 && OMP_NUM_THREADS=4 ./stixel_world -c fast.config.ini --gui.disable false
cmake . && make -j2 && OMP_NUM_THREADS=4 ./stixel_world -c fast_uv.config.ini --gui.disable false
그리고 지금까지 문제없이 화면 등이 표시됩니다. 다음은 문제의 단계 3.
step 3
우선은 지시대로 진행해 본다.
cd doppia/src/applications/objects_detection
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo . && make -j4
.....
.....
/../../../libs/cudatemplates/include/cudatemplates/error.hpp:44:26: fatal error: cuda_runtime.h: そのようなファイルやディレクトリはありません
#include <cuda_runtime.h>
^
라고 나왔다. 이 에러는 GitHub 버젼에서는 나오지 않았던 것이다.
cuda_runtime.h
를 (를) 검색한 결과 /usr/local/cuda-8.0/include
에 있습니다. 반면에echo $CPLUS_INCLUDE_PATH
그런데
/usr/local/cuda-8.0/include
는 없었기 때문에 .bashrc
에 추가.export CPLUS_INCLUDE_PATH=/usr/local/cuda-8.0/include:$CPLUS_INCLUDE_PATH
bash
하고 다시 make 한다.bash
make clean
make -j4
.....
.....
Linking CXX executable objects_detection
[100%] Built target objects_detection
그리고 처음으로 성공했다. 다음
make clean
cmake .
make -j2 && OMP_NUM_THREADS=4 ./objects_detection -c cvpr2012_very_fast_over_bahnhof.config.ini --gui.disable false
그렇다면,
.....
.....
Linking CXX executable objects_detection
[100%] Built target objects_detection
.....
.....
Reading files:
../../../data/sample_test_images/bahnhof/image_00000000_0.png
../../../data/sample_test_images/bahnhof/image_00000000_1.png
[libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "doppia_protobuf.DetectorModel" because it is missing required fields: detector_type
.....
.....
2016-11-20 19:10:16 {7fa4a802e840} [ SoftCascadeOverIntegralChannelsModel ] : Warning: No semantic category found in model, assuming a pedestrian detector
2016-11-20 19:10:16 {7fa4a802e840} [ check_stages_and_range_visitor ] : Warning: Scale -1 is almost fine, min (x, y) == (0, 0), max (x,y) == (7, 15), width, height == (8, 16), (only touches left, top, border(s))
2016-11-20 19:10:16 {7fa4a802e840} [ check_stages_and_range_visitor ] : Warning: Not touching the borders indicates that the model is suboptimal regarding detection quality (was trained with doppia v1, instead of v2)
.....
.....
A std::exception was raised: This executable was compiled without support for GpuVeryFastIntegralChannelsDetector
terminate called after throwing an instance of 'std::runtime_error'
what(): This executable was compiled without support for GpuVeryFastIntegralChannelsDetector
中止 (コアダンプ)
등과 오류가되었다. 이 중
[libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "doppia_protobuf.DetectorModel" because it is missing required fields: detector_type
라는 부분이 수상하다. 조사해 보면, 코드의 issue내에 같은 에러가 나와 있었다.
h tps : // / t t c c t. 오 rg / 로 d 사다리 b / 도피아 / 이스에 s / 80 / g 푸즈 ry fu s chin gel chan ls에서 c와 r
여기의 솔루션에 따라 다음과 같이
CMakeLists.txt
의 시작 부분에 추가.CMakeLists.txt
set(USE_GPU ON CACHE BOOL "Should the GPU be used ?" )
다시
make
그러자 데모가 일어나 성공했다. 다른 make도 확인한다. 우선 이것.cmake . && make -j2 && OMP_NUM_THREADS=4 ./objects_detection -c cvpr2012_inria_pedestrians.config.ini --gui.disable false
이것도 제대로 시위가 일어났다. 다음은 거리에 사람을 detection하는 이것.
cmake . && make -j2 && OMP_NUM_THREADS=4 ./objects_detection -c cvpr2012_chnftrs_over_bahnhof.config.ini --gui.disable false
이것도 제대로 가동했다. 마지막은 facedetection의 이것.
cmake . && make -j2 && ./objects_detection -c eccv2014_face_detection_pascal.config.ini --gui.disable false
이거 잘됐다.
step 4
여기서는
objects_detection_lib
디렉토리에서 cmake, make를 수행한다.cd doppia/src/applications/objects_detection_lib
cmake.
make -j4
문제없이 성공한 것 같다.
step 5
다음으로 step 5로 진행한다. 여기에서는 드디어 학습을 실시했다.
cd doppia/src/applications/boosted_learning
./run_speedy_training.sh
.....
.....
Error rate stable at zero until 100
Average speed in the last 100 iterations is 23.199 [Hz]
Error rate stable at zero until 600
Average speed in the last 600 iterations is 23.558 [Hz]
Error rate stable at zero until 1100
Average speed in the last 1100 iterations is 23.553 [Hz]
Error rate stable at zero until 1600
Average speed in the last 1600 iterations is 23.547 [Hz]
Error rate stable at zero until 2047
Total time for the 2048 iterations is 86.950 [seconds]
Time elapsed in seconds: 86
Time elapsed while producing strong classifier for training round 2: 00:01:26
Finished the 3 bootstrapping stages. Model was trained over 11468 samples (2468 positives, 9000 negatives).
Final model saved at 2016_11_21_2811_fast_training
Time elapsed in seconds: 4681
Time elapsed for all training and boostrapping rounds: 01:18:01
End of game. Have a nice day !
End of game, have a nice day.
+ echo Training finished.
Training finished.
1시간 18분에 학습이 종료되었다. Training stage가 50 이후는 Error가 거의 0. 과적합하지 않습니까?
Reference
이 문제에 관하여(doppia 모델 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masataka46/items/acf698e8f169cabae7fb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)