본문 바로가기
포트폴리오/MFC

[포트 폴리오] OpenCV를 이용한 QA Tool

by Youngs_ 2022. 10. 5.

텔레칩스에 (주)시너지컨설팅 소속으로 QA 파견근무를 진행할때 업무 효율을 높이기 위해서 MFC(C++)와 OpenCV를 이용해 이미지의 유사도를 비교하는 툴을 만들어서 사용하였습니다.

 


 

해당 툴은 Visual Studio 2008로 만들어졌으며, OpenCV 2.4.9, MFC 사용하였습니다.

해당 툴은 카메라가 연결되어 있어야 하며, 카메라가 연결되어 있지 않다면 해당 툴의 기능이 제대로 실행되지 않을 수 있습니다.

해당 툴은 프로젝트를 개발 한 후에 디스플레이에 노이즈, 깜빡임 혹은 그 이외의 화면 이상이 있을경우 캡쳐해주는 툴입니다.

해당툴은 D:\QA_Tool폴더를 만들고 그안에 Fail_Image, Capture_Image 폴더가 생성됩니다.

D:\QA_Tool\Fail_Image에 이미지가 너무 많을경우 삭제가 오래 걸릴수 있으며, 삭제되는 동안 캠화면이 멈출수 있습니다.

D:\QA_Tool\Fail_Image 안의 이미지의 삭제가 오래 걸린다면, 직접 삭제하고 툴을 다시 실행하는것이 더욱 빠를수 있습니다.

테스트가 끝난 후에 캡쳐된 이미지는 비교대상에서 제외됩니다.

테스트중에는 VIEW 다이얼로그를 열 수 없습니다.

테스트중에 세팅값을 변경 할 수 있습니다. 하지만 이미 테스트된 결과는 이전에 입력된 세팅값으로 결과가 저장되어있으며, 세팅값을 변경 한 후에 테스트 되는 결과만 새롭게 입력된 세팅값으로 테스트 됩니다.

설명

Main 화면

Setting

  • 카메라 : 노트북의 경우 내장된 카메라가 0번으로 설정되어 있으며, 0 ~ 5번의 카메라를 선택할수 있다. 카메라가 연결되어 있지 않다면 카메라가 연결되어 있지 않다는 메시지 박스가 나온다.
  • n번 검사 : 테스트를 총 반복할 횟수
  • n초후 검사 : 테스트를 처음 시작할때 입력한 숫자만큼 대기
  • 화면 사이의 n초 간격 : 이미지 1개를 비교할때 입력한 시간만큼 비교
  • 정확도 : 1 ~ 100,000 사이의 숫자를 입력 할 수 있으며 1은 0.001%, 100,000은 100%를 의미한다. 기본값으로 90,000이 설정되어 있으며 이는 90%를 의미 (1,000당 1%)

결과 표 Column

  • 반복 : n번째 검사중이라는 의미
  • n번째 항목 : 자신이 캡쳐한 항목중 몇번째 항목을 비교 하였는지 알려주는 컬럼이다.
  • 결과 : 1개의 항목이라도 유사도가 자신이 설정한 정확도 이하로 나오면 Fail로 처리한다.
  • 총 비교한 이미지 : 현재 항목을 몇개의 이미지와 비교하였는지
  • FAIL 이미지 : 유사도가 자신이 설정한 정확도 이하가 나온 이미지 갯수 (FAIL 이미지는 D:\QA_Tool\Fail_Image 폴더에 저장된다.)
  • 최저 정확도 : 결과가 FAIL이 나온 이미지중 정확도가 가장 낮은 이미지의 정확도

각 버튼의 기능

  • VIEW : 이미지를 캡쳐할수 있는 다이얼로그가 열린다.
  • Setting : 세팅값을 입력한 후에 이 버튼을 누르면 세팅값이 적용된다.
  • START : 이 버튼을 누르면 D:\QA_Tool\Fail_Image 폴더안의 파일들을 삭제 한 후 테스트가 시작된다.
  • STOP : 테스트중 이 버튼을 누르면 테스트가 종료된다.
  • 폴더 열기 : D:\QA_Tool 폴더를 연다.

VIEW 다이얼로그

  • 좌측상단에서 캠을 선택한 후에 변경 버튼을 누르면 해당 카메라로 캡쳐를 시작한다.
  • 우측에 8개의 사각형이 있는데 해당 사각형 옆의 CAP 버튼을 누르면 현재 화면을 캡쳐하며, 해당 이미지는 D:\QA_Tool\Capture_Image에 저장된다.
  • 캡쳐한 이미지 아래의 COM버튼을 누르면 캡쳐한 이미지와 현재 캠으로 입력받고있는 화면의 유사도를 출력해준다.
  • 캡쳐한 이미지 초기화 버튼을 누르면 자신이 캡쳐한 이미지들이 비교대상에서 제외된다.

콘솔

 콘솔에 해당 사진처럼 현재 진행중인 사항 등이 출력되며, Fail이 나오면 어떤 이미지가 유사도 몇으로 FAIL이 나왔는지 출력된다.

테스트 결과

 테스트 결과는 위와같이 txt파일로 D:\QA_Tool 폴더에 저장된다.

Fail Image

 이미지가 Fail이 나왔다면 D:\QA_Tool\Fail_Image 경로에 해당 사진과 같이 Fail이 나온 이미지가 저장이되며, Fail이 나온 시간을 체크하고 싶다면 해당 사진을 우클릭한 후 속성에 들어가서 확인하면 된다. 이미지를 캡쳐할 경우에도 동일하게 D:\QA_Tool\Capture_Image 폴더에 이미지가 저장된다.

댓글