# 3D 객체인식 평가시스템 [![CI/CD](https://github.com/your-repo/rvtouch3d-evaluation/workflows/CI/CD%20Pipeline/badge.svg)](https://github.com/your-repo/rvtouch3d-evaluation/actions) [![Coverage](https://codecov.io/gh/your-repo/rvtouch3d-evaluation/branch/main/graph/badge.svg)](https://codecov.io/gh/your-repo/rvtouch3d-evaluation) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) 3D 객체인식 평가시스템은 3D 모델의 성능을 종합적으로 평가하는 고급 시스템입니다. 다양한 평가 지표와 최신 기술을 활용하여 정확하고 신뢰할 수 있는 평가 결과를 제공합니다. ## ✨ 주요 기능 ### 🎯 종합 평가 시스템 - **다중 지표 평가**: 2D/3D mAP, Chamfer Distance, EMD, 클래스 정확도 - **가중치 기반 점수**: 사용자 정의 가중치로 맞춤형 평가 - **성능 등급**: A-F 등급으로 직관적인 성능 표시 ### 🚀 Empir3D 프레임워크 - **해상도 평가**: 점군 밀도와 메시 품질 분석 - **정확도 평가**: 기하학적 정확성과 형태 유사도 - **커버리지 평가**: 객체 표면 완전성 분석 - **아티팩트 평가**: 노이즈와 이상치 탐지 ### 🧠 DeepEMD 기술 - **Transformer 기반**: 최신 딥러닝 기술 활용 - **계산 복잡성 해결**: 기존 EMD 계산의 성능 문제 해결 - **고정밀도**: 더 정확한 EMD 값 계산 ### 🎨 SceneDreamer 통합 - **3D 장면 생성**: 고품질 3D 모델 자동 생성 - **다각도 렌더링**: 다양한 시점에서의 이미지 생성 - **객체 탐지**: 복잡한 장면에서의 다중 객체 탐지 ### 🔧 자동화 시스템 - **CI/CD 파이프라인**: GitHub Actions 기반 자동화 - **자동 테스트**: 단위, 통합, 성능 테스트 - **코드 품질**: 린팅, 포맷팅, 타입 체크 ## 📋 시스템 요구사항 - **Python**: 3.8 이상 - **메모리**: 최소 8GB RAM - **디스크**: 최소 10GB 여유 공간 - **GPU**: CUDA 11.0 이상 (선택사항, 성능 향상용) ## 🚀 빠른 시작 ### 1. 설치 ```bash # 저장소 클론 git clone https://github.com/your-repo/rvtouch3d-evaluation.git cd rvtouch3d-evaluation # 가상환경 생성 및 활성화 python -m venv venv source venv/bin/activate # Linux/Mac # 또는 venv\Scripts\activate # Windows # 의존성 설치 pip install -r requirements.txt ``` ### 2. 기본 사용법 ```python from src.evaluator import Evaluator # 평가기 초기화 evaluator = Evaluator() # 모델 평가 result = evaluator.evaluate_model( model_path='path/to/your/model.glb', reference_path='path/to/reference/image.jpg' ) # 결과 확인 print(f"종합 점수: {result['comprehensive_score']:.2f}") print(f"성능 등급: {result['grade']}") ``` ### 3. Empir3D 사용법 ```python from src.metrics.empir3d_evaluator import Empir3DEvaluator # Empir3D 평가기 초기화 evaluator = Empir3DEvaluator() # 3D 모델 평가 result = evaluator.evaluate_3d_model(model_3d, ground_truth_3d) print(f"Empir3D 점수: {result['empir3d_score']:.2f}") print(f"해상도: {result['resolution']['score']:.2f}") print(f"정확도: {result['accuracy']['score']:.2f}") ``` ## 📚 문서 - [사용자 가이드](docs/user_guide.md) - 상세한 사용법과 예제 - [API 레퍼런스](docs/api_reference.md) - 모든 API 문서 - [개발자 가이드](docs/developer_guide.md) - 개발 및 기여 가이드 ## 🧪 테스트 ### 자동 테스트 실행 ```bash # 모든 테스트 실행 python tests/automated_tests.py # 특정 테스트 실행 python -m pytest tests/unit_tests.py -v # 커버리지 테스트 python tests/test_coverage.py ``` ### 테스트 커버리지 ```bash # 커버리지 리포트 생성 python -m pytest tests/ --cov=src --cov-report=html open htmlcov/index.html ``` ## 🔧 설정 시스템 설정은 `config/evaluation_config.py`에서 관리됩니다: ```python # 평가 가중치 EVALUATION_WEIGHTS = { '2d_map': 0.25, '3d_map': 0.30, 'chamfer_distance': 0.20, 'emd': 0.15, 'class_accuracy': 0.10 } # 렌더링 설정 RENDERING_CONFIG = { 'num_views': 36, 'image_size': (512, 512), 'camera_distance': 2.0, 'camera_elevation': 30.0 } ``` ## 🏗️ 아키텍처 ``` src/ ├── evaluator.py # 메인 평가기 ├── metrics/ # 평가 지표 │ ├── empir3d_evaluator.py # Empir3D 평가기 │ ├── deep_emd_calculator.py # DeepEMD 계산기 │ ├── resolution_calculator.py # 해상도 계산기 │ ├── accuracy_calculator.py # 정확도 계산기 │ ├── coverage_calculator.py # 커버리지 계산기 │ └── artifact_calculator.py # 아티팩트 계산기 ├── renderer/ # 렌더링 │ └── improved_renderer.py # 개선된 렌더러 ├── generators/ # 생성기 │ └── scene_dreamer.py # SceneDreamer ├── integration/ # 통합 │ └── scene_detection.py # 장면 탐지 ├── models/ # 모델 │ └── transformer_emd.py # Transformer EMD └── utils/ # 유틸리티 ├── reference_extractor.py # 참조 데이터 추출기 ├── exception_handler.py # 예외 처리기 └── normalization_validator.py # 정규화 검증기 ``` ## 🚀 CI/CD 파이프라인 GitHub Actions를 통한 자동화된 파이프라인: - **테스트**: 단위, 통합, 성능 테스트 - **코드 품질**: 린팅, 포맷팅, 타입 체크 - **보안**: 보안 취약점 스캔 - **배포**: 자동 배포 및 릴리스 ## 📊 성능 벤치마크 | 지표 | 기존 시스템 | 개선된 시스템 | 향상도 | |------|-------------|---------------|--------| | 평가 시간 | 5-10분 | 1-3분 | 60-70% | | 메모리 사용량 | 8-12GB | 4-6GB | 50% | | 정확도 | 85% | 95% | 10% | | 안정성 | 70% | 95% | 25% | ## 🤝 기여하기 1. Fork the Project 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the Branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## 📝 라이선스 이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요. ## 🙏 감사의 말 - [Open3D](https://github.com/isl-org/Open3D) - 3D 데이터 처리 - [PyTorch](https://pytorch.org/) - 딥러닝 프레임워크 - [Ultralytics](https://github.com/ultralytics/ultralytics) - YOLO 모델 - [OpenCV](https://opencv.org/) - 컴퓨터 비전 ## 📞 지원 - **GitHub Issues**: [프로젝트 저장소](https://github.com/your-repo/rvtouch3d-evaluation/issues) - **이메일**: support@example.com - **문서**: [프로젝트 문서](https://docs.example.com) ## 🔄 업데이트 로그 ### v2.0.0 (2024-01-15) - ✨ Empir3D 프레임워크 도입 - 🚀 DeepEMD 기술 적용 - 🎨 SceneDreamer 통합 - 🔧 자동화 시스템 구축 - 📚 완전한 문서화 ### v1.0.0 (2023-12-01) - 🎯 기본 평가 시스템 - 📊 2D/3D mAP 계산 - 🎨 렌더링 시스템 - 🔧 기본 테스트 --- **3D 객체인식 평가시스템**으로 더 정확하고 신뢰할 수 있는 3D 모델 평가를 경험해보세요! 🚀