기본 콘텐츠로 건너뛰기

TTS 라이브러리 MeloTTS로 한국어 음성 합성해보기

  TTS( text-to-speech ) 라이브러리인 MeloTTS를 사용하여 한국어 음성을 합성해봤습니다.  깃허브 주소는   https://github.com/myshell-ai/MeloTTS  입니다. 2024. 7. 14  최초작성 2024. 11. 9  윈도우에서 실행시 python3 대신 python을 사용해야함. 디폴트 설치로는 파이토치가 CPU를 위해 설치됨 2024. 11. 10 cuda 사용하도록 pytorch 설치하여 테스트 진행 2024. 11. 14 Linux와 macOS, Windows에서 가능한 방법입니다.   최종 문서 작성시 테스트는 Windows에서 진행했습니다. 가급적이면 miniconda나 anaconda 환경에서 진행하세요. conda 환경 만드는 방법은 아래 링크를 참고하세요. Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2) https://ilkemomo.blogspot.com/2025/09/visual-studio-code-miniconda-python.html   다음 명령들을 차례로 실행해줍니다. 위 두 줄은 conda 환경을 사용할 경우에 필요한 명령어입니다. $ conda create -n melotts python=3.10 $ conda activate melotts $ git clone https://github.com/myshell-ai/MeloTTS.git $ cd MeloTTS $ pip install -e . $ python -m unidic download 이제 예제코드를 실행해봅니다. 출처  https://huggingface.co/myshell-ai/MeloTTS-Korean   from  melo.api  import  TTS # Speed is adjustable speed =  1....

YoloX 커스텀 데이터셋 학습해보기

 YoloX를 사용하여 커스텀 데이터셋을 학습하는 과정을 정리했습니다.

전체 과정은 아래 유튜브 영상에서도 보실 수 있습니다. 라벨링 하는 과정은 유튜브 영상을 참고하세요.

https://youtu.be/K4gKhxf4u2M?si=ZKhjEFYFHJCeujFF

Yolo가 여러 버전이 있지만 라이센스 문제로 상용으로 자유롭게 사용가능한 것은 YoloX입니다.

2025. 5. 20 최초작성

우분투 환경에서 진행해야 필요한 패키지 설치시 문제가 발생하지 않았습니다. 윈도우에서 시도시 문제가 발생했었습니다.

다음 포스트를 참고하여 파이썬 개발환경을 구축하여 사용합니다.

Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)

https://ilkemomo.blogspot.com/2025/09/visual-studio-code-miniconda-python.html 

1. Python 가상 환경을 생성하여 진행합니다.

Python 3.9를 사용해야 requirements.txt를 사용한 패키지 설치시 문제없이 진행가능했습니다.

$ conda create -n yolo python=3.9

$ conda activate yolo

2. 깃허브 저장소를 가져옵니다.

git clone https://github.com/Megvii-BaseDetection/YOLOX.git

3. 해당 YOLOX 디렉토리로 이동하여 필요한 패키지를 설치합니다.

cd YOLOX

pip install -r requirements.txt

일부 패키지가 설치안되는 경우 추가로 설치하면 됩니다.  

4. PyTorch에서 CUDA를 지원하지 않도록 설치되어 있어서   Fasle가 출력되었습니다.

python -c "import torch; print(torch.cuda.is_available())"

False

False가 나왔다면  CUDA가 지원되도록 Pytorch를 다시 설치합니다. CUDA 11.8로는 동작에 문제가 있어 CUDA 12.4를 사용하도록 설치했습니다.  

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

다음처럼 True가 나와야 PyTorch에서 GPU가속이 가능합니다.

python -c "import torch; print(torch.cuda.is_available())"

True

5. 이제 YOLOX 설치를 진행합니다.

pip3 install -v -e .  

6. 미리 학습된  YOLOX weights를 다운로드합니다.

wget https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth

6. 이제 예제를 실행해봅니다.

python tools/demo.py image -f ./exps/default/yolox_s.py -c ./yolox_s.pth  --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

실행 결과 마지막에  검출 결과가 저장된 이미지의  위치가 출력됩니다.

 Saving detection result in ./YOLOX_outputs\yolox_m\vis_res\2025_04_06_22_12_19\dog.jpg

디폴트로 설치된 이미지 뷰어인 eog를 사용하여 결과 이미지를 터미널에서 확인합니다.

 eog ./YOLOX_outputs/yolox_m/vis_res/2025_04_04_15_18_44/dog.jpg

7. 이제 커스텀 데이터를 사용해봅니다.

Labelme을 사용하여 이미지에 라벨을 부여합니다. 여기에선 scissors(가위) 라벨을 부여합니다.

자세한 과정은 유튜브 영상을 참고하세요.

영상에선 다루지 않지만 라벨링을 하지 않은 이미지를 추가해야 오탐지를 줄일 수 있다고합니다.

네거티브 샘플(Negative Samples) 추가:

가장 효과적인 방법 중 하나입니다. 탐지하려는 객체가 없는 배경 이미지나, 오탐지를 일으키는 객체들만 포함된 이미지를 학습 데이터셋에 추가합니다.

