Skip to content

πŸ† Grand Prize, in 2023 Jeju Island Satellite Data Utilization Competition - πŸ›°οΈπŸ—ΊοΈ Intelligent Platform for Long-Term Abandoned Vehicle Detection Utilizing Jeju Satellite Data

License

Notifications You must be signed in to change notification settings

ziweek/desirable-sea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hello, Desirable Sea

ENGLISH Β |Β  KOREAN

πŸ† Grand Prize, in 2023 Jeju Island Satellite Data Utilization Competition πŸ†

Intelligent Platform for Long-Term Abandoned Vehicle Detection Utilizing Jeju Satellite Data








Check out prototypes in the badge below.



1. Introduction

Note

  • This idea is a project that was submitted to the 2023 Jeju Satellite Data Utilization Contest hosted by Jeju Special Self-Governing Province and won the Grand Prize (Jeju Special Self-Governing Province Governor Award).
  • This idea is to research and develop an intelligent platform that utilizes Jeju satellite data and applies computer vision object recognition AI technology to detect vehicles parked or abandoned for a long time in the Jeju area and to integrate and manage the information by related organizations.
Why is it needed? There is serious issues caused surrounding parking lots in JeJu island. And also there are heavy traffic problems.
details>
product-recording.mov

Image Super Resolution

Small Object Detection

Prototype Web Application




2. Implementation

핡심기λŠ₯

1. Image Super Resolution

1.1 Image Super Resolution

μ†Œν˜• 객체 탐지 λͺ¨λΈμ˜ μ„±λŠ₯을 κ°œμ„ ν•˜κΈ° μœ„ν•΄ μ „μ²˜λ¦¬ λͺ¨λΈλ‘œ XPixelGroup의 HATλΌλŠ” μ΄ˆκ³ ν•΄μƒλ„ κ°œμ„  λͺ¨λΈμ„ λ„μž…ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 λŒ€νšŒ μΈ‘μ—μ„œ μ œκ³΅ν•œ μœ„μ„±μ΄λ―Έμ§€ λ°μ΄ν„°μ˜ 해상도λ₯Ό 4λ°° 이상 κ°œμ„ ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.


1.2 μ΄ˆκ³ ν•΄μƒλ„ 이미지 κ°œμ„  λ”₯λŸ¬λ‹ λͺ¨λΈ

data-labeling.mov

μ΄ˆκ³ ν•΄μƒλ„ κ°œμ„  λͺ¨λΈλ‘œ μ „μ²˜λ¦¬λœ 데이터을 λΌλ²¨λ§ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ΄λ•Œ, 사전 ν•™μŠ΅λœ λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μžλ™μœΌλ‘œ μ°¨λŸ‰μ„ μ‹λ³„ν•˜κ²Œ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μœ„μ˜ μ˜μƒμ€ 사전 ν•™μŠ΅ λͺ¨λΈμ΄ μ‹λ³„ν•˜μ§€ λͺ»ν•œ μ˜ˆμ™Έμ μΈ κ²½μš°μ— μˆ˜μž‘μ—…μœΌλ‘œ 라벨링을 μ§„ν–‰ν•œ κ²ƒμž…λ‹ˆλ‹€.



2. μ†Œν˜• 객체 탐지 λ”₯λŸ¬λ‹ λͺ¨λΈ

2.1 객체 탐지 λ”₯λŸ¬λ‹ λͺ¨λΈ λ„μž…

MMRotate ν”„λ ˆμž„μ›Œν¬λ₯Ό ν™œμš©ν•˜μ—¬ μœ„μ„±μ΄λ―Έμ§€ 데이터 λ‚΄μ—μ„œ μ°¨λŸ‰ λ“±μ˜ 객체λ₯Ό 식별할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ²˜μŒμ—λŠ” 사전 ν•™μŠ΅λœ λͺ¨λΈμ„ ν™œμš©ν•˜μ—¬ μ„±λŠ₯μ§€ν‘œλ₯Ό ν‰κ°€ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


2.2 Weighted Boxed Ensemble 앙상블 κΈ°λ²•μœΌλ‘œ μ„±λŠ₯ κ°œμ„ 

