MapleStory Finger Point

전체 글 47

[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

OpenAI Sora란?

OpenAI Sora 공식 홈페이지 설명 Sora: Creating video from text The current model has weaknesses. It may struggle with accurately simulating the physics of a complex scene, and may not understand specific instances of cause and effect. For example, a person might take a bite out of a cookie, but afterward, the cookie m openai.com 성능 OpenAI는 물리적 세계의 움직임을 이해하고 모방하는 AI를 가르치고 있으며, 실제로 상호작용이 필요한 문제를 해결하는 데 도움이..

AI 신기술 2024.02.17

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 예시 중 하나이다. 하지만 일반적으로 다른 방법들보다 정확도가 낮으며, 객체를 탐지하는데 효과적이지 않을 수 있다. 이러한 알고리즘은 제한된..

윈도우 파일 복사 명령어 xcopy 활용 (+ 특정 파일만 복사)

윈도우 환경에서 파일을 옮길 때 주로 GUI를 사용하지만 xcopy 명령어를 사용하여 옮기는 방법도 있다. 파일들을 복사할 때 GUI를 사용하여 옮기면 Scan 작업 후 복사하므로 시간이 더 걸린다는 글도 있고, 똑같다는 글도 있다. 개인적인 경험으로 옮길 파일 수가 적으면 GUI, 많으면 xcopy를 사용하는 것이 더 효율적이었다. 어쨌든 xcopy를 사용하여 어느 폴더의 파일들을 다른 폴더로 옮기고 싶다면 아래의 명령어를 사용하면 된다. 그냥 cmd에서 실행 가능하다. xcopy "D:\Workspace\" "D:\Datasets" /c /y 설명하자면 D:\Workspace\ 폴더에 있는 모든 파일들을 D:\Datasets 경로로 복사한다. - 적용한 Parameters (확인 명령어: xcopy ..

소소한 팁 2023.08.11

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 에러가 발생하지 않는다. 만약 이미지 속성 정보들을..

[1] 가상 번호판을 만들어보자

요즘 YOLOv7 기반으로 번호판 인식 모델을 만들고 있는 중이다. 모델을 만들려면 학습할 이미지 데이터가 있어야 하는데 검색해 보면 죄다 외국 번호판 데이터밖에 없다. 개인적인 생각으로 외국 번호판이랑 우리나라 번호판이랑 약간 다르게 생겨서 외국 번호판을 기반으로 학습해도 인식이 잘 될지 미지수였다. 그래서 생각해낸 것이 바로, 외국 번호판 이미지 데이터셋을 보면 이미지 파일과 어노테이션을 진행하여 번호판 좌표가 들어있는 텍스트 파일 또는 json 파일 같은 게 같이 들어있다. 여기 좌표에 대한민국 번호판을 집어여면 되지 않을까 라는 생각이었다. GitHub - Oh-JongJin/Virtual_Number_Plate: 가상 번호판 만들기 가상 번호판 만들기. Contribute to Oh-JongJi..

QSettings 로그인 알고리즘

이 내용은 이전 글과 연관되어 있습니다. 간단한 로그인 알고리즘 중 일정 횟수 비밀번호 에러가 발생하면 해당 계정의 로그인을 일시적으로(필자는 1분으로 설정하였음) 차단하는 기능을 구현해보겠습니다. 우선 크게 필요한 것은 첫 번째로 비밀번호 에러가 발생한 시간, 두 번째는 비밀번호 에러 횟수입니다. 현재 시간과 에러 발생 시간을 비교하여 로그인 성공 유무를 선택하는 알고리즘입니다. 자세한 것은 코드에 주석 처리 해놓았습니다. #!/usr/bin/env python3 # # Authors: # 5jx2oh@gmail.com import sys import time from datetime import datetime from PySide6.QtCore import QSettings from PySide6...

Development/GUI 2023.02.21