NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • NGM 5
  • 매뉴얼

    NGM 5의 매뉴얼입니다.

    NGM 5

    NGM 5의 매뉴얼입니다.

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

    에디터 [머신 러닝] 기계 학습 매크로 학습 시키기 1부. (Training machine learning samples)

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 이전 시간에 만든 샘플 데이타를 이용해서 학습하는 방법에 대해 알아보도록 하겠습니다. 몇가지 효율에 대한 사전 지식을 공유해드릴께요. 아래 내용을 참고하여 샘플 이미지를 만들면 도움이 될 수 있습니다.

    • 포지티브 이미지가 많을수록 좋음.
    • 네거티브 이미지는 포지티브 이미지보다 작아야 함.
    • 스테이지는 22를 넘지 않도록 하는게 중요함.
    • HAAR보다는 LBP를 사용하는게 좋음.
      - 디텍팅 하려는 대상에 따라 성능은 달라짐.
    • 샘플 이미지는 작을수록 효율은 올라가지만 정확성은 떨어짐.
    • 샘플 이미지가 작더라도 디텍팅하려는 대상의 특징이 잘 반영되면 효율이 가장 좋음.
    • 컴퓨터 성능이 좋지 않다면 스레드 수를 명시적으로 설정하는게 좋음.
    • 컴퓨터 성능이 좋고 빠른 작업을 위한다면 스레드 수를 0으로 설정하는게 좋음.
      - 0으로 설정하면 자동으로 최상의 스레드 수로 적용됨.
    • 가능하면 포지티브 샘플은 2,000, 네거티브 샘플은 1,000 이상이 되어야 함.
      - 총 천연색의 이미지나 특징이 잘 나타나지 않는 사물을 검색할 때...

     

    학습하기에 앞서 네거티브 이미지들을 미리 저장해둬야 합니다. 라이언이 없는 이미지를 약 10장정도 네거티브 폴더에 저장 해두세요. 제 경우는 8장 정도 저장해두었습니다. 오답용 이미지이기 때문에 라이언이 포함되어 있으면 안됩니다.

    img.png

     

     

     

    아래 그림을 참고해서 기계학습 트레이닝 유틸리티를 실행하세요.

    1. 메뉴의 유틸리티 클릭
    2. 기계학습 시키기 클릭
    img.png

     

     

     

    우측의 속성에서 ①VEC 파일 선택에 앞에서 만든 VEC파일을 선택해줍니다. 그리고, ②트레이닝 파일 저장 폴더를 설정합니다. 이 폴더에 트레이닝(학습)이 완료된 모델 파일이 저장되게 됩니다. 사실 다른 위치를 설정해도 됩니다.

    img.png

     

     

     

    아래 그림과 같이 공용 설정 내용을 입력하세요. 주의할 점은 스테이지 수가 21을 넘어가면 속도가 많이 느려진다는 점입니다. 물론, 컴퓨터 성능에 좌우되는 문제이긴 하지만요. 또하나의 변수는 이미지 크기 입니다.

    1. 포지티브 샘플 수: 1,000
    2. 네거티브 샘플 수: 500
    3. 스테이지 수: 20
    img.png

     

     

     

    샘플 카운트에 대해 추가로 설명하고 넘어갈께요. 우리가 이전 시간에 만든 샘플 수는 1,000개입니다. 그렇다고해서 트레이닝에 사용되는 포지티브 샘플 수가 1,000개일 필요는 없습니다. 4,000을 입력해도 되죠. 하지만, 이러한 값들은 내부 알고리즘에 의해 Fail될 수도 있습니다.

     

    공식은 "포지티브 샘플 수 + (스테이지 수 - 1) * (1 - 최소 적중율) * 포지티브 샘플 수 + S" 입니다. 이 공식에서 S는 건너뛴 샘플 수를 의미합니다. 건너뛴 샘플이란 VEC에 포함된 샘플로 실제 단계별 검증에서 건너뛴 수를 말합니다. 그리고 여기서 말하는 포지티브 샘플 수는 VEC의 샘플수가 아님을 명심해야 합니다. 이 공식과 관련해서 논문이 있는데요. 저도 필요한 부분만 본거라 더이상 설명이 어렵네요-_-;

     

    이제 몇가지 설정을 더 추가해줍니다. 아래 그림을 참고하세요.

    1. 샘플 이미지 폭과 넓이: 이 값은 샘플링에서 입력한 값과 동일해야 합니다.
    2. 최소 적중률: 이 값이 높을수록 단계별 매칭에서 실패해도 중지되지 않습니다.
    3. 트레이닝 모드: All로 선택합니다.
    img.png

     

     

     

    트레이닝 모드는 총 3가지입니다. All은 일단 제외하고, Basic과 Core입니다. 이 둘은 사물을 빠르게 검출 또는 감지하기 위한 알고리즘을 정리한 내용으로 [ 학술자료 ]에서 확인이 가능합니다. 내용을 보면 배이직은 리니어고 Core는 리니어와 45도 회전을 같이 사용합니다. 아마도 저처럼 반도체, LCD 공정 관련 일을 하시는 분들이면 들어봤을 법한 내용이죠^^; 리니어, 어로우, 리그레션등등요. 자세히 읽어보지는 않았지만, 보통은 회귀 분석과 같이 사용됩니다.

     

    이제 거의 다 왔습니다-_-; 조금만 더 들어주세요ㅠㅠ; 아래 그림처럼 완료된 설정을 ①저장합니다. 그리고 ②실행 해보세요. 시간이 좀 걸릴수도 있습니다.

    img.gif

     

     

     

    작업이 완료될 때까지 잠시(?) 기다립니다. 제 노트북 기준으로 약 30분 정도 걸리는군요. 생각보다 오래 걸리죠^^; 작업이 완료되었다면 시각화 툴을 이용해서 학습된 결과를 미리 볼 수 있습니다. 다음에는 이전 시간에 알아보지 않았던 테스트 이미지 만들기와 시각화에 대해서 알아보도록 하겠습니다.

    img.jpg

     

     

     

    개발자에게 후원하기

    img.jpg

     

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.