2024/02

    [Python] Thread: GIL과 Thread 구현/실행, Event

    💡 본 문서는 '[Python] Thread: GIL과 Thread 구현/실행, Event'에 대해 정리해놓은 글입니다. ~~~정리하였으니 참고하시기 바랍니다. 1. Thread 동작 프로세스와 스레드에서 스레드가 무엇인지 알아봤습니다. 이번에는 파이썬에서 스레드를 구현하고 사용하는 기본적인 방법과 자원의 무결성과 동기화를 위한 처리에 관해서 알아보도록 하겠습니다. GIL(Global Interpreter Lock) 파이썬 코드는 인터프리터가 코드를 번역하고 실행함으로써 실행됩니다. 즉, 파이썬 코드가 실행되기 위해서는 인터프리터라는 자원을 소유하고 있어야 하는 것입니다. GIL은 인터프리터가 한 시점에 하나의 스레드만 실행할 수 있도록 해주는 인터프리터 소유에 관한 Lock입니다. Python의 스레드..

    [CS] 동시성와 병렬성 & 프로세스와 스레드

    💡 본 문서는 '[CS] 동시성와 병렬성 & 프로세스와 스레드'에 대해 정리해놓은 글입니다. Multi Threading을 공부하다 한번 정리하고 넘어가고자 프로세스와 스레드에 대해 정리하였으니 참고하시기 바랍니다. 1. 동시성과 병렬성 동시성과 병렬성은 한정적인 컴퓨터 자원으로 최대한의 성능을 끌어내기 위해 아주 중요한 요소입니다. 멀티 코어 CPU의 등장과 경제적 이득으로 인하여 멀티 코어 CPU의 관심도가 높아졌고, 작업들을 병렬화하고 코어들에게 효율적인 작업을 분배하는 병렬화는 중요 과제가 되었습니다. I/O Bound, CPU Bound 동시성과 병렬성을 알아보기 전에 작업의 특징에 따른 분류를 알아야 합니다. I/O Bound : 입출력의 영향을 많이 받는 작업. 입출력이 완료되기까지 대기하는..

    [Perception] 포인트 클라우드(Point Cloud): PCL PCD

    💡 본 문서는 '[Perception] 포인트 클라우드(Point Cloud): PCL PCD'에 대해 정리해놓은 글입니다. ~~~정리하였으니 참고하시기 바랍니다. 1. Point Cloud Lidar 센서, RGB-D센서 등으로 수집되는 데이터를 의미한다. 이러한 센서들은 아래 그림처럼 물체에 빛/신호를 보내서 돌아오는 시간을 기록하여 각 빛/신호 당 거리 정보를 계산하고, 하나의 포인트(점)을 생성한다. Point Cloud 란? 포인트 클라우드는 3차원 공간상에 퍼져 있는 여러 포인트(Point)의 집합(set cloud)를 의미한다. 순서가 없다 위치 정보를 가지고 있다 {x, y, z} 종종 그 외의 정보도 가지고 있다 (Color, Reflectance, Descriptor) Lidar 센서와..

    [Perception] Python OpenCV를 이용한 영상 재생과 Frame Rate (FPS) 조절

    💡 본 문서는 '[Perception] Python OpenCV를 이용한 영상 재생과 Frame Rate (FPS) 조절'에 대해 정리해놓은 글입니다. 연속된 이미지나 비디오 파일을 다룰때 재생되는 프레임의 속도를 조절해야하는 Task가 발생하게 됩니다. 특히, 실시간으로 이미지 프로세싱을 하게 될 경우, 모든 프레임에 알고리즘을 적용하게 되면 연산으로 인해 재생이 지연되는 상황이 발생하게 됩니다. 지연시간 및 처리시간을 측정하기 위한 내용을 정리하였으니 참고하시기 바랍니다. 1초 동안 10개의 프레임(이미지)이 재생되는 영상이 있다고 가정해보겠습니다. 단일 프레임 연산이 1초가 걸리는 딥러닝 알고리즘을 적용하게되면, 영상은 1초이지만 10초의 시간동안 영상이 재생되게 됩니다. 물론 모든 프레임에 대해 ..