MapleStory Finger Point

전체 글 47

그램 노트북 터치패드 우클릭 해제하기

계속 맥북만 사용하다가 최근에 LG 그램 노트북을 구매했는데, 터치패드 우측 아래가 자꾸 인식되어 좌클릭이 아닌 우클릭이 되는 경우가 자주 있었다. 그래서 그냥 우클릭은 손가락 두 개로만 인식하도록 바꿔버렸다. 시작 메뉴 - 터치 패드 설정 - 탭 - '터치 패드의 오른쪽 아래를 눌러 마우스 오른쪽 단추 클릭' 해제 하면 된다. 끝

소소한 팁 2023.01.31

Python으로 ChatGPT 프로그램 만들어보기

요새 핫하디 핫한 ChatGPT를 사용한 네이버 파파고로 번역하는 간단한 프로그램을 만들어 보았다. 먼저 ChatGPT를 사용하기 위해서는 OpenAI api key를 발급 받아야 한다. 그리고 파파고를 사용하기 위해 네이버 개발자에서 api key를 발급 받는다. import json import urllib.request import openai papago_client_id = 'PAPAGO_CLIENT_ID' # 파파고 API ID papago_client_secret = 'PAPAGO_CLIENT_SECRET' # 파파고 API secret 키 openai.api_key = 'OPENAI_API_KEY' # openai API 키 def papago(text: str, current_lang_t..

Development/ChatGPT 2023.01.31

QSettings List of Dictionary

QSettings는 Dictionary, Key 값과 Value 값으로 이루어져 있다. 그러다가 코드 작성 중에 Value 값을 List 형식으로 만들어야 할 작업이 있었다. 작성한 형식은 아래와 같다. from PySide6.QtCore import QSettings class Setting: settings = QSettings('Test', 'Hi') defaults = {'first': 'one', 'second': 'two', 'Hongdae': ['newjeans', 'hype boy']} @classmethod def get(cls, key): return cls.settings.value( key, cls.defaults[key], type(cls.defaults[key]) ) QSetti..

Yolov7 프로젝트 실행 파일 만들기

최근에 사람을 인식하여 모자이크 처리하는 프로그램을 작성하였는데, 실행 파일 만드는 도중 에러가 발생하였다. 진행한 환경은 다음과 같다. - GPU: NVIDIA GeForce RTX 3070 Laptop GPU - CUDA: 11.6 - cuDNN: 8.5.0 ... Process producer: Traceback (most recent call last): File "multiprocessing\process.py", line 315, in _bootstrap File "multiprocessing\process.py", line 108, in run File "detect_ui.py", line 187, in detect File "utils\torch_utils.py", line 65, in s..

Development/YOLO 2023.01.09

YOLO v7 인식된 물체를 모자이크 하기

현재 YOLO중 최신인 v7을 사용하여 물체 인식을 진행해보았다. 기본적으로 물체를 인식하게 되면 랜덤한 색상의 사각형 박스로 표기한다. 만약 사람을 인식한다면 얼굴뿐이 아닌 사람 몸 전체를 인식하여, 사각형 박스 내부에 사람이 들어가 있는 형태이다. 생각보다 인식이 엄청 정확해서 내가 가지고 있는 사진들로도 인식시켜보았다. 그런데 찍은 사진 중에 지나가던 사람도 찍혀 같이 인식되었다. 요즘은 개인정보가 중요시 되므로 만약 사람이라면 모자이크 처리하도록 해보면 어떨까 생각을 하여 진행해보았다. 먼저 YOLO v7을 개발한 WongKinYiu의 Github에 코드가 올라와 있어서 그대로 가져다 쓰면 된다. (YOLO v7은 PyTorch로 개발한다.) 그 다음 순서는 utils 폴더에 있는 plots.py..

Development/YOLO 2022.12.07

윈도우 환경 YOLO IndexError: invalid index to scalar variable.

간단한 YOLO 테스트를 해보려 했는데.. 자꾸 Index 에러가 발생한다. 실행 환경: Window 11 Darknet YOLO v3 openCV==4.6.0 python==3.10.0 ... net = cv2.dnn.readNet(weights_file, config_file) net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA) net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA) classes = [] with open("./coco.names", "r") as f: classes = [line.strip() for line in f.readlines()] layer_names = net.getLayerNames() outpu..

Development/YOLO 2022.11.17

윈도우 환경에서 Gstreamer로 영상 스트리밍하기

먼저 MINGW를 다운받아야 한다. 설치까지 진행하게 되면 MinGW64를 실행한다. 초기에는 Python이 설치되어 있지 않기 때문에 Arch Linux 기반 명령어인 pacman을 사용하여 다운받는다. pacman -S mingw-w64-x86_64-python 그러면 현재 날짜 기준으로 Python 최신 버전인 3.10.6이 설치될 것이다. 또한 Gstreamer를 사용하기 위해 라이브러리를 설치해야 하는데, 여기서는 Python pip을 사용하지 않고 pacman을 사용하여 받는다. pacman -S mingw-w64-x86_64-gst-python pacman -S mingw-w64-x86_64-gst-rtsp-server pacman -S mingw-w64-x86_64-python-opencv..

MinGW 개발 2022.11.09

백준 알고리즘 2609번 최대공약수와 최소공배수 (파이썬)

문제: 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. # 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. a, b = map(int, input().split()) # 유클리드 호제법 (최대공약수 구하기) def gcd(m,n): # 기본 전제로 m이 n보다 더 큰 수이어야 한다 if m < n: # n이 더 크면 자리를 바꿔준 m, n = n, m if n == 0: # 만약 두 수 중에 하나가 0이..

백준 알고리즘 2022.08.19

백준 알고리즘 2775번 부녀회장이 될테야 (파이썬)

문제: 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수..

백준 알고리즘 2022.08.17

백준 알고리즘 2480번 주사위 세개 (파이썬)

문제: 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받..

백준 알고리즘 2022.08.15

백준 알고리즘 1085번 직사각형에서 탈출 (파이썬)

문제: 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 첫째 줄에 x, y, w, h가 주어진다. # 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. # 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. # 첫째 줄에 x, y, w, h가 주어진다. # 이 문제는 현재 좌표에서 직사각형까지 최소 길이를 구하는 문제이다. # 최소 길이는 상하좌우 모두 될 수 있으며 현재는 알 수 없다. x, y, w, h = ma..

백준 알고리즘 2022.08.15

백준 알고리즘 1193번 분수찾기 (파이썬)

문제: 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. # 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. # # X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. # 1번 째 - 1 # 2번 째 - 2, 3 # 1/2 2/1 # 3번 째 - 4, 5, 6 # 3/1 2/2 1/3 # 4번 째 - 7, 8, 9, 10 # 1/4 2/3 3/2 4/1 # 5번 째 - 11, 12, ..

백준 알고리즘 2022.08.14

백준 알고리즘 1929번 소수 구하기 (파이썬)

문제: M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. from math import sqrt M, N = map(int, input().split()) for i in range(M, N + 1): if i == 1: continue for j in range(2, int(sqrt(i)) + 1): if i % j == 0: break else: print(i) 코드 설명: from math import sqrt M, N = map(int, input().split()) # M 이상, N이하 만큼 반복 for i in range(M, N + 1): if i == 1: # 1은 소수가 될 수 없다 continue # 이 방법은 '에토스테네스의 체' 라는 빠른 소수 찾기 방법이다 # 예를들어 ..

백준 알고리즘 2022.08.09