목록공부 (29)
dev-logs
딥러닝 목적 분류와 회귀가 있다. - 분류 classification : 이미지 상의 객체를 종류(class)별로 구분하는 것. ex) 표지판, 자전거, 자동차, 행인 - 회귀 regression : 어떤 확률값을 예측하는 것. ex) 객체까지의 거리(M) 추정 활성화 함수 - 시그모이드 함수 sigmoid - 출력값의 분포를 부드럽게 바꿔주는 효과 (아날로그 신호처럼). - 0~1 사이의 출력값을 가진다. - 소프트맥스 함수 softmax - σ시그마로 표기 - 코드로 구현할때 오버플로 주의 (중간값들이 굉장히 크기 때문) - 상수(C)를 분자, 분모에 곱해서 오버플로 방지 (C=입력값중 최대값) - 출력값이 0~1 사이이고 모든 출력값의 합이 1이 되기 때문에 출력값을 확률로 해석할 수 있다. - 분..
“/etc/default/apport” 파일을 수정하면 된다! 우분투에는 apport라는 앱중지 등을 리포트하는 기능이 있는데, 그걸 켰을 때 저 메시지가 나온다. 그냥 끄면 된다. 출처https://itsfoss.com/how-to-solve-sorry-ubuntu-12-04-has-experienced-an-internal-error/
그동안 기계학습이란걸 써오긴했지만 실무에만 집중하고 내 스스로 정리하는것을 미뤄뒀던 것 같다. 새로운 프로젝트를 하게되었는데 이번을 계기로 내가 알게 되는것들을 정리하려한다!! 1. 기계학습 개요 2. 관련 용어와 개념 3. 강화학습, 평가함수 3. 휴리스틱 알고리즘 : 영상 인식 4. 학습기 개발
yuv422 (yuyv)yuv 포맷은 Packed 포맷(yuv420, yuv444)과 Planner 포맷(yuv422)으로 나뉜다. Packed 포맷은 y성분, u성분, v성분이 번갈아가면서 섞인채로 존재 한다. (RGB처럼!) Planner 포맷은 각 성분의 영역(Plane) 이 따로 존재한다.그림의 UV Plane에서는 u와 v가 같이 존재하지만, U Plane, V Plane 따로 존재할 수 도 있다. 처음엔 이부분이 헷갈려서 포맷변환 함수를 만드는게 너무 어려웠다.지금도 어렵지만.... 데이터 구조만 잘 파악하고 있다면, 점점 익숙해질 것 같다.다음 함수는 yuv422를 1/2배 한 후, 원하는 영역을 crop하여 gray포맷으로 바꾸는 함수이다. 다음에 또 헤메지 않기 위해 저장!12345678..
내가 영상처리를 한 결과를 직접 캡쳐한 동영상으로 보다보면, 프레임이 끊기는 경우가 있었다. (영상처리 실력이 아직 부족해서 그렇다...) 프레임이 끊기는 경우란?1프레임 영상처리에 걸리는 시간이 지연되면 영상이 느려진다. 실행결과를 팟플레이어나 반디캠같은 캡쳐도구로 캡쳐하다보면 이를 고려하지 않기 때문에 프레임이 끊긴다고 느껴진다. 물론 실행결과를 코드상에서 그대로 저장하면 문제 없을것이다! 오늘은 프레임 끊기는 동영상을 보정해달라고 요청을 받아서 간단하게 만들었다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include #include "openc..
@에러error: no matching function for call to object of type 'cv::Mat' 라는 에러 메세지가 나왔습니다. 발생한 부분을 보니 resize 함수입니다. @해결using namespace cv; 를 지우고opencv 함수, 객체들에 cv::를 붙여줬더니 해결되었습니다.다른 함수에서는 문제 없지만 resize 함수에서만 에러가 나는 것 같습니다.
@에러 Error:(150) undefined reference to '함수이름' 위와 같은 에러가 여러 함수 에서 발생했습니다. @해결1 에러가 발생한 함수를 func1, func1 이 정의된 c파일을 cSource.c func1 이 선언된 h파일을 header.h func1을 호출하는 cpp파일을 main.cpp 라고 해보겠습니다. main.cpp 에서 header.h를 include 할때 #ifdef __cplusplus extern “C” { #endif #include “header.h” #ifdef __cplusplus } #endif 처럼 되어있는지 확인해보세요. C코드를 include 하는거라 c표시를 해야 하는것 같습니다. @해결2 위 방법으로 해결이 안..
여러 개의 인접한 직사각형을 합치는 알고리즘 입니다! (아직 버그가 있습니다.....ㅜ) 저 같은 경우에는 라벨링 후 처리 로 사용하려고 만들었습니다. 라벨링을 해도 잘 안 합쳐지는 게 간혹 있더라고요. 그리고 isolated 된 부분의 경우, 간혹 라벨이 포개어져서? 나오기도 합니다. 간략하게 그림으로 그리면 아래와 같습니다. input: 직사각형들output: input을 모두 포함하는 최대 직사각형 ※ C언어 입니다. (코드 못짬 주의) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787..
좋은 영상을 얻는 것은, 영상처리에서 중요한 것 중 하나라고 생각한다. 그러기 위해서는 내가 사용할 카메라에 대해서 잘 알아야 한다. 여러가지 정보중에 카메라가 영상 프레임을 몇초에 한번씩 주는지(fps)를 확인하는 것이 중요하다. 카메라가 그냥 카메라만 달려있다면 크게 상관하지 않고 카메라가 얻는 fps만 고려하면 된다. 하지만 카메라에 영상처리 기능 외 다른 기능의 알고리즘이 있다면 내 알고리즘을 얼마나 수행시킬 수 있는지 확인해야 한다. 나는 보통 1초에 frame 이 몇번 들어오는지 확인하는데 이걸 확인하는 매우매우 간단한 코드를 저장할 겸 올린다. 1234static int algoFlag = 0, algoCnt = 0; //처음 시간만을 저장하기위한 플래그와 알고리즘 수행횟수 저장변수stati..
전체집합의 원소를 입력하면 원소의 개수가 3개인 부분집합들을 출력해 준다. 1. 전체집합의 원소개수입력 2. 전체집합의 원소 입력 3. 부분집합이 생기는 경우의 수 계산(확률의 조합 이용) 4. 전체집합의 앞에서부터 차례대로 3개씩 넣음ex) 전체집합이 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 이라 하면{1, 2, 3} {1, 2, 4} {1, 2, 5} ...{1, 2, 10}{1, 3, 4} {1, 3, 5} ... {1, 3, 10} 이런식으로 첫번째 고정한 후 나머지 차례대로 집어넣는다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960..