시작하며;
단기적인 목표는 태아 머리의 가로 지름을 측정하는 것이다. (이하: BPD) 그런데 앞선 이야기에서 언급했듯이 우리의 초음파 영상 데이터는 DICOM 파일이 아닌 단순 녹화본이다. 영상에 대한 메타데이터를 제공받지 못하는 상황이다. (pixel spacing) 배율 정보가 중요한데 배율 정보가 없다보니 픽셀 거리를 실제 거리로 변환하는 과정에서 오차가 많았다. 그 시행착오를 기록하고자 한다. 🫠
지금 보신 눈금은 없는 눈금이오니;
초음파 진단 장비마다 스케일바의 위치가 정말 다양했다. 좌측 혹은 우측이었다. 우선 스케일바 영역을 찾는 것부터 먼저 진행했다. 이어서 눈금 간격을 측정해서 픽셀 당 거리로 환산했다. 가장 굵은 눈금을 측정하는 것에 집중했다. (파란색으로 강조) 그 이유는 모든 눈금을 측정하려다 보니 온갖 점들이 인식되어 노이즈가 발생헀다. 그래서 파란색 눈금 사이의 픽셀 거리를 구하고 cm 당 픽셀 거리로 계산하여 배율을 구했다. 그런데 이 과정에서 사실 내가 간과한 치명적인 오류가 있었다. 😭 눈금 간격을 무조건 1cm 로 간주했다는 점이다.
첫 번째 사진은 실제로 눈금 간격이 1cm 였다. 하지만 두 번째 사진은 그렇지 않았다. 눈금 간격이 1cm 가 맞다면 왼쪽 눈금의 전체 길이는 최소한 20cm 가 넘는다. 그런데 실제로 측정된 BPD 는 3.72cm 였다. 여러 이미지를 테스트하면서 픽셀 거리를 어림짐작하여 배율을 구하는 if-else 문을 만들게 되었다. 당장 프로토타입으로는 문제가 없지만 장기적으로는 올바른 판단이 아니라고 생각했다. 방법을 찾고 싶었다. 초음파 이미지를 뚫어지게 쳐다보며..


찾았다 이 놈;
방법을 찾았다. BPD 가 측정된 꽤나 많은 태아 초음파 이미지를 보면 스케일바 하단에 YYcm 인지 또는 XXHz/YYcm 라는 영역이 출력되고 있었다. 즉, 물리적인 거리를 표현하고 있었다. 그래서 이미지의 해상도 정보를 획득한 후 ”물리적인 거리 / 해상도의 높이” 연산을 통해 배율값을 얻었다.


쏘 왔?! 🤔;
위에서 볼 수 있듯이 2가지 경우의 수가 있기 때문에 초음파 이미지 전처리 과정을 추가 개발했다. 스케일바 밑에 물리적인 거리가 있는지 확인하는 과정을 거친 후, 물리적인 거리를 알 수 없다면 가장 처음으로 개발했던 방법으로 (if-else 조건문으로) 최종 배율을 구했다. 아래는 개선 전과 개선 후를 비교한 이미지이다. 오차가 줄어들었다.


return;
'이미지 처리' 카테고리의 다른 글
| 초음파 영상 분류, BPD 만으로는 부족했다 (2) | 2025.02.22 |
|---|---|
| 끝날 때까지 끝난 게 아니다, 불-편 (0) | 2024.12.31 |
| BPD 정확도 높이기, 편-안 🤭 (0) | 2024.12.27 |
| 초음파 영상/이미지 內 관심사 인식 및 측정 (0) | 2024.12.14 |