Skip to content

ByungHyun21/M-fast

Repository files navigation

M-fast ๐Ÿƒโ€โ™‚๏ธ๐Ÿƒ๐Ÿƒโ€โ™€๏ธ

Mono AI

1๏ธโƒฃ ์‚ฌ์šฉ๋ฒ•

๐Ÿ”น Anaconda๋ฅผ ์ด์šฉํ•œ ์‹คํ–‰

๐Ÿ”˜ ํ™˜๊ฒฝ ์„ค์น˜

conda create -n {env_name} python=3.10.12
conda activate {env_name}

๐Ÿ”˜ ํ•„์š” ํŒจํ‚ค์ง€ ์„ค์น˜

(env_name) conda install -c conda-forge tqdm opencv -y
(env_name) conda install pyyaml

๐Ÿ”˜ ํ•™์Šต

CUDA_VISIBLE_DEVICES={gpu} python train_backbone.py # ํ˜„์žฌ ๋ฏธ์ง€์›
CUDA_VISIBLE_DEVICES={gpu} python train_model.py --config {config_path}
  • --config {config_path}: ํ•™์Šตํ•  ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์„ค์ •ํŒŒ์ผ(.yaml) ๊ฒฝ๋กœ

์˜ˆ์‹œ

CUDA_VISIBLE_DEVICES='0' python train_model.py # 1 GPU Training
CUDA_VISIBLE_DEVICES='0,1' python train_model.py # 2 GPU Training

๐Ÿ”น Docker๋ฅผ๋ฅผ ์ด์šฉํ•œ ์‹คํ–‰

๐Ÿ”˜ Window Docker ์„ค์น˜ (Ubuntu์—์„œ ์„ค์น˜๋„ ๋™์ผ)

powershell ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์‹คํ–‰
wsl --install # ๊ฐ€์ƒ๋จธ์‹  ํ”Œ๋žซํผ ์„ค์น˜
์„ค์น˜ ํ›„ ๋ฆฌ๋ถ€ํŠธ
microsoft store์—์„œ ์›ํ•˜๋Š” ubuntu ์„ค์น˜ (ํ˜„์žฌ ๊ธฐ๋ณธ 22.04)
wsl ๋กœ ubuntu ์‹คํ–‰

# Ubuntu ์„ค์น˜๋Š” ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ํ•ด๋„ ๋ฌด๋ฐฉ
sudo apt update && sudo apt upgrade -y
sudo apt-get install ca-certificates curl gnupg lsb-release -y

# docker ์ €์žฅ์†Œ ์ถ”๊ฐ€
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# docker ์„ค์น˜
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

sudo service docker start

๐Ÿ”˜ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰

docker build --tag mfast .

docker run -it --rm --gpus='"device=0,1,2"' -v {M-fast ๊ฒฝ๋กœ}:/M-fast -v {๋ฐ์ดํ„ฐ์…‹ ๊ฒฝ๋กœ}:/dataset --shm-size=8g --network host mfast

๐Ÿ”˜ ํ•™์Šต

python train_backbone.py # ํ˜„์žฌ ๋ฏธ์ง€์›
python train_model.py --config {config_path}
  • --config {config_path}: ํ•™์Šตํ•  ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ์„ค์ •ํŒŒ์ผ(.json) ๊ฒฝ๋กœ

์‚ฌ์šฉํ•˜๋Š” GPU: ํ™˜๊ฒฝ ์‹คํ–‰์‹œ ์„ค์ •ํ•œ GPU

2๏ธโƒฃ Backbone

๐Ÿ”น ์ง€์›ํ•˜๋Š” ๋ชจ๋ธ

  • Vgg16
  • MobileNet-V1
  • MobileNet-V2
  • MobileNet-V3

๐Ÿ”น ์ง€์›ํ•˜๋Š” Dataset

  • ImageNet
  • OpenImagesV7
  • PASS

๐Ÿ”น ์„ฑ๋Šฅ

๐Ÿ”˜ ImageNet Dataset

Backbone Method Dataset Top-1 Top-5
Vgg16 Classification ImageNet - -
MobileNet-V1 Classification ImageNet - -
MobileNet-V2 Classification ImageNet - -
MobileNet-V3 Classification ImageNet - -

๐Ÿ”˜ OpenImagesV7 Dataset

Backbone Method Dataset Top-1 Top-5
Vgg16 MOCO OpenImagesV7 - -
MobileNet-V1 MOCO OpenImagesV7 - -
MobileNet-V2 MOCO OpenImagesV7 - -
MobileNet-V3 MOCO OpenImagesV7 - -

๐Ÿ”˜ PASS Dataset

Backbone Method Dataset Top-1 Top-5
Vgg16 MOCO PASS - -
MobileNet-V1 MOCO PASS - -
MobileNet-V2 MOCO PASS - -
MobileNet-V3 MOCO PASS - -