이때, 해당 이미지에는 어떤 바운딩 박스(Bounding Box) 정보도 포함하지 않아야 합니다.

이렇게 하면 모델은 '이런 이미지는 탐지 대상이 아니다'라는 것을 명시적으로 학습하게 되어 오탐지를 줄일 수 있습니다.

Labelme를 설치합니다.

pip install labelme

실행합니다.

labelme

다음처럼 에러나는경우

(yolo) webnautes@webnautes-Legion-5-15ACH6H:~/YOLOX$ labelme

2025-04-09 12:24:04.781 | INFO     | labelme.config:get_config:66 - Loading config file from: /home/webnautes/.labelmerc

QObject::moveToThread: Current thread (0x20a23740) is not the object's thread (0x21ab6f80).

Cannot move to target thread (0x20a23740)

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/webnautes/miniconda3/envs/yolo/lib/python3.9/site-packages/cv2/qt/plugins" even though it was found.

This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.

중지됨 (코어 덤프됨)

다음 주소를 로그에서 찾아서 해당 디렉토리를 삭제하고 다시 labelme를 실행합니다. .

(yolo) webnautes@webnautes-Legion-5-15ACH6H:~/YOLOX$ rm -rf home/webnautes/miniconda3/envs/yolo/lib/python3.9/site-packages/cv2/qt/plugins

라벨링된 폴더와 테스트용 이미지 파일을 복사해옵니다. labelme_data 폴더를 YOLOX 폴더로 가져오면 됩니다.

다음 링크에 있는 코드를 labelme_to_coco.py로 저장하여 실행합니다.

 https://bit.ly/webnautes0409 

$ python labelme_to_coco.py

변환 완료! 총 23개 이미지가 COCO 형식으로 변환되었습니다.

- 훈련 세트: 18개

- 검증 세트: 5개

COCO 구조가 datasets/coco128에 생성되었습니다.

다음과 같은 디렉토리 구조를 갖게됩니다.

$ ls datasets/coco128/

annotations/ train2017/   val2017/    

다음 파일을 수정합니다.

./exps/example/custom/yolox_s.py

수정내용

클래스 개수

self.num_classes = 1

사양이 낮아서 줄임

self.data_num_workers = 1

디스크 공간 부족으로 평가하는 횟수를 줄여야 중간 모델 저장횟수가 줄어듭니다.

self.eval_interval = 50

yolox/data/datasets/coco_classes.py 파일을 수정하여 다음처럼 저장합니다.  labelme에서 지정한 이름을 사용하세요.

COCO_CLASSES = (

  "scissors",

)

학습을 진행해봅니다.

특별한 경우를 제외하고는 항상 모델을 초기화할 때 COCO 사전 학습된 가중치를 사용하는 것이 좋습니다.

Exp 파일과 제공된 COCO 사전 학습 가중치를 받으면 다음 명령어를 사용하여 모델을 학습시킬 수 있습니다:

python tools/train.py -f ./exps/example/custom/yolox_s.py  -d 1 -b 8 --fp16 -o -c yolox_s.pth  


이제 학습이 완료된 모델을 테스트 해봅니다. 테스트시 conf 값을 높이면 더 신뢰있는 물체만 감지합니다.

python tools/demo.py image -f ./exps/example/custom/yolox_s.py -c ./YOLOX_outputs/yolox_s/best_ckpt.pth --path 1.jpg  --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

python tools/demo.py image -f ./exps/example/custom/yolox_s.py -c ./YOLOX_outputs/yolox_s/best_ckpt.pth --path assets/dog.jpg  --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

에러가 발생합니다.

체크포인트 파일의 출처를 신뢰할 수 있다면 (직접 학습했거나 공식적인 경로로 받았다면), torch.load 함수 호출 시 weights_only=False 옵션을 명시적으로 추가해줘야 합니다.

tools/demo.py 파일을 엽니다.

에러가 발생한 283번째 줄 근처의 코드를 찾습니다.

ckpt = torch.load(ckpt_file, map_location="cpu")

이 부분을 다음과 같이 수정합니다.

ckpt = torch.load(ckpt_file, map_location="cpu", weights_only=False)

다시 위 명령을 실행하면 잘 동작합니다.

 

참고한 곳.

https://yolox.readthedocs.io/en/latest/quick_run.html#installation 

https://github.com/Megvii-BaseDetection/YOLOX/blob/main/README.md 

https://github.com/Megvii-BaseDetection/YOLOX/blob/main/docs/train_custom_data.md 

https://colab.research.google.com/github/spmallick/learnopencv/blob/master/YOLOX-Object-Detection-Paper-Explanation-and-Custom-Training/YOLOX_training_on_custom_drone_dataset.ipynb 

댓글

이 블로그의 인기 게시물

