CoolFace
Apppublic

tae3lee/VisionVelocity

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
App README

🌊 κ°•μ˜ μœ μ† μΈ‘μ • μ•± (River Velocity Measurement App)

λΉ„λ””μ˜€μ—μ„œ κ°•λ¬Όμ˜ 흐름 속도λ₯Ό μžλ™μœΌλ‘œ μΈ‘μ •ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

πŸ“‹ κΈ°λŠ₯

  • β€”πŸŽ¬ λΉ„λ””μ˜€ μ—…λ‘œλ“œ: MP4, AVI, MOV, MKV λ“± λͺ¨λ“  일반 μ˜μƒ ν˜•μ‹ 지원
  • β€”πŸ“Š μžλ™ μœ μ† μΈ‘μ •: κ΄‘ν•™ μœ λ™(Optical Flow) κΈ°μˆ μ„ μ΄μš©ν•œ μ •ν™•ν•œ μΈ‘μ •
  • β€”πŸ“ˆ κ²°κ³Ό 뢄석: μ‹œκ°„λ³„ 좔이, 뢄포 νžˆμŠ€ν† κ·Έλž¨, 톡계 μ§€ν‘œ
  • β€”πŸ“₯ 데이터 내보내기: CSV ν˜•μ‹μœΌλ‘œ 원본 데이터 λ‹€μš΄λ‘œλ“œ
  • β€”πŸ“„ 리포트 생성: μΈ‘μ • κ²°κ³Ό 및 μ„€μ • 정보 포함

πŸš€ λΉ λ₯Έ μ‹œμž‘

1. μ„€μΉ˜

bash
git clone https://github.com/yourusername/river-velocity-app.git
cd river-velocity-app
pip install -r requirements.txt

2. μ‹€ν–‰

bash
streamlit run app.py

그러면 μžλ™μœΌλ‘œ λΈŒλΌμš°μ €κ°€ 열리고 μ›Ή 앱이 μ‹œμž‘λ©λ‹ˆλ‹€. 보톡 http://localhost:8501μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

3. μ‚¬μš©ν•˜κΈ°

  1. 1.πŸ“Ή λΉ„λ””μ˜€ μ—…λ‘œλ“œ: κ°•λ¬Ό μ˜μƒμ„ μ—…λ‘œλ“œν•©λ‹ˆλ‹€
  2. 2.βš™οΈ μ„€μ •: ν”„λ ˆμž„ 속도와 μŠ€μΌ€μΌμ„ μž…λ ₯ν•©λ‹ˆλ‹€
  3. 3.πŸš€ μΈ‘μ • μ‹œμž‘: "μœ μ† μΈ‘μ • μ‹œμž‘" λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€
  4. 4.πŸ“Š κ²°κ³Ό 확인: μΈ‘μ • κ²°κ³Όλ₯Ό ν™•μΈν•˜κ³  λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€

πŸ“ μŠ€μΌ€μΌ μΈ‘μ • 방법 (μ€‘μš”!)

μ •ν™•ν•œ μœ μ† 츑정을 μœ„ν•΄μ„œλŠ” μŠ€μΌ€μΌ(ν”½μ…€λ‹Ή 거리)을 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€.

단계별 κ°€μ΄λ“œ

  1. 1.강에 μ•Œλ €μ§„ 길이의 물체 배치
  2. 2.1λ―Έν„° 길이의 자
  3. 3.ν‘œμ‹œ λ§‰λŒ€
  4. 4.λ˜λŠ” λ‹€λ₯Έ μ•Œλ €μ§„ 크기의 물체
  1. 1.λΉ„λ””μ˜€ 촬영
  2. 2.μ •λ©΄μ—μ„œ 촬영 (45도 이상 각도 ν”Όν•˜κΈ°)
  3. 3.μŠ€μΌ€μΌ 물체가 λͺ…ν™•ν•˜κ²Œ 보이도둝
  4. 4.μ΅œμ†Œ 10초 이상 촬영
  1. 1.ν”½μ…€ 거리 μΈ‘μ •
  2. 2.이미지 νŽΈμ§‘ ν”„λ‘œκ·Έλž¨ (Photoshop, GIMP λ“±)μ—μ„œ λΉ„λ””μ˜€μ˜ ν•œ ν”„λ ˆμž„ μ €μž₯
  3. 3.μŠ€μΌ€μΌ 물체가 λͺ‡ 픽셀인지 μΈ‘μ •
  1. 1.μŠ€μΌ€μΌ 계산
   μŠ€μΌ€μΌ = μ‹€μ œ 거리(λ―Έν„°) / ν”½μ…€ 수

