본문 바로가기

개발 관련 지식32

[OpenCV] VideoCapture 객체 Codec 변경 Python에서 OpenCV 패키지를 활용하여 VideoCapture 객체 Codec을 변경하려 하였으나 잘 바뀌지 않는 문제가 발생하였다. 코드상으로 문제가 없어 왜 발생하는 오류인지 고민하다 알게된 해결책을 기록하려 한다.문제 상황VideoCapture 객체에서 사용할 수 있는 set 메소드를 활용하여 fourcc를 MJPG로 바꾸려 하였으나 정상적으로 fourcc가 바뀌지 않음   해결방안VideoCapture 객체에 대해 set을 해줄 때의 순서 문제였다.  내가 실행했던 코드를 예시로 들면import cv2camera = cv2.VideoCapture(0)camera.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('M','J','P','G'))camera... 2024. 7. 22.
[Ubuntu] 컴퓨터에 연결된 카메라 정보 확인 Python으로 OpenCV를 사용하다보면 내 컴퓨터에 연결된 카메라의 정보를 확인해야 하는 경우가 생긴다. OpenCV를 사용할 때 연결된 카메라의 포맷과 코드 상의 포맷이 동일하지 않으면 IO가 많이 느려지는 것이 그 이유인데, 그럴 때마다 보통 우리는 cv2.VideoWriter_fourcc 명령어를 사용해 포맷을 맞춰 주곤 한다. 그래서 이번에는 어떤 포맷으로 맞춰주어야 내가 사용하는 카메라를 잘 사용할 수 있는지, 그 포맷을 확인하는 방법을 기록하려 한다.핵심 코드만 빠르게 작성하면 다음과 같다.v4l2-ctl --list-formats-ext -d 0v4l2-ctl : video for linux(카메라의 설정 및 제어를 도와주는 프로그램)를 사용하는 명령어--list-formats-ext :.. 2024. 7. 17.
[Git] 내가 작업하지 않은 Github 원격 Branch를 로컬로 가져와보자 프로젝트를 진행하던 도중 기존 코드를 전부 legacy로 빼고 특정 알고리즘을 아예 새롭게 업데이트할 필요가 있었다.  내 컴퓨터에서 작업한 내용이 아니다보니 기존 로컬에 구축되어 있는 Branch와 Github 원격에 수정된 Branch의 내용이 달랐는데, 이럴 때 원격 Repository 속 모든 Branch의 내용을 내 로컬에 업데이트 하는 방법을 정리해보고자 한다.1. 원격 Repository Update우선 업데이트 된 원격 Repository의 Branch 정보를 업데이트 해준다.git remote update 2. 로컬 Repository Update다음은 checkout 명령어를 이용해 원격 Repository에서 원하는 Branch를 로컬로 받아준다.git checkout -b 은 기존.. 2024. 7. 2.
[Pillow] 영상에 한자 텍스트 입력하기 일본 박람회를 준비하던 중 박람회에서 발표하는 영상이 일본어로 이루어져 있다면 지나다니는 행인들의 관심을 쉽게 끌고 좋은 이미지로 어필할 수 있을 것이라 생각했다. 그러기 위해 기존에 제작해둔 샘플 영상 속 영어를 일본어로 만들 필요가 있었고, 이러한 문제를 잘 해결하기 위해 내가 직접 진행한 방법을 정리해 보려 한다. 활용 OS : Ubuntu 22.04기존 Visualize 코드의 문제점은 OpenCV를 활용하면 일본어 폰트를 영상속에 합성할 수 없다는 것이었다. 따라서 이 문제를 해결하기 위해 내가 진행한 전체적인 방법을 정리해보면 아래와 같다.1. Ubuntu에 일본어 폰트를 설치2. Opencv로 PutText를 진행해주었던 것 → Pillow 패키지를 이용하여 draw3. Opencv로 텍스트.. 2024. 6. 28.
[AWS] GPU Instance 생성 AWS EC2 Instance를 활용한지 벌써 5달 정도 되었지만, 이제라도 GPU Instance를 어떻게 사용하였는지 그 방법을 정리해보려 한다. 해외 관련 프로젝트를 진행하다보니 AWS의 클라우드를 활용하여 딥러닝 서버를 구축할 필요가 있었다. 크게 어려움이 없을 것 같았지만, 구축하다보니 이것저것 신경써야 할 부분이 많았어서 이 부분을 특히 정리해보려 한다.1. 계정 접속우선 본인의 ID와 비밀번호를 사용하여 AWS 홈페이지에 접속한다(여기서 우리는 Instance를 만들어 줄 것이기에 EC2로 이동).  2. 키 페어 생성EC2 - 네트워크 및 보안 - 키 페어 인스턴스를 만들 때 필요한 키 페어를 먼저 생성해준다. 로컬에서 ssh로 접속할 예정이므로 지정된 pem키를 잘 받아 저장해준다.  3.. 2024. 6. 25.
[FFPMEG] FFMPEG 간단한 명령어 정리 FFmpeg 명령어 정리비전 태스크를 활용하다보면 같이 사용하게 되는 FFmpeg 패키지 명령어를 정리해 보자 😊설치sudo apt install 명령어 : ffmpeg으로 시작-i input 데이터-r fps설정(1초당 추출할 Frame 수) ex1) 동영상에서 프레임 추출하기ffmpeg -i {input_video} {경로/파일명-%d.png}여기서 %d로 frame 숫자 분리%6d 이런식으로 몇자리 숫자로 표현할지 정할 수 있음확장자명은 png, jpg 등.. ex2) 영상 코덱 변경(mp4v to h264)ffmpeg -i {input_video} -c:v libx264 {경로/파일명.mp4}mp4 외에 다른 영상 확장자 가능 ex3) 동영상 회전하기ffmpeg -i {input_video} -.. 2024. 6. 14.