[MPEG] CDVS/CDVA 빌드

minsoo jeong·2020년 12월 11일
0
post-thumbnail

windows

visual studio 2019를 기준으로 작성

CDVS

  1. 다운로드 https://standards.iso.org/iso-iec/15938/-14/ed-1/en/CDVSReferenceSoftware.zip
  2. 다운로드 eigen, jpeg
    • 프로젝트에 설정된(참조 디렉토리, lib) path는 C:\local
    • 다른 path를 사용하는 경우
      - eigen은 설정된 헤더, 라이브러리 path만 바꿔주면 됨
      - jpeg-8c 는 프로젝트에 포함되어있음, 프로젝트에 포함된 소스의 경로를 바꿔줘야함 jpeg-8c.vcxprojjpeg-8c.vcxproj.filters에서 직접 변경할 수 있음
  3. {CDVS dir}/deployment/all_projects/all_projects.sln 를 실행
  4. 솔루션 빌드 (x64 release)
    • 라이브러리 링킹 에러 : 에러가 발생한 프로젝트에서 eigen의 include 및 라이브러리 경로 설정 확인
    • snprintf 매크로 : stdio.h에서 snprintf를 매크로로 사용하는 경우 error를 발생시키기 때문에 vlfeatlib의 host.hhost.c snprintf 매크로를 해제한다.
    • undifined popcnt : conformance의 conformance.cppintrin.h 추가

CDVS 에 대한 사용법은 추후에 정리

CDVA

  1. 다운로드 https://standards.iso.org/iso-iec/15938/-16/ed-1/en/mpeg-cxm6.2.zip
  2. opencv2.4.x 빌드 opencv-2.4.10.zip
  3. tensorflow 빌드 (코드는 tf-1.8으로 작성됨) ref 1, ref 2
    • bazel 다운로드 - tf 버전에 맞춰서 설치후 bazel_xxx.exe의 경로를 환경변수에 추가
    • msys2 다운로드,msys2\usr\bin를 환경변수에 추가
    • 적당한 버전의 python 가상환경 구성, 종속성 패키지 설치
    • git clone https://github.com/tensorflow/tensorflow.git
    • git checkout v1.x.x (1.15.3 에서도 동작함)
    • TensorFlow\core\public\session.h, TensorFlow\core\public\session_options.h 파일 수정 (참고 2)
    • 빌드가 완료(1시간 정도)되면 tensorflow\bazel-bin\tensorflow에 dll, lib, include 파일 생성됨
      // install bazel, msys2
      cd {working dir}
      pacman -S git patch unzip
      conda create -n tfbuild-xxx python=3.x
      activate tfbuild-xxx 
      pip3 install six numpy wheel
      pip3 install keras_applications==1.0.6 --no-deps
      pip3 install keras_preprocessing==1.0.5 --no-deps
      git clone https://github.com/tensorflow/tensorflow.git
      cd tensorflow
      git checkout v1.x.x

      // Edit Session Files
            
      python configure.py      
      bazel --output_user_root {bazel root} build --config=opt --config=cuda tensorflow/tensorflow.dll
      bazel --output_user_root {bazel root} build --config=opt --config=cuda tensorflow/tensorflow.lib
      bazel --output_user_root {bazel root} build --config=opt --config=cuda tensorflow:install_headers
  1. cdva 헤더 및 라이브러리 path 수정
  • 헤더
  • 라이브러리
  1. 딥러닝 모델을 포함한 빌드

    • 전역매크로 HAVE_NIP 설정(프로젝트 > 속성 > C/C++ > 전처리기 > 전처리기 정의에 HAVE_NIP 추가)
    • {cdva}\CDVA_evaluation_framework\tf를 환경변수 tfdata으로 설정
  2. 실행

  • cdva extract {vlist} {bitrate} -D -b에서 에러가 보인다(딥러닝 피쳐의 binary화가 구현되지 않았음)
  • cdva extract {vlist} {bitrate} -D GPU 사용하며 정상적으로 동작한다.


    CDVA 에 대한 사용법은 추후에 정리

Ubuntu 18.04

CDVA

  1. 다운로드 https://standards.iso.org/iso-iec/15938/-16/ed-1/en/mpeg-cxm6.2.zip
  2. docker build
  • CDVS를 따로 빌드할 필요는 없음
  • 파일들을 아래와 같이 배치
worksapce
├── CXM
│   ├── CDVSReferenceSoftware
│   ├── Dockerfile (cxm6_dockerfile)
│   ├── FeatureList.cpp.patched
│   └── mpeg-cxm6.2.zip
├── README.md
└── tfbuild
    └── Dockerfile (tf_dockerfile_ubuntu16.04)
  • Dockerfile 빌드
docker build --tag tfbuild workspace/tfbuild/.
docker build --tag xxx workspace/CXM/.
  • 컨테이너 실행
  • cdva extract {vlist} {bitrate} -v -D 정상적으로 동작하지만 multi-gpu는 지원하지 않는다.

0개의 댓글