MapleStory Finger Point

Development 26

[1] Ubuntu 22.04 ROS2 (Humble) 설치

이번에 새로 취업한 회사에서 갑작스럽게 ROS 업무를 맡았다.. 그래서 ROS 설치를 해보자.. $ sudo apt install software-properties-common $ sudo add-apt-repository universe $ sudo apt update && sudo apt install curl -y $ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-k..

Development/ROS 2024.04.20

Computer Vision & CNN

Computer Vision Definition 인공지능(AI)의 한 분야로, 컴퓨터와 시스템을 통해 디지털 이미지, 비디오 및 기타 시각적 입력에서 의미 있는 정보를 추출한 다음 이러한 정보를 바탕으로 작업을 실행, 추천할 수 있도록 한다. 예를 들어, AI를 통해서 컴퓨터가 생각을 할 수 있고 판단할 수 있다면 컴퓨터 비전을 통해서는 컴퓨터가 보고, 관찰하고 이해할 수 있다. 컴퓨터 비전은 인간의 시각과 메커니즘이 거의 동일하다. 인간의 시력은 사물의 거리, 움직임 등으로 사물을 구분하는데, 이러한 구분 방법을 평생 학습한다. 물론 컴퓨터 비전은 망막, 시신경 등이 아닌 카메라, 데이터 및 알고리즘을 사용하여 훨씬 더 짧은 시간에 수행해야 한다. 사용 예시: Image Segmentation: 이미지..

Object Detecting, 객체 탐지 정리 [1]

Object Detection 객체 탐지 알고리즘은 동일한 입력 이미지를 네트워크를 통해 전달하는 횟수에 따라 크게 두 가지 범주로 분류할 수 있다. Two-Stage(Two-shot) detectors, Single-shot(One-Stage) detectors Single-shot 객체 탐지: 입력 이미지를 통합된 네트워크로 처리하기 때문에 효율적이게 한 번의 과정으로 이미지 내에 있는 객체의 존재와 위치에 관한 예측을 수행한다.YOLO는 Convolution Neural Network(CNN) 과정을 통해 이미지를 처리하는 single-shot detector 예시 중 하나이다. 하지만 일반적으로 다른 방법들보다 정확도가 낮으며, 객체를 탐지하는데 효과적이지 않을 수 있다. 이러한 알고리즘은 제한된..

Python os rename 함수 (파일명 변경)

os 라이브러리의 rename 함수는 파일명의 이름을 변경할 때 사용한다. 기본적인 형태는 아래와 같다. import os os.rename('원본 파일명', '변경할 파일명') 변경할 파일은 Python 코드와 같은 경로에 있어야 한다. 물론 전체 경로를 다 적어주면 다른 경로라도 상관 없음. 하지만 파일 하나만 변경할 때 이처럼 코드짜며 돌리는게 더 귀찮으므로, 어느 경로 내부에 있는 여러 파일명을 변경할 때는 이렇게 하면된다. import os import sys image_path = 'labels' # images 라는 이름의 폴더 image_list = os.listdir(image_path) # images 폴더 내부 파일 목록으로 list를 만듦 count = 0 for i in image..

Development/팁 2023.08.08

Anaconda 가상환경에서 만든 Python 코드 바로 실행

Anaconda Prompt 켜고 .. 가상환경 activate 하고.. 경로 들어가서 python ~~.py ... 이 작업이 귀찮으므로 bat 파일을 만들어서 바로 실행되도록 만든다. 먼저 실행하고자 하는 Python 파일이 있는 경로에 텍스트 파일을 하나 만들어, 확장명을 배치 파일인 bat으로 변경한다. 그 다음에 .bat 파일을 마우스 우클릭 후 위에서 두 번째에 있는 편집을 누른다. 그러면 메모장이 열릴 텐데, 아래의 구문을 입력하면 된다. 그 전에 Anaconda가 설치된 경로를 알아야 하는데, C드라이브에 설치하였다는 기준하에 C:/Users/User/AppData/Local/anaconda3 이다. 그런데 가끔 C:/Users/User/anaconda3 이렇게 있는 경우도 있어서 잘 확인..

