전체 글(25)
-
[Python] 간단한 DICOM PACS Storage SCP 만들기
Python을 이용하여 간단한 DICOM PACS Storage SCP를 구현해보겠습니다. 필요한 Python 패키지 입니다. sqlite3, pydicom, pynetdicom import sqlite3from pathlib import Pathimport pydicomfrom pynetdicom import AE, evt, AllStoragePresentationContextsfrom pynetdicom.sop_class import Verification 데이터셋을 다루기위해 pydicom, DICOM 통신을 위해 pynetdicom 패키지가 필요합니다. 특히 AllStoragePresentationContexts를 통해 C-STORE를 구현할 수 있습니다. 또한 C-ECHO용 SOP Class를..
2026.05.21 -
X-ray 디텍터 Calibration 기본
디텍터 센서가 받아들이는 데이터는 다양한 노이즈와 센서 특성이 섞인 Raw Image 형태입니다. 여러 노이즈를 제거하기 위해서 먼저 아무것도 안 찍었는데 센서가 만들어내는 값을 얻어야 하는데 그것이 Dark Frame입니다. Exposure 전후로 Dark Frame을 획득하는데 X-ray를 조사하기 직전에 촬영하는 OAX(Offset Before Exposure)를 통해 센서 기본 Offset과 기본 전기적 Noise를 측정합니다. X-ray 조사 직후 획득하는 OBX(Offset After Exposure)를 통해 X-ray 노출 이후 Thermal Noise 등을 측정합니다. 여러 장 얻은 Dark Frame을 이용하여 평균 Dark Frame을 Offset Map, Dark Map으로 활용하여..
2026.05.11 -
의료영상 소프트웨어 개발 흐름 정리
1. 의료영상 소프트웨어의 구성의료영상 소프트웨어의 구조는 사용자, 애플리케이션 레이어, 서비스 레이어, 그리고 외부 서버/외부 장비 연동으로 나눌 수 있다. 사용자는 촬영 담당자나 관리자로서 시스템에 접근하며, 실제 업무 흐름은 애플리케이션 레이어를 중심으로 수행된다. 애플리케이션 레이어 아래에는 장비 및 시스템 연동을 담당하는 서비스 레이어가 위치한다. 서비스 레이어는 제너레이터, 디텍터 등 실제 촬영 장비와 연결되며, 장비별 제어와 데이터 교환을 처리하는 역할을 한다. 또한 애플리케이션 레이어는 HIS/RIS, PACS와 같은 외부 서버와 연결되어 병원 정보 시스템과 데이터를 주고받는다. 2. 소프트웨어 워크플로우 사용자는 먼저 병원 정보 시스템과 연동된 Worklist를 조회하고, 검사 대상 ..
2026.04.08 -
QA 및 검수 기준 정리
핵심 원칙 · 검수 기준은 요구사항서, 화면설계, 기능정의서를 함께 기준으로 삼되, 테스트 케이스 설계는 기능정의서를 중심으로 수행 · 발주사 관점의 QA는 단순 버그 탐색이 아니라 검수 가능 여부를 판단할 수 있는 근거를 문서화하는 역할까지 포함 1. 기준 설정QA 수행 주체는 발주사 요구와 개발사 설명을 테스트 가능한 언어로 정리하여, 검수 기준과 책임 범위를 명확히 해야함 · 발주사 요구를 테스트 가능한 조건으로 바꾸기 · 개발사 설명을 검수 가능한 기준으로 정리하기 · 모호한 요구사항에 대해 확인 포인트 제시하기 2. 검수 기준 명확화구분역할핵심 설명화면설계화면·흐름 기준화면 구조, UI 구성, 동작 흐름, 상태 및 노출 요구사항서무엇이 필요하냐왜 필요한지, 어떤 문제를 해결하는지, 어떤 결과를 ..
2026.03.28 -
[Python] OAK-D Lite를 이용하여 실시간 이미지 분류 앱 만들기 - 실시간 추론 구현하
이전 글에서는 이미지 분류 모델을 학습하고, 이를 OAK-D Lite 장치에서 실행할 수 있도록 .blob 파일로 변환하는 과정까지 살펴보았습니다. 이제 마지막 단계로, 이 모델을 실제로 OAK-D Lite에서 구동하며 실시간으로 이미지를 분류하는 애플리케이션을 구현해보겠습니다. 다음은 전체 코드입니다.import depthai as daiimport cv2import numpy as npblob_file_path = './outputs/hand_model.blob'class_names = ['LAT', 'PA']pipeline = dai.Pipeline()cam = pipeline.create(dai.node.ColorCamera)manip = pipeline.create(dai.node.ImageMa..
2025.06.19 -
[Python] OAK-D Lite를 이용하여 실시간 이미지 분류 앱 만들기 - 모델변환
OAK-D Lite의 Myraid X VPU를 사용하여 온디바이스 딥러닝 추론을 수행하기 위해서는 모델을 .blob 파일 형식으로 변환해야 합니다. 하지만 Tensorflow 프레임워크에서 직접 변환하는 것은 불가능하므로, OpenVINO IR 포맷을 거쳐야 합니다. 먼저 모델변환 명령어를 사용하기 위해 파이썬 패키지를 설치해줍니다.pip install openvino-dev[tensorflow2] 아래는 IR 포맷 변환을 위한 명령어입니다.mo --saved_model_dir ./hand_model --output_dir "./outputs" --compress_to_fp16 --scale 255 --source_layout nhwc --target_layout nchw --input_shape "[1..
2025.05.19