Search
🕳️

Porosity Calculator

Stacks
Python
Flask
React
Docker
진행기간
2021.03. ~ 2021.06.
Repository

TL;DR

SEM 구조 사진의 공극률을 측정하는 프로그램을 개발했습니다.

왜 만들었을까?

기존에는 ImageJ를 이용해서 작업을 했는데 ImageJ를 사용하면서 느낀 불편을 개선하기 위해서 프로젝트를 시작했습니다.
외주로 진행한 프로젝트라 코드를 공개할 수 없어서 레포지토리 링크는 공유하지 않습니다.

담당

기획, 프론트엔드, 백엔드 모두 담당했습니다.

세부 내용

ImageJ는 하나의 threshold를 기준으로 공극(porosity, air gap)과 frame을 구분합니다. 따라서 유저는 이미지를 로드한 이후 직접 threshold를 찾아줘야는 불편함이 있습니다. 또한, TEM 이미지는 부분적으로 어둡거나 밝을 수 있기 때문에 하나의 threshold로는 정확한 porosity 영역을 구하기 힘듭니다.
이 프로젝트는 픽셀 밝기 히스토그램에서 local minima를 찾은 후 해당 값을 초기 threshold로 설정해줍니다. (나중에 유저가 직접 수정할 수 있습니다)
부분적으로 어둡거나 밝아서 threshold로 걸러지지 않는 부분은 유저가 직접 마킹해서 포함하거나 제외할 수 있습니다
이후 계산 결과를 확인할 수 있습니다.
더 자세한 내용은 Porosity Calculator 참고

연구 결과

회고

클라이언트 연산 성능 문제로 모든 연산을 백엔드에 위임하고 있는데, 때문에 네트워크 트래픽을 어떻게 줄일 수 있을지가 핵심적인 내용입니다. 이 프로젝트에서는 매 threshold마다 백엔드에서 연산을 해서 보내주는 방식을 사용하고 있는데, 지금 생각해보면 git이 동작하는 원리처럼 threshold의 변화에 따른 diff pixel 데이터를 보내주는 방식이었으면 트래픽을 더 절약할 수 있지 않았을까 생각됩니다.