doppia 모델 설치

소개



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. 과적합하지 않습니까?

좋은 웹페이지 즐겨찾기