μ˜ˆμ‹œ

  • β€”1λ―Έν„°κ°€ 100ν”½μ…€ β†’ 1 / 100 = 0.01 m/px = 1 cm/ν”½μ…€ μž…λ ₯
  • β€”1λ―Έν„°κ°€ 50ν”½μ…€ β†’ 1 / 50 = 0.02 m/px = 2 cm/ν”½μ…€ μž…λ ₯

πŸ“ 기술 사항

μ•Œκ³ λ¦¬μ¦˜

  • β€”κ΄‘ν•™ μœ λ™ (Lucas-Kanade): μ΄μ›ƒν•œ ν”„λ ˆμž„ κ°„μ˜ νŠΉμ§•μ  좔적
  • —쀑앙값 ν•„ν„°: μ΄μƒμΉ˜ 제거λ₯Ό ν†΅ν•œ μ•ˆμ •μ μΈ μΈ‘μ •
  • —검증 λ²”μœ„: 0~5 m/s (νƒ€λ‹Ήν•˜μ§€ μ•Šμ€ 데이터 μžλ™ 제거)

μ£Όμš” 라이브러리

  • β€”Streamlit: μ›Ή μΈν„°νŽ˜μ΄μŠ€
  • β€”OpenCV: λΉ„λ””μ˜€ 처리 및 κ΄‘ν•™ μœ λ™
  • β€”NumPy: 수치 계산
  • β€”Matplotlib: κ·Έλž˜ν”„ μ‹œκ°ν™”

πŸ“Š 좜λ ₯ κ²°κ³Ό

μ œκ³΅λ˜λŠ” 톡계

  • —평균 μœ μ†: 전체 μΈ‘μ • κ΅¬κ°„μ˜ 평균
  • —쀑앙값: μ΄μƒμΉ˜μ— κ°•κ±΄ν•œ 쀑심값
  • β€”μ΅œμ†Œ/μ΅œλŒ€ μœ μ†: μΈ‘μ • λ²”μœ„
  • β€”ν‘œμ€€νŽΈμ°¨: μœ μ† 변동성
  • —데이터 개수: μœ νš¨ν•œ μΈ‘μ • 포인트 수

κ·Έλž˜ν”„

  1. 1.μ‹œκ°„λ³„ μœ μ†: μΈ‘μ • μ‹œκ°„μ— λ”°λ₯Έ μœ μ† λ³€ν™”
  2. 2.뢄포 νžˆμŠ€ν† κ·Έλž¨: μœ μ† 뢄포도

⚠️ μ œν•œμ‚¬ν•­ 및 μ£Όμ˜μ‚¬ν•­

μΈ‘μ • 였차 원인

  • —카메라 μ›€μ§μž„
  • β€”μ˜μƒ ν’ˆμ§ˆ (해상도, λ…Έμ΄μ¦ˆ)
  • β€”λΆ€μ •ν™•ν•œ μŠ€μΌ€μΌ μ„€μ •
  • β€”λΉ λ₯Έ 카메라 νŒ¬λ‹

κ°œμ„  방법

  • β€”βœ… μ‚Όκ°λŒ€ μ‚¬μš© (카메라 κ³ μ •)
  • β€”βœ… μΆ©λΆ„ν•œ 해상도 (720p 이상 ꢌμž₯)
  • β€”βœ… μ •ν™•ν•œ μŠ€μΌ€μΌ μΈ‘μ •
  • β€”βœ… 정상적인 μ‘°λͺ… 쑰건
  • β€”βœ… λͺ…ν™•ν•œ μž…μž λ˜λŠ” 흐름 νŠΉμ§•

