반응형

프로그래밍/데이터 사이언스 공부 39

mAP란 무엇인가?

YOLO 모델을 훈련시킬 때 모델의 성능에 대해서 mAP로 표현하여 mAP 수치가 가장 높은 것을 가장 성능이 좋은 모델이라고 best.pt 파일로 저장하게 된다. patience 매개변수는 인내, 인내심이라는 뜻을 가지고 있는데 이는 지정된 숫자의 에폭만큼 모델을 훈련시켰는데 mAP의 향상이 없으면 훈련을 중단하는 옵션이다. 이처럼 mAP는 모델의 성능과 거의 동일하게 사용되고 있는데 대체 이 mAP가 정확하게 무엇인지 제대로 몰라서 알아보기로 하였다. https://artiiicy.tistory.com/25 [ML] 인공지능 Object Detection에서의 mAP란? 수많은 ML 분야 중에서도 Object Detection 분야의 논문에서 자주 등장하는 모델의 성능평가지표인 mAP. 아직은 계속 ..

데이터셋 이미지 전처리 과정에서 이미지 방향 조정

https://blog.roboflow.com/exif-auto-orientation/ When Should I Auto-Orient My Images? The short answer: almost always. blog.roboflow.com Roboflow의 이미지 전처리 과정에서 Auto-Orient라는 과정이 있어 알아보았다. Orient는 동사로 무엇을 일정한 방향으로 향하게 하다라는 뜻을 가지고 있었고 Auto-Orient는 이미지 방향을 자동으로 한 방향으로 전부 통일시키는 전처리 과정이었다. 보통 이미지를 촬영할 때는 해당 이미지에 이미지의 방향을 표시하는 메타데이터가 같이 포함되어서 나중에 이미지를 활용한 작업을 할 때 해당 메타데이터를 참고하여 이미지를 뒤집을지 회전할지 등을 결정하게 ..

yaml 파일 수정의 두가지 방법

import yaml # 아래는 Roboflow에서 생성한 데이터셋의 yaml 파일의 예시이다. # names: # - car # - large_bus # - large_truck # - medium_truck # - small_bus # - small_truck # nc: 6 # roboflow: # license: BY-NC-SA 4.0 # project: car_bus_truck_detection_2 # url: https://universe.roboflow.com/cardetection2/car_bus_truck_detection_2/dataset/3 # version: 3 # workspace: cardetection2 # test: ../test/images # train: car_bus_tr..

error: OpenCV(4.8.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1255: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian,..

잘 되던 opencv-python이 갑자기 오류가 생겼다. 구글링을 해보니 해당 오류는 꽤 잦은 오류였고 특정 경우가 아니라면 해결법은 쉬웠다. 1. 관리자 권한으로 파워셸 등 터미널 열기 2. 아래의 코드 작성 pip uninstall opencv-python-headless pip uninstall opencv-python pip install opencv-python 3. 프로그램 재실행 위의 코드를 작성하여 실행 후 vscode를 닫고 다시 시작하였더니 정상적으로 수행이 되었다. 원인은 구글링 해보니 아마 opencv-python이 의존하는 opencv의 버전 문제 같은데 opencv의 버전이 변할 때 종종 이런 오류가 생기는 것 같다.

ModuleNotFoundError: No module named 'ultralytics.utils.callbacks.hub'

YOLOv8를 이용하여 model.train()을 수행하려 할 때 나타난 오류이다. pip uninstall ultralytics 명령어로 ultralytics를 언인스톨 후 다시 설치하여 해결하였다. 원인은 다른 주피터 노트북에서 이미 ultralytics를 인스톨 하였는데 model.train()을 수행할 노트북에서 ultralytics를 git clone으로 가져와서 설치하여 오류가 나타난 것 같았다.

YOLO 등 모델 훈련 시 최적의 에폭수는 없다

전에 주워듣기론 YOLO 같은 모델은 파인튜닝 시 최소 300 에폭은 돌려야 한다고 들었는데 그렇다면 모델이나 데이터셋 크기 등을 기준으로 최적의 에폭수가 있는지 해서 찾아봤다. chatGPT나 데이터 사이언스 톡방 등에 질문해보았는데 정해진 에폭수는 없다는 답을 얻었다. 모델 훈련 결과로 나오는 파라미터를 보고 개발자가 최적의 방향으로 나아가는게 최선이라고 한다. 아마 YOLOv8의 patience 옵션처럼 해당 모델이 n에폭 동안 성능 향상이 없으면 훈련을 중단시키는 것도 이를 위해서인 것 같다. 성능 향상은 없는데 계속 훈련시키면 과적합의 위험이 있으니 성능은 가져가면서 과적합 위험을 줄이기 위함일 것이다. 정해진 기준이 없다면 결국 개발자가 성능의 그래프를 보고 해당 모델을 더 훈련시킬지 말지를 ..

데이터셋 구축 시 특정 클래스 개체를 일부러 어노테이션 하지 않을 때 생기는 문제점

https://github.com/ultralytics/ultralytics/issues/6544 Problems that arise when object annotations are not intentionally performed on images · Issue #6544 · ultralytics/ultralytics Search before asking I have searched the YOLOv8 issues and discussions and found no similar questions. Question As I am a foreigner, I used a translator to write my question, so please understand t... github.com 위 깃허브..

YOLOv8 클래스 불균형(class imbalance) 문제

현실 데이터에는 클래스 불균형 문제가 자주 발생한다. 나의 경우에는 사거리 통행 차량 촬영 영상에서 승용차의 개수가 트럭과 버스에 비해 압도적으로 많아서 큰 불균형이 생겼다. 왜 데이터가 클래스 균형을 이루어야할까? 데이터의 클래스 균형의 핵심은 소수의 클래스에 특별히 더 큰 관심이 있는 경우에 필요하다. 현재 나의 재정 상황을 고려해서 물건을 살지 말지 예측하는 모델을 만든다고 할 때 사라고 에측하는 것과 사지 말라고 예측하는 것은 그 무게가 다르다. 물건을 사라고 예측하는 것은 훨씬 더 큰 리스크를 수반한다. 잘못된 투자는 큰 손실로 이어질 수 있기 때문이다. 따라서 물건을 사라는 예측에 대해서는 더 큰 정확도를 가져야 한다. 하지만 데이터가 물건을 사지 마라는 클래스에 몰려있는 경우 물건을 사지 말..

NotImplementedError: A UTF-8 locale is required. Got ANSI_X3.4-1968

해당 오류를 구글링 해보니 코랩 환경에서 런타임 유형을 GPU로 설정했을 때 간헐적으로 발생하는 오류 같다. https://stackoverflow.com/questions/56081324/why-are-google-colab-shell-commands-not-working Why are Google Colab shell commands not working? Steps to reproduce: Open new Colab notebook on GPU !ls #works !pip install -q turicreate import turicreate as tc !ls #doesn't work I get the following error: -----------------------------------....

반응형