μ†Œν˜• 객체 탐지 λͺ¨λΈμ˜ μ„±λŠ₯을 κ°œμ„ ν•˜κΈ° μœ„ν•˜μ—¬, 좔가적인 ν•™μŠ΅κ³Ό Weighted Boxed Ensemble 기법을 μ μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. κ·Έ κ²°κ³Ό, 이전에 μ‹λ³„ν•œ μ°¨λŸ‰μ— λŒ€ν•΄μ„œλŠ” 신뒰도가 λŒ€ν­ μƒμŠΉν•œ 것을 확인할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 뿐만 μ•„λ‹ˆλΌ, μ΄μ „μ—λŠ” μ‹λ³„ν•˜μ§€ λͺ»ν–ˆλ˜ μœ μ±„μƒ‰μ˜ μ°¨λŸ‰μ΄λ‚˜ μ£Όλ³€ ꡬ쑰물의 κ·Έλ¦Όμžκ°€ 결쳐진 μ°¨λŸ‰λ„ 식별할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.



3. μ‚¬μš©μž κ²½ν—˜

3.1 Google Map APIλ₯Ό ν™œμš©ν•œ UX κ΅¬ν˜„

Google Map APIλ₯Ό ν™œμš©ν•˜μ—¬ 지도 기반의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이 덕뢄에 μ‚¬μš©μžλŠ” μ œμ£Όλ„ 전역에 μœ„μΉ˜ν•œ 곡영주차μž₯의 μœ„μΉ˜λ₯Ό ν•œλˆˆμ— νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 뿐만 μ•„λ‹ˆλΌ, 좔후에 경둜 탐색 κΈ°λŠ₯을 μΆ”κ°€ν•  κ³„νšμž…λ‹ˆλ‹€.


3.2 λ°˜μ‘ν˜• UI 및 닀크λͺ¨λ“œ μ§€μ›μœΌλ‘œ μ‚¬μš©μ„± κ°œμ„ 

슀마트폰, νƒœλΈ”λ¦Ώ, λ˜λŠ” μ»΄ν“¨ν„°μ—μ„œλ„ 연속적인 μ‚¬μš©μž κ²½ν—˜μ„ 전달할 수 μžˆλ„λ‘ λ°˜μ‘ν˜• μ›Ήλ””μžμΈμ„ μ μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 또, 더 λ‚˜μ•„κ°€ 닀크λͺ¨λ“œ λ””μžμΈμ„ μ μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.



μ•„ν‚€ν…μ²˜

ν”„λ‘œλ•νŠΈ μ•„ν‚€ν…μ²˜

λ³Έ ν”„λ‘œμ νŠΈμ˜ μ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜λŠ” 크게 4κ°€μ§€λ‘œ λ‚˜λˆ μ„œ μ‚΄νŽ΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

1. 데이터 μ „μ²˜λ¦¬ μˆ˜ν–‰ μ„œλ²„

  • μ΄ˆκ³ ν•΄μƒλ„ 이미지 κ°œμ„  λ”₯λŸ¬λ‹ λͺ¨λΈ
  • 핡심 κΈ°λŠ₯ μˆ˜ν–‰ μ„œλ²„(μ†Œν˜• 객체 식별 λ”₯λŸ¬λ‹ λͺ¨λΈ)
  • μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜(ν”„λ‘ νŠΈμ—”λ“œμ™€ λ²‘μ—”λ“œ 및 λ°μ΄ν„°λ² μ΄μŠ€)

2. 핡심 κΈ°λŠ₯ μˆ˜ν–‰ μ„œλ²„

  • μ†Œν˜• 객체 식별 λ”₯λŸ¬λ‹ λͺ¨λΈ
  • 핡심 κΈ°λŠ₯ μˆ˜ν–‰ μ„œλ²„(μ†Œν˜• 객체 식별 λ”₯λŸ¬λ‹ λͺ¨λΈ)
  • μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜(ν”„λ‘ νŠΈμ—”λ“œμ™€ λ²‘μ—”λ“œ 및 λ°μ΄ν„°λ² μ΄μŠ€)

3. μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜

  • ν”„λ‘ νŠΈμ—”λ“œ
  • λ²‘μ—”λ“œ
  • λ°μ΄ν„°λ² μ΄μŠ€

4. μ»¨ν…Œμ΄λ„ˆν™” 및 배포 운영

  • ν”„λ‘ νŠΈμ—”λ“œ
  • λ²‘μ—”λ“œ
  • λ°μ΄ν„°λ² μ΄μŠ€


AI μ•„ν‚€ν…μ²˜

λ³Έ ν”„λ‘œμ νŠΈμ˜ AI μ•„ν‚€ν…μ²˜λŠ” 크게 2κ°€μ§€λ‘œ λ‚˜λˆ μ„œ μ‚΄νŽ΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