πŸ”§ μ„€μ • νŒŒλΌλ―Έν„°

νŒŒλΌλ―Έν„°κΈ°λ³Έκ°’λ²”μœ„μ„€λͺ…
FPS3010-120λΉ„λ””μ˜€ ν”„λ ˆμž„ 속도
μŠ€μΌ€μΌ1.0 cm/px0.1-101픽셀이 ν˜„μ‹€μ—μ„œ λͺ‡ cm인지
ν”„λ ˆμž„ 간격11-101=λͺ¨λ“  ν”„λ ˆμž„, 2=1κ°œμ”© κ±΄λ„ˆλœ€

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

river-velocity-app/
β”œβ”€β”€ app.py                    # Streamlit 메인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜
β”œβ”€β”€ requirements.txt          # Python μ˜μ‘΄μ„±
β”œβ”€β”€ README.md                # 이 파일
β”œβ”€β”€ .gitignore              # Git λ¬΄μ‹œ 파일
└── uploads/                # μž„μ‹œ λΉ„λ””μ˜€ 파일 폴더 (μžλ™ 생성)

πŸ› 문제 ν•΄κ²°

앱이 μ‹œμž‘λ˜μ§€ μ•ŠμŒ

bash
# Python 버전 확인 (3.8 이상)
python --version

# μ˜μ‘΄μ„± μž¬μ„€μΉ˜
pip install -r requirements.txt --upgrade

λΉ„λ””μ˜€λ₯Ό μ—΄ 수 μ—†μŒ

  • β€”λΉ„λ””μ˜€ ν˜•μ‹ 확인 (MP4, AVI, MOV, MKV)
  • β€”νŒŒμΌ 크기 확인 (λ„ˆλ¬΄ 크면 μ‹€νŒ¨ κ°€λŠ₯)
  • β€”λΉ„λ””μ˜€ 코덱 확인 (일반적인 코덱 μ‚¬μš©)

μΈ‘μ • κ²°κ³Όκ°€ 이상함

  • β€”μŠ€μΌ€μΌ κ°’ 확인
  • β€”FPS κ°’ 확인
  • β€”μ˜μƒ ν’ˆμ§ˆ 확인
  • β€”μ˜μƒ λ‚΄ λͺ…ν™•ν•œ 흐름 νŠΉμ§• 확인

πŸ’‘ μ‚¬μš© 팁

  1. 1.μ •ν™•ν•œ μŠ€μΌ€μΌ μΈ‘μ •: κ°€μž₯ μ€‘μš”ν•œ λΆ€λΆ„μž…λ‹ˆλ‹€!
  2. 2.μΆ©λΆ„ν•œ 길이 촬영: μ΅œμ†Œ 10초, 30초 이상 ꢌμž₯
  3. 3.μ—¬λŸ¬ 번 μΈ‘μ •: 같은 μž₯μ†Œμ—μ„œ μ—¬λŸ¬ 번 촬영 ν›„ 비ꡐ
  4. 4.메타데이터 확인: 파일 μ •λ³΄μ—μ„œ μ •ν™•ν•œ FPS 확인
  5. 5.데이터 λ°±μ—…: μ€‘μš”ν•œ κ²°κ³ΌλŠ” CSV둜 μ €μž₯

πŸ“„ λΌμ΄μ„ μŠ€

MIT License - 자유둭게 μ‚¬μš©, μˆ˜μ •, 배포 κ°€λŠ₯ν•©λ‹ˆλ‹€.

πŸ‘¨β€πŸ’» κΈ°μ—¬

κ°œμ„  μ‚¬ν•­μ΄λ‚˜ 버그 λ¦¬ν¬νŠΈλŠ” Issuesμ—μ„œ μ œμΆœν•΄μ£Όμ„Έμš”. Pull Request도 ν™˜μ˜ν•©λ‹ˆλ‹€!

πŸ“§ 문의

λ¬Έμ œκ°€ 있으면 GitHub Issuesλ₯Ό 톡해 λ³΄κ³ ν•΄μ£Όμ„Έμš”.


λ§ˆμ§€λ§‰ μ—…λ°μ΄νŠΈ: 2024λ…„

버전: 1.0.0