DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

반응형

Python 38

[Python] 파이썬을 이용한 DBSCAN 군집화 알고리즘 구현

Concept DBSCAN (Density-based Spatial Clustering of Applications with Noise)은 비선형 클러스터의 군집이나 다양한 크기를 갖는 공간 데이터를 보다 효과적으로 군집하기 위해 이웃한 개체와의 밀도를 계산하여 군집하는 기법입니다. K-Means와 같이 군집 이전에 클러스터의 개수가 필요하지 않고 잡음에 대한 강인성이 높기 때문에 현재까지도 다양한 분야에서 활용되고 있습니다. 이번 포스팅에서는 파이썬을 이용해서 DBSCAN 알고리즘을 구현해보도록 하겠습니다. Algorithm 사실 DBSCAN은 컴퓨팅 알고리즘으로 제안된 기법이기 때문에 특별한 수식이 존재하지 않습니다. 2가지 파라미터만 기억하면 됩니다. 이웃과의 거리를 나타내는 최소 이웃 반경 $\e..

Python/Python 2020.12.08

[YOLO] 객체 탐지 알고리즘 학습을 위한 이미지 데이터 라벨링 #3 YOLO 라벨링 프로그램

이미지나 영상에서 객체를 지능적으로 찾기 위해 제안된 객체 탐지 알고리즘은 RCNN 계열과 더불어 SDD와 YOLO 등 다양한 기법으로 파생되고 있습니다. 하지만 아직까지 실제 현업 application 단계에서의 실용성과 효율성 문제, 구현 난이도로 인해 YOLO가 압도적으로 활용되고 있는 것 같습니다. 이번 포스팅에서는 YOLO 학습을 위한 데이터 라벨링 프로그램 하나를 소개하려 합니다. github.com/developer0hye/Yolo_Label developer0hye/Yolo_Label GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2 https://github.com/Ale..

Python/Python 2020.12.02

[Python] PyQt5 리소스 파일 Import error 해결 방법 "No module named 'icon_rc'"

파이썬에서 GUI 작업으로 활용되는 QT에서는 리소스 파일을 통해 이미지 파일을 관리할 수 있습니다. 리소스 파일 qrc을 생성하고 py로 변환하여 메인 코드에 import하는 과정으로 조금 복잡합니다. 저는 이상하게도 메인 코드에 변환된 py 확장자의 리소스 파일을 import 하게 되면 종종 해당 파일이 없다고 No module named 'icon_rc' 오류가 떴습니다. 메인 파이썬 프로그램에서는 import가 정상적으로 되지만, QT Designer로 생성한 ui 파일엔 변환된 정보가 없어서 발생하는 문제인것같습니다. 매 작업때마다 산발적으로 발생하는 오류에 지쳐 이제는 초기화 단계에서 함수형태로 코드를 입력해 ui 확장자 내에서 지정된 리소스 파일의 경로를 수정해주고 있습니다. import g..

Python/PyQt 2020.12.01

[Python] 파이썬을 이용한 다층신경망 (Multi-Layer Perceptron: MLP) 구현하기 (XOR 문제)

1986년 역전파 알고리즘 (Backpropagation)의 개념이 도입되면서 Machine Learning이 다시 주목받게 되었습니다. 기존 단층 신경망으로는 해결할 수 없었던 비선형 문제 해결이 가능한 다층 신경망은 현재 응용되고 있는 CNN(Convolutional Neural Networks)의 기반이 되고 있습니다. 이번 포스팅에서는 파이썬을 이용해서 다층 신경망을 구현해 보록 하겠습니다. 매트랩을 이용한 다층신경망 구현 포스팅과 동일한 메커니즘으로 설계했습니다. 매트랩 코드는 이전 포스팅을 참고해 주시길 바랍니다. deep-eye.tistory.com/16 [Matlab] 매트랩을 이용한 다층신경망 (Multi-Layer Perceptron: MLP) 구현하기 (XOR 문제) 1986년 역전파..

Python/Python 2020.11.28

[Python] PyTicToc 파이썬에서 경과 시간 간편하게 측정하기

프로그래밍을 하다 보면 여러 가지 이유로 알고리즘 연산 시간을 측정하게 되는 경우가 발생하게 됩니다. 파이썬에서는 보통 time이나 timeit 모듈을 통해 측정하고 있습니다. 복잡한 코딩을 요구하지는 않지만, 좀 더 쉽고 빠르게 경과시간을 측정할 수 있는 PyTicToc를 소개합니다. PyTicToc은 매트랩 기본 함수로 제공되는 tic toc 시간 측정과 매우 유사합니다. 우선 pip를 통해 설치를 해줍니다. pip install pytictoc 1. 모듈 불러오기 from pytictoc import TicToc # TicToc 클래스 생성 t = TicToc() TicToc을 import 한 다음, 클래스를 생성해주면 모든 준비가 완료됩니다. 2. 시간 연산 t.tic() # 시작 시간 # 알고리..

Python/Python 2020.11.25

[Python] PyQt 에서 로딩(애니메이션) 화면 구현하기

