아두이노에 센서를 부착해서 동작시킬때 값이 자음이 포함되어 흔들리는 경우를 흔히 볼 수 있습니다. 이를 최대한 잡아내는 방법으로 여러가지 필터들이 있는데요. 오늘 가속도 센서에 칼만필터를 적용하는 방법에 대해서 알아보도록 하겠습니다. 칼만 필터 Disturbance를 가지는 관측치를 바탕으로 선형 역학계의 상태를 추정하는 재귀 필터로, 시스템의 상태를 추정하여 제어하기 위한 필터 칼만 필터는 과거에 수행한 측정값을 바탕으로 현재의 상태 변수의 결합분포를 추정한다. 알고리즘은 예측과 업데이트의 두 단계로 이루어진다. 예측 단계에서는 현재 상태 변수의 값과 정확도를 예측한다. 현재 상태 변수의 값이 실제로 측정된 이후, 업데이트 단계에서는 이전에 추정한 상태 변수를 기반으로 예측한 측정치와 실제 측정치의 차..
리눅스 프로그래밍을 하다보면 쉘에서 때론 화려하게 때론 간편하게 파일을 옮기고 찾고 합치고 하는 일들을 수행할 수 가 있는데 관련해서 몇가지 소개하도록 하겠습니다. 모든 spec 파일 내에서 'aaaa' grep 할 때 $ find -name *.spec | xargs grep -n aaaa 실행 중인 프로세스의 pid 알아내는 방법 $ ps -ef | grep [실행중인 프로세스 이름] 디스크 관련 확인 상세 옵션 df : 디스크 용량 옵션 -h : 용량을 사람이 보기 쉬운 단위로 표시해준다. (1m를 1,048,576단위로 계산, h는 human의 약자) -H : 용량을 사람이 보기 쉬운 단위로 표시해준다. (1m를 1,000,000단위로 계산) -k : 용량을 킬로바이트 단위로 표시한다. -i : ..
흔히 개발하다보면 디자인 패턴에 대한 이야기를 쉽게 접할 수 있는데요, 어떠한 구조로 개발을 하느냐는 글을 쓸때나 건물을 지을때나 설계 관점에서 굉장히 중요합니다. 건축물을 예를 들어 잠실타워같은 모습의 건물을 짓기위해선 어떤 공법을 사용하는게 좋을까요? 100층이 넘는 건물을 지을 때 비단 5층짜리 건물을 지을 때 공법과는 분명 다른 점들이 있을 것입니다. 그 반대의 경우도 마찬가지일 것이구요. 앞으로 디자인 패턴 이야기도 해보려고 하는데요, 디자인 패턴하면 떠오르는 패턴은 여러분은 어떤 것들이 있으신지요? 가장 많이 접하는 싱글톤! 이 있겠지만 오늘은 어답터 패턴에 대해서 이야기해보려고 합니다. 어답터 패턴(Adapter Pattern) 위키피디아의 정의에 따르면 어답터 패턴은 클래스의 인터페이스를 ..
Docker를 사용하는 것을 넘어서 Docker의 원리와 엔진에 대한 구조까지 알고 있지만 시간이 지나다보니 기억이 흐릿해졌습니다. 서버나 리눅스 기반 플랫폼 직무면접에 나올 가능성이 많은 개념이기도 해서 오늘은 그래서 컨테이너 기술을 위한 핵심 기술인 리눅스의 namespace와 cgroup에 대해서 알아보도록 할 것인데요. 검색하시면 굉장히 많은 글들이 나오니, 핵심만 찍고 가도록 하겠습니다. 요약하면 독립적인 환경을 만들기 위해 namespace를 사용하고 cgroups(control groups)를 사용하여 자원의 할당 등을 관리합니다. namespace 하나의 system에서 수행되지만, 각각 별개의 독립된 공간처럼 격리된 환경을 제공하는 lightweight 가상화 기술로, vm에서 쓰이는 h..
파일이나 폴더를 압축할 때 리눅스에서는 Tar를 유틸을 많이 사용하는데요. Tar가 갖고 있는 옵션들이 상당히 많습니다. 많이 쓰는 옵션은 아니어도 알아두면 좋은 옵션들이 있으니 오늘은 한번 정리해 보고 가도록 하겠습니다. Tar 옵션 우선 가장 많이 쓰는 옵션 먼저 한번 집고 가도록 하겠습니다. [압축할 때] tar -cvzf 파일명.tar.gz 또는 파일 [압축해제] tar -xzvf 파일명.tar.gz x : 묶음을 해제 c : 파일을 묶음 v : 묶음/해제 과정을 화면에 표시 z : gunzip을 사용 f : 파일 이름을 지정 p : 권한을 원본과 동일하게 유지 기능 옵션 -A, --catenate, --concatenate : 저장 파일에 tar 파일을 추가한다. -c, --create : 새 ..

그동안 AWS Solution Architect Assosicate 시험 준비로 인해 잠시 글을 작성하지 못했었는데요, 오늘 시험을 봤고 합격해서 이렇게 후기를 남겨보도록 하겠습니다. 어떤 시험을 보게 되었는지는 우선 아래 글에서 확인하고 오실게요. 2023.01.07 - [Technology/AWS, Docker] - 클라우드 자격증, 어떤 걸 어떻게 따야할까? 클라우드 자격증, 어떤 걸 어떻게 따야할까? 클라우드 시대에서 자격증은 자기를 드러내는 중요한 수단이 된지 오래입니다. 새로운 자격증은 계속 추가되서 대세가된 그런 자격증을 따지 않으면 취업조차 쉽지 않은 세대가 되었는데요. 저 hero-space.tistory.com 지난 1월7일에 어떤 자격을 취득할지 고민하고 나서 어떻게 공부할지 정하고 ..

지금가지 학습 후 양자화와 사전 양화를 진행해보았는데, 학습 후 양자화 하는 방법 중 한가지 빼 놓은 것이 있습니다. 바로 UINT8로 INT8보다 훨씬더 타입을 축소하게 만드는 것인데 이를 위해서는 몇가지 절차가 필요한데요 오늘은 그 방법에 대해서 살펴보도록 하겠습니다. 소스코드 from __future__ import absolute_import, division, print_function import tensorflow as tf import cv2 import numpy as np import pathlib import glob, os BATCH_SIZE = 1 src = "/home/hero/data/datasets/representative/" im_path = glob.glob(os.pat..

지난 시간에 학습후 경량화에 해당하는 Post Training Quanitzation 에 대해서 진행해보았는데요. 오늘은 학습 과정에서 Quantization을 가정하고 시뮬레이션을 같이 돌림으로서 정확도를 더 높이면서 경량화 할 수 있는 방법에 대해서 알아보도록 하겠습니다. Post Training(PTQ, static) : 학습 이후에 quantization 하는것 Quantization Aware Training(QAT) : 학습 과정에서 quantization을 가정하고 시뮬레이션을 같이 돌림 아무래도 학습 하면서 경량화 하는 방법을 적용하고 나서 학습 후 경량화를 한 번 더 적용하는게 경량화적으로 이점이 있을 거라 생각하면서 혹시나 학습 후 양자화 내용을 확인하지 못하신 분은 아래 링크를 빠르게..