룩아웃 포 비전을 통한 결함 감지
  • 21 Oct 2024
  • 4 읽을 분
  • 기여자

룩아웃 포 비전을 통한 결함 감지


기사 요약

룩아웃 포 비전을 통한 결함 감지

Tulip Vision과 AWS Lookout for Vision으로 결함에 대한 자동 육안 검사 구현

육안 검사는 생산 품질 유지의 핵심 요소이지만, 전담 검사 인력에 대한 비용이 많이 들기 때문에 비용을 절감하면서 구현하기는 어렵습니다. 또한 수동 육안 검사는 매우 반복적이고 시각적으로 어려울 수 있어 이탈률이 높은 작업입니다.

카메라와 머신러닝을 이용한 자동 육안 검사는 이 모든 것을 완전히 바꿔놓습니다. 머신러닝을 기반으로 한 육안 검사 알고리즘은 시간과 정확도 면에서 사람의 능력을 능가할 정도로 발전했습니다.

Tulip을 사용하면 Vision 카메라 출력을 동급 최강의 시각적 이상 감지 클라우드 서비스에 연결하여 자동 시각적 검사를 구현할 수 있습니다. Amazon의 Lookout for Vision은 이러한 서비스 중 하나로, 간단한 REST API 엔드포인트에서 강력한 알고리즘을 제공하여 Tulip에 쉽게 통합할 수 있습니다.

이 문서에서는 사전 번들로 제공되는 라이브러리 앱으로 Tulip 내에서뿐만 아니라 Cloud Formation을 통해 AWS에서 빠르게 설정하는 방법을 보여드립니다. 이 과정에 대한 라이브 튜토리얼은 다음 동영상을 참조하세요.

전제 조건

이 과정을 시작하기 전에 다음 리소스가 준비되어 있는지 확인하세요:

:::(Info) (참고) 현재 Lookout for Vision은 특정 AWS 지역에서만 사용할 수 있습니다:

AWS 콘솔에서 Lookout for Vision 설정하기

AWS 콘솔에서 필요한 클라우드 인프라를 설정하는 데 도움을 드리기 위해 클라우드 형성 템플릿(다운로드)을 제공합니다. CFT는 Tulip으로 Lookout for Vision(LfV)의 탐지 모델을 훈련하고 실행하는 데 필요한 모든 것을 AWS 클라우드에 프로비저닝하는 짧은 스크립트입니다. 이 스크립트는 LfV 프로젝트, LfV 모델을 활성화하기 위한 일부 AWS Lambda 함수, 그리고 이 함수들과 통신하기 위한 AWS API 게이트웨이를 생성합니다. Tulip은 AWS API 게이트웨이 엔드포인트를 호출하여 시각적 검사가 수행되는 Tulip 앱 내에서 LfV 모델에 대한 명령을 실행합니다.

  1. CFT를다운로드합니다.
  2. AWS 콘솔의 클라우드 형성으로 이동합니다.

  1. 스택을 생성하고 CFT 파일을 업로드합니다.

  1. CloudFormation 스택 생성 스크립트를 실행합니다.

  1. 출력을 기록합니다.

  1. 곧 커넥터 함수를 설정하는 데 다시 사용할 것이므로 apiGatewayInvokeURL 값을 기록해 두거나 그렇지 않으면 메모해 두세요.
    또한 리소스 탭에서 API 키를 적어둡니다. 이를 클릭하고 값을 찾아야 합니다.

이제 클라우드 포메이션에서 AWS를 프로비저닝했으므로, 이제 Lookout for Vision으로 시각적 머신 러닝 모델을 훈련할 수 있습니다. 이를 위해서는 주석이 달린 이미지 데이터 세트가 있어야 합니다. 데이터 세트를 수동으로 만들 수도 있지만, 데이터 수집 앱[링크]을 사용하여 Tulip으로 데이터를 쉽게 수집할 수 있는 방법을 제공합니다. 데이터는 Tulip 테이블에 저장되며 이 테이블에서 쉽게 내보낼 수 있습니다. 다음 몇 단계에서는 데이터 집합이 Tulip에서 수집되었다고 가정하겠습니다.

  1. Tulip 테이블에서 데이터 집합 내보내기.

  1. Lookout for Vision에서 생성한 S3 버킷에 데이터 세트를 업로드합니다.

  1. Lookout for Vision에서 데이터 집합을 만들고 S3 버킷을 소스로 선택합니다.

레이블 자동 첨부를 선택해야 합니다:

이제 룩아웃 포 비전에서 데이터 세트가 준비되었으므로 모델을 학습시킬 수 있습니다. 이 과정은 약 45분 정도 소요되며, AWS 콘솔에서 쉽게 수행할 수 있습니다.

  1. 모델 학습을 클릭합니다.

  1. 학습 상태를 확인합니다.

  1. 학습 결과를 검토합니다.

모델 학습이 완료되면 AWS 측에서 더 이상 수행해야 할 작업이 없습니다. 클라우드 포메이션에서 모든 연결이 완료되었으므로 이제 Tulip을 Lookout for Vision에 연결하기만 하면 됩니다.

