DEEP.I - Lab

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

반응형

최신글

more

[Jetson] Nvidia 젯슨 Nano or NX SD 카드 복사하기 (Clone SD Card)

Jetson Series 젯슨 나노는 NVIDIA에서 제작한 딥러닝용 보드로 GPU 연산이 가능한 프로세서를 탑재하여 CUDA를 활용한 이미지 프로세싱과 딥러닝 연산이 가능합니다. 가격 또한 저렴?하여 다양한 산업용 시스템 구현에 활용 가능성이 높습니다. 이번 포스팅은 백업이나 여러개의 잿슨 나노를 동일하게 구동하게 될 경우 필요한 SD 카드 복사 ( HARD COPY) 가이드입니다. 다양한 방법과 시도가 있었습니다. 하단의 링크는 영상과 함께 설명되어 쉽게 복사가 됩니다. 저 역시 이 방법을 주로 사용하고 있습니다. https://www.jetsonhacks.com/2020/08/08/clone-sd-card-jetson-nano-and-xavier-nx/ Clone SD Card - Jetson Na..

Jetson 2021.10.11 0

딥러닝 머신러닝을 이용한 지능형 시스템 개발 문의

안녕하세요, 오프라인 공간의 지능화를 꿈꾸는 DEEP.I 입니다. 딥아이는 예비창업패키지 4차산업 인공지능 우수기업으로 선정된 이후, 충청남도청과 순천향대학교를 비롯한 다양한 기업, 개인과 컴퓨터 비전 기반 지능형 솔루션 개발 프로젝트를 진행한 경험이 있습니다. 또한 딥러닝 기술 관련 연구적 성과로 4편 이상의 SCIE 급 논문, 7건 이상의 특허 출원 및 등록 되었습니다. 딥러닝 기반 지능형 솔루션 개발 프로젝트가 필요한 모든 분들께 최선을 다할것이며, 서비스는 활용되는 데이터와 모델 구현 난이도에 따라 가격이 조정될 수 있습니다. 기한 역시 절대적이지 않습니다. 하지만, 서두르지 않고, 최선을 다해 최고의 솔루션을 제공해드리겠습니다. 문제 정의가 어렵고, 정확한 기술적 개념이 명확하지 않으셔도, 문의..

딥아이 2021.04.09 0

[Python] OpenCV 웹캠 연결 문제 cv2.VideoCapture 해결 방법 #1

Concept 윈도우 기본 카메라 앱에서는 출력되지만, opencv에서 특정 웹캠 연결 문제가 발생하여 영상이 출력되지 않는 경우가 가끔 발생합니다. 다양한 이유가 있지만, 동영상 프레임을 불러오는 과정을 결정짓는 apiPreference 문제로 발생하기도 합니다. 일반적으로 opencv가 알아서 최적값을 찾아주지만 영상 출력이 되지 않는다면 한 번 시도해보길 바랍니다. VideoCaptureAPIs 열거형 상수 설명 CAP_ANY 자동 선택 CAP_V4L, CAP_V4L2 V4L/V4L2(리눅스) CAP_FIREWIRE, CAP_FIREWARE, CAP_IEEE1394 IEEE 1394 드라이버 CAP_DSHOW 다이렉트쇼(DirectShow) CAP_PVAPI PvAPI, Prosilica GigE ..

Python 2021.03.29 3

[Python] Pyinstaller 오류 : A RecursionError (maximum recursion depth exceeded) occurred.For working around please follow these instructions 해결하기

Concept Pyinstaller는 파이썬 기반 실행 파일을 만드는 강력한 툴입니다. 윈도우나 맥 환경에 맞추어 자동으로 라이브러리와 필요 모듈을 내장하기 때문에 쉽게 배포판을 만들수 있죠. 하지만, 파이썬 자체 인터프리터의 용량과 기타 압축 한계로 인해 C 기반 프로그램보다 용량이 상당히 커진다는 단점이 있기는 합니다. 이를 위해 사용하는 오픈 라이브러리를 최소화하여 프로그래밍 하게됩니다. 프로젝트가 커지면 정말 많은 라이브러리를 Import하게 되는데, 이때 오류가 발생하곤 합니다. 파이썬을 실행파일로 만드는 과정에서 기준치 이상의 메모리 연산량을 요구하기 때문에 발생하는 오류입니다. 이를 해결하기 위해서는 오류와 함께 코드가 실행된 폴더에 생성되는 .spec 파일을 수정해야 합니다. # -*- m..

Python 2021.03.24 0

[Tensorflow] 학습을 위한 대용량 훈련 데이터 처리 Data Generator 클래스 만들기

Concept 신경망 모델을 학습하기 위해 입력 데이터를 정리하고 전 처리하는 일은 중요하지만 언제나 귀찮은 일입니다. 특히, 이미지 데이터를 학습하기 위해 텐서 플로우에서 ImageGenerator를 설정하는 것은 소규모 데이터에서는 정리가 쉽지만, 대용량 대규모 데이터를 규격에 맞게 정리하는것은 쉽지 않죠. 이번 포스팅에서는 ImageGenerator.flow_ 함수를 직접 class로 만들어 커스터마이징이 쉽고 저장이 용이한 학습 데이터 구축 방법을 구현해보도록 하겠습니다. SourceCode keras.io/api/preprocessing/image/ Keras documentation: Image data preprocessing Image data preprocessing image_datas..

