U-net 구조로, 이미지 세그멘테이션 해 보았다. (1)

Keras의 연습이 테라 U-net 구조의 모델로, 이미지 세그멘테이션을 해 보았다.
이미지 세그멘테이션이라고 해도, 물체의 위치를 ​​흰색에 바르고, 그 이외를 검정으로 하는 2치만의 것입니다.

이번 물체는 고양이를 좋아해서 고양이로 만들었습니다.

환경


  • Windows10
  • GeForce GTX 1080 ti
  • Python
  • Keras
  • CUDA 9.0

  • 입력





    이런 느낌의 고양이가 있는 이미지(60(학습용)+20(평가용))를 준비
    크기는 128*128로 했다.
    다만, 입력시는, GrayScale화해, 1Channel로 해 취급했다.

    Teachers





    이런 식으로 고양이가있는 곳 (고양이 범위)을 흰색으로 한 이미지를 준비
    크기는 Inputs와 마찬가지로 128*128.
    DVD 보면서 스스로 어노테이션.
    화상 처리로 잘 엣지를 낼 수 없었기 때문에, 페인트 툴로, 고양이의 바깥 테두리를 분명히 다른 색으로 그린 ​​후, 엣지 추출 처리해, 안쪽을 흰색으로 변경했다.
    이진화하고 1Channel로 취급한다.

    모델



    U-net의 논문( *1 )과 같이 하면, Output의 사이즈가, input보다 작아지지만, 이번은, 동일하게 하고 싶다.
    그래서 이번에는 Convolution할 때 padding을 하고 크기를 떨어뜨리지 않도록 하는 구현으로 해봤다.
    loss 함수는 Dice Coefficient

    이런 느낌



    학습



    배치 크기 : 5
    에포크 : 100
    에서 학습 실행

    학습 곡선은 이런 느낌


    응, 뭔가 미묘한?

    결과



    학습에 사용한 데이터







    각 열에서 위에서부터 순서대로 입력/출력/이상 (교사)

    출력이 새하얀. . .

    검증 데이터 (학습에 사용하지 않은 데이터)







    각 열에서 위에서부터 순서대로 입력/출력/이상

    역시, 출력이 새하얀. . . 학습이 잘 되지 않았을까...
    학습 곡선도 내려가고 있는 것처럼 보이지 않고.

    요약



    Keras에서 U-net 구조의 모델을 작성할 수는 있었지만,
    결과를 보는 한 학습이 잘 말하지 않을 것 같다.
    개량을 실시해, 학습이 잘 되고 싶다.

    라고 실은, 이미, 개량을 가 보았으므로, 그 결과도 써 가려고 생각했습니다만,
    기사가 길어지면서
    U-net 구조로, 이미지 세그멘테이션 해 보았다. (2) 다음.

    주석



    * 1 : 참조 htps // lmb. 인후 ㎉ 마을 k. 우니 - f 레이브 rg. 에 / 페오 p ぇ / 론 에베 r / 우네 t /

    좋은 웹페이지 즐겨찾기