[데브코스 자율주행 TIL] DAY 74 (01/09)

happy_quokka·2024년 1월 10일
0
post-thumbnail

2024.01.09 DAY74

image augmentation 라이브러리 중 하나인 albumentations를 사용하여 image augmentation을 구현해보았다. 구현하는 것은 어렵지 않았는데 환경을 만드는 과정이 어려웠다. docker를 사용해서 환경을 만들었는데 계속 cv2.imshow 과정에서 에러가 발생했다. 예전에도 이런 에러가 발생했었다. 그때는 docker에서 GUI를 사용하는 것은 어렵다는 말을 듣고 그냥 이미지로 저장하여 결과를 확인하였다. 하지만 이 방법은 너무 불편하여 오늘 어떻게든 imshow를 되게 만들겠다고 다짐했다. 결과적으로 성공하였지만 그 과정이 오래걸렸다...!!


📝 배운 내용

albumentations : image augmentation

  • bbox augmentation
    • bbox 포맷을 맞춰주어야한다
    • bbox도 같이 augmentation 해주어야한다
    • augmentation을 사용할 때 bbox에 대해서는 구현이 안된 albumentation이 있을 수 있기 때문에 에러를 잘 확인하면서 구현해야한다
  • segmentation augmentation
    • segmentation은 pixel값을 가지고 class를 추정한다
    • 따라서 원본이미지, segmentation 이미지에 대해 모두 augmentation을 적용해야한다
  • albumentations 함수들
    • Compose([]) : 리스트안의 여러 augmentation 함수들을 묶어서 적용한다
    • OneOF([]) : 리스트 안의 여러 augmentation들 중에 하나를 실행한다
    • CLAHE() : 히스토그램 평활화를 통해 이미지 대비를 향상시킨다
    • 함수 파라미터 p : 해당 augmentation을 적용할 확률

😵 어려웠던 점

docker에서 cv2.imshow 사용하기

docker에서 이런 저런 라이브러리를 설치하고 어찌저찌 cv2.imshow가 성공했다!!!
그런데...! augmentation을 하기 위해 albumentations 라이브러리를 설치했더니 imshow 에러가 발생했다ㅠㅠ 찾아보았더니 albumentations를 설치하는 과정에서 opencv가 충돌하여 발생하는 문제였다. opencv를 삭제하고 다시 설치하였더니 해결되었다! 사실 이 과정을 몇번 반복했다ㅠ 똑같이 docker container를 만들고 라이브러리들을 설치하였는데 계속 안되다가 성공했다!

0개의 댓글