일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 중국경제
- 제다큐어
- 뇌졸중
- 코로나19
- 주가분석
- Python
- prometheus
- 반려견치매
- 마법공식
- 경제위기
- 아모레퍼시픽
- 엘론 머스크
- 국제유가
- WTI유
- 유상증자
- 뉴지스탁
- 스크리닝
- 머신러닝
- 넬로넴다즈
- 퀀트
- 금리인상
- WTI
- FOMC
- 테슬라
- 미국금리
- 지엔티파마
- 주식투자
- 중국증시
- 기업분석
- DSP
- Today
- Total
목록Robotics (32)
Data Analysis for Investment & Control
※ 특허 [제10-2007-0124235호 - 비선형 함수 연산을 위한 부동 소수점 프로세서 및 이를 이용한 비선형 함수 연산 방법]의 내용 중 일부입니다.
Range Name Sign (s) 1 [31] Exponent (e) 8 [30-23] Mantissa (m) 23 [22-0] Hexadecimal Range Range Decimal Range § Quiet -NaN 1 11..11 11..11 : 10..01 FFFFFFFF : FFC00001 Indeterminate 1 11..11 10..00 FFC00000 Signaling -NaN 1 11..11 01..11 : 00..01 FFBFFFFF : FF800001 -Infinity (Negative Overflow) 1 11..11 00..00 FF800000 (2-2-23) × 2127 ≥ 3.4028235677973365E+38 Signaling +NaN 0 11..11 00..01 : 0..
VHDL로 작성한 32bit 부동소수점 프로세서 중 곱셈기입니다. Altera의 Quartus2에서 설계하였습니다. 연산 원리는 대략 아래와 같습니다. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 덧셈/뺄셈기에 비해 곱셈기는 그 구조가 상대적으로 간단하다. 부동소수점 포맷이 부호, 지수부, 가수부로 나뉘어 있기 때문이다. 따라서 지수부끼리의 덧셈과 가수부끼리의 곱셈 결과를 조정하여 연산 결과를 만들어낸다. 이 과정에서 발생 가능한 zero, over..
VHDL로 작성한 32bit 부동소수점 프로세서 중 덧셈/뺄셈기입니다. Altera의 Quartus2에서 설계하였습니다. 연산 원리는 대략 아래와 같습니다. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 덧셈/뺄셈기는 각 오퍼랜드의 절대값과 양수인지 음수인지에 따라 아래와 같이 몇 가지의 경우로 연산을 분류할 수 있다. 즉, 오퍼레이션의 종류와 각 오퍼랜드의 부호와 크기에 따른 경우의 수를 분석하여 각 케이스에 맞는 연산 수행을 하도록 정의되어 있다...
이진화 다음은 잡음제거를 위한 필터링 연산이다. 여기서는 cvErode라는 함수 하나로 간단히 구현된다. 약간 어려울 수 있는 부분은 라벨링 과정인데, 기존에 쓰던 라벨링 알고리즘은 이진화된 영상에서의 살아남은 덩어리들의 면적을 찾아서 라벨링하는 방법이었다. OpenCV에서도 cvBlob이라는 것을 사용해서 비슷하게 처리하는 것 같지만, 해당 함수를 찾다가 포기하고 윤곽선 찾기 함수 기반으로 하는 방법이 있길래 그걸 사용중이다. 함수는 cvFindContours인데, 새로 선언해 주어야 하는 변수가 몇 개 있다. IlpImage *image = cvCreateImage(cvSize(width, height), 8, 1); CvMemStorage *Storage = veCreateMemStorage(); ..
이전 글에서 카메라로부터 받은 각 픽셀의 데이터를 하나하나씩 IplImage 변수에 집어 넣는 것까지 했었다. 이제는 색상 기반의 영상 처리를 위해 기본적으로 해야 할 것들... RGB면 R, G, B, HSI(HSV)면 H, S, I 값으로 분리해서 Threshold시키는 작업을 해야한다. 그러기 위해서는 각 색상 데이터를 분리할 필요가 있는데, 이때 사용하는 것이 cvCvtPixToPlane 함수이다. 함수는 cvCvtPixToPlane(src, dst0, dst1, dst2, dst3)과 같은 형식인데, 함수 내부의 파라미터는 IplImage 변수이다. 함수를 사용하는 모드는 두 가지인데, 하나는 3개의 채널로 이루어진 데이터를 하나씩 분리하는 방법이고, 다른 하나는 4개의 채널로 이루어진 데이터를..
현재 OpenCV를 사용하려는 주 목적은 기존의 내가 만든 영상 알고리즘을 사용하여 스테레오 비전 영상을 처리하면 원하는 만큼의 프레임 처리율이 나오지 않기 때문이며, OpenCV 기술을 사용하면, 과연 어느 정도나 개선이 될까 궁금하기 때문이다. 따라서, 일단 OpenCV를 사용하여 기존의 처리를 그대로 재현해 내는 것이 첫번째 목표이다. 이미지에 대한 데이터나 헤더 정보가 없는 raw 데이터를 카메라로 부터 읽어와서 처리해야 하기 때문에 IplImage 변수를 선언하고 이에 대한 초기화 작업이 필요하다. 당연하겠지만, 단순히 IplImage->imageData에 데이터만 때려 넣는다고 해서 OpenCV가 제대로 인식할리 없다. 그렇다면 어느정도나 초기화 시켜줘야 할까? 내부 변수를 일일이 초기화시켜주..
에휴... 이건 뭐... 타겟 하드웨어가 좀 특수하니, 개발환경 자체가 달라지는 거라서 할 수 없다손 쳐도, 컴파일 하는거 알아내는 데만 이틀이나 잡아먹다니... 하긴, 나도 특수한 형태의 CPU를 개발하는 개발자로 나중에 이런식으로 개발환경을 꾸미지 않으면 안될지도 모르겠다... 우선은 #@$@$.cu라는 파일을 만들고 그 안에다가 코딩을 한 후, MSVS에 추가(소스파일 쪽)한다... 그리고, 해당 파일을 선택한 후, 마우스 오른쪽 버튼을 눌러 속성 창에서 아래와 같이 설정한다. 사용자 지정 빌드 단계 [명령줄] "$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler ..