MapleStory Finger Point

Development 35

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

PyInstaller 에러 메시지 출력 (바로 꺼짐 이유 확인)

가끔 PyInstaller로 만든 exe 파일을 실행하였을 때, 콘솔 창이 생겼다가 바로 꺼지며 프로그램이 실행되지 않을 때가 있다. 에러 메시지를 확인하고 싶은데 너무 빠르게 사라져서 확인할 수가 없으면 input() 같은 입력 대기 상태 구문을 추가해도 되지만, 직접 코드를 수정해야해서 귀찮다. 그럴 때는 간편하게 1. cmd를 켠다. 2. exe 파일 경로를 입력한다. 3. Enter를 누른다. 이 망할 opencv 에러는 일주일째 해결 중

PyQt5 이미지 비율 맞추기

기본적으로 Qt에서 이미지를 넣기 위해서 빈 QLabel을 선언한 뒤에 넣어야 한다는 건 다들 알고 있을 것이다. 막상 이미지를 넣어보면 내 생각대로 안 들어가지는 게 한두 번이 아니었다. 그럴 때마다 구글링 하고 '아 이렇게 했었지..' 하며 또 까먹는다. 그래서 그냥 나도 내 머릿속을 정리할 겸 이해하기 쉽게 설명할 거다. 솔직히 아래 그림 보면 끝나긴 한다. 그래도 예제 코드를 만들어 보았다. 귀여운 비둘기 사진으로 테스트해보겠다. 첫 번째 코드 - import os from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QMainWindow, QLabel from PyQt5.QtCore import Qt class ThumbnailView(QMa..

Development/GUI 2022.06.20

PyQt5 버튼 애니메이션

최근 UI 애니메이션에 대해 관심이 많아졌다. 그중 Qt Creator라는 툴을 발견하게 되었는데, 그동안 내가 했던 UI는 기본 중의 기본이었구나..라고 깨달을 만한 여러 다양하고 멋진 것들이 많았다. 하나씩 둘러보는 중 느낀 점이 있었는데, 중급 또는 고급 UI들은 대부분 QML을 사용하여 제작한다는 것이었다. 무슨 파도 시뮬레이터도 있었고, 자동차 클러스터 같은 여러 재밌는 위젯들이 많았다. 지금까지 PyQt5 내장 위젯들로만 사용해서 별거 없네 생각하다가 신세계를 경험했다.. 또 QML을 공부하기에 막막하던 참에, 구글링하다 기본 툴로 재미난 기능을 적용하는 예제를 발견했다. 바로 버튼에 마우스를 올려둘 시 Gradient를 적용할 수 있다. #!/usr/bin/python3 from PyQt5 ..

Development/GUI 2022.06.15

PyQt5 PyQtGraph (+ clickEvent, Animation)

최근에 회사에서 그래프를 그려야 할 프로젝트가 있었다 처음에는 예전에 써봐서 익숙했던 matplotlib을 사용했었다 하지만 나중에 exe 실행 파일을 만들어야 했는데, 이 matplotlib 때문에 고생했다. (+ opencv..) 어차피 PyQt5를 사용하여 구현하는데 여기에도 그래프 관련 모듈이 있겠지 해서 봤는데 꽤나 괜찮은 걸 찾았다 바로 PyQtChart 라는 모듈이다 설치법은 그냥 이름 그대로 install 진행 pip install PyQtChart PyQtChart 안에서도 다양한 그래프, 차트들을 만들 수 있는데 난 PieChart를 그려보았다. import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtC..

Development/Graph 2021.10.18