1. μ΄ˆκ³ ν•΄μƒλ„ 이미지 κ°œμ„  λ”₯λŸ¬λ‹ λͺ¨λΈ

  • 디렉토리 ꡬ쑰
    ESRGAN
    β”œβ”€β”€ LR                      # Pytorch λͺ¨λΈμ„ μ €μž₯ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    β”‚   └── demo.png            # MVP μ‹œμ—°μ— μ‚¬μš©λ  데λͺ¨ μ΄λ―Έμ§€μž…λ‹ˆλ‹€.
    β”œβ”€β”€ models
    β”‚   β”œβ”€β”€ ...
    β”‚   └── RRDB_ESRGAN_x4.pth  # 베이슀라인 κ΄€λ ¨ μ½”λ“œμž…λ‹ˆλ‹€.
    β”œβ”€β”€ ...
    └── results
        └── demo_rlt.png        # λͺ¨λΈλ§ 결과둜 좜λ ₯λ˜λŠ” μ΄λ―Έμ§€μž…λ‹ˆλ‹€.
    
  • 초기 μ„€μΉ˜λ°©λ²•
    # setup.sh 파일 λ§Œλ“€κΈ°.
    # μ•„λž˜μ˜ μ‰˜μŠ€ν¬λ¦½νŠΈ 볡사 ν›„ λΆ™μ—¬λ„£κΈ°.
    # ν„°λ―Έλ„μ—μ„œ setup.sh μ‹€ν–‰
    
    git clone https://github.com/xinntao/ESRGAN
    cd ESRGAN
    
    cd models
    wget --load-cookies ~/cookies.txt \
    "https://docs.google.com/uc?export=download&confirm=$(wget \
    --quiet --save-cookies ~/cookies.txt \
    --keep-session-cookies --no-check-certificate \
    'https://docs.google.com/uc?export=download&id=1TPrz5QKd8DHHt1k8SRtm6tMiPjz_Qene' -O- \
    | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1TPrz5QKd8DHHt1k8SRtm6tMiPjz_Qene" -O RRDB_ESRGAN_x4.pth \
    && rm -rf ~/cookies.txt
    cd ..
    
    cd LR
    wget https://raw.githubusercontent.com/ziweek/desirable-sea/main/src/demo.png
    cd ..
  • μΆ”λ‘  싀행방법
    # 1. μ•„λž˜μ˜ μ‰˜μŠ€ν¬λ¦½νŠΈ 볡사 ν›„ 터미널에 λΆ™μ—¬λ„£κΈ°.
    # 2. ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰ν•˜κΈ°.
    # 3. 동일 디렉토리 λ‚΄μ—μ„œ result-resolution.jpg 파일 ν™•μΈν•˜κΈ°.
    
    python test.py

2. μ†Œν˜• 객체 식별 λ”₯λŸ¬λ‹ λͺ¨λΈ

  • 디렉토리 ꡬ쑰
    desirable-sea
    β”œβ”€β”€ checkpoints  # Pytorch λͺ¨λΈμ„ μ €μž₯ν•˜λŠ” ν΄λ”μž…λ‹ˆλ‹€.
    β”œβ”€β”€ mmrotate     # 베이슀라인 κ΄€λ ¨ μ½”λ“œμž…λ‹ˆλ‹€.
    β”‚   β”œβ”€β”€ config
    β”‚   β”œβ”€β”€ ...
    β”‚   └── demo
    β”œβ”€β”€ ...
    β”œβ”€β”€ demo.png     # MVP μ‹œμ—°μ— μ‚¬μš©λ  데λͺ¨ μ΄λ―Έμ§€μž…λ‹ˆλ‹€.
    └── result.jpg   # λͺ¨λΈλ§ 결과둜 좜λ ₯λ˜λŠ” μ΄λ―Έμ§€μž…λ‹ˆλ‹€.
    
  • 초기 μ„€μΉ˜λ°©λ²•
    # 1. setup.sh 파일 λ§Œλ“€κΈ°.
    # 2. μ•„λž˜μ˜ μ‰˜μŠ€ν¬λ¦½νŠΈ 볡사 ν›„ λΆ™μ—¬λ„£κΈ°.
    # 3. ν„°λ―Έλ„μ—μ„œ setup.sh μ‹€ν–‰
    
    sudo apt update
    sudo apt -y install libgl1-mesa-glx
    
    wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh
    chmod +x Miniconda3-py37_4.9.2-Linux-x86_64.sh
    bash ./Miniconda3-py37_4.9.2-Linux-x86_64.sh -b -f -p /usr/local
    which conda
    conda --version
    
    pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
    pip install openmim --use-feature=2020-resolver
    mim install mmcv-full==1.5.3
    mim install mmdet==2.25.1
    
    git clone https://github.com/open-mmlab/mmrotate.git
    cd mmrotate
    pip install -r requirements/build.txt
    pip install -v -e .
    
    cd ..
    
    mkdir checkpoints
    cd checkpoints
    wget https://download.openmmlab.com/mmrotate/v0.1.0/redet/redet_re50_fpn_1x_dota_ms_rr_le90/redet_re50_fpn_1x_dota_ms_rr_le90-fc9217b5.pth
    cd ..
    
    wget https://raw.githubusercontent.com/ziweek/desirable-sea/main/src/demo.png
    
  • μΆ”λ‘  싀행방법
    # 1. μ•„λž˜μ˜ μ‰˜μŠ€ν¬λ¦½νŠΈ 볡사 ν›„ 터미널에 λΆ™μ—¬λ„£κΈ°.
    # 2. ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰ν•˜κΈ°.
    # 3. 동일 디렉토리 λ‚΄μ—μ„œ result.jpg 파일 ν™•μΈν•˜κΈ°.
    
    python mmrotate/demo/image_demo.py demo.png \
    mmrotate/configs/redet/redet_re50_refpn_1x_dota_ms_rr_le90.py \
    checkpoints/redet_re50_fpn_1x_dota_ms_rr_le90-fc9217b5.pth \
    --out-file result.jpg


3. νŒ€μ›

κΉ€μ§€μš±

이 ν”„λ‘œμ νŠΈμ— λ¦¬λ”λ‘œ μ°Έμ—¬ν•˜μ—¬ λ¨Όμ €, μž₯κΈ° 방치 μ°¨λŸ‰ λ¬Έμ œμ— 직면해 이λ₯Ό 관리 ν•˜κΈ° μœ„ν•œ 지λŠ₯ν˜• ν”Œλž«νΌμ˜ ν•„μš”μ„±μ„ κΉ¨λ‹«κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Next.js, Google Map API, 그리고 FastAPI λ“±μ˜ ν˜„λŒ€μ μΈ κΈ°μˆ λ“€μ„ ν†΅ν•©ν•¨μœΌλ‘œμ¨ 우리의 μ†”λ£¨μ…˜μ€ 효율적이고 μ‚¬μš©μž μΉœν™”μ μΈ μž₯κΈ° 방치 μ°¨λŸ‰ 관리λ₯Ό μ‹€ν˜„ν•˜λ©°, μœ„μ„±λ°μ΄ν„°λ₯Ό ν™œμš©ν•œ 지λŠ₯ν˜• ν”Œλž«νΌμ˜ λ°œμ „μ— μΌμ‘°ν•˜λŠ” 데 μžλΆ€μ‹¬μ„ λŠλ‚„ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 이 ν”Œλž«νΌμ€ 제주의 μ°¨λŸ‰λ¬Έμ œλ₯Ό ν˜μ‹ ν•˜κ³  미래 λ„μ‹œ κ³„νšμ— κΈ°μ—¬ν•˜λŠ” μ€‘μš”ν•œ λ°œνŒμœΌλ‘œμ„œμ˜ 역할을 ν•  κ²ƒμœΌλ‘œ κΈ°λŒ€λ©λ‹ˆλ‹€.

λΆ€μ„ μ›…

CTO둜 μ°Έμ—¬ν•œ 이 ν”„λ‘œμ νŠΈλŠ” μ΅œμ‹  κΈ°μˆ μ„ ν™œμš©ν•˜μ—¬ 제주의 μž₯κΈ° 방치 μ°¨λŸ‰ λ¬Έμ œμ— λ„μ „ν•˜λŠ” ν₯미둜운 κ²½ν—˜μ΄μ—ˆμŠ΅λ‹ˆλ‹€. μœ„μ„±λ°μ΄ν„°μ™€ λ”₯λŸ¬λ‹μ„ κ²°ν•©ν•˜μ—¬ μ°¨λŸ‰μ„ μ •ν™•ν•˜κ²Œ νƒμ§€ν•˜λŠ” μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜λŠ” κ³Όμ •μ—μ„œ, 기술적인 도전과 ν˜μ‹ μ˜ 기회λ₯Ό λ§ˆμ£Όν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 ν”Œλž«νΌμ€ 미래 제주의 μŠ€λ§ˆνŠΈν•œ 지λŠ₯ν˜• μ‹œμŠ€ν…œμ„ λͺ¨μƒ‰ν•˜λŠ” 데 μžˆμ–΄ 핡심적인 역할을 ν•  κ²ƒμœΌλ‘œ μžλΆ€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

About

πŸ† Grand Prize, in 2023 Jeju Island Satellite Data Utilization Competition - πŸ›°οΈπŸ—ΊοΈ Intelligent Platform for Long-Term Abandoned Vehicle Detection Utilizing Jeju Satellite Data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published