본문 바로가기

필사적 필사

(33)
JIT 컴파일 JIT 컴파일(Just - in -time) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에서 기계어로 번역하는 컴파일 기법이다. 이 기법은 프로그램의 실행속도를 빠르게 하기 위해 사용된다. 전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 두 가지가 있는데, 인터프리트 방식과 정적 컴파일 방식으로 나눌 수 있다. 이 중 인터프리트 방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하며, 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다. JIT컴파일러는 두 가지의 방식을 혼합한 방식으로 생각할 수 있는데, 실행 시점에서 인터프리트 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 ..
NMS 알고리즘 NMS(non - maximum suppresssion)을 사용하여 연산량을 줄이고, aAP도 올리는 효과를 본다고 한다. 일반적으로 영상엣지를 찾기 위한 NMS는 현재 픽셀을 기준으로 주변의 픽셀과 비교했을 때 최대값인 경우 그래도 놔두고, 아닐 경우(비 최대) 억제(제거)하는 것이다. (차 한대에 여러가지 bounding box가 그려지는 경우와 같은)을 제거하기 위한 방법으로 사용된다. def nms(boxes, probs, threshold): """Non-Maximum suppression. Args: boxes : array of [cx, cy, w, h] (center formet) prob : array of probabilities threshold : two boxes are consi..
.net framework란 무엇일까? .net framework는 여러 부분으로 나뉘어 있지만 사실 크게 보면 다음과 같은 두 부분으로 나누어 설명할 수 있습니다. 공용 언어 런타임(Common Language Runtime) .NET Framework클래스 라이브러리(.Net Framework Class Library) 공용 언어 런타임은 .NET Framework의 가장 하위에 있으며 .NET Framework 클래스 라이브러리는 .NET Framework에서 공용 언어 런타임을 제외한 나머지 요소들을 총체적으로 가리키는 것입니다. 그럼, 공용언어 런타임과 .NET Framework클래스 라이브러리에 대해 좀 더 알아보겠습니다. 공용 언어 런타임(CLR) 공용 언어 타임은 우리가 .NET 언어로 코드를 작성할 때 일반적으로 신경써야하는 ..
DEBUG와 RELEASE 컴파일의 차이 RELEASE MODE 초기화를 하지 않습니다. 같은 문자열 상수라도 서로 다른 공간에 할당됩니다. 디버깅정보를 삽입하지 않고 코드를 최적화하여 실행 파일 크기를 최대한으로 줄여줍니다. 속도나 크기면에서 월등히 유리합니다.(메모리 점유율로 낮아지고 실행도 빨라짐.) 더 이상 현재버전에서 내결함성이나 문제점들을 발견할 수 없었을때 빌드해 주는 모드입니다. DEBUG MODE 실행파일에 디버깅 정보를 삽입하여 언제든지 디버깅을 할 수 있도록 하며 debug서브 폴더에 실행파일을 만들어줌. 디버깅 정보가 들어가 있기 때문에 실행파일 상태를 확인할 수 있습니다. 디버그에 필요한 정보들을 실행시 계속 체크함으로써 속도가 느립니다. 디버그 빌드와 릴리즈 빌드에서 서로 실행 결과가 다른 경우? 특히 디버그 빌드에서는..
여러가지 확장자에 관하여 오픈 소스 라이브러리를 사용하여 개발을 하거나 CMake를 이용해서 프로젝트를 빌드하거나 할 때면 다음과 같은 파일 확장자들을 볼 수 있다. .c / .h /.cc / .cpp / .c++ / .cxx / .hpp / .hxx / .h++ .h / .hpp / hxx / h++ - 헤더파일, 선언파일(.cpp, .cxx등)에 대한 최소한의 정보를 가지는 파일 - hpp등은 templat, inline 함수 등 정의부분까지 일부헤더에 포함된 파일. .c / .cpp / .cc / c++ / cxx - 정의문, c에서는 .c파일, c++에서는 .cpp파일 .hpp 또는 .hxx 확장자는 왜 굳이 사용할까? 일반적으로도 c++에서도 헤더파일의 확장자 이름은 c에서처럼 .h를 사용한다. 다만, c++문법중에서는..
python-ArgumentParser import argparse # argparse 모듈은 사용자 친화적인 명령행 인터페이스를 쉽게 작성하도록 합니다. # 프로그램이 필요한 인자를 정의하면, argparse는 sys.argv를 어떻게 파싱할지 파악합니다. # 또한 argparse 모듈은 도움말과 사용법 메시지를 자동 생성하고, 사용자가 프로그래멩 잘못된 인자를 줄때 에러를 발생 시킵니다. parser = argparse.ArgumentParser(description='Precess some integers') # argsparse를 사용하는 첫 번째 단계는 ArgumentParser객체를 생성하는 것입니다. parser.add_argument('integers', metavar='N', type=int, nargs='+', help='a..
opencv-python에서 특정 프레임 불러오기 보호되어 있는 글입니다.
Entry point In computer programming, an entry point is where the firsts instructions of a program are executed, and where the program has access to command line arguments. To start a program's execution, the loader or operating system passes control to its entry point(During booting, the operating system itself is the program). This marks the transition from load time(and dynamic link time, if present) to r..