DEEP.I - Lab

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

반응형

파이썬 13

[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] 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

[Jetson] Jetson Nano, TX2, Xavier에 Pycharm 파이참 IDE 설치하기

Nvidia의 Jetson는 소형 임베디드 AI 시스템의 혁신적인 시리즈입니다. CUDA 프로세서와 라이브러리가 최적화되어 다양한 AI 솔루션으로 활용가능한 장점이 있습니다. 다만, 일반적인 리눅스 환경이 아닌, aarch64 기반의 임베디스 시스템이기에 일부 제약이 따른다는 단점이 있지만 최근에는 수요가 늘며 다양한 라이브러리가 호환되는 모습을 보이기도 하고 있습니다. 통합 개발 환경(Integrated Development Environment, IDE), Pycharm 설치법입니다. 1. openjdk-8-jdk 설치 sudo apt-get install openjdk-8-jdk 기본적인 setup이 완료되었다면, openjdk 설치면 끝입니다. Jetson 사용법의 경우 추후 포스팅을 통해 정리해..

Jetson 2020.11.11

[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

[Tensorflow] 사전 학습된 VGG16 모델에서 특징맵 추출하기

신경망 학습 모델의 특징맵은 (Feature Map) 단순 분류문제 이외에도 그림 1과 같이 RNN, LSTM, Tracking과 같은 다양한 알고리즘에서 매우 높은 빈도로 활용되고 있습니다. 특히 제가 요즘 주목하고 있는 RE-ID(Re-identification) 알고리즘에서 영상의 특징맵이 객체의 유사도를 비교하는데 활용되고 있는것이 상당히 흥미로웠습니다. 오늘 포스팅에서는 텐서플로우에서 사전 학습된 VGG16 모델을 이용한 특징맵 추출 방법을 간단히 알아보도록 하겠습니다. 기본 시스템 환경은 다음과 같습니다. 윈도우에서 아나콘다 가상환경으로 구축하였으며 Spyder 내에서 코드를 구현하였습니다. 이전 포스팅을 참고하시면 빠르게 기본 환경을 구축하실 수 있습니다. OS : Windows 10 Pyt..

Python/Tensorflow 2020.10.23

[Python] PyQt를 이용하여 마우스로 직선 그리기

PyQt5를 이용한 마우스로 직선 그리기 python의 PyQt을 이용하여 일반적인 그림판과 같이 다양한 도형체를 그릴수 있습니다. 이러한 작업이 프로그램에 녹아들어 유저 인터페이스와 연결되기 위해서는 그림 1과 같이 그리고 있는 시각적인 효과가 중요합니다. 오늘은 PyQt 내부 QPainter 클래스로 간단한 그림판을 구현해보도록 하겠습니다. 1. Screen.py (기본 UI 만들기) from PyQt5 import * from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import* class Screen(QMainWindow): def setupUi(self): self.resize(800, 600) self.cent..

Python/PyQt 2020.10.20
반응형