DEEP.I - Lab

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

반응형

분류 전체보기 69

[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

Untitled

Deep-i Inc. Jongwon Kim & JinSoo Kim contact@deep-i.ai Interests Computer Vision Object Detection & Tracking Action Recognition Sensor Fusion Adaptive Signal Processing Data Clustering GAN Work Experience 1839 청년창업 지원사업 협약 - 충청남도청 지역 청년창업지원 사업 협약 - 아산시청 4차 산업혁명 ‘인공지능’ 분야 예비창업패키지 협약 -GIST (우수 기업 졸업) 순천향대학교 산학협력 업무협약 체결 Research Augmented Forward Collision Warning System Based on Prediction of Veh..

About Me/딥아이 2020.11.06

[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

[Matlab] 매트랩을 이용한 다층신경망 (Multi-Layer Perceptron: MLP) 구현하기 (XOR 문제)

1986년 역전파 알고리즘 (Backpropagation)의 개념이 도입되면서 Machine Learning이 다시 주목받게 되었습니다. 기존 단층 신경망으로는 해결할 수 없었던 비선형 문제 해결이 가능한 다층 신경망은 현재 응용되고 있는 CNN(Convolutional Neural Networks)의 기반이 되고 있습니다. 이번 포스팅에서는 매트랩을 이용한 다층신경망에서 해결가능한 XOR 문제를 구현해보록 하겠습니다. XOR Gate vs MNIST Dataset 개인적인 생각이지만, 처음 머신 러닝에 입문하신다면 MINIST 데이터셋과 텐서플로우, 파이토치 등의 라이브러리를 통한 분류문제 구현으로 시작하기 보다는 파이썬이나 매트랩을 통해 직접 알고리즘을 작성하며 XOR 문제와 같은 선형회귀 문제부터 ..

Matlab 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

[Matlab] 객체 탐지 알고리즘 학습을 위한 이미지 데이터 라벨링 #2

데이터 라벨링은 데이터를 가공하는 1차 작업입니다. 아기에게 말을 가르칠 때 사물의 사진을 보며 이름을 하나씩 알려주는 것처럼 AI 모델이 학습할 데이터에 '이것은 사람' '이것은 자동차' '이것은 강아지' 이런식으로 입력해주는것입니다. 여기서 사물의 사진은 입력되는 데이터(Input Data) 이며 이름은 출력으로 목표하는 목표값(Target)이 됩니다. 여기서 목표값을 부여하는 행위를 라벨링 작업이라고 부르며 전체 AI 시스템 구축에 80~90% 이상이 소요된다고 합니다. (원문기사) 실제 양질의 데이터 확보와 높은 신뢰도를 갖는 AI 시스템 구축에 라벨링은 무척 중요합니다. 오늘은 객체 탐지 알고리즘으로 활용하기 위한 라벨링에서 적용되는 몆가지 원칙을 알아보겠습니다. 1. 편향을 막기 위한 빅데이터..

Matlab 2020.07.31
반응형