3๏ธโƒฃ Model

๐Ÿ”น ์ง€์›ํ•˜๋Š” ๋ชจ๋ธ

๐Ÿ”˜ 2016

  • YoloV1 (You Only Look Once, CVPR 2016)
  • SSD (Single Shot MultiBox Detector, ECCV 2016)
    • vgg16, mobilenet-v1, mobilenet-v2, mobilenet-v3
  • YOLO9000 (YOLO9000: Better, Faster, Stronger, CVPR 2017)

๐Ÿ”˜ 2019

  • CenterNet (Objects as Points, CVPR 2019)

๐Ÿ”น ์ง€์›ํ•˜๋Š” Dataset

  • VOC2007+2012 (PASCAL VOC, 20 classes)
  • COCO2017 (Common Objects in Context, 80 classes)
  • Crowd Human (Crowd Human, 2 class)
  • Argoseye (Argoseye, 1 class)

๐Ÿ”น ์„ฑ๋Šฅ

  • ์ผ๋ฐ˜์ ์œผ๋กœ mAP๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉ๋œ๋‹ค.
  • APsmall : 32x32 ์ดํ•˜์˜ ์ž‘์€ ๊ฐ์ฒด, IOU 0.5:0.95
  • APmedium: 32x32 ์ด์ƒ, 96x96 ์ดํ•˜์˜ ๊ฐ์ฒด, IOU 0.5:0.95
  • APlarge : 96x96 ์ด์ƒ์˜ ํฐ ๊ฐ์ฒด, IOU 0.5:0.95
  • ์ด๋ฏธ์ง€ ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์œ„ ํ‰๊ฐ€์ง€ํ‘œ๋Š” ์ ์ ˆํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉ๋œ๋‹ค.
  • APsmall : bounding box์˜ ๋„“์ด๊ฐ€ (1/6)2 ์ดํ•˜์ธ ๊ฐ์ฒด
  • APmedium: bounding box์˜ ๋„“์ด๊ฐ€ (1/6)2 ์ด์ƒ, (1/3)2 ์ดํ•˜์ธ ๊ฐ์ฒด
  • APlarge : bounding box์˜ ๋„“์ด๊ฐ€ (1/3)2 ์ด์ƒ์ธ ๊ฐ์ฒด
  • ๊ทธ๋ฆฌ๊ณ  IoU threshold๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉ๋œ๋‹ค.
  • APsmall : 0.5
  • APmedium: 0.6
  • APlarge : 0.7
  • ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด 11 point, 101 point, all point ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•˜์ง€๋งŒ, COCO์—์„œ ์‚ฌ์šฉํ•œ 101 point ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • VOC ๋ฐ์ดํ„ฐ์…‹์˜ ๊ฒฝ์šฐ Occlusion ๋“ฑ์˜ ์ด์œ ๋กœ Difficultyํ•œ ๊ฐ์ฒด๋Š” mAP ๊ณ„์‚ฐ์—์„œ ์ œ์™ธํ•˜์ง€๋งŒ, ํฌํ•จํ•˜์—ฌ ๊ณ„์‚ฐ๋˜์—ˆ๋‹ค.

๐Ÿ”˜ COCO2017 Dataset

Model Backbone Params Flops pretrained AP0.5:0.95 AP50 AP75 APsmall APmidium APlarge
YoloV1 - - - - - - - - - -
SSD VGG16 42.7M 37.5G Imagenet - - - - - -
SSD Mobilenet-V1 - - Imagenet - - - - - -
SSD Mobilenet-V2 16.69M 2.25G Imagenet - - - - - -
SSD Mobilenet-V3 - - Imagenet - - - - - -

๐Ÿ”˜ VOC2007+2012 Dataset

Model Backbone Params Flops pretrained AP0.5:0.95 AP50 AP75 APsmall APmidium APlarge
YoloV1 - - - - - - - - - -
SSD VGG16 42.7M 37.5G Imagenet - - - - - -
SSD Mobilenet-V1 - - Imagenet - - - - - -
SSD Mobilenet-V2 16.69M 2.25G Imagenet - - - - - -
SSD Mobilenet-V3 - - Imagenet - - - - - -

๐Ÿ”˜ CrowdHuman Dataset

Model Backbone Params Flops pretrained AP0.5:0.95 AP50 AP75 APsmall APmidium APlarge
YoloV1 - - - - - - - - - -
SSD VGG16 42.7M 37.5G Imagenet - - - - - -
SSD Mobilenet-V1 - - Imagenet - - - - - -
SSD Mobilenet-V2 16.69M 2.25G Imagenet - - - - - -
SSD Mobilenet-V3 - - Imagenet - - - - - -

Releases

No releases published

Packages

No packages published