NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    기타 머신러닝 4부 - 인셉션 V3를 이용해서 이미지 학습시키기.

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 앞서 아나콘다와 파이썬, 텐서플로우 및 CUDA, cuDNN까지 설치를 마쳤습니다. 오늘은 이미지를 학습시켜볼텐데요. 처음부터 학습하기 위한 코딩을 하거나 그렇지는 않습니다. 구글에서 공개한 Inception V3를 이용해서 다시 학습시키는 쉬운 방법이 있거든요. 학습 알고리즘과 아키텍처는 Inception V3에서 제공하는걸 재사용합니다. 아래는 구글이 공개한 아키텍쳐예요.

    img.png 

     

     

    아참~ 이전에 모두 Visual Studio Code를 설치하셨죠? Visual Studio Code를 실행하고 아래와 같이 아나콘다 폴더를 시작폴더로 설정하세요.

    img.png 

     

     

    아무래도 Visual Studio Code에서 파이썬 코드를 작성하고 프로젝트를 관리하는게 편리하죠^^; 메뉴의 파일에서 폴더를 선택하고 아나콘다 폴더를 선택하면 자동으로 위 그림처럼 로딩이 됩니다. 이제 학습에 사용할 샘플 이미지들을 만들어야 합니다. 저는 아래와 같이 만들었는데요. 사실... 이미지가 몇장 없어서 복사 붙여넣기로 대충 넣었습니다. 아마도... 이것 때문에 나중에 모델의 퀄리티가 상당히 낮을걸로 예상됩니다. 여러분들은 제대로된 이미지로 테스트 해보시기 바랍니다. 아니면... 이미지 협찬을~!!! ^^;

    img.gif 

     

     

    이미지 폴더를 만들때 규칙이 있습니다. 앞에서도 몇번 설명했지만, 경로에 띄어쓰기나 대문자가 포함되지 않도록 하는게 중요합니다. 물론, 한글도 사용하지 마세요^^; 그래서 아래 그림처럼 내문서나 사용자 아이디가 들어갈 수 있는곳을 피해서 폴더를 만들고 이미지들을 넣어줬습니다. 가능하면 C 또는 D드라이브의 루트에 이미지를 넣어놓는게 좋을겁니다. 그리고, arrows폴더 안에 bottom, left, top, right폴더가 있습니다. 이 폴더 이름이 분류 이름이 됩니다. 만약, 분류할 이미지가 flower, car, fly, man, woman... 이런식이라면 폴더 이름도 이렇게 지어주면 됩니다.

    img.png 

     

     

    각각의 폴더에는 이미지들을 넣어주면 됩니다. 이 때 이미지 이름도 폴더 이름과 동일하게 숫자와 영문 소문자로 이름을 지어주세요. 특수문자나 한글이 들어가면 여러가지 문제를 발생 시키거든요^^; 이런 사소한것 때문에 많은 시간을 소비하는 것은 좋지 않습니다. 가급적이면~ 규칙에 맞게 파일들을 정리하는게 좋습니다.

    img.png 

     

     

    이제 구글에서 inceptionv3_retrain.py파일을 다운로드 받습니다. 파일 소스는 깃헙에 올라와 있는데요. 아래 주소에서 받으시면 됩니다. (또는 첨부파일을 다운로드 받으세요.)

    https://gist.github.com/solaris33/6acfafab2e87eb8dce5ae7b7a1c4d7dc 

     

     

    그리고, Visual Studio Code의 tools폴더에 넣어주세요.

    img.png 

     

     

    이제 학습시켜볼까요? Visual Studio Code의 터미널에서 아래 명령을 실행시킵니다.

    python inceptionv3_retrain.py --image_dir C:\arrows

    img.png 

     

     

    사실 소스에서 몇가지 수정을 해야 하지만~ 디테일한 부분은 나중에 알아보기로 할께요. 이미지 포멧이나 이미지 사이즈를 학습시키는 이미지에 맞게 변경해야 정확도가 올라갑니다. 물론, 이미지를 흑백으로 하거나 특징이 잘 나타날 수 있도록 해주는것도 중요합니다. 관련 포럼에 보면 이미지 사이즈는 클수록 좋다고 하는군요. 이런 부분들은 테스트를 해봐야 어떤 결과물이 좋은지 판단할 수 있을거 같아요. 참고로~ 그래픽카드가 좋을수록 정확도와 속도가 올라갑니다. 학습이 완료되었군요^^

    img.png 

     

     

    아래 폴더에 가보면 새로운 파일들이 생성되어 있을겁니다. 테스트하느라 불필요한 파일들도 보이는데요. 중요한건 output_graph.pboutput_labels.txt입니다. 이 2개의 파일이 정상적으로 생성되면 엔지엠에서 이미지를 추론할 수 있게됩니다.

    img.png 

     

     

    output_labels.txt를 열어보면 폴더 이름이 레이블로 되어 있는것을 알 수 있습니다. 머신러닝 모델은 output_graph.pb 파일인데요. 용량이 약 85메가정도 됩니다. 이미지가 많을수록 용량은 커지게 됩니다. 대략 200장정도 학습시킨 결과인데요. 같은 이미지를 다 복사붙여넣기해서 사실 불필요한 데이타가 많이 포함되어 있을거에요. 당연히 정확도도 떨어지겠죠^^;

    img.png 

     

     

    아래 그림은 텐서보드로 학습된 결과를 시각화해서 보여주는건데요. 이걸 이용해서 어떤 데이타를 넣어서 결과를 받아볼지 분석해야 합니다. 그리 어려운 작업은 아니라서 누구나 쉽게 할 수 있긴합니다.

    img.png

     

     

    이렇게해서 이미지를 학습하는 방법에 대해 알아봤습니다. 구글에서 이미지를 추론할 수 있는 아키텍처를 공개해서 내가 원하는 이미지를 쉽게 학습시킬 수 있게 되었습니다. 그리고, 이 모델을 엔지엠에서 사용할 수 있습니다. 학습이 어떻게 진행되었는지... 그리고, 인풋 데이타와 아웃풋 데이타를 어떻게 가져와서 처리해야 하는지는 다음 시간에 알아보도록 하겠습니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    profile_image

    토뮤리얼님의 댓글

    no_profile 토뮤리얼 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    설명이 상세하고 깔끔하네요 ㅎ

    profile_image

    시네라리아님의 댓글

    no_profile 시네라리아 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    한번 해봐야겠습니다 감사합니다^^

    profile_image

    시네라리아님의 댓글

    no_profile 시네라리아 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    링크 걸어주신 inceptionv3_retrain.py 로는 안되는군요 ㅠ 추후 소스좀 올려주세용 ㅠ

    profile_image

    엔지엠소프트웨어님의 댓글의 댓글

    엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date

    링크 주소를 변경했습니다. 그리고, 첨부파일로 추가해놨습니다.

    profile_image

    롤로노이님의 댓글

    no_profile 롤로노이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    어떤걸 잘못했길래 이럴까요 다 하라는대로했는데 ㅠㅠ

    profile_image

    엔지엠소프트웨어님의 댓글의 댓글

    엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date

    아래 명령으로 텐서플로우를 다시 설치하고 해보세요.
    pip install tensorflow==1.15 --force-reinstall
    pip install tensorflow-gpu==1.15 --force-reinstall

    profile_image

    롤로노이님의 댓글의 댓글

    no_profile 롤로노이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    버쥬얼에서 하나여? 아니면 아나콘에서 하나영?
    버주얼에서 아나콘으로 돌리다가 이런 오류 메세지가 떳는데 다시 첨부터 시도 해야 하는건가여?
    아까도 이런 비슷한 메세지가 뜨긴 했었는데 잘 설치 된건줄 알고 그냥 넘어갔는데

    profile_image

    엔지엠소프트웨어님의 댓글의 댓글

    엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date

    비주얼 스튜디오 코드에서 하시면 됩니다~