프로그래밍 11

비주얼 스튜디오 c++ 공유 라이브러리[dll,lib] 쓰기 위한 최소 설정

설정해야할건 3가지 입니다. 1. VC++ 디렉터리 설정페이지에다가 : 경로설정 2가지 2. 링커->입력->추가 종속성에다가 : 사용할 lib파일을 명시 3. 디버깅->환경에다가 : 2에서 명시한 lib파일과 짝이 되는 dll파일이 있는 경로을 명시. 이때 모든 경로 설정할때는 반드시, c언어에서 한줄당 세미콜론 붙이듯, 디렉토리 경로 하나 당 세미콜론 써주세요. 이 예제에서는 밑의 소스 코드로, opencv 라이브러리 사용을 목표로 합니다. #include #include int main() { cv::waitKey(0); printf("hell0"); return 0; } 결과는 이렇습니다. cv::waitKey는 쌩으로 쓰면 의미없는 함수입니다. 실행하면 밑처럼 hell0을 출력하고 종료됩니다. 1..

YoLov1 신경망 각 레이어들 연산, 손실함수 담백한 리뷰

YoLov1 : 신경망 구성 1. 입력층 결과 : 448x448x3 해설 : (w, h, c) 입력층의 이미지 2. Conv층 결과 : 224x224x192 해설 : 3x7x7x64 필터(c, w, h, n)로 2 stride 적용하여 Convolution. 즉, 3 channel을 가진 7x7 필터를 64개 사용하여 Convolution 연산한 결과가 224x224x192 3. MaxPool층 결과 : 112x112x192 해설 : 즉, 2x2의 크기를 가진 윈도우로 2 stride 적용하여 MaxPool 연산한 결과가 112x112x192 4. Conv + MaxPool 결과 : 56x56x256 5. Conv층 여러개 + MaxPool 결과 : 28x28x512 해설 : GoogLeNet처럼 Con..

[Opencv] C++ Mnist 데이터셋 읽어오기 (CPU 엔디언, magic number 설명)

Mnist 데이터 파일 형식 Mnist 손글씨 데이터셋 공식 데이터 베이스 : yann.lecun.com/exdb/mnist/index.html MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges yann.lecun.com 위 문서를 내리다 보면, 파일 형식 부분이 나옵니다. 내용을 표로 정리하면 훈련 레이블 파일 32bit(=4byte) + 32bit(=4byte) + 8bit(=1byte) * 이미지 수 안에 들어있는 데이터 매직 넘버 이미지 수 레이블(정답 데이터) 훈련 세트 파일 32bit(=4byte) +32bit(=4byte) +32bit(=4byte) +32bit(=4byte) + 8bit(=1byte) ..

[딥러닝] 합성곱 신경망(CNN) 편향 bias 계산 방법

다중 로지스틱 회귀 신경망에서 편향은 주로 weight(가중치) 옆에 사용했습니다. 합성곱 신경망에서도 마찬가지로 weight들의 모임인 커널에 bias를 사용합니다. 합성곱 연산을 위 사진처럼 1차원으로 펼쳐 인공신경망으로 표현할 수 있습니다. 합성곱 연산에서 특성 맵은 커널이 입력 이미지에 각각 매핑되어 계산됩니다. 즉, 합성곱 연산에서 편향 계산은 커널들을 계산한 특성 맵의 모든 원소에 bias를 더하는 것으로 간략화할 수 있습니다. 만약 입력 이미지의 색상 채널이 흑백 단일이 아닌 여러 개라면, 커널도 여러 개를 사용합니다. 이때도 마찬가지로 bias를 여러 개 사용하면 됩니다. 출처 : 밑 사이트의 내용, 사진들을 편향을 설명하기 위해 사용 wikidocs.net/64066 위키독스 온라인 책을..

[머신러닝 데이터 전처리] 훈련 세트, 테스트 세트, 검증 세트 차이

