You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
손만 잡힐 수 있도록 mask를 잡아줌 (블러, 이진화, 컨투어, 모폴리지 팽창연산 사용)
블러 :: 노이즈 최소화
이진화 :: 이미지 평균값보다 값이 크면 1, 작으면0으로 잡아줘서 값이 평균 이상인 픽셀만 존재하도록 함
컨투어 :: 같은 값을 가진 곳을 연결 : 값이 1인 애들 연결 (바깥쪽 라인만 잡아줘서 손 전체를 잡아줄 수 있도록 함)
모폴로지 팽창 연산 :: 값이 있는 영역의 픽셀들을 넓힘 -> 이진화에서 못잡은 손 부분을 잡아줌
(마스크 회전할 때는 이미지 팽창으로 조금 더 넓은 영역을 잡아주는게 좋음 이유는 알잖엉)
이미지 테두리에 xray 제외 흰 부분을 제거해주기 위해 이미지의 테두리 제거
이미지 원본을 가져와서 mask된 부분(손)의 이미지를 제외한 배경은 비트연산을 통해 지워준다.
손목 중심 x,y를 잡아줘서 ( 손목이 어딘지 어떻게 판단하는지 잘 모르겠는데 도와주라) -손목지점과 손목이 시작되는지점
x,y로 선형회귀선을 그림
5.선형회귀선이 직각이 될 수 있도록 회전 (atan2를 활용하여 한 점을 기준으로 다른 한 점과의 상대적 각도가 어떻게되는지 확인하고, 회전할 각도는 90-atan2로 나온 각도임을 확인) (회전은 이미지의 중심점을 기준으로 회전) --? 손목이 직각이 될 수 있도록
회전하는 이유 : 각도가 다른 이미지들을 같은 형식으로 만들어줌으로써 학습에 용이하게 하기 위하여
2) 뼈추출
회전된 x-ray이미지에서 뼈만 추출할 수 있도록 전처리 과정을 진행하였는데, 순서는 아래와 같습니다. (1-7: mask / 8~ 뼈강조 및 비트연산)
밝기를 어둡게 조정 했을 때 흐릿한 x-ray이미지의 뼈를 더 잘 구분할 수 있다고 판단하여, 이미지 밝기의 정도에 따라 가중치를 다르게 하여 밝기값을 조정해주었습니다.
마스크 생성을 위해서는 조명의 영향을 최소화시켜야 하는데, 그러기 위해 Lab을 진행합니다.
밝기 값이 크게 튀는 곳을 강조해주기 위해 모폴리지 탑햇을 사용합니다. 모폴리지는 CROSS, EPLIPSE, RECT 세가지를 모두 사용해본 결과 CROSS가 가장 적합하다고 판단하여 cross를 사용해주었습니다.
블러 필터를 사용해 x-ray 이미지를 전처리하는 과정에서 연조직의 노이즈를 최소화 시켜줄 수 있도록 했습니다. 블러필터에는 여러가지 종류가 있는데 bilateralFilter가 노이즈는 잘 잡아주되, 뼈의 경계선을 보존해주기 때문에 가장 적합하여 bilateralFilter로 블러처리를 진행했습니다.
이미지 간의 연산 시 서로 조건이 다른 경우 같은 조건으로 만들어주는 정규화를 해준 후, 경계선을 알아볼 수 없을 수도 있는 문제를 피하기 위해 CLAHE평탄화를 진행합니다.
각 이미지의 평균값을 임계치로 두어 binary가 균일하게 이루어질 수 있도록 했습니다.
같은 픽셀 강도를 갖는 애들을 연결해주는 컨투어를 진행하여 mask를 얻습니다.
뼈 강조를 위해 똑같은 이미지를 가져와서 위와 같이 밝기를 조정 합니다.
같은 방법으로 모폴리지를 진행합니다.
뼈를 강조하기 위해서는 대비가 중요합니다. 대비를 조정하기 위해 GRAY scale로 바꾼 후 contrast함수를 사용해 대비를 조정해주었습니다. 이미지의 평균값 크기에 따라 high와 low의 가중치를 다르게 주었고 contrast 함수를 통해 대비를 조정합니다.
위와 같은 방식으로 컨투어를 진행합니다.
1-7의 과정에서 얻은 mask와 8-11의 과정에서 얻은 뼈 강조 이미지를 비트연산하여 두 과정에서 동일하게 값이 있는 부분만 출력합니다.
mask를 잡는데 사용하는 모폴로지의 borderValue와 뼈 강조를 하기위해 사용하는 모폴로지의 borderValue, 그리고 bilateralFilter의 색 공간에서 필터의 표준 편차&좌표 공간에서 필터의 표준 편차는 함수에서 변경할 수 있는 값으로 설정하여 경험적 수치에 의해 노이즈 최소화 및 뼈 경계 추출 최적에 가장 적합하도록 조정했습니다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
1) mask 회전
손만 잡힐 수 있도록 mask를 잡아줌 (블러, 이진화, 컨투어, 모폴리지 팽창연산 사용)
(마스크 회전할 때는 이미지 팽창으로 조금 더 넓은 영역을 잡아주는게 좋음 이유는 알잖엉)
이미지 테두리에 xray 제외 흰 부분을 제거해주기 위해 이미지의 테두리 제거
이미지 원본을 가져와서 mask된 부분(손)의 이미지를 제외한 배경은 비트연산을 통해 지워준다.
손목 중심 x,y를 잡아줘서 ( 손목이 어딘지 어떻게 판단하는지 잘 모르겠는데 도와주라) -손목지점과 손목이 시작되는지점
x,y로 선형회귀선을 그림
5.선형회귀선이 직각이 될 수 있도록 회전 (atan2를 활용하여 한 점을 기준으로 다른 한 점과의 상대적 각도가 어떻게되는지 확인하고, 회전할 각도는 90-atan2로 나온 각도임을 확인) (회전은 이미지의 중심점을 기준으로 회전) --? 손목이 직각이 될 수 있도록
2) 뼈추출
회전된 x-ray이미지에서 뼈만 추출할 수 있도록 전처리 과정을 진행하였는데, 순서는 아래와 같습니다. (1-7: mask / 8~ 뼈강조 및 비트연산)
mask를 잡는데 사용하는 모폴로지의 borderValue와 뼈 강조를 하기위해 사용하는 모폴로지의 borderValue, 그리고 bilateralFilter의 색 공간에서 필터의 표준 편차&좌표 공간에서 필터의 표준 편차는 함수에서 변경할 수 있는 값으로 설정하여 경험적 수치에 의해 노이즈 최소화 및 뼈 경계 추출 최적에 가장 적합하도록 조정했습니다.
Beta Was this translation helpful? Give feedback.
All reactions