저희 팀은 결과적으로 <AI로 고기 등급을 판별하는 우육 등급 판별기> 프로젝트를 담당했습니다. 초기 프로젝트를 구성할 때 세 가지 항목을 바탕으로 진행했습니다.
1) 도축 단계에서 X-ray 검수 시스템
X-ray 사진을 CV(컴퓨터비전)모델에게 맡겨서 그 CV(컴퓨터비전) 모델이 직접 학습한 후, 이 소가 도축에 적합한 소인지 아닌지 판별하는 검수 시스템을 계획했습니다. 휴먼 에러 최소화에 가장 중점을 두고 구상했었습니다.
2) 우육 등급 판별 시스템
소고기의 마블링 분포와 채도를 통해서 이 소의 등급이 어떤 것인가? 판별하는 시스템입니다. 개발 효과는 빠르고 투명한 등급 판별 기능에 있었습니다.
3) 축산업 업무 환경 개선을 위한 상용화
우육 판별 시간이 길어질수록 냉동고 체류 기간은 훨씬 늘어날 테고, 저온에서 발생하는 각종 질병들에 노출될 확률이 큽니다. 저희 프로젝트는 상업성이 짙은 프로젝트로, 앞의 검수 시스템과 등급 판별 시스템을 스캔더 장비에 내장해서 현장에 직접 적용하는 프로젝트까지 구성했었습니다.
[프로젝트 과정]
저희는 데이터 전처리에 네 가지 기법을 사용했고요. 리사이징과 라벨링, 데이터 스프릿과 데이터 오그멘테이션을 사용했습니다. 기법들을 설명하기 전 데이터 전처리를 할 때 초기에 시도했던 게 있어요. 어떻게 하면 마블링을 조금 더 선명하게 표현할 수 있을까 고민하다가 가우시안 블러와 컨투어 기법을 사용을 했었습니다. 이 방법으로 굉장히 만족할 만한 결과물이 나왔습니다.
리사이징은 jpg 파일을 이용했고요. 256*256 정도의 사진 크기가 가장 적합하다는 결론이 나와서 그 사이즈로 리사이징을 하게 됐습니다. 라벨링은 애초에 데이터 수집할 때 팀원분들께서 각각 따로 데이터 수집을 해주셨고요.
라벨링을 하기 위해서 각 프레임 별로 새 디렉토리를 만들고 안에 있는 이미지 파일명을 모두 바꿨습니다.
데이터 오그멘테이션은, 저희가 이 프로젝트를 수행하면서 가장 어려웠던 게 데이터 수집이었어요. 아무래도 제대로 된 데이터를 찾는 게 힘들었고 일주일 동안 열심히 데이터를 수집해 봤는데 모은 사진이 250장 정도밖에 안 됐어요. 그래서 이 데이터를 조금 더 증폭 시켜야겠다는 판단이 들어서 오그멘테이션을 사용했습니다.
[결과물]
지금 저희 적중률이 90%이상 달성했고요. 맨 처음에 돌렸을 땐 성능이 생각보다 굉장히 좋게 나와서 한 300번 정도 epoch를 돌렸었거든요. 성능이 굉장히 좋게 나와서 이게 과적합이 아닌가? 라는 의심을 했었는데, 그래프를 통해서 보니까 과적합이 아니라는 것을 확인했습니다.