훈련 세트 : 모델 훈련(가중치 찾기)에 쓰이는 데이터 세트 테스트 세트 : 모델의 실제 정확도를 판별하기 위해 쓰이는 데이터 세트. 테스트 세트로 모델을 튜닝하면 모델이 테스트 세트의 정답을 외워버려, 모델의 일반화 성능이 왜곡되는 문제가 있다. 때문에 모델 튜닝용으로 사용하지 않는다. 전체 데이터 세트를 보통 8:2의 비율로 떼어 훈련 세트와 테스트 세트를 만든다. 모델 튜닝 : 손실 함수를 바꾸거나 LearningRate를 조정하는 등의 모델 성능을 늘리기 위해 하는 작업들 검증 세트(개발 세트, dev set) : 훈련 세트에서 보통 8:2의 비율로 떼어 사용하는 모델 튜닝 용도의 세트. 즉, 전체 데이터 세트가 100이면 64(훈련):20(테스트):16(검증)으로 나눈다. 하지만 훈련 세트가 적..

[머신러닝] 현실 손글씨 데이터 전처리 방법(컬러 사진)

현실 손글씨 이미지셋 전처리(컬러 사진) : 1. 1 2 3 4 5 6 7 8 9 0 손글씨 숫자를 나열한 컬러 사진을 그레이스케일 사진으로 변환 2. 숫자가 나열된 종이 이외의 노이즈(책상 등)를 전단 변환(Crop)으로 제거 3. 완전히 흑백 사진으로 바이너리화 4. 3의 이미지를 보면 점이나 빛으로 인한 노이즈가 있다. 이것을 모폴로지 연산을 통해 제거 5. 노이즈를 제거한 이진화 이미지에 대해 외각선 검출 findContours()를 사용해 객체 외곽선 배열을 얻고, 외곽선 배열을 응용해 숫자들의 사각형 행렬을 받아옴 6. 5에서 만약 객체 숫자가 실제 숫자보다 많을 경우 일정 크기 이상의 객체만을 다시 검출 7. 객체들의 사각형 행렬을 외곽선 x, y좌표에 대해 오름차순으로 정렬하고, 32*32..

[Qt 6] Opencv 4 적용법(window_QT.cpp, obj section 오류 해결)

Qt6은 공식문서와 함께 Qt5처럼 공식 문서로 일단 진행합니다. wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows How to setup Qt and openCV on Windows - Qt Wiki How to setup Qt and openCV on Windows Introduction This article shows how to install Qt, build OpenCV, and run a basic OpenCV example. This article assumes Windows 10 has just been installed. This procedure requires close to 10GB of disk space: Qt: 5.06GB wiki.qt...

[HKU] 렌더링 기법 RayTracing, RayMarching, PathTracing 장점과 단점 비교

HKU 대학교 Niel 교수님의 오늘 맡아주신 수업 내용을 요약했습니다. RayTracing : RayTracing : 가상적인 광선이 물체의 표면에서 반사되어, 카메라를 거쳐 다시 돌아오는 경로를 계산한다. 적게는 물체 하나가 반사하는 빛만 계산하면 되지만 많은 물체를 구성하는 입자 하나하나의 빛을 전부 계산해야하기 때문에 렌더링 기법 중 시간이 많이 소요되는 기술이다. 장점 : - Rasterized 렌더링에 비해 라이팅이 현실적이다. - 그림자, 반사, 굴절의 구현이 쉽다. - 병렬화 계산(GPU 연산)에 적합하다. (각 광선은 다른 광선과 독립적으로 계산된다) 단점 : - 다각형 메쉬의 교차점(각진 부분)에 대해 무거운 연산을 한다. (원문 : Calculating intersection poin..

3D공간 flock(Boids) 알고리즘(군체 AI, 새 무리 이동) C# 코드 리뷰

youtu.be/_d8M3Y-hiUs Flock(Boids) 알고리즘 :: 생물의 집단 행동 (새의 무리 이동 등)에서 아이디어를 얻어 만들어졌다. 모든 새는 3가지 규칙을 따른다. 1. cohesion : 모든 boid의 평균 위치에 더 근접하게 한다. 2. separation : 이웃한 boid와 충돌하지 않도록 한다 3. alignment : 각 보이드는 주변의 보이드와 같은 방향을 향하려는 특성을 가진다. 장점 : 구현과 사용이 쉽다. 단점 : 성능 문제, 완전한 컨트롤의 어려움, 대부분의 행동이 예기치 않을것 전체 코드(World of Zero님) 더보기 더보기 //속력 방향 (velocity)을 관리한다. public class Boid : MonoBehaviour { public Vector..

1 2