Development/팁 2023.08.04

AI-HUB 데이터셋 Python으로 직접 출력하여 확인하기

사람 얼굴을 탐지하는 모델을 만들기 위해 여러 데이터셋들을 찾고 있었는데, 거의 대부분 서양인으로 기반으로 한 데이터셋들이 많았다. 게다가 한국인을 대상으로 한 데이터셋들은 개인 정보다 뭐다 해서 거의 찾아볼 수가 없었다. 우연히 AI HUB라는 국내 사이트를 찾게 되었는데, 생각보다 유용한 데이터셋들이 엄청 많았다. 구글에 ai-허브라고 치면 성인인증이 뜬다 모두 국내에서 주관한 데이터셋이기 때문에 한국인, 국내 장소 등등 구하기 쉽지 않은 데이터셋들이다. 물론 AI-HUB에 있는 모든 데이터셋들은 인공지능 학습모델의 학습용으로만 사용할 수 있으며, 다른 행위에 대해서는 일절 허락되지 않음. https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMen..

Development 2023.07.25

Grid Layout 위젯 드래그&드롭 이벤트 생성하기

PyQt 또는 PySide로 GUI를 만들 때 거의 필수적으로 Layout을 사용한다. 안 쓰면 크기가 고정되어 버리기 때문에 GUI 크기 조절 시 불편한 점이 한두 가지가 아니라 무조건 쓰는 편이다. 주로 나는 Grid Layout을 자주 쓰는데 문득 Layout 안에 있는 위젯들의 위치를 바꾸고 싶어서 한번 찾아보았다. 그러다 stackoverflow 찾게 되었다. import warnings warnings.filterwarnings('ignore', category=DeprecationWarning) import sys from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QVBoxLayout, QApplication from PySide6.Q..

Development/GUI 2023.07.12

YOLO cfg 파일에 대한 정보

YOLO 모델 학습을 진행할 때, cfg 파일을 사용하는데 문득 어떤 용도로 사용하는지 궁금해져서 찾아보았다. YOLO의 설정 파일인 cfg(config) 파일은 모델의 아키텍처, 하이퍼 파라미터, 데이터 경로 및 훈련 관련 설정 정보를 담고 있다. anchors: 객체의 크기와 위치를 예측하기 위해 사용되는 bounding box, 즉 기본 박스 형태의 좌표를 의미한다. 중심 좌표 (x, y)와 width, height를 포함하며, 이를 사용해 다양한 크기와 비율의 물체를 탐지할 수 있다. anchors:# yolov7.yaml - [12,16, 19,36, 40,28] # P3/8 - [36,75, 76,55, 72,146] # P4/16 - [142,110, 192,243, 459,401] # P5..

Development/YOLO 2023.06.19

YOLO 객체 인식 모자이크 적용 [1?]

* 이 글은 YOLOv7 기준으로 작성하였음 이전에 YOLO 모자이크에 관련한 글을 작성했었는데, 더 간단하게 정리함 GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors - GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of... git..

Development/YOLO 2023.05.24

Invalid SOS parameters for sequential JPEG 에러 [Python OpenCV]

Invalid SOS parameters for sequential JPEG OpenCV 기반 코드 실행 도중에 SOS 관련 에러가 발생하였다면, 해당 이미지에 대한 속성 문제이다. 아마도 이미지 속성을 들여다 보면 Exif 속성들(카메라 제조업체, 카메라 모델 등등) 이 있을 텐데, 이걸 삭제해야한다. 구글링해보니 카메라 제조업체에 삼성 핸드폰이라고 나오면 해당 에러가 발생한다고 카더라. 따라서 PhotoScape X(무료 사진 편집 프로그램)를 다운받은 뒤, 사진 뷰어 - 모든 사진 드래그 후 우클릭 포맷 바꾸기 - 메타데이터 정보를 보존합니다 클릭 해제 후 저장 저장된 사진들을 붙여넣기하면 끝. 그러면 더이상 Exif 정보들이 모두 삭제되어 SOS 에러가 발생하지 않는다. 만약 이미지 속성 정보들을..