Visual Studio Code, MinGW를 사용한 C/C++ 개발환경 만들기-(Windows/Ubuntu)

  Windows와 Ubuntu 환경에 설치된 Visual Studio Code에서 C/C++을 컴파일하고 실행시키는 방법에 대해 설명합니다. 테스트에 사용한 운영체제 버전은 Windows 11과 Ubuntu 22.04입니다. Visual Studio Code 버전에 따라 진행 방법이 달라 질 수 있습니다. 문제가 되는 것을 발견할 때마다 문서를 업데이트합니다.   1.  C/C++ 컴파일러 설치 2. Visual Studio Code 설치 3. C/C++ 프로젝트 폴더 생성 4. C/C++ 언어 지원 설치 5. 코드 컴파일 및 실행 6. 디버깅하는 방법 2017.  8. 15   최초 작성 2018.  1.   9    tasks.json 일부 문법 변경으로 수정 2018.  1. 17   IntelliSense와 디버깅 방법 추가 2018.  7.  3   Ubuntu에서 하는 방법과 통합 2018.  7.  19  한글 입출력 예제 추가 2018.  10. 12  최신 버전에서 확인 및 수정 2018.  11. 20  리눅스에서 tasks.json 수정 2018.  12. 3  디버깅 방법 개선 2018. 12.22  Windows 10 RS5(버전 1809)로 업데이트시 한글 깨짐 현상 발생 2019. 5. 1  1.33에서 바뀐점 수정 2019. 5. 21  전역 변수 디버깅 방법 추가 2019. 6. 20  비주얼 스튜디오 코드 업데이트로 바뀐점 수정 2019. 8. 15  디버깅 관련 수정, mingw-w64에 맞추어 수정 2019. 8. 20  Ubuntu를 위한 부분 업데이트 2019. 10. 22 디버그시 launch.json 생성 문제 해결방법 추가 2019. 11. 17 utf8을 사용...

Visual Studio Code 설치( Windows / Ubuntu / Apple Silicon Macbook )

  Visual Studio Code를 Windows, Ubuntu, Apple Silicon Macbook에 각각 설치하는 방법을 설명합니다. 1. 윈도우에 설치하는 방법 2. Ubuntu에 설치하는 방법 3.  Apple Silicon Macbook 에 설치하는 방법 2018. 7. 2   최초작성 2019. 8. 20 Ubuntu 18.04 확인 2020. 7. 19 Ubuntu 20.04 확인 2021. 3. 4  업데이트 2023. 11. 10 Macbook M1 추가 2024. 3. 23 2025. 7. 20  Apple Silicon Macbook에 설치 방법 수정 Visual Studio Code는 Visual Studio와 달리 코드 편집에 최적화된 단순한 인터페이스를 갖고 있습니다. 1. Windows 1. 윈도우의 경우에는 아래 링크에서 Visual Studio Code를 다운로드 가능합니다. https://code.visualstudio.com/download 글 작성 시점에 User Installer, System Installer, zip 압축파일이 배포되고 있습니다. System Installer를 설치하는게 좋을 듯합니다. User Installer의 경우 다음 위치에 설치되며 유저 인터페이스의 디폴트 언어가 영어가 됩니다. C:\Users\사용자이름\AppData\Local\Programs\Microsoft VS Code   System Installer의 경우에는 다음 위치에 설치되며 유저 인터페이스의 디폴트 언어가 영어가 됩니다. C:\Program Files\Microsoft VS Code 2. Visual Studio Code 설치를 진행합니다. 사용상 편의를 위해 다음  3가지를 체크해준 거 외에는 별다른 옵션 변경 없이 진행했습니다. 2. Ubuntu 1. curl을 설치해줍니다. 이미 설치되어 있다고 메시지가 보일 수도 있습니다. $ sudo apt-get ...

Windows에 CUDA 사용할 수 있도록 PyTorch 설치하는 방법

  Windows 에 CUDA와  PyTorch를 설치하는 방법을 설명합니다.   2023. 5. 7 최초작성 2023. 9. 9 2024. 1. 7 별도의 CUDA 없이 설치 2024. 3. 16 NVIDIA 그래픽 카드 드라이버 설치 방법 분리                   글 업데이트 2025. 1. 27  글 업데이트 2025. 4. 25 NVIDIA 그래픽카드 설치방법 생략 및 글 업데이트 NVIDIA 그래픽 카드를 사용하는 경우를 가정하고 진행합니다. PyTorch 설치 1.  Miniconda를 설치 후, Visual Studio Code와 같이 사용하는 것을 권장합니다. Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2) https://ilkemomo.blogspot.com/2025/09/visual-studio-code-miniconda-python.html   2. 아래 링크에 접속하여 Your OS는 Windows, Package는 파이썬 환경에 따라  Conda 또는 Pip, Language는 Python, Compute Platform은 CUDA 11.8 또는 CUDA 12.6 또는 CUDA 12.8를 선택하면 아래쪽에 명령어가 보입니다. 현재 2025년 4월 25일 기준으로 보이는 선택항목이며 나중에 바뀔 수 있습니다. https://pytorch.org/get-started/locally/   위 링크에 방문시 원하는 CUDA 버전을 선택하여  생성된 명령을 사용하여 설치를 진행합니다.  Package 항목은 이젠 pip만 지원합니다. 여기에선 CUDA 12.6을 선택한 경우를 진행합니다.  윈도우 키를 누르고  anaconda를 입력하여 검색된 Anaconda Pr...