석사 초반에 C++잠깐 건드려 보고 처음 해보는 C++입니다. 그때 당시에도 되게 불편했었는데 오늘 또 한번 느끼네요. 최근에 파이썬과 러스트만 다뤘는데 파이썬이 얼마나 편한 언어인지, 초보자도 쉽게 배울수 있는 언어라는걸 다시한번 깨닫게 되네요. C++컴파일러 설치 build-essential 패키지를 설치하면 gcc, g++ 등 컴파일에 필요한 패키지들이 설치됩니다. $ sudo apt-get install build-essential Visual Studio Code 설치 curl을 설치해줍니다. 이미 설치되어 있다고 메시지가 보일 수도 있습니다. $ sudo apt-get install curl 마이크로소프트 GPG 키를 다운로드하여 /etc/apt/trusted.gpg.d/ 경로에 복사해줍니다...
Python은 매우 다재다능한 프로그래밍 언어입니다. 파이썬은 라이브러리와 고수준 언어 덕분에 머신러닝 문제 해결에 가장 많이 사용되지만, 다른 언어에 비해 속도가 느린 것으로 알려져 있습니다. 이러한 평판 때문에 많은 사람들이 이 언어를 포기하고 프로그램 해결을 위해 C++와 같은 다른 옵션을 선택하기도 합니다. 기본 속도 테스트 파이썬과 C++의 일반적인 속도 차이를 테스트하기 위해 소수 생성 알고리즘의 실행 시간을 테스트해 보겠습니다. 두 언어 모두에서 명확한 짧은 단계가 있는 간단한 알고리즘입니다. 소수 생성 순서도 Python 실행 import math from time import per_counter def is_prime(num): if num == 2: return True; if num
https://crates.io/crates/ort에 따르면 cuda를 사용할수 있습니다.(cuda는 이미 설치되어있다고 가정합니다.) cargo.toml에 ort를 추가할때 feature로 load-dynamic이나 cuda가 있으면 cuda를 사용 할 수 있는것 같습니다. #[cfg(any(feature = "load-dynamic", feature = "cuda"))] cargo.toml에 아래 코드를 추가합니다. ort = {version="1.14.6", features = ["cuda"]} 그리고 main.rs에 use ort::ExecutionProvider 추가하고 main()함수 에서 ExecutionProvider::cuda().is_available() 로 확인할수 있습니다. buil..
각 프레임마다 onnx모델 Run을 하여 bbox 좌표를 얻습니다. onnx모델의 입력값은 정규화,표준화된 픽셀값이며 크기는 [1,3,640,640] 형식은 텐서입니다. https://github.com/pykeio/ort/blob/a92e4d1e6d99674dc1d04ed22743c3dd1bc59186/tests/onnx.rs#L16 https://dev.to/andreygermanov/how-to-create-yolov8-based-object-detection-web-service-using-python-julia-nodejs-javascript-go-and-rust-4o8e#rust use std::{sync::Arc, path::PathBuf, any::type_name, time::System..
[ERROR:0@0.058] global onnx_importer.cpp:1054 cv::dnn::dnn4_v20221220::ONNXImporter::handleNode DNN/ONNX: ERROR during processing node with 2 inputs and 1 outputs: [Reshape]:(onnx_node!/model.22/dfl/Reshape) from domain='ai.onnx' Traceback (most recent call last): [ERROR:0@0.058] global onnx_importer.cpp:1054 cv::dnn::dnn4_v20221220::ONNXImporter::handleNode DNN/ONNX: ERROR during processing nod..
=== /usr/local/include/opencv4/opencv2/core/cvdef.h:185:10: fatal error: 'limits' file not found thread 'main' panicked at '=== Errors during header parsing', /home/yimstar9/.cargo/registry/src/github.com-1ecc6299db9ec823/opencv-binding-generator-0.66.0/src/generator.rs:501:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace === WARNING: 1 diagnostic messages === /us..
decode : video-rs imageprocess : imageproc video-rs를 이용하여 영상을 decode후 decode_iter()로 frame별 픽셀 값을 추출합니다. 추출한 frame에 imageproc::drawing::draw_hollow_rect 함수를 이용하여 사각형을 그립니다. pub fn draw_hollow_rect( image: &I, rect: Rect, color: I::Pixel ) -> Image where I: GenericImage, 함수에서 입력받는 이미지 형식이 GenericImage입니다. 형 변환 방법 imagebuffer에 for문으로 픽셀값 넣어주는 방법 ndarray to image trait으로 generic image 변환후 사각형 그리는방법..