일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- error
- 프로그래머스
- pandas
- JSON
- 핑거스타일
- paramiko
- OpenCV
- 채보
- YOLO
- 기타 연주
- Docker
- pytorch
- LIST
- C#
- 오류
- mysql
- C
- Python
- SSH
- ubuntu
- label
- windows forms
- pip
- C++
- Numpy
- Selenium
- VS Code
- Visual Studio
- 명령어
- Linux
- Today
- Total
목록YOLO (8)
기계는 거짓말하지 않는다
YOLO 텍스트로 된 라벨 bbox를 이용하여 object들을 crop 하여 이미지로 저장하는 코드이다.확장자나 경로는 사용자에 맞게 바꿔야 한다.이미지, 라벨 이름의 짝과 개수가 맞는지는 코드 실행 전 검사하여야 한다.import cv2import osimport globdef get_x_y_points(point1_x, point1_y, point2_x, point2_y): xmin, ymin, xmax, ymax = 0, 0, 0, 0 if point1_x point2_x and point1_y point2_y: xmin = point1_x ymin = point2_y xmax = point2_x ymax = point1_y ..
YOLO 텍스트로 된 라벨 bbox를 이미지에 표시하는 샘플 코드이다. 다른 용도로 변형 가능하며, 경로는 사용자에 맞게 바꿔야 한다. import os import glob import cv2 import shutil import numpy as np # opencv 한글 경로 읽을 수 있도록 def imread(file_path): f = open(file_path.encode("utf-8"), "rb") bytes = bytearray(f.read()) npArr = np.asarray(bytes, dtype=np.uint8) return cv2.imdecode(npArr, cv2.IMREAD_UNCHANGED) # image, label 짝 체크 def pair_img_label_check(img..
classid, x center, y center, width, height 형식의 YOLO label 텍스트 파일의 class 별 object 개수를 확인하는 경우 import os import glob import datetime import time import copy # YOLO dataset 구조 형식일 경우 dir_root_path = "D:/Datasets/yolo_split_dataset/labels/" sub_dir_name_list = ["train", "val"] name_dict = {} read_count = 0 start_time = time.time() for sub_dir_name in sub_dir_name_list: label_path_list = glob.glob(os..
classid, x center, y center, width, height 형식의 YOLO label 텍스트 파일의 특정 classid를 제외해야 하는 경우 import os import glob import datetime import time # YOLO dataset 구조 형식일 경우 dir_root_path = "D:/Datasets/yolo_split_dataset/labels/" sub_dir_name_list = ["train", "val"] # 제외할 classid skip_classid_list = ["2", "5", "9"] start_time = time.time() for sub_dir_name in sub_dir_name_list: label_path_list = glob.glo..
classid, x center, y center, width, height 형식의 YOLO label 텍스트 파일 classid를 변경해야 하는 경우 import os import glob import datetime import time # YOLO dataset 구조 형식일 경우 dir_root_path = "D:/Datasets/yolo_split_dataset/labels/" sub_dir_name_list = ["train", "val"] # 1 -> 0, 2 -> 1, 3 -> 2 CHANGE_ID_TABLE = { "1" : "0", "2" : "1", "3" : "2" } start_time = time.time() for sub_dir_name in sub_dir_name_list: l..
YOLO txt 형식 label 데이터를 라벨링 툴인 Labelme에서 읽을 수 있는 JSON 형식으로 바꿔 준다. 이미지와 txt 라벨이 같은 디렉터리에 있을 경우 그대로 사용 가능하다. 다른 디렉터리일 경우 코드 수정이 필요하다. import os import glob import json import time import datetime import shutil import cv2 def calculate_points(image_width: int, image_height: int, x_center_scaling: float, y_center_scaling:float, w_scaling:float, h_scaling:float): w = w_scaling * image_width h = h_scal..
https://github.com/theAIGuysCode/yolov3_deepsort GitHub - theAIGuysCode/yolov3_deepsort: Object tracking implemented with YOLOv3, Deep Sort and Tensorflow. Object tracking implemented with YOLOv3, Deep Sort and Tensorflow. - GitHub - theAIGuysCode/yolov3_deepsort: Object tracking implemented with YOLOv3, Deep Sort and Tensorflow. github.com YOLOv3 deepSORT 실행 시 다음과 같은 오류가 발생할 수 있다. KeyError: "Th..
xmin, ymin, xmax, ymax 좌표를 YOLO label 형식인 center x, center y, width, height 로 변환한다. 원본 이미지 해상도를 나누어 0~1 사이의 비율로 표현한다. 다른 형식으로 된 원본 좌표도 계산 식을 변경하여 응용 가능하다. def get_object_params(i_width: int, i_height: int, xmin, ymin, xmax, ymax): image_width = 1.0 * i_width image_height = 1.0 * i_height center_x = xmin + 0.5 * (xmax - xmin) cneter_y = ymin + 0.5 * (ymax - ymin) absolute_width = xmax - xmin abso..