Skip to content

Conversation

@github-classroom
Copy link

@github-classroom github-classroom bot commented Sep 30, 2024

👋! GitHub Classroom created this pull request as a place for your teacher to leave feedback on your work. It will update automatically. Don’t close or merge this pull request, unless you’re instructed to do so by your teacher.
In this pull request, your teacher can leave comments and feedback on your code. Click the Subscribe button to be notified if that happens.
Click the Files changed or Commits tab to see all of the changes pushed to the default branch since the assignment started. Your teacher can see this too.

Notes for teachers

Use this PR to leave feedback. Here are some tips:

  • Click the Files changed tab to see all of the changes pushed to the default branch since the assignment started. To leave comments on specific lines of code, put your cursor over a line of code and click the blue + (plus sign). To learn more about comments, read “Commenting on a pull request”.
  • Click the Commits tab to see the commits pushed to the default branch. Click a commit to see specific changes.
  • If you turned on autograding, then click the Checks tab to see the results.
  • This page is an overview. It shows commits, line comments, and general comments. You can leave a general comment below.
    For more information about this pull request, read “Leaving assignment feedback in GitHub”.

Subscribed: @lexxsh @june21a @kupulau @glasshong @kimsuckhyun

github-classroom bot and others added 30 commits September 30, 2024 04:29
need further modification on 프로젝트 구조, 실행방법, Wrap-up Report
#3
need further modification on 프로젝트 구조, 실행방법, Wrap-up Report
#3
- Create utils/ folder for utility scripts and custom implementations
  - Add inference_visualizer.py for result visualization
  - Implement stratifiedKfold_coco.py for dataset preparation
  - Create mmdetection/ subfolder with custom train.py and inference.py
- Utilize existing mmdetection library with custom config
- Add .gitignore file

Folder structure:
project_root/
├── utils/
│   ├── inference_visualizer.py
│   ├── stratifiedKfold_coco.py
│   └── mmdetection/
│       ├── train.py
│       └── inference.py
├── mmdetection/  # library
│   └── CV_05/
│       └── DDQ-DETR.py
└── .gitignore

Rationale:
- Organize custom scripts and implementations separately
- Keep custom training and inference scripts in utils/mmdetection/
- Utilize existing mmdetection library for configurations
- Implement core scripts for full training and inference pipeline

Next steps:
- Integrate custom scripts with mmdetection library
- Implement data preprocessing using stratifiedKfold_coco.py
- Create project documentation
- Add model evaluation scripts
feat: mmdetection을 활용한 객체 감지 프로젝트 구조 설정 및 핵심 기능 구현
feat: Reorganize and reupload directory structure
feat: add ensemble code to utiles folder (Closes #42)
feat: add ensemble code to utiles folder (Closes #8)
… only class balanced, but also size and num of box in each image)
feat: add MultiLabel Stratified KFold to util
perf: now StratifiedKfold consider the Quartile
revise requirements for Multi Label Stratified Kfold
feat: dino config baseline upload
feat: add code and custom metric for test time augmentation
lexxsh and others added 26 commits October 22, 2024 03:21
- Update configuration file
- Apply SwinL backbone to Cascade RCNN model
- Update DETR model
feat config 업로드 및 utils 수정
refactor : merge tta and inference. and separate mmdet v2 code
( Closes #33 )
fix : delete tta.py cause codes move to inference.py and fix some bug
- Modify weight calculation to support both manual and sklearn normalization
- Add flexible parameter control for normalization method
- Implement adjustable min-max range (0.5-1.0)

The core changes include:
- Replace existing normalization with normalize_manual() and normalize_sklearn()
- Add normalization method selection via argparse
- Update weight calculation range to be configurable

Technical details:
- Set default normalization range: 0.5 to 1.0
- Add support for both list and dictionary output formats
- Improve numerical stability in weight calculations

Testing:
- Tested with scores: [0.6712, 0.6895, 0.7158, 0.7226]
- Verified both normalization methods produce consistent results
- Validated with different min-max ranges
최신 구조와 결과에 맞게 Readme를 수정했습니다.
score와 관련된 사진을 수정했습니다.
FEAT : divide each dataset config file according to augmentation option
ddq config 추가 및 augmentation별 dataset base config 추가를 반영하여 프로젝트 구조 설명을 업데이트합니다.
feat: Add detectron2 train, inference code
@KyubumShin
Copy link

Flie change 수가 너무 많아 line by line으로 리뷰를 남길 수 없어서 repo에서 코드 및 commit 로그, 이슈 확인 후 코멘트로 대신하였습니다.

우선적으로 전반적인 깃 활용 능력이 잘 보이는 프로젝트였습니다.
개발 해야 하는 각 기능 별로 이슈를 생성하고, 이슈에 맞게 commit에 이슈 번호를 태그함으로써 이슈에서도 확인 가능하게 만든 점은 현업에서도 잘 지켜지지 않는 부분인데 이 부분에 맞춰 깔끔하게 프로젝트가 진행된 부분이 매우 좋습니다.

여기에 추가적으로 관리 스킬을 하나 알려드리자면 비슷한 기능을 한군데 묶은 Epic Feature를 하나 만들고 그 하위에 각각의 개별 기능들이 있는 Issue를 Epic 이슈번호를 태그하면 Epic 에서 전체 연관된 이슈를 확인할 수 있어서 현업에서도 많이 사용되는 방식입니다.

@KyubumShin
Copy link

코드적인 부분에서 드릴 이야기는 utils/emsemble.py 부분에서

 ## 가중치 수정하는 부분 _ default 값 = 1,1,1,1
weights = [1,1,1,1]
## 박스 스킵 임계값 수정
skip_box = 0.1
## 신뢰도 점수 계산 방식
conf_type = 'box_and_model_avg'
## bbox 오버플로우 허융
allows_overflow = False

위와 같은 방식으로 직접 가중치 및 임계값, 계산방식을 수정하는데요 이럴경우 결과값으로 나온 submission.csv 파일 관리가 힘들 수 있어서 해당부분 에 파일명에 인자로 입력한 파라미터 값들을 추가해서 구분하기 편하게 하는것도 좋을것 같습니다.

추가적으로 csv 파일 같은 경우 string 형태로 파일을 저장하기 때문에 숫자의 자리수에 따라서 파일의 용량이 크게 변하게 되는데요. 어느정도의 오차를 허용하는 선에서 결과값의 float 값을 제한한다면 이전에 랩업리포트에서 이야기 했던 제출 실패 제한 iou 영향이 덜하지 않았을까 생각도 듭니다.

@KyubumShin
Copy link

그 외에는 정말 사소한 부분들인데요
일부 inference 용 코드간의 통일성이 맞지 않는 케이스가 있습니다.

if __name__ == "__main__":

으로 시작하는 inferece 코드와 그렇지 않은 코드가 있어서
이 부분은 일관성 있게 통일해 주시면 좋을 것 같습니다.
(이 부분은 개인적인 취향에 의해 말씀드리는 부분이라 꼭 고치지 않아도 괜찮습니다)

@KyubumShin
Copy link

수고하셨습니다! 전반적으로 잘 짜여진 코드입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants