본문 바로가기

Python40

[YOLO] 영상 객체 인식 컴퓨터 비전 혹은 머신러닝 등을 공부하면 한 번쯤 접하게 되는 yolo OpenCV를 활용하여 yolo 포맷을 이용해 영상 속 객체 인식 테스트를 진행해보기로 하겠습니다. 추가적으로 OpenCV cuda를 빌드하여 GPU를 적용시켰으며 이에 대한 빌드는 하단 링크를 참조하면 되겠습니다. https://prlabhotelshoe.tistory.com/24?category=1004669 [CUDA&OpenCV] Python 환경 OpenCV GPU 연동 (CUDA backend in OpenCV) - 1. 파일 설치 컴퓨터 비전 등을 공부할 때 자주 접하게 되는 OpenCV 이에 대한 여러 블로그나 기타 웹에서 샘플 코드를 학습할 때, GPU와의 연동으로 빠른 처리를 시도해 볼 수 있으며 간단한 코드 작성으.. 2022. 2. 4.
[Project] LenticularLens를 활용한 입체 사진 제작 - 2. 렌티큘러 이미지 제작 이전 포스팅에서 부족하겠지만 대략적인 이론을 설명하였고 이제 렌즈에 사용될 특별한 이미지 제작을 시작하기로 합니다. 렌티큘러 렌즈의 특성에서 알 수 있듯 두 개 혹은 여러 개의 이미지를 사용해 시선에 따라 다른 이미지가 보이도록 해야 하므로 두 개 이상의 이미지를 여려 조각으로 잘라 교차로 배열되도록 합니다. 2.1 프로그래밍 계획 곡면의 렌즈에 의해 이미지가 굴절되어 우리 눈에 서로 다른 상이 맺히게 되는데, 그림과 같이 잘려진 두 이미지를 교차로 붙여 특별한 이미지를 제작하려 합니다. python을 활용하여 전체적인 코드를 작성하고, tkinter 라이브러리를 통해 간단한 gui를 제작해서 사용을 간편하게 하도록 구성하였습니다. 2.2 코드 작성 import os import tkinter.ttk a.. 2022. 2. 4.
[Project] 월담 행위 인식 모델 - 3. 학습 및 모델 평가 이전 포스팅까지의 절차로 코랩 환경에서의 머신러닝 준비가 완료되었습니다. 이제 라벨링한 파일들을 토대로 직접 커스텀 모델을 만들 차례입니다. 3.1 라벨링 파일 전처리 첫 번째 포스팅에서 이미지 파일을 YOLO 포맷에 맞도록 라벨링 하였고 해당 파일을 불러오도록 train 파일과 test 파일을 나누어 전체적인 경로에 대해 따로 txt 파일을 만들도록 합니다. import os current_path = os.path.abspath(os.curdir) COLAB_DARKNET_ESCAPE_PATH = '/content/gdrive/My\ Drive/darknet' #-- 본인 환경에 맞게 경로 변경할 것 COLAB_DARKNET_PATH = '/content/gdrive/My Drive/darknet' .. 2022. 1. 25.
[Project] 월담 행위 인식 모델 - 2. 개발환경(코랩, 다크넷) 설정 이전 포스팅에서의 절차를 잘 밟아왔다면 필요한 데이터에 대한 전처리는 거의 모두 끝낸 상태입니다. 이제 이미지 학습에 앞서 개발 환경을 설정할 차례입니다. https://colab.research.google.com/?hl=ko Google Colaboratory colab.research.google.com 다양한 IDE나 여러 웹 디버깅 툴이 있겠지만 구글 드라이브와 연동이 편리하고 무엇보다 GPU 개발 환경을 제공해 주는 코랩에서 진행하였습니다. 구글 계정만 있다면 쉽게 이용 가능하며 기타 자세한 팁이나 이용방법은 생략하도록 하겠습니다. 2.1 GPU 연동 및 cuDNN 설치 a. GPU 연동 코랩에서 새 노트를 생성하고 런타임 유형을 GPU로 변경합니다. 상단 목록 중 런타임을 클릭해 변경하면 됩.. 2022. 1. 25.
[Project] 월담 행위 인식 모델 - 1. 라벨링 및 이미지 전처리 머신러닝을 통해 커스텀 모델을 구현하는 프로젝트 요즘의 경우 곳곳의 CCTV의 활성화로 치안 문제가 어느 정도 완화되는 듯하지만 이 또한 사람이 하나하나 영상을 감시해야 하는 문제가 있기 때문에, 컴퓨터상에서 이를 먼저 인지하여 알려주면 어떨까 하는 아이디어에서 시작하였습니다. 여러가지 치안과 관련된 모델을 구상해 볼 수 있겠지만, 이번 프로젝트는 현재 관심 있는 월담(담을 넘는 행위) 인식 모델로 진행해 보았습니다. 개발 환경의 경우 코랩을 활용하였으며 개별 IDE로 구현하면 좋겠지만 gpu 연동 문제(cuda, ...)로 구글에서 제공하는 코랩의 GPU 환경을 이용하기로 하였습니다. 1.1 이미지 저장 및 라벨링 a. 이미지 넘버링 구글링 등으로 직접 다운로드하거나 여러 크롤링 툴로 필요한 이미지를 .. 2022. 1. 24.
[Python] Speech recognition 음성 인식 - 2 이전 포스팅에서 영상 파일 속 음성을 인식하였고, 이번에는 직접 마이크 출력을 통해 음성을 인식하도록 하겠습니다. 소스코드 import speech_recognition as sr #import sys #-- 텍스트 저장시 사용 r = sr.Recognizer() with sr.Microphone() as source: print("Say Something") speech = r.listen(source) #sys.stdout = open('audio_output.txt', 'w') #-- 텍스트 저장시 사용 try: audio = r.recognize_google(speech, language="ko-KR") print("Your speech thinks like\n " + audio) except s.. 2022. 1. 6.
[Python] Speech recognition 음성 인식 - 1 파이썬 라이브러리 중 음성인식 기능을 사용할 수 있는 speech recognition IDE에서 다음의 명령어로 pip를 통해 간단히 설치가 가능합니다. pip install SpeechRecognition 설치 완료후 speech recognition은 다음과 같은 인스턴스를 생성하여 모든 작업을 실시합니다. r = speech_recognition.Recognizer() 아래는 해당 인스턴스에서는 다음 7가지의 API들로 오디오 소스의 음성을 인식합니다. 각 기능에 대한 자세한 설명은 하단 링크를 참조하면 됩니다. recognize_sphinx CMU Sphinx (PocketSpnix 설치 필요) https://cmusphinx.github.io/ recognize_bing() MS의 Bing s.. 2022. 1. 6.
[OpenCV] putText 파라미터 OpenCV의 기초적인 함수 중 텍스트를 이미지 혹은 영상에 출력하는 putText 이번 포스팅을 통해 putText의 파라미터를 알아보고 활용해보는 테스트를 해보겠습니다. 기본적으로 다음과 같은 파라미터들이 있으며, 정리하자면 다음과 같습니다. cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]]) image 텍스트가 쓰여질 이미지 변수 입니다. 영상의 경우 프레임 입니다. text 쓰여질 텍스트를 입력합니다. org 텍스트 좌표를 지정합니다. 일반적인 x, y 좌표를 사용해 입력하면 됩니다. 디폴트 값은 org로 텍스트를 이미지의 오른쪽 하단에 쓰이도록 합니다. font 폰트의 종.. 2022. 1. 3.
[OpenCV] 광 흐름 탐지 - optical flow detection OpenCV의 calcOpticalFlowPyrLK 함수를 활용한 광 흐름 탐지(optical flow)를 코드 작성을 통해 테스트 해보겠습니다. 소스코드 import numpy as np import cv2 as cv #--비디오 파일 경로 path = './vedio.mp4' cap = cv.VideoCapture(path) #-- ShiTomasi corner 탐지를 위한 매개변수 feature_params = dict( maxCorners = 100, qualityLevel = 0.3, minDistance = 7, blockSize = 7 ) #-- lucas kanade optical flow를 위한 매개변수 lk_params = dict( winSize = (15, 15), maxLevel .. 2022. 1. 3.
반응형