본문 바로가기

전체 글

(18)
[파이썬 기초] 이미지 이름을 지정하여 저장하기 이미지 한장을 이용하여 복사하고 이미지 이름을 1부터 30까지 지정해주었습니다. import cv2 import os def save_image(image_path, output_dir, num_images=30): # 이미지 파일을 읽어옵니다. img = cv2.imread(image_path) # 출력 디렉토리가 없으면 생성합니다. if not os.path.exists(output_dir): os.makedirs(output_dir) # 이미지 어그멘테이션을 적용하여 새로운 이미지를 생성하고 저장합니다. for i in range(num_images): # 이미지를 복제합니다. augmented_img = img.copy() # 생성된 이미지를 저장합니다. output_path = os.path.j..
Object Detection의 평가지표 Object Detection을 활용한 프로젝트를 진행하였습니다. 이 과정에서 다양한 평가지표들을 찾아보았습니다. 1. IoU(Intersection over Union) 모델이 예측한 bbox와 실제 bbox가 얼마나 겹치는지 나타내는 지표 IoU에 따른 성능 Pascal VOC 기준 0.5 이하 : False 0.5 이상 : True MS COCO 0.5 ~ 0.95까지 조절해가며 IoU를 계산 더 빡센 지표 2. NMS(Non Max Suppression) 예측한 bbox중 가장 확실한 bbox를 제외한 나머지는 없애주는(눌러주는) 방법 NMS 수행 방법 Detect한 bbox 중 정해진 confidence score threshold 값 이하의 bbox는 제거(ex. confidence score..
절대경로와 상대경로 절대 경로 : 최상위 디렉토리가 반드시 포함 된 경로 상대 경로 : 현재 디렉토리(비교 대상)를 기준으로 작성된 경로 참고 : https://blog.naver.com/tipsware/221275416466 # 절대경로 예시 im1_1 = cv2.imread( 'C:/Users/EUGENE/Desktop/AIFFEL/my_image2.jpg', flags = cv2. IMREAD_GRAYSCALE ) print(im1_1.ndim, im1_1.shape, im1_1.dtype) 절대경로는 위와 같이 폴더의 계층 구조를 나열해서 작성하면 된다. # 상대경로 예시 im1_2 = cv2.imread( '../Daebak.jfif', flags = cv2. IMREAD_COLOR ) print(im1_2.ndi..
YOLOv5 무작정 돌리기 https://github.com/ultralytics/yolov5 GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub. github.com GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolo..
OpenCV 이미지 & 동영상 출력 OpenCV에서 주로 활용하는 이미지, 동영상, 카메라 기능에 대해 정리해보았다. src = cv2.imread("../Daebak.jfif", cv2.IMREAD_GRAYSCALE) cv2.namedWindow("src", flags=cv2.WINDOW_FREERATIO) cv2.resizeWindow("src", 400, 200) cv2.imshow("src", src) cv2.waitKey(0) cv2.destroyWindow("src") 위의 코드는 이미지를 출력하는 기본적인 코드이다. # 마우스 콜백 적용 # 마우스 왼쪽 버튼을 누를 때, radius 크기의 파란색 원을 그려 출력 # 마우스 스크롤 이벤트를 통해 원의 크기 조젤 가능 # 양수일 때, 스크롤업/ 음수일때 스크롤 다운 import ..
구글링해도 안나오는 wandb 사용가이드 - wandb 결과 시각화, 프로젝트 이동 - wandb를 임포트 안하고 모델을 학습시켰는데, 학습 과정을 wandb로 시각화시키고 싶은데 다시 처음부터 wandb를 임포트하고 학습시켜야 할까요? -> 그럴 필요 없음. 이미 wandb의 load_training_results() 라는 함수를 통해 이전에 학습한 것을 wandb로 볼 수 있음. import wandb file_name = '/path/to/csv_file.csv' wandb.init() wandb.load_training_results(file_name, type='csv') 참고: https://github.com/wandb/client/issues/1628 CLI: Feature to import metrics from a previous training run directly..
[semantic Segmentation] 시맨틱 세그멘테이션으로 도로 영역 검출하기 인공지능혁신학교 Aiffel 에서 Semantic Segmentation(시맨틱 세그멘테이션)을 이용해서 자율주행차량이 주행해야 할 도로 영역을 찾는 상황을 가정하고 모델을 만들어보았습니다. U-Net을 사용해서 이미지가 입력되면 도로의 영역을 Segmentation 하는 모델을 만들어보겠습니다. 최종적으로 만든 아래와 같습니다! 입력 이미지 위에 도로 영역으로 인식한 영역을 흰색으로 오버레이 한 이미지입니다. 이미지, 데이터 가져오기 먼저 시맨틱 세그멘테이션(semantic segmentation)으로 도로의 영역을 분리하기 위해서는 도로의 영역을 라벨로 가진 데이터셋을 가지고 학습할 수 있도록 파싱 해야 합니다. 아래 링크를 통해서 물체 검출(object detection)으로 사용했던 KITTI 데..
[사이킷런] 머신러닝 알고리즘 머신러닝의 알고리즘 종류는 크게 3가지로 나눌 수 있음 지도학습 (Supervised Learning) 비지도학습 (Unsupervised Learning) 강화학습 (Reinforcement Learning) 위 3가지 카테고리는 상황이나 구현하고자 하는 Application에 따라 합쳐서 사용될 수도 있음. 경우에 따라 지도학습으로 학습을 진행하다 차원과 특징(Feature)의 수가 너무 많아지면 비지도 학습으로 전환하기도 함. 보통 라벨(정답)의 존재 유무에 따라 머신러닝을 지도학습과 비지도학습으로 나눔. 데이터가 매우 복잡하다면 차원을 축소하기도 하고 만약 주요한 성분이 있다면 주성분 분석을 적용하기도 함. 또한, 데이터의 종류에 따라 같은 회귀라도 선형회귀는 수치형 데이터(연속적인 데이터)를 예..