Skip to content

UichanFork/omnimotion

 
 

Repository files navigation

omnimotion

환경설정

코드 다운로드

git clone --recurse-submodules https://github.com/uichan8/omnimotion.git #https 사용 (권장)
git clone --recurse-submodules git@github.com:uichan8/omnimotion.git #ssh 사용

conda

conda env create -f environment.yml
  • 오류나면 거의 cuda 버전 일 수 있음 docker 환경 사용 권장

docker

  • 도커 이미지 생성
sudo docker build -t omnimotion .
  • 도커 이미지 실행
docker run --gpus all -it --rm --name omnimotion -v $(pwd):/omnimotion omnimotion

Train

Data Preparation

1. 비디오 이미지로 바꾸기

  • 먼저 비디오를 이미지로 분리해서 저장해야 합니다. 다음과 같은 구조를 가지고 있어야 합니다.
├──sequence_name/
    ├──color/
        ├──00000.jpg
        ├──00001.jpg
        .....
  • 비디오가 있을 때 명령어는 다음과 같습니다.
mkdir -p sequence_name/color
ffmpeg -i example.mp4 -vf scale=1280:720 sequence_name/color/%05d.jpg #720p
ffmpeg -i example.mp4 -vf scale=640:480 sequence_name/color/%05d.jpg #480p

2. RAFT 설치

  • RAFT를 설치하는 코드는 다음과 같습니다. 이 코드는 설치하는 과정이기떄문에 한번만 실행합니다.
cd preprocessing/  
cp exhaustive_raft.py filter_raft.py chain_raft.py RAFT/;
cd RAFT; ./download_models.sh; cd ../
cp extract_dino_features.py dino/
cd ../

3. RAFT로 Optical flow 구하기

  • optical flow를 구하는 코드는 다음과 같습니다.
cd preprocessing
python main_processing.py --data_dir <sequence directory> --chain
cd ..
  • 위 코드를 실행하면 다음과 같은 폴더 구조를 가지게 됩니다.
├──sequence_name/
    ├──color/
    ├──mask/ (optional; only used for visualization purposes)
    ├──count_maps/
    ├──features/
    ├──raft_exhaustive/
    ├──raft_masks/
    ├──flow_stats.json

5. Data Download

Train Data

  • 다음 코드를 실행합니다.
python train.py --config configs/default.txt --data_dir {sequence_directory}
  • 100k iterations 돌리는데 A100에서 9시간, 4090 13시간 정도 걸립니다.
  • cuda memory를 22GB를 쓰는데, 이를 줄이고 싶을 경우 num_pts, chunk_size를 줄여야 합니다.

forward(visulizaion)

  • visualize 하는 명령어는 다음과 같습니다.
python viz.py --config configs/default.txt --data_dir {sequence_directory}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.6%
  • Dockerfile 0.4%