전체 글 (38) 썸네일형 리스트형 텍스트 파일 통째로 std::string에 넣기 로 스트링 리터럴(raw string literal)을 사용하면 됩니다. 띄어쓰기, 행 바꿈 문자, 꺽쇠(), 괄호 등의 특수 문자를 그대로 std::string 타입의 변수에 넣을 수 있습니다. xml파일을 로 스트링 리터럴을 활용하여 헤더에 넣어 사용한 적이 있습니다. \t, \n 같이 시퀀스들은 텍스트로 그냥 출력합니다. 코드 예제 std::string rawstring = R"( 1.jpg 1.jpg 1920 1080 3 0 )"; 컨볼루션 연산(CNN용, pytorch 코드로 보기) 컴퓨터 비젼 분야에서 컨볼루션 연산은 2D 데이터인 이미지의 특징(feature)을 구하는데 사용합니다. 컨볼루션 연산으로 구한 이미지의 특징은 이미지 분류(image classification), 물체 검출(object detection), 물체 추적(object tracking), 물체 분할(object segmentation) 등에 활용할 수 있습니다. 1. 1채널 2D 컨볼루션 녹색: 픽셀(6*6 이미지에 속함) 노란색: 컨볼루션 필터(3*3) 보라색: 컨볼루션 결과 컨볼루션 필터가 이미지의 픽셀들을 순회하면서 컨볼루션 결과(특징맵, 4*4)을 생성합니다. 노란색 필터의 크기를 receptive field라고 하며, 필터의 영역에 해당하는 픽셀들의 정보를 특징으로 나타냅니다. 이는 사람이 이미지의.. Docker 명령어 * Ubuntu용 docker 설치 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com * 이미지들 확인 docker images * 이미지 삭제 docker image rm * 모든 이미지 삭제 docker rmi -f * 이미지 임포트 cat | docker import - * docker 컨테이너 생성 docker run -it --name /bin/bash ** 컨테이너와 호스트 간의 공유 폴더 필요시 -v 옵션 사용 docker run -v : -it --name /bin/bash * 컨테이너 실행 sudo docker start * 컨테이너 리스트 보기 docker contai.. C++의 기초(Hello, World) C++ 코드 빌드(build) 순서는 다음과 같다. 1. 전처리(preprocess): 소스 코드에 담긴 메타 정보 처리 2. 컴파일(complie): 소스 코드를 머신이 읽을 수 있는 오브젝트 파일로 변환 3. 링크(link): 오브젝트 파일, 라이브러리 파일 들을 엮어서 결과 파일 생성 // helloworld.cpp #include int main() { std::cout 폴더에서 파일 경로 불러오기 폴더 경로가 std::string으로 주어질 때, 해당 폴더 내에 있는 파일들의 전체 경로를 불러오는 코드를 작성합니다. 1. 개발 환경 설정 프로젝트 속성 > General > C++ Language Standard를 C++17로 설정합니다. C++17에서 boost의 filesystem이 포함되었습니다. C++14이하 표준을 사용하신다면 filesystem사용을 위해서 boost 라이브러리를 Visual studio에 맞게 빌드하신 다음 링크하여 사용하셔야 합니다. 2. 코드 작성 #include #include #include void readImage(std::string directory, std::vector& imageList) { std::filesystem::path someDir(dir.. Yolo inference C++ example(VS2022+Darknet DLL) Darknet 프레임워크의 프로젝트에서 DLL을 생성하여 추론하는 과정입니다. Darknet dll은 GPU용 솔루션과 CPU용 솔루션이 나눠져있습니다. 각 솔루션을 빌드하면 dll파일이 생성됩니다. OpenCV의 GPU 기능을 사용하려면 OpenCV를 빌드할 때 extra 모듈을 추가해서 CUDA관련 모듈을 함께 빌드해야 합니다. yolo 추론용 DLL은 C++ 클래스 형태로 제공해서 다른 프로젝트로 쉽게 사용할 수 있습니다. 프로젝트는 아래 링크의 프로젝트를 활용합니다. GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Dark.. Darknet + Visual Studio 2019,2022(C++ build) Darknet은 딥러닝 프레임워크입니다. Darknet을 사용하는 대표적인 모델이 Yolo입니다. 윈도우 상에서 손 쉽게 빌드할 수 있게 만들어둔 Git 페이지가 있습니다. 아래 링크에서 프로젝트를 다운받아 적당한 위치에 압축을 해제합니다. Visual Studio 2019에서 빌드 가능합니다. NVIDIA CUDA는 11.1로 설치해주시고 CuDNN도 CUDA 버전에 맞게 추가하시면 됩니다. (타 IDE또는 VS다른 버전, CUDA 다른 버전 관련한 custom build는 다루지 않습니다.) Visual Studio 2022에서 빌드하려면 Nvda.Build.CudaTasks.v11.1.dll를 darknet.sln이 있는 폴더에 가져오시거나 dll 경로를 지정해주셔야 합니다. GitHub - Ale.. Yolov4 inference C++ example(VS2022+OpenCV4.5.5) 22.02.06 NMS(Non Maximum Suppression) 추가, 내용 추가 Opencv3.3.1부터 추가된 readNetFromDarknet() 함수를 사용하여 Yolo 네트워크 정보(cfg파일)와 학습된 가중치 정보(weights)를 불러올 수 있습니다. OpenCV로 영상과 Yolo 모델을 읽어와서 읽은 영상 내의 물체를 검출합니다. cfg와 weights파일은 아래 사이트에서 다운받으실 수 있습니다. AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet ) (github.com) GitHub - AlexeyAB/darkn.. 이전 1 2 3 4 5 다음