
[영상처리] 오츠의 알고리즘(Otsu Algorithm, Thresholding)오츠의 알고리즘이란?어떤 영상을 thresholding 하고 싶을 때, 적정한 threshold 값을 찾아주는 알고리즘을 말한다. 방법은 경게값을 임의로 정해서 픽셀들을 두 부류로 나누고 두 부류의 명암 분포를 반복해서 구한 다음 두 부류의 명암 분포를 가장 균일하게 하는 경게 값을 선택한다. 다시말해, 특정 threshold를 T라 하면, T를 기준으로 이진 분류된 픽셀의 비율의 차가 가장 작은 optimal T를 구하는 것이다.오츠 알고리즘은 모든 threshold에 대해 계산해야 하기 때문에 속도가 느리다는 단점이 있다. 또한 노이즈가 많은 영상에는 오츠의 알고리즘을 적용해도 좋은 결과를 얻지 못하는 경우가 있다.코드p..

[딥러닝] 분류 모델의 성능평가 방법(Precision, Recall, Accuracy, F1Score, Confusion Matrix)Confusion Matrix 분류모델에서 아래와 같은 형태로 표현된 테이블True Positive : 정답은 True이고, 분류 결과도 True인 것 (정답)False Positive: 정답은 False이고, 분류 결과는 True인 것 (오답)False Negative: 정답은 True이고, 분류 결과는 False인 것 (오답)True Negative: 정답은 False이고, 분류 결과도 False인 것 (정답) Precision(정밀도)모델이 True라고 한 것 중에 실제 정답이 True인 것 (모델의 관점)위 confusion matrix에서 Precision=TP..

기분이 태도가 되지 않게를 읽고 후기책의 표지에는 이렇게 써있다."기분 따라 행동하다 손해보는 당신을 위한 심리 수업"평소에 내 기분에 따라 행동이 어땠나를 한 번도 고민해본 적이 없기에 이 책을 읽어보기로 했다. 안 좋은 감정을 남에게 전달하지 않기 위해서 노력하는 사람, 그게 진짜 어른의 태도이다. p21우울한 감정은 전염성이 크다고 한다. 여러 사람 중에 한 사람이라도 우울하면 그게 전체 분위기로 확산이 된다. 그 한 사람이 나인 적은 없었을까 생각해 봤다. 물론 억지로 안좋은 기분을 순식간에 좋게 만들 수는 없을 거다. 하지만 나의 그 안 좋은 감정이 다른 사람에게까지 전달하는 건 다른 문제이다. 내 감정을 조절할 수 있는 성숙한 어른이 되어야겠다. 사람은 남의 성격에는 몹시 깐깐한 잣대를 들이대..
[딥러닝] Tensorflow에서 데이터로더 병렬처리 방법개요tensorflow에서 sequence 데이터로더를 사용하여 학습할 때, 데이터로더 처리 시간이 길어 gpu 사용률(Volatile GPU-Util)이 낮은 경우가 있다. gpu 사용률이 낮은건 다양한 이유가 있지만, 그 중 cpu 처리 속도가 느려 데이터를 로드하는 시간이 길어 학습 연산하는 gpu가 놀고 있는 경우도 있다. 이런 경우에는 학습 시간이 오래 걸리기 때문에, 데이터를 불러오는 시간을 줄여야 한다. 이 때, tensorflow에서 지원하는 OrderedEnqueuer를 사용하면 sequence를 병렬처리하여 시간을 단축시킬 수 있다.OrderedEnqueuer 사용법Sequence 데이터로더 생성Sequence를 상속받아 Data..

[기타] 부동소수점(Floating Point) 설명이진법컴퓨터는 2진법으로 수를 표현한다.예시3510=100011235_{10}=100011_23510=10001125.7510=1001.1125.75_{10}=1001.11_25.7510=1001.1120.12510=0.00120.125_{10}=0.001_20.12510=0.0012 고정 소수점정해진 비트 개수만큼 정수부와 소수부로 나눈다. 맨 앞자리는 부호 비트로 음수(1), 양수(0)를 구분한다.5.75를 예를 들면 1001 는 정수부 0.11은 소수부가 된다.구현하기 편리하고 직관적이지만, 표현할 수 있는 수의 범위가 매우 제한적이고 정밀도가 낮다. 부동 소수점정규화위의 수를 정규화하여 다음처럼 표현한다.111.xx.. * 2n..

