본문 바로가기
728x90

분류 전체보기175

[python] 3차원 공간 회전 변환 | scipy Rotation scipy의 Rotation 클래스는 3D 공간에서의 회전 변환을 다루는 데 사용된다. 회전을 나타내는 행렬로부터 회전을 수행하거나, 회전을 나타내는 축과 각도를 사용하여 회전을 수행할 수 있어서 3D geometry를 다룰 때 해당 클래스를 자주 사용하고 있다. 그 중에도 Rotation.apply() 메서드를 자주 사용하는데, 이 메서드는 회전된 벡터를 반환한다. 해당 메서드의 기능은 벡터에 회전 행렬을 곱하는 것이며, 수식적으로는 위와 같이 기존 벡터에 회전행렬(R)을 곱하는 것과 같다. 회전 행렬을 벡터에 곱함으로써 회전된 벡터를 얻을 수 있다. Rotation.inv().apply() 를 사용하면 회전 행렬의 역행렬을 벡터에 적용하여 회전 행렬의 반대방향으로 회전시킬 수도 있다. 코드 예제 fr.. 2024. 3. 29.
Equirectangular Image (등장방형 이미지) 설명 | 이미지 좌표 변환 | 구면좌표 벡터 계산 Equirectangular image (등장방형 이미지) Equirectangular image는 구면 좌표계를 직각 좌표계로 매핑한 이미지입로 구면 좌표계의 각도를 직각 좌표계의 픽셀로 일대일 매핑하여 표현한다. 구면 좌표계에서는 위도(latitude)와 경도(longitude)로 이미지를 표현하는데, 위도는 구의 수평 방향을 나타내며, -90에서 90도까지의 범위를 가지고 경도는 구의 수직 방향을 나타내며, -180에서 180도까지의 범위를 가진다. Equirectangular 이미지는 이러한 구면 좌표계를 사용하여 이미지를 표현한다. 이미지의 너비는 360도의 경도 범위에 매핑되고, 높이는 -90에서 90도의 위도 범위에 매핑된다. 따라서 이미지의 크기는 경도와 위도의 해상도에 따라 결정된다. 이.. 2024. 3. 29.
직각좌표계 & 구면좌표계 | 좌표 변환 직각 좌표계와 구면 좌표계는 이미지 처리 및 분석에서 사용되는 좌표 시스템이다. 직각 좌표계(Rectangular Coordinates) 이미지를 다룰 때 가장 일반적으로 사용되는 좌표 시스템 이미지는 픽셀로 구성되어 있으며, 각 픽셀은 행(row)과 열(column)의 인덱스로 표현 일반적으로 왼쪽 상단 모서리가 (0, 0)으로 시작하여 오른쪽으로 갈수록 열(column)이 증가하고 아래로 갈수록 행(row)이 증가 구면 좌표계(Spherical Coordinates) 구면 좌표계는 이미지 처리에서 주로 사용되지는 않지만, 컴퓨터 비전의 특정 분야에서 사용될 수 있음 주로 3D 공간에서 사용되며, 위도(latitude), 경도(longitude), 고도(altitude)와 같은 좌표를 사용하여 지구 표.. 2024. 3. 29.
[python] 파이썬 병렬 처리 | joblib 사용법 | 멀티프로세싱 | 멀티쓰레딩 joblib은 파이썬에서 병렬 처리를 간편하게 수행할 수 있도록 도와주는 라이브러리이다. Parallel 클래스 Parallel 클래스는 병렬로 함수를 실행하거나 반복 가능한 작업을 처리할 때 사용 - n_jobs n_jobs 매개변수를 사용하여 동시에 실행할 작업의 수를 조절할 수 있으며 일반적으로 CPU의 코어 수를 사용하면 효과적이다. n_jobs=-1은 시스템에서 사용 가능한 모든 코어를 활용하여 최대한 병렬로 실행하라는 의미 - backend 백엔드는 어떻게 병렬 작업을 처리할지를 결정하는 핵심 역할을 하며, loky 백엔드가 기본적으로 사용된다. loky (기본 백엔드) loky는 파이썬의 concurrent.futures를 기반으로 하는 백엔드로, 멀티프로세싱을 활용 프로세스 풀링을 통해 효.. 2024. 1. 19.
[python] 멀티프로세싱 Process 사용법 및 코드 예시 | multiprocessing.Process | 여러 프로세스에 서로 다른 작업을 할당 [python] 멀티프로세싱 Pool 사용법 및 코드 예시 | multiprocessing.Pool | python 속도 향상 멀티프로세싱은 여러 개의 독립적인 프로세스를 생성하여 각각의 프로세스가 병렬로 작업하도록 하는 방식이다. 각 프로세스는 독립적인 메모리 공간을 가지며, 프로세스 간 통신 (Inter-Process Co mvje.tistory.com 위 포스팅에서 파이썬으로 멀티프로세싱을 사용하기 위해 multiprocessing.Pool 사용법에 대해 살펴봤다. 이번에는 multiprocessing.Process를 활용한 멀티프로세싱 방법과 Pool, Process 두 가지 방법의 차이점에 대해 알아보고자 한다. multiprocessing.Pool과 multiprocessing.Process는.. 2024. 1. 7.
[python] 멀티프로세싱 Pool 사용법 및 코드 예시 | multiprocessing.Pool | python 속도 향상 멀티프로세싱은 여러 개의 독립적인 프로세스를 생성하여 각각의 프로세스가 병렬로 작업하도록 하는 방식이다. 각 프로세스는 독립적인 메모리 공간을 가지며, 프로세스 간 통신 (Inter-Process Communication, IPC) 메커니즘을 통해 데이터를 교환할 수 있다. 파이썬에서 멀티프로세싱을 구현하기 위해 사용되는 주요 모듈은 multiprocessing이다. multiprocessing 모듈은 파이썬에서 다중 프로세스를 사용하여 병렬 작업을 수행하는 데 도움이 되는 도구를 제공하는데, threading 모듈과 달리 Global Interpreter Lock (GIL)의 영향을 받지 않으므로 CPU-bound 작업에 효과적이다. multiprocessing.Pool multiprocessing.P.. 2024. 1. 7.
728x90