Tensorflow 2021.03.17 1

[Python] PyQt에서 마우스 버튼 클릭 반응형 효과 만들기

Concept PC 환경에서 마우스는 이제 대체할 수 없는 강력한 UI 도구입니다. 모바일과 같이 NUI를 적용하려는 다양한 시도가 있었지만, 아직까지 대체 불가능인 것 같습니다. 우리는 프로그램에서 버튼을 클릭할 때 마우스 커서를 버튼 UI에 올려 놓게되며, 이때 커서의 반응 효과를 통해 클릭이 가능한 버튼은지, 클릭이 된 건지를 판단합니다. PyQt에도 기본적으로 버튼의 클릭 이벤트는 CSS로 구현되지만, 마우스의 효과는 코드를 통해 구현되고 있습니다. SourceCode def initUI(self): # 버튼 생성 self.BUTTON = QPushButton(self) # 버튼 커서 이벤트 지정 self.BUTTON.setCursor(QtGui.QCursor(QtCore.Qt.PointingHa..

PyQt 2021.03.12 0

[Matlab] 복셀화 (Voxcelization)을 이용한 LIDAR 라이다 PCD 데이터 압축 #4

Concept 지난 포스팅에 이은 라이다 데이터 전처리 기법 #4 , PCD Voxcelization 알고리즘입니다. 3차원 희소 데이터 특성을 가지는 라이다 PCD는 채널 수에 따라 다르지만, 10,000 ~ 1,000,000 개 이상의 데이터가 초 단위로 수집됩니다. 단순한 3차원 float 형의 공간 정보이지만, 10,000 개 이상의 데이터를 실시간으로 전 처리하고 알고리즘에 활용하기에는 효율성이 매우 떨어집니다. 특히, 차량이나 드론과 같은 이동체에서 자율주행을 위해 활용될 경우, 연구소 환경과 같은 고성능 워크스테이션에서의 연산이 불가능 하기에 다양한 기법으로 데이터를 압축시키거나 효율적으로 연산하는 방법들이 제안되고 있습니다. 최신 기법은 아니지만, 비교적 쉽고 현재까지 활용되고 있는 Vox..

Matlab 2021.03.10 0

[Python] SORT (Simple Online Real time Tracker) 구현하기 (깃허브 소스 코드)

