MapleStory Finger Point

미니 프로젝트 11

Progress 상태 시각화 라이브러리 만들기 [1]

반복 프로세스를 위한 간단한 시각적 피드백을 제공하는 미니멀한 진행 스피너로, 일반 모드와 심플 모드, 확대 모드를 지원하는 라이브러리를 만들어 보았다.이 라이브러리의 이름은 rennips라고 지었는데, 스피너의 영어 스펠링을 뒤집어보니 그럴듯한 이름이 만들어져서 그냥 지었다.이미 현재 0.2.0 버전까지 업데이트하였으며 PyPI에서 rennips 라이브러리를 설치할 수 있다.pip install rennips 라이브러리 설치 후 rennips를 사용하는 예제 코드: import timeimport argparsefrom rennips import rennipsparser = argparse.ArgumentParser(description="rennips 모드 선택기")mode_group = parser..

[1] Curses 라이브러리 응용 프로그램

1-1. 소개Curses는 텍스트 기반 터미널에서 GUI와 유사한 인터페이스를 만들 수 있게 해주는 라이브러리1-2. 설치pip install windows-curses2. Curses 기본 개념Curses를 사용하기 위해서는 먼저 화면을 초기화하고 설정해야 함import cursesdef main(stdscr): ...curses.wrapper(main)curses.wrapper는 화면을 초기화하고, 프로그램이 종료될 때 터미널을 원래 상태로 복원.stdscr은 전체 화면을 나타내는 윈도우 객체Curses에서는 (y, x) 좌표 시스템을 사용하며, 왼쪽 상단 모서리가 (0, 0) 3. 응용 (github code) GitHub - Oh-JongJin/Curses-makerContribute to ..

[4] Keras h5 모델 저장 형식 변경