[딥러닝] Mixed Precision 사용하기(tensorflow 설명)개요mixed precision은 모델 학습시 FP16, FP32 부동 소수점 유형을 상황에 따라 유연하게 사용하여 학습을 더 빠르게 실행하고 메모리를 적게 사용하는 방법이다. Forwad, Backward Propagation은 모두 FP16으로 연산하고, weight를 업데이트 할 때에는 다시 FP32로 변환하여 계산한다. 단, FP16의 경우, 매우 낮은 수는 표현할 수 없어 모두 0이 된다. 이를 방지하기 위해 특정 값을 곱하여(scaling하여) loss, gradients 계산하고 weight를 업데이트한다. 이때 FP16 범위를 벗어나는 underflow, overflow가발생하지 않게 적정한 값으로 scaling 해줘..
[Linux/Ubuntu] screen 사용법screen이란?linux(ubuntu)나 mac os에서 사용하는 명령어로, 세션을 자유롭게 열고 터미널의 화면분할 등 다양한 곳에 활용될 수 있다.사용방법screen 사용 명령어# screen 생성 $ screen -S [이름] # screen 목록 확인하기 $ screen -ls # screen 다시 들어가기 $ screen -r [이름]screen 세션 접속 후 명령어screen에 들어가서는 특정 명령을 주기 위해 모두 ctrl+a 로 시작합니다.# 키보드 사용방법 확인하기 ctrl+a ? # screen에서 빠져나가기(종료되지 않음) ctrl+a d # screen 종료하면서 빠져나가기 ctrl+a k # 세로로 화면 분할 ctrl+a | # 가로로 ..

맥 터미널 테마 바꾸기(iTerm2+zsh)iTerm2 설치iTerm2는 customizing이 용이한 터미널이다. 아래 링크에 들어가서 stable 버전을 다운받는다.Downloads - iTerm2 - Mac OS Terminal ReplacementiTerm2 is a replacement for Terminal and the successor to iTermhttps://www.iterm2.com/downloads.html oh-my-zsh 설치터미널에서 아래 명령어를 입력하여 oh-my-zsh를 설치한다.sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" zsh 선..
[Linux/Ubuntu] 부팅 시 스크립트, 프로그램 동작하기개요Linux나 Ubuntu에서 부팅(재부팅)시 자동으로 프로그램을 실행하게 하는 방법입니다. crontab에 등록하기, linux 시작 프로그램에 등록하기와 같이 2가지 방법인데 둘 중에 편하신 방법을 사용하시면 됩니다.1. crontab에서 등록하기crontab 기초 사용법스크립트 생성원하는 스크립트를 작성하여 파일로 만들고 저장한다.vi scripts.sh #!/bin/bash echo "hello world"스크립트 권한 설정sh파일을 실행할 수 있도록 실행 권한을 설정한다.chmod +x scripts.shcrontab에 등록crontab의 @reboot 옵션으로 위의 script를 등록하고 저장한다.(부팅이 완료되면 실행)cront..

터미널(ubuntu, mac)에서 slack으로 메시지 보내기개요slack에서 제공하는 기능으로, 외부에서 특정 url로 요청(post방식)하면 원하는 workspace에 메시지를 전송할 수 있다. 상황에 따라 알맞게 자동화하여 활용하면 된다.Slack에서 Webhook 연동하기공식문서 링크위의 링크에 들어가면 slack에서 제공하는 공식 문서를 확인할 수 있다. 방법을 요약하면 다음과 같다. 아래 링크에 들어가서 사용할 App 이름을 정하고, workspace를 선택한다.https://api.slack.com/apps?new_app=1 Incoming Webhooks에 들어가서 Activate Incoming Webhooks를 On 상태로 체크해준다. 그럼 페이지 최하단에 Add New Webhook ..
- Total
- Today
- Yesterday