Concept 컴퓨터 비전 분야에서 응용되는 대표적인 딥러닝 기술은 객체 탐지(Object Detection)입니다. 객체 탐지는 Faster-RCNN, SDD, YOLO 등이 제안되면서 최근 객체 탐지 기술은 꽤 높은 수준으로 상향 평준화되어있습니다. 탐지 기술은 발전하고 있지만, 단순히 객체를 탐지하는 수준으로는 실제 상업적인 비즈니스 단계에서 활용성이 높지 않습니다. Application을 위해 객체를 추적(Tracking) 하고, 인식(Identification) 하고, 객체의 행동(Action Recognition)을 판단하는 기술들이 더해지고 있습니다. 다양한 응용 기술 중에서 탐지된 객체를 추적하고 아이디를 부여하는 Tracking 기술을 다뤄보려 합니다. 이번 포스팅은 다중 객체 탐지 (M..

Python 2021.02.26 1

[Tensorflow] 분류기 학습을 위한 One-Hot encoding 라벨 생성하기

Concept softmax / cross entropy 를 이용한 신경망 분류기 학습에는 일반적으로 One-Hot Encoding (원-핫 인코딩)된 라벨 데이터를 많이 활용합니다. 텐서플로우는 쉽게 라벨 생성을 위한 함수를 제공하고 있습니다. SourceCode Index 라벨 데이터 one hot incoding MNIST의 경우, 라벨은 1차원으로 나열되어있으며 0은 0, 1은 1, ... , 9는 9로 인덱싱되어있습니다. 이를 원 핫 인코딩하면 다음과 같습니다. 여기서 on_value는 활성화된 값, off_value는 비활성값입니다. 일반적으로 1과 0으로 설정하면 됩니다. 만약 라벨 인덱스에 0 이하 값이 포함되어있다면, 값 설정이 혼돈될수 있기때문에 최소값을 0 이상으로 설정한 뒤 인코딩해..

Tensorflow 2021.02.24 0

[Python] MOT(Multi-Object Tracking) 평가를 위한 데이터 다운로드

Concept 컴퓨터 비전 기반 딥러닝 기술의 성장과 함께 객체 추적(Tracking) 알고리즘이 발전하고 있습니다. 특히, 객체 탐지 성능이 좋아지며 최근에는 단일 객체가 아닌, 다중 객체 추적 (MOT : Multi - Object Tracking) 이 주요 과제로 자리하고 있습니다. 최근 MOT의 트렌드는 CNN 기반 특징맵, 예측 필터, 그래프 모델 등을 융합하는 방식으로 성능을 향상시키고 있으며, 이와 관련된 다양한 평가 데이터가 공개되어있습니다. 현재 작성중은 논문을 정리하면서, 알고리즘과 데이터를 포스팅으로 남기려 합니다. 이번 포스팅은 MOT 성능평가로 활용되는 대표적인 데이터 MOT Challenge Dataset을 다운받는 기본적인 방법입니다. MOT Dataset motchalleng..

Python 2021.02.23 0

[Python] PyQt5에서 URL 링크 만들기 (하이퍼링크 버튼)

Concept 이번 포스팅은 pyqt 기반 GUI 프로그램에서 활용 가능한 URL 링크 버튼 만들기 입니다. URL 링크는 webbrowser 라이브러리를 QtButton과 연동하여 웹 페이지 링크를 실행하는 방식으로 구현됩니다. SourceCode import webbrowser class APP(QMainWindow): def __init__(self): # APP CODE # APP CODE # 버튼에 링크 추가하기 self.button.clicked.connect(lambda: webbrowser.open('링크')) # 텍스트 (라벨)에 링크 추가하기 self.label.setText('텍스트내용') self.label.setOpenExternalLinks(True) Application You..

PyQt 2021.02.23 0

[Tensorflow] K-Fold 교차 검증으로 학습 모델 검증하기 (sklearn)

Concept K-Fold Cross Validation (K 폴드 교차 검증)은 데이터 수가 적을 때, 보다 확실한 검증과 정확도 향상을 위해 사용되는 검증 기법입니다. 파이썬 sklearn 라이브러리에는 K-Fold를 쉽게 정의해주는 함수를 포함하고 있습니다. from sklearn.model_selection import KFold # K-FOLD 정의 nb_split = 5 # 분할 개수 KF = KFold(n_splits=n_split, shuffle=True) 정의한 이후, 학습 단계에서 for문으로 데이터를 분할하면 됩니다. 예를 들어 pandas로 입력된 DataFrame 데이터는 다음과 같이 데이터가 k-fold로 나뉘게 됩니다. for train_idx, valid_inx in kf.s..

Tensorflow 2021.02.21 0

[Tensorflow] GAN (생산적 적대 신경망) 구현하기

Concept 요즘 가장 흥미롭게 연구 중인 GAN (Generative Adversarial Network: 생산적 적대 신경망)입니다. GAN은 Neural Network에 뿌리를 두고 있으나 비지도 학습으로 정의되며, 두 개의 신경망이 서로 경쟁하며 학습하게 됩니다. 2014년 처음 아이디어가 제안된 이후, 급격한 연구적 성장을 거듭하며 현재는 놀라울 정도로 진보된 기술로 성장하고 있습니다. 이번 포스팅에서는 GAN의 오리지널 버전의 알고리즘을 간단하게 살펴본 뒤, MNIST 손글씨 인식 데이터를 이용해 텐서플로우로 구현해보도록 하겠습니다. Algorithm 기본적인 구조는 간단합니다. 가짜 이미지 생성을 위한 생성자(Generator) 신경망과 진짜와 가짜 이미지 판별을 위한 판별자(Discrim..

Tensorflow 2021.02.17 0

[Linux] 우분투에서 파일 복사 불어넣기 안될때 해결 방법 (폴더 권한 설정)

리눅스 환경에서 갑자기 파일 속성이 read-only 로 변하거나 코드 수정 등이 안되는 경우가 있습니다. 디스크를 위험으로부터 보호하기위해 자동으로 변경되는거라고 합니다. 특히, 멀티 부팅으로 같은 파이션 내 파일을 작업할때 자주 발생합니다. 솔루션은 간단합니다. 다시 권한설정을 부여 할 파티션 또는 폴더의 경로를 다시 마운트하면 됩니다. # RE-MOUNT mount -o remount,rw/"절대경로" Your Best AI Partner DEEP.I AI 바우처 공급 기업 객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발 인공지능 프로젝트 개발 외주 및 상담 E-mail: contact@deep-i.ai Site: www.deep-i.ai 딥아이 ..

Linux 2021.02.09 0

[Python] 파이썬에서 매트랩 MAT 파일 읽기 (scipy)

Concept 사실 저는 학+석사 시절, 매트랩을 품에 안고 살았기때문에 한글보다 매트랩 문법 읽는게 편했습니다.? 그러다보니 아직까지도 데이터를 확인하고 분석하는데 매트랩을 자주 이용하는 편입니다. 데이터를 전처리하거나 시각화 과정에서 파이썬과 매트랩 이동이 많은데 고맙게도 python의 scipy 라이브러리에서 매트랩 데이터 저장 형식 파일을 읽기를 지원하고 있습니다. SourceCode Scipy 설치 pip install scipy mat 파일 읽기 from scipy import io # 데이터 파일 불러오기 mat_file = io.loadmat('mnist_train.mat') # 특정 변수 읽기 input_x = mat_file['x'] target_y = mat_file['y'] mat ..

Python 2021.02.06 0
반응형