Lookout for Vision 모델을 호출하도록 Tulip 설정하기

Tulip은 API를 통해 외부 서비스와 통합할 수 있는 기능이 뛰어나기 때문에 AWS Lookout for Vision과 쉽게 통합할 수 있습니다. 지난 섹션의 REST API 엔드포인트를 사용하여 Tulip 커넥터 함수를 통해 LfV 모델을 제어하겠습니다. 하지만 함수를 처음부터 새로 만드는 대신 "Lookout for Vision을 통한 결함 감지" 라이브러리 앱에서 미리 빌드된 함수를 제공합니다. 이렇게 하면 많은 시간을 절약할 수 있고 커넥터가 올바르게 빌드되었는지 확인할 수 있습니다. 하지만 먼저 특정 AWS 계정의 올바른 데이터로 커넥터 함수를 채워야 합니다.

  1. Tulip에서 커넥터 함수를 찾습니다.

  1. 커넥터의 경우 앞서 Cloud Formation에서 복사한 AWS의 올바른 엔드포인트 URL을 설정합니다:

  1. 각 함수에 대해 AWS에서 API KEY를 설정합니다.

4개의 기능 모두에 대해 이 작업을 수행해야 합니다.

Tulip 앱에서 Lookout for Vision 사용

라이브러리에서 제공된 결함 감지 앱에서 시각적 검사를 실행하기 위한 매우 기초적인 프로세스를 설정했습니다. 필요에 따라 앱을 수정하거나 앱의 일부를 다른 앱으로 복사할 수 있습니다. 앱을 사용하려면 특정 Tulip Vision 설정에 맞게 몇 가지 작은 수정을 해야 합니다. 시각적 피드백을 위해 카메라 미리보기 위젯뿐만 아니라 캡처 트리거를 비전 카메라 구성으로 지정해야 합니다.

  1. 올바른 카메라 구성으로 Tulip 앱 카메라 위젯을 설정합니다.

  1. 올바른 카메라 구성으로 '이상 현상 감지' 트리거를 설정합니다.

이제 Tulip에서 모델을 실행하기 위한 모든 준비가 완료되었습니다. 모델을 추론(이미지 평가)에 사용할 수 있으려면 먼저 "호스팅"해야 하는데, 이는 모델을 앱에 제공하기 위해 클라우드 가상 머신과 같은 일부 클라우드 컴퓨팅 리소스를 사용한다는 의미입니다. 이를 위해 제공된 Tulip 앱에 버튼을 만들었습니다.

:::(Info) (참고) 모델이 "호스팅"되면 비용이 부과되는 리소스를 사용하게 됩니다. 사용하지 않는 모델은 반드시 끄셔야 하며, 그렇지 않으면 수익 없이 비용을 지출할 위험이 있습니다. AWS LfV 요금은 여기에서 확인할 수 있습니다. AWS는 LfV를 위한 무료 티어도 제공합니다. Tulip은 AWS에서 비공개로 호스팅되는 리소스에 대해 책임을 지지 않지만 문의 사항이 있는 경우 언제든지 문의해 주세요:::

검사 카메라가 연결된 플레이어 PC에서 결함 감지 앱을 실행합니다. 실행 중인 앱에서 다음 단계를 수행합니다:

  1. 모델을 켜기("호스팅").

:::(Info) (참고) 모델을 시작하면 비용이 발생하기 시작합니다. 반드시 꺼야 합니다.:::

  1. 모델 호스팅 상태를 확인합니다.

"호스팅됨" 상태를 확인합니다. 상태가 "호스팅됨"이 아닌 경우 모델은 쿼리를 수락하지 않습니다.

  1. 모델에서 추론 요청을 실행합니다.

이제 모델이 개체가 결함인지 정상 부품인지에 대한 예측을 해야 합니다. 모델이 잘못된 예측을 할 경우 감지 정확도에 대한 피드백을 제공하는 버튼을 추가했습니다. 이 버튼은 튤립 테이블과 데이터 세트에 더 많은 데이터를 추가합니다. 더 많은 샘플 이미지를 제공하여 주기적으로 모델을 재훈련하여 모델의 견고성을 높이세요.

결론

지금까지 Tulip에서 머신 러닝 기반 자동 시각적 검사를 시작하는 쉬운 프로세스를 살펴봤습니다. 이 프로세스를 통해 사람이 직접 수행하는 육안 검사에 드는 수작업 리소스를 절약할 수 있습니다. 또한 이 프로세스를 적용하면 본질적으로 제품에서 발생하는 모든 결함에 대한 시각적 데이터 세트를 얻을 수 있으며, 이를 검사 이외의 다른 방식으로 사용할 수 있습니다.

Tulip의 연결 기능을 사용하면 머신 러닝을 쉽게 적용하고 구현할 수 있습니다. 매우 유사한 방식으로 다른 클라우드 ML 서비스를 사용하도록 선택할 수도 있습니다.

더 읽어보기


이 문서가 도움이 되었습니까?