GUI 기반 프로그램에서는 직관적이고 편리한 UI/UX 구성도 중요하지만, 프로그램에서 특정 액션이 발생할 때 사용자에게 지금 어떤 '상황'인지 알려주는 상호작용 역시 매우 중요합니다. 예를 들어, 버튼 클릭은 된건지, 접속은 된건지 현재 액션에 대한 반응으로 사용자가 느낄수 있어야 합니다. 이번 포스팅에서는 PyQt에서 간단하게 이벤트가 입력되었을때 로딩중이다라는것을 보여 줄 수 있는 창을 한번 구현해보겠습니다. 1. 로딩 이미지 파일 (GIF, SVG, APNG) 만들기 동적 로딩화면 구현을 위해서는 GIF, SVG, APNG 등과 같이 애니메이션 효과가 가능한 파일이 필요합니다. 저는 아래 사이트에서 무료로 제작 가능한 로딩 이미지를 받아서 사용했습니다. 이번 포스팅에서는 GIF를 활용해보겠습니다...

Python/PyQt 2020.11.23

[Python] tensorflow에서 GPU, CPU 사용가능 칩셋 여부 확인하기

컴퓨터 비전 기반 딥러닝 알고리즘의 핵심이 되는 CNN(Convolutional Neural Networks)의 연산은 기본적으로 CPU나 GPU 모두에서 가능하지만, 연산 프로세서의 메커니즘 차이로 인해 효율성에서는 큰 차이를 보이게됩니다. 여기서 우세를 보이는 GPU의 성능으로 인해 현대 딥러닝 시스템의 대부분은 GPU 연산을 기본을 전제로 구동되고 있습니다. 서론이 길었습니다. 이번 포스팅에서는 3D 그래픽 게임과 같이 딥러닝 시스템을 적용할때 발생하는 연산 프로세서 선택 및 성능 설정을 위해 선행되어야하는 GPU, CPU 사용가능 여부을 확인하는 코드를 살펴보도록 하겠습니다. 1. MAIN CODE # 필요 라이브러리 설치 pip3 install cpuinfo # -*- coding: utf-8 ..

Python/Tensorflow 2020.11.08

[Python] 파이썬 OpenCV를 이용한 얼굴 인식

과거 얼굴인식은 첩보영화나 CSI와 같은 드라마에서 범죄자를 찾는데 활용되는 신기술로 인식되었으나, 머신러닝과 하드웨어의 발전으로 이젠 일상에서 쉽게 접할 수 있게 되었습니다. 현재 얼굴인식 기술은 크게 탐지(Detection)과 인식(Identification)으로 나뉘고 있습니다. 페이스북이나 인스타그램에 사진을 업로드할때 얼굴을 찾아주는 탐지 기술, 아이폰 보안 기술로 활용되는 Face ID는 인식 기술이 아마 대표적이고 우리에게 친숙한 얼굴 인식 응용 기술이지 않을까 싶습니다. 이번 포스팅에서는 비교적 과거 기술이지만 간단하게 CPU에서도 연산이 가능한 얼굴 탐지 알고리즘 Cascading classifiers를 OpenCV를 이용하여 구현해보록 하겠습니다. 1. Haar Cascade 분류기 불..

Python/Python 2020.11.05

[Python] configparser를 이용하여 config (설정값 ini 파일) 관리하기

프로그램을 개발하다보면 환경이나 사용자에 따른 설정값이 필요한 경우가 있습니다. 이러한 설정값을 매번 변수로 설정하고 불러오게 된다면, 불편함이 따르게되고 다양한 환경설정에 어려움이 생기게됩니다. 쉽게 예를 들면, 그림 1과 같이 게임에서 그래픽 설정이 있죠. 이번 포스팅에서는 쉽게 설정 파일을 읽고 쓰게 할 수 있는 표준 라이브러리 configparser 패키지 관리에 대해 알아보겠습니다. 1. configparser를 이용한 설정파일 만들기 import configparser # 설정파일 만들기 config = configparser.ConfigParser() # 설정파일 오브젝트 만들기 config['system'] = {} config['system']['title'] = 'Neural Netwo..

Python/Python 2020.11.01

[Python] OpenCV 실시간으로 영상의 Frame Rate (FPS) 확인하기

연속된 이미지나 비디오 파일을 다룰때 영상 처리 알고리즘이 추가되면 연산으로 인해 프레임 드롭이 발생할 수 있습니다. 예를 들어, 모든 화면을 3D 렌더링으로 표현하는 게임의 경우 연산량이 많아지는 구간이나, 높은 수준의 그래픽으로 프레임 저하가 발생하게 되죠. 실시간 영상을 입력받는 딥러닝 알고리즘의 경우, 성능도 중요하지만 REAL-TIME으로 구현이 가능하냐도 중요한 이슈가 되고 있습니다. 일반적으로 초당 6프레임 이상의 연산이 가능할때 실시간 (REAL-TIME) SYSTEM으로 정의합니다. 이번 포스팅에서는 실시간으로 측정되는 영상+알고리즘의 FPS를 확인해보도록 하겠습니다. 1. VideoCapture.py (기본 캡처 모듈 불러오기) import cv2 import timeit # 영상 정보..

Python/Python 2020.10.23
반응형