현재 음악 생성 모델의 확장자는 h5인데,h5는 HDF5의 줄임말으로, 영어로는 Hierarchical Data Format version 5 이다.h5 모델은 Keras 모델 저장 목적이며, 대용량의 복잡한 데이터를 저장하고 관리하기 위한 파일 형식.머신 러닝 모델 h5는 모델 구조(아키텍처), weight 값, loss 값 등이 저장되어 있기 때문에 계층적 구조라는 특징을 가지고 있으며, 메타 데이터를 지원하여 데이터에 대한 설명이나 추가 정보를 저장할 수 있다.h5 모델 학습 중에 아래와 같은 경고 메시지를 보게 되었다.WARNING:absl:You are saving your model as an HDF5 file via `model.save()` or `keras.saving.save_model..

[3] 악보 생성 성공 및 해결 사항

악보 추출에 성공했었다.쇼팽의 음악들로 학습하여 생성하였는데, 생각보다 기대에 못 미친 결과를 출력하였다.먼저 모든 음표가 4분 음표로 생성되었고, 멜로디가 반복되며, 높은음자리표 음표(오른손)만 생성되었음을 확인할 수 있다.이를 해결하기 위해 더 다양한 학습 MIDI 데이터들로부터 장조, 단조 별로 따로 학습을 진행해 보는 작업도 필요할 것 같다는 생각이 든다. + 추가로 학습 MIDI 파일에서 빠르기표가 음표 하나하나 적용된 파일들이 있었는데,MIDI 악보는 일반 악보와는 다르게 각 음표를 개별적인 이벤트로 취급한다.또한 템포를 매우 세밀하게 조절할 수 있어, 변환하는 과정에서 이런 식으로 표현된 것이기 때문!!이게 문제가 되는지는 더 파악해봐야 할 듯 하다.     이번 주의 노래

[2] 악보 생성 구조 및 실행 방법

기존 생성형 AI를 이용하여 악보 생성 프로젝트에 진척 사항이 별로 없기 때문에 우선적으로 LSTM를 이용한 악보 생성 프로젝트를 구상해 보았음. 음악 데이터 준비:MIDI 파일로 된 클래식 음악 로드 -> load_midi_files이 음악 파일들에서 음표 정보 추출 -> extract_notes데이터 가공:추출한 음표들을 컴퓨터가 이해할 수 있는 숫자 형태로 변환음악의 패턴을 학습하기 위해 음표들을 일정 길이의 시퀀스로 나눔└─ preprocess_data인공지능 모델 작성:LSTM 신경망을 사용해 모델 작성이 모델은 음악의 패턴을 학습하는 데 특화└─ create_model: LSTM(Long Short-Term Memory), 장단기 메모리긴 시퀀스의 데이터에서 장기적인 패턴을 기억하고 활용 가능..

[1] 뇌세포 들썩들썩! 스터디의 맛에 빠지다

제목 제가 생각해서 적은 거 아니구요제목과 관련된 썸네일 이미지를 만들기 위해 프롬프트 메시지를 만들어 보겠습니다.무료 크레딧을 제공하는 Stable Diffusion Online에서 바로 뽑아볼게요.이렇게 Draw를 진행하니 뇌세포가 들썩들썩하는 이미지가 생성되었답니다.  지금 위에 나열한 작업들을 모두 진행하는데 5분도 채 걸리지 않았습니다.이렇게 생성형 AI은 우리가 생각했던 걸 바로바로 만들어 줄 수 있습니다.제가 이런 글을 왜 쓰느냐면 생애 첫 스터디(Study) 그룹(Group)에 들었습니다.처음이라 어떻게 해야 할지 몰랐지만, 다들 편한 분위기를 만들어 주시고 잘 알려주셔서 많은 도움이 되었습니다.어쨌든 저는 위에서 말한 생성형 AI를 하나 만들어 볼까 합니다.지금은 잠시 쉬고 있지만 첼로를..

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

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

파이썬으로 파일 자동 삭제 프로그램 만들기

회사에서 만드는 프로그램의 특성상 데이터 저장으로 하드를 되게 많이 쓰고 있다. 주기적으로 저장 공간 관리를 직접 하는데 너무 귀찮아서 하나 만들어 보았다. 사용한 모듈은 os, shutil, psutil이다. psutil은 외부 모듈으로 pip install psutil로 설치하여야 한다. 일단 알고리즘부터 짠 다음, GUI를 통해 만들어보려 한다. 코드는 아래와 같다. #!/usr/bin/env python3 # # Copyright 2021-2022 9th grade 5th class. # # Authors: # 5jx2oh@gmail.com import os import sys import shutil import psutil class FileAutoDelete: """ Delete the ol..

[3] Pyiano - 소리 멀티 출력 [끝]

그동안 건반을 치면 한 번에 하나의 소리만 출력됐다. 예를 들어 도를 치고 바로 레를 치면 도 소리가 멈추며 레 소리로 바로 넘어갔다. 멀티 작업이 되지 않았던 것이다. 알고 보니 저번에 소리 파일을 재생하는 코드를 개별로 설정만 해주면 끝나는 문제였다. def click_C(self, event): self.C.setStyleSheet("background-color: #d1d1d1;") file = "audio/25.MP3" pygame.mixer.init(self.freq, self.bitsize, self.channels, self.buffer) pygame.mixer.music.load(file) pygame.mixer.music.play() 각 클릭 이벤트 함수마다 그냥 pygame 모듈에 설..

[2] Pyiano - 클릭 시 소리 출력

이번에는 간단하게 진행할 것이다. 지난번에는 건반 클릭 이벤트만 처리했는데, 누르면 피아노 소리가 나도록 설정해야 한다. 일단 먼저 피아노 소리 파일이 있어야 하는데 구글링 해보니 쉽게 찾을 수 있었다. 여기 있다. 출처 각각 mp3 파일과 wav 파일이 있는데, 파이썬에는 'wave'라는 모듈이 있어 wav 파일을 쉽게 읽고 쓸 수 있다. wave 모듈을 사용했는데, 왜인지 모르겠지만 재생이 되지 않아 부득이하게 그냥 간편한 pygame 모듈을 사용한다. 아 그리고 일단 loop 문은 지운 상태로 코드를 작성했다. 왜냐면 loop문이 끝나야 음악 파일이 재생이 된다.. import os import sys from PyQt5 import QtWidgets, QtGui, QtCore from pyiano..