1. 서 론
최근 양돈 업계에서는 돼지의 생산성을 증대시키기 위하여 많은 노력을 기울이고 있으나, 관리인 1명당 약 1, 000마리에 이르는 규모의 돼지들을 관리하기 때문에 모든 돼지에 대한 세밀한 관찰이 불가능하며 생산성 증대에 한계가 있는 상황이다.이러한 문제를 컴퓨터를 이용하여 해결하기 위하여 돈사 천장에 카메라를 설치하고 카메라로부터 획득한 영상 정보로부터 돼지의 정보를 자동으로 추출하는 다양한 모니터링 방법들이 발표되고 있다.그러나, 최근의 딥러닝 기술을 적용한 객체 탐지기[1]들의 정확도가 크게 개선되었음에도 불구하고, 돼지들의 신체 일부가 돈방내 시설물(facility)에 가려서 보이지 않는 등의 겹침(occlusion) 현상에 의한 정확도 하락 이슈가 남아있으며, 실제 농장에 적용하여 생산성 향상을 위한 다양한 돼지 모니터링 응용을 위해서는 우선적으로개별 돼지를 보다 정확히 탐지할 수 있어야 한다. 또한, 실제 농가에서는 돈방내 암모니아 등 열악한 환경으로 주기적으로 고장난 CPU/GPU를 교체(지난 수년간 돈방에 카메라를 설치하여 모니터링 연구를 진행하였는데, 카메라내 PCB보드가 암모니아 등에의 해 부식되어 평균 수명이 1년 미만)해야 하는데, 유지관리비를 최소화하기 위해서는 엔비디아의 Jetson Nano[2]정도의 저가 임베디드 보드에서 동작할 수 있어야 한다.본 연구에서는 비디오 데이터의 특성을 이용하여 돈사 비디오 모니터링 환경에서 딥러닝 기반 객체 탐지기의 돼지 탐지 문제를 해결(즉, 비디오 처리를 위한 실시간 속도를 만족하면서 돼지 탐지 정확도 개선)하고자 하며, 딥러닝 기반 객체 탐지기 중 처리속도 대비 정확도가 우수하다고 알려진 YOLOv4 [3]의 경량화 버전인 TinyYOLOv4[3]에 제안 방법을 적용한다.
구체적으로는 돈방내 설치된 고정 카메라(static camera)에서 획득되는 비디오 데이터의 특성과 영상 처리 기법을 활용하여 딥러닝 기반 돼지 탐지기의 정확도를 개선하는 방법을 제안한다.즉, 딥러닝 기반 객체 탐지기의 결과를 입력받아 영상 처리에 활용하고, 이러한 영상 처리 결과를 다시 딥러닝 객체 탐지 결과의 보정용으로 활용하여 객체 탐지의 정확도를 지속적으로 개선할 수 있는 순환 구조 방법을 제안한다. 특히, 고정 카메라에서 획득되는 비디오 데이터에 딥러닝 기반 객체 탐지기를 적용한 박스 단위의 객체 탐지 결과를 지속적으로 입력받아 배경 추출용 파라미터[4]를 갱신함으로써 개선된 픽셀 단위의 배경 영상을 획득할 수 있고, 이를 활용하여 돈방내먹이통 등과 같은 시설물의 위치를 파악할 수 있다. 또한, 이러한 돈방내 시설물 정보를 이용하여 딥러닝객체 탐지 결과를 검증하거나 보정함으로써 정지영상에 대한 객체 탐지 결과의 에러를 줄일 수 있다. 마지막으로 TinyYOLOv4[3]에 프루닝 기법을 적용하여 엔비디아의 JetsonNano[2]보드에서 실시간 동작하도록 구현하였다.
제안 방법의 타당성을 검증하기 위해 실제 돈사에서 획득한 비디오 데이터로 실험한 결과, 제안 방법은 베이스라인인 TinyYOLOv4[3]대비 정확도 및 처리속도가 모두 개선되었음을 확인하였다.즉, 모니터링할 돈방의 시설물 등의 위치를 파악하고 이러한 시설물 정보를 활용하여 딥러닝 기반 객체 탐지기의 성능을 개선할 수 있으며, 본 연구의 독창성과 우수성을 확인할 수 있었다.
본 논문의 구성은 다음과 같다. 2장에서는 돼지모니터링과 관련된 기존 연구들을 간략하게 소개하고, 3장에서는 본 연구에서 제안하는 영상 처리 및 딥러닝 간 지속 튜닝 방법에 관하여 기술한다. 4장에서는 제안한 방법으로 실험한 결과를 객관적인 지표로 평가하고, 마지막으로 5장에서 결론 및 향후 연구에 대하여 언급한다.
2. 관련 연구
우선 돈방내 돼지들의 집단적인 행동을 자동으로 모니터링하여 돼지들의 건강이나 이상 상황을 탐지하는 선행 연구들이 발표되었다.예를 들어, 돈방내돼지들의 집단적인 행동 변화를 탐지하여 건강 상태 등의 문제를 신속히 탐지하는 연구가 발표되었고[5], 매일 돈방내 돼지들의 움직임 양을 비교하여 이상 상황 여부를 탐지하는 연구[6]와 돈방내 돼지들의 집단적인 공격 행동을 자동으로 탐지하는 연구[7] 등이 발표되었다.
또한, 돼지의 생산성에 영향을 주는 여러 요인 중돼지의 무게는 돼지의 건강 및 성장 상태, 적정 무게 도달 여부를 통한 돼지의 출하 여부 및 사료 배급량을 결정하며, 특히 가성비 기준 적정 출하 시점과 저성장 돈을 결정하는 중요한 요인이다.따라서 관리인이 직접 돼지의 무게를 측정하는 방법 대신, 돈사 천장에 카메라를 설치하고 카메라로부터 획득한 영상정보에 영상 처리 기법을 이용하여 돼지의 무게를 추정하는 방법이 제안되었고[8], 성장이 상대적으로 느린 저성장돈을 탐지하는 방법이 제안되었다[9].
다음으로는 본 연구와 보다 관련이 있는 개별 돼지 탐지에 대한 여러 결과들이 발표되었는데, 예를 들어 깊이 카메라와 영상 처리 기법을 활용하여 서 있는 돼지를 탐지[10]하거나 근접한 돼지들을 분리[11], 또는 깊이 카메라와 RGB카메라의 정보를 융합하여 조명 변화가 심한 입력 영상에서 전경인 돼지 픽셀들을 추출[12]하는 결과들이 발표되었다.그러나 이러한 저가의 깊이 카메라는 깊이값의 정확도 한계에 따라 보다 넓은 면적을 모니터링하는데는 한계가 있어, 많은 연구들이 통상적인 RGB카메라와 딥러닝 기법을 활용한 결과들을 최근 발표하고 있다. 예를들어, 근접 돼지들을 분리하기 위해 딥러닝 객체 탐지기의 결과를 영상 처리 기법으로 후처리하는 결과 [13], 딥러닝 기반 객체 탐지기의 계산양을 감소 시켜 임베디드 보드에서 동작할 수 있는 결과[14], 딥러닝 기법을 활용하여 돼지들의 포즈를 탐지하는 결과[15] 등이 발표되었다.또한, 딥러닝 기법을 활용하여 돼지를 탐지 및 분할하는 결과[16], 두 개의 딥러닝 모델을 앙상블하여 돼지 탐지의 정확도를 개선한 결과 [17], 딥러닝 앙상블 기법의 수행시간 증가를 최소화하기 위하여 파이프라인 기법을 적용한 결과[18]들도 최근 발표되고 있다.
이렇게 다양한 선행 연구 결과에도 불구하고 실제 양돈 농가의 돈방에는 먹이통 등의 시설물(facility) 이 있으며, 돈방내 시설물에 의한 겹침(occlusion) 현상과 같은 정확도 하락 이슈가 남아있다(Fig.1참조). 즉, 돈방내 돼지들의 신체 일부가 시설물에 가려서 보이지 않는 겹침 현상 등에 의하여 FalseNegative (FN, 돼지를 탐지하지 못하는 미탐지–Fig.1에서 노란색으로 표시)에러 및 FalsePositive(FP, 거짓 돼지를 탐지하는 오탐지–Fig. 1에서 빨간색으로 표시) 에러들이 발생하지만, 본 연구에서는 연속적으로 입력되는 비디오 데이터를 영상 처리 및 딥러닝으로 처리하면서 지속적으로 영상 처리 및 딥러닝의 정확도를 상호 보정할 수 있는 새로운 방법을 제안한다.
Fig. 1. TinyYOLOv4[3] Detection Errors (i.e., FN and FP Errors) caused by the Facilities in a Pig Room.
3. 제안 방법
본 논문에서는 돼지가 있는 돈방에 tilted-down- view카메라를 설치하여 영상을 획득하고, 이를 객체 탐지기인 TinyYOLOv4[3]에 적용하여 객체 탐지 박스들을 획득한다.이후, 고정 카메라에서 획득되는 비디오 데이터에 TinyYOLOv4를 적용한 탐지 박스 단위의 객체 탐지 결과를 지속적으로 입력받아 개선된 픽셀 단위의 배경(background)영상을 획득한다. 이를 활용하여 더 정확한 전경(foreground)및 시설물(facility)추출 영상을 획득한 후, 획득한 시설물 정보를 반영한 합성(composite)영상으로 TinyYOLOv4 를 학습하고, 마지막으로 전경 및 시설물 정보를 이용해서 TinyYOLOv4탐지 박스들의 confidencescore 를 수정하여 탐지 정확도를 향상시킨다.Fig.2는 돼지들의 신체 일부4가 시설물에 가려서 보이지 않는 겹침 현상 등에 의한 FN및 FP에러들을 해결하기 위하여, 연속적으로 입력되는 비디오 데이터를 영상처리 및 딥러닝으로 처리하면서 지속적으로 영상 처리 및 딥러닝의 정확도를 상호 보정할 수 있는 본 논문의 제안 방법에 대한 전체 구성도(크게 Fig.2에서 빨간색으로 표시한 “전처리”모듈과 노란색으로 표시한 “후처리” 모듈로 구성)를 나타낸다.
Fig. 2. Overview of a Proposed Method.
3.1 전처리(Pre-Processing) 모듈
먼저 TinyYOLOv4탐지 결과로 얻은 탐지 박스 정보를 이용하여 현재 프레임의 원본 영상에서 탐지 박스 영역을 제외한 모든 영역의 픽셀 평균값을 구한다. 그 후, 영상의 픽셀 중 현재까지 배경 영상을 갱신하면서 계속해서 탐지 박스 영역에 속했던 픽셀은 배경 영상에 한번도 영향을 주지 않은 것으로 취급하여, 배경 영상의 해당 위치는 현재 영상의 픽셀 평균값으로 대체한다.또한, 실제 배경이 항상 동일하게 유지되지 않기 때문에 현재 실제 배경에 맞추어 배경영상을 점차적으로 갱신할 필요가 있다.따라서, 현재 프레임에서 탐지 박스 영역 외는 각 픽셀마다 이전 프레임에서 생성된 배경 영상과 비교하여 현재 영상의 같은 위치에 있는 픽셀의 값이 더 크면 배경영상의 픽셀값을 1증가, 작으면 1 감소시킨다.그러나 같은 위치에 지속적으로 오탐지가 발생될 경우, 배경 영상에 노이즈가 생성될 수 있다.이를 방지하기 위해서 일정 프레임 동안 배경과 현재 영상의 같은 위치의 픽셀값이 10퍼센트 미만으로 차이가 나면 배경의 해당 픽셀값을 해당 위치 픽셀의 배경 기준값으로 설정한다.즉, 배경과 현재 영상의 픽셀값이 10 퍼센트 이상 차이가 나게 되면 배경 영상을 갱신하지 않도록 한다.본 논문에서는 배경 기준값을 위한 프레임 수를 100으로 설정하여 진행하였고, Fig. 3에서확인할 수 있는 바와 같이 돼지들이 존재하는 비디오 데이터로부터 TinyYOLOv4탐지 결과를 활용하여 매우 정확히 배경 영상을 추출할 수 있다. 마지막으로배경 차(현재 프레임 영상의 픽셀값과 같은 위치에 있는 현재 배경 영상의 픽셀값 차의 결과)를 통해 전경 영상을 추출한다.Fig.4에서 확인할 수 있는 바와 같이 매우 정확한 배경 영상으로부터 매우 정확히 전경 정보를 추출할 수 있다.본 논문의 TinyYOLOv 4 탐지 박스 정보를 이용한 배경 생성 및 갱신과 전경 영상 추출 알고리즘을 슈도 코드로 정리하면 Algorithm 1과 같다.
Fig. 3. Illustration of a Background Image.
Fig. 4. Illustration of a Foreground Image.
Fig. 5. Algorithm for Updating a Background Image and Extracting a Foreground Image.
TinyYOLOv4를 사용한 객체 탐지에서 Fig.1과같이 시설물 뒤에 가려진 객체들에서 오탐지가 발생할 수 있다.따라서, 본 논문에서는 앞서 제안한 전 배경 추출 방법을 이용하여 시설물의 위치를 확인하는데 도움을 주는 시설물 영상 추출 방법을 제안한다. 구체적으로는 객체의 전체적인 모습이 시각적으로 보이는 영역은 객체를 가리는 시설물이 있다고 판단하기 힘들기에, 배경 차로 구한 전경 영상에서 객체가 존재하는 영역의 정보를 이용한다.
먼저, 전경 영상의 전체 픽셀 평균값과 전경 영상에서 각각의 탐지 박스 영역에 대한 픽셀 평균값을 구한다.대부분의 전경 영상에서 객체 영역의 픽셀값이 배경 영역보다 높기에 전체 영상과 탐지 박스 영역을 비교했을 때 탐지 박스 영역의 픽셀 평균값이 더 높게 측정된다.따라서, 탐지 박스 영역의 픽셀 평균값이 전체 영상의 픽셀 평균값보다 낮으면 해당 탐지 박스 영역은 FalsePositive(객체가 없는데 있다고 판단하는 오탐지)로 간주하여 갱신에서 제외한다. 갱신이 진행되는 전경 영상의 탐지 박스 영역에 존재하는 픽셀 중 탐지 박스 영역의 픽셀 평균값보다 높은 곳(객체가 존재하는 곳)에 대해 시설물 영상에서 같은 위치의 픽셀값을 1감소한다.(모든 영역이 겹친 시설물 영역이 될 가능성이 있기에 겹친 시설물 영상의 초기값은 모두 255로 설정한다.)또한, 획득한 배경 영상이 현재 영상의 배경과 완벽히 일치할 수 없고 전경 영상과 시설물 영상에 노이즈를 발생시키기 때문에, 일정 프레임마다 보정 작업을 한다. 본실험에서는 1만 프레임으로 설정하여 진행하였다. 너무 작은 값의 픽셀 변화가 이루어지면 노이즈로 인한 일시적인 결과라고 판단할 수 있기 때문에, 만약 픽셀값이 245이상(일정 프레임 동안 10미만 감소)이면 초기값(255)으로 변경한다.또한, 시설물 내 노이즈로 생긴 구멍이나 외곽선 깎임을 보정하기 위하여, 픽셀값이 255인 영역의 좌우와 위아래의 픽셀들 값을 255로 변경한다.본 논문의 전경 영상을 이용한 시설물 생성 및 갱신 알고리즘을 슈도 코드로 정리하면 Algorithm2와 같고, Fig.7에서 확인할 수 있는 바와 같이 매우 정확하게 시설물 위치를 파악할 수 있다.
Fig. 6. Algorithm for Updating a Facility Image.
Fig. 7. Illustration of a Facility Image.
학습에 필요한 전처리 작업에 대하여 시설물 정보가 담겨있는 전경 영상을 사용할 수 있다.시설물 부근에서는 겹침으로 인하여 오탐지가 빈번하게 발생되므로 본 논문에서는 시설물로 인한 겹침 문제를 해결하기 위해 해당 영역에서의 전처리 작업을 제안한다. 먼저 시설물 정보가 포함되어있는 전경 영상에서 시설물의 영역으로 정의한 255의 픽셀 값을 원본에 같은 위치에 픽셀 값으로 적용시켜 Fig.8과 같이 새로운 시설물의 정보를 포함한 결과물을 생성한다. 이때, 해당 영상에서 돈사의 벽에 해당되는 영역 또한 시설물로 간주되어 255의 픽셀 값을 가지게 된다. 마지막으로, TinyYOLOv4가 시설물에 대한 위치를 파악하도록, 원본 영상 대신 시설물 영역의 픽셀값이 255 로 변경된 합성 영상(즉, Fig.2에서 하늘색으로 표시한 “Composite Image”)을 생성하여 TinyYOLOv4 학습 및 테스트를 수행한다.
Fig. 8. Illustration of a Composite Image with Raw and Facility Images.
3.2 후처리(Post-Processing) 모듈
TinyYOLOv4와 같은 1-stage 탐지기의 특성상 탐지와 분류를 동시에 실행하기 때문에 2-stage 탐지기보다 속도는 빠르지만 탐지 정확도가 낮은 점을보안하기 위해서, 전처리로 획득한 정보들을 이용하여 TinyYOLOv4에서 생성하는 박스 신뢰도 점수를 조정하는 방법을 제안한다.
먼저 해당 탐지 박스의 신뢰도가 부족한지를 판단하기 위하여, 해당 박스에 전경 픽셀이 얼마나 포함되는지 계산한다.앞서 전처리 과정에서 획득한 해당 박스의 전경 픽셀과 탐지 박스에서 전경 픽셀을 제외한 배경 픽셀을 이용하여, 현재 전경 픽셀과 배경 픽셀의 비율이 전체 박스 비율의 0.5보다 낮을 경우 거짓 박스라고 정의한다.이때 획득한 시설물 정보는 전경 픽셀 또는 배경 픽셀이 아니기 때문에, 박스 비율 계산시 해당 시설물 영역의 픽셀은 제외한다. 또한, TinyYOLOv4로 돼지 탐지의 정확도를 측정하였을 때 약 90%정도 되기 때문에, 박스의 임계값 T를 90으로 설정한다.
구체적으로 박스의 신뢰도 점수는 수식 (1)과 (2) 를 이용하여 조정한다.여기서, Ratio는 현재 박스의 전경 픽셀과 배경 픽셀의 비율, Confidence_Box_ Count는 현재 조정하는 박스가 총 박스 중 몇 번째 박스인지, 그리고 Total_Ratio는 현재 조정하는 박스 이전까지 누적되어 계산된 박스들의 평균 Ratio를 의미한다. 또한, 신뢰도 조정에 의한 False Positive를 억제하기 위하여, TinyYOLOv4의 NMS의 신뢰도 기준 값인 0.45를 기준으로 박스 신뢰도를 반 영하 여수식 (1)을 계산한다. 계산 결과, 수식 (2)와 같이 New_Info 값이 1보다 적을 경우 False Positive를 가정하여 신뢰도 점수를 감소시키고, 1보다 크거나 같을 경우 TruePositive를 가정하여 신뢰도 점수를 증가시키는 조정 작업을 마무리한다.마지막으로, 신뢰도 조정 후 Updated_Confidence_Score가 T보다 크거나 같을 경우 해당 객체 정보를 유지하지만, 신뢰도 점수가 T보다 작을 경우 해당 객체 정보를 삭제한다. 본 논문의 영상 정보를 이용한 탐지 박스 신뢰도 검증 및 보정 알고리즘을 슈도 코드로 정리하면 Algorithm 3과 같다.
\(\text { New_Info }=\frac{\text { Ratio }^{*} \text { Confidence_Box__ount } * 0.45}{\text { Total_Ratio }}\) (1)
\(\text { Updated_Confidenece_Score }=\left\{\begin{array}{l} \text { New_Info }<1 \text { 경우 } \quad \text { Confidenece_Score }-\left((100-T) \quad * \quad\left(1-N e w_{-} \text {Info }\right)\right) \\ \text { New_Info } \geq 1 \text { 경우 Confidenece_Score }+((100-T) \quad * \quad(\text { New_Info- } 1)) \end{array}\right.\)(2)
Fig. 9. Algorithm for Updating Confidence Scores of TinyYOLOv4 Bounding Boxes.
Fig.10은 시설물 주변의 전경 정보와 박스 정보 (설명을 위하여, 전경 위치를 흰색, 배경 위치를 검정색, 시설물 위치를 회색으로 표시한 영상 전처리 모듈의 결과를 “RelatedInformation”으로 명시)를 이용하여 TinyYOLOv4의 박스 신뢰도 점수를 미세 조정한 예시를 나타낸다.후처리 모듈의 Algorithm 3을 이용하여 신뢰도 점수를 조정하였으며, 조정된 신뢰도 점수가 기준값 T(T=90)을 넘지 못한 박스들은 삭제하였다.즉, “FPErrorCase”에서 확인할 수 있는 바와 같이 시설물 근처의 오탐지 박스 신뢰도 점수를 90에서 82로 조정함으로써 오탐지 에러를 줄일 수 있다.반면, “FNErrorCase”에서 확인할 수 있는 바와 같이 시설물 근처의 미탐지 박스 신뢰도 점수를 87에서 99로 조정함으로써 미탐지 에러도 줄일 수 있다.
Fig. 10. Illustration of Updated Confidence.
4. 실험 결과
본 실험은 경상남도 하동군에 위치한 바른양돈 내에 70마리 돼지가 활동하는 돈사에서 실험을 진행하였으며, 해당 돈사는 천장의 높이 제약 때문에 돈방내 절반의 영역만을 사선으로 모니터링하도록 카메라를 설치하였다.즉, 영상 데이터 획득을 위해 돈사의 중앙을 기준으로 2.1m높이의 기둥에 약 45도 각도로 QNO-6012R 카메라를 설치하였으며, 이를 통해 1920×1080해상도의 돈방내 돼지들 영상 데이터를 30FPS(FramesPerSecond)의 속도로 획득하였다. 이후, tilted-down-view로 촬영된 영상 내 돼지들의 크기를 균일하게 하기 위하여 Warp Per- spective영상 처리 기법[19]을 적용하였다.또한, 엔비디아의 JetsonNano(quad-coreARMA57com- plex, NVIDIA Maxwell™ architecture with 128 NVIDIACUDAcores, 4GB64-bit)[2]보드에서 실시간을 만족하기 위해 입력 영상을 512×288해 상도로 줄인 후, 베이스라인인 TinyYOLOv4[3]과 제안기법의 성능(정확도 및 처리속도)를 비교하였다. 학습은 Ubuntu16.04LTSOS, IntelCorei7-7700K 4.20GHzCPU, GeForceRTX2080Ti(4352CUDA cores, 11GBVRAM)GPU, 32GBRAM환경에서 iteration은 40, 000, learningrate은 0.00261으로 설정하였고, 하동을 제외한 다양한 농장에서 획득한 966 장으로 학습후 하동 농장에서 획득한 200장으로 파인 튜닝하였다.테스트는 하동 농장에서 획득한 200장으로 엔비디아의 JetsonNano보드에서 진행하였다.
먼저 Algorithm1을 통해 고정 카메라에서 획득되는 비디오 데이터에 TinyYOLOv4를 적용한 박스 단위의 객체 탐지 결과를 지속적으로 입력받아 개선된 픽셀 단위의 배경 영상을 획득하였으며, Fig. 11은시간이 경과함에 따라 갱신된 배경 영상을 보여준다. Fig. 11에서 확인할 수 있는 바와 같이 Algorithm 1에서 제안한 배경 영상 노이즈 제거를 통해, 시간이경과함에 따라 배경 영상이 보다 정확해짐을 확인할 수 있었다.또한, Fig.12는 획득한 시설물 정보를 보여준다. 시설물 내 노이즈로 생긴 구멍이나 외곽선 깎임을 Algorithm2를 통해 보정하였으며, Fig. 12에서 확인할 수 있는 바와 같이 시간이 경과함에 따라 시설물 영상이 보다 명확해짐을 확인할 수 있었다.
Fig.13은 본 논문의 제안 방법과 전경 추출용 영상 처리 방법인 GMM(Gaussian Mixture Model) [20]및 SubSENSE[21], 그리고 전경 추출용 딥러닝 방법인 BSUVnet2.0[22]의 실험 결과를 비교하였다. Fig.13에서 확인할 수 있는 바와 같이 전경 구분 및 노이즈 해결 측면에서 본 논문에서 제안한 방법이 가장 효과적인 것을 알 수 있다.
Fig. 11. Illustration of Updated Background Images within Continuous Frames.
Fig. 12. Illustration of Updated Facility Images within Continuous Frames.
Fig. 13. Comparison of Sample Foreground Images.
Fig.14는 시설물 주변의 영상 정보를 이용하여 TinyYOLOv4의 박스 신뢰도 점수를 미세 조정한 결과를 나타낸다.후처리 모듈은 TinyYOLOv4의 결과를 받아 Fig.14의 왼쪽에 빨간색으로 표시한 박스의 신뢰도 점수를 감소시키는 보정 작업을 통하여 False Positive에러가 될 수 있는 TinyYOLOv4의 탐지 결과를 제거(Fig.14의 오른쪽)할 수 있으며, Fig. 14의왼쪽에 노란색으로 표시한 박스의 신뢰도 점수를 증가시키는 보정 작업을 통하여 False Negative 에러가 될 수 있는 TinyYOLOv4의 탐지 결과를 유지 (Fig.14의 오른쪽)할 수 있음을 확인하였다.물론 후처리 모듈이 TinyYOLOv4의 모든 오탐지(FP)및 미탐지(FN)에러를 해결할 순 없지만, 신뢰도 기준값 (T)근처의 에러들을 해결함으로써 정확도를 개선할 수 있음을 확인하였다.
Fig. 14. Illustration of Error Reduction by Post-Processing Module.
Fig.15는 베이스라인인 TinyYOLOv4와 제안 방법의 최종 탐지 결과 중 일부(에러가 많이 발생하는 프레임 선정)를 보여준다.시설물 주위뿐만 아니라 그렇지 않은 영역에서도 TinyYOLOv4가 하나의 객체를 2개 이상으로 중복 탐지하거나 배경을 객체로 탐지하거나 객체를 탐지하지 못하는 에러들의 일부가 제안 방법의 전처리 및 후처리 모듈에 의하여 보정될 수 있음을 확인하였다.그러나, 탐지기가 생성한 박스의 신뢰도 점수가 극히 낮거나 오탐지된 박스의 위치가 근접한 전경 픽셀과 일정이상 겹침이 발생한 경우 등에서는 제안 방법으로도 에러가 보정될 수 없음을 확인할 수 있었다.
Fig. 15. Detection Results of Baseline and Proposed Methods.
마지막으로, 제안 방법을 엔비디아의 JetsonNano 보드[2]에서 실시간에 처리하기 위하여, 본 연구팀이 제안하였던 클러스터링 기반 프루닝 기법인 필터 클러스터링 기법[23]을 TinyYOLOv4에 수정 적용하였다. 즉, CNN기반 객체 탐지기인 TinyYOLOv4에서 계산량이 가장 많은 컨볼루션 레이어의 3×3 필터들을 클러스터링 기법으로 그룹화하였고 각 그룹 중놈 값이 큰 필터만 남겨두고 나머지 필터들은 제거함으로써 TinyYOLOv4모델을 경량화할 수 있었다.
Table1은 엔비디아의 JetsonNano보드에서 베이스라인으로 사용된 TinyYOLOv4와 본 논문의 제안 방법을 적용하였을 때의 성능 차이를 보여준다. 특히 TinyYOLOv4에 비하여 정확도는 높고 처리속도는 낮은 YOLOv4의 성능을 같이 비교함으로써, 제안 방법의 우수성을 확인하고자 한다.성능을 비교할 때 사용한 AP0.5과 FPS(FramesPerSecond)는 객체탐지 정확도와 처리속도를 측정할 때 사용하는 성능지수이다. 먼저, AP0.5(Average Precision with 0.5 IoU)는 PASCALVOC등의 객체 탐지 벤치마크에서 사용하는 정확도이며, 수치가 클수록 높은 정확도를 의미한다[24].즉, IoU(IntersectionofUnion)0.5 기준 평균 정밀도를 의미하며, “TP(TruePositive) Case”와 “FP(FalsePositive)Case”를 이용하여 계산된 Precision과 “TP(TruePositive)Case”와 “FN (FalseNegative)Case”를 이용하여 계산된 Recall의 반비례 성질을 이용해서 평균을 낸 값이다.또한 1초당 처리된 프레임의 수로 정의되는 FPS는 비디오 응용의 처리속도로 널리 사용되며, 수치가 클수록 높은 처리속도를 의미한다.즉, 통상적으로 초당 30장으로 입력되는 비디오 프레임이 지연없이 처리되기 위해서는 객체 탐지의 처리속도가 30FPS 이상이 면실 시간 처리에 문제가 없다.마지막으로 정확도와 처리속도를 곱하여 하나의 통합 성능지수(Integrated Performance)로 표현할 수 있으며, 수치가 클수록 높은 통합 성능을 의미(즉, 완벽한 정확도를 의미하는 AP0.5=1.0과 실시간 처리속도를 의미하는 30FPS를 곱하면 30.0의 통합 성능을 의미)한다.앞서 설명 한전 처리(3.2절) 및 후처리(3.3절)모듈과 모델 경량화에 의하여 제안 방법은 베이스라인인 TinyYOLOv4 대비 정확도가 4%개선되었으며, 수행 속도도 크게 개선된 것을 확인할 수 있다. 또한, 제안 방법은 YOLOv4에 비해서도 더 높은 정확도 및 약 25배 빠른 처리속도를 달성할 수 있었다.
Table 1. Performance (Accuracy and Speed) Comparison on a Jetson Nano Board [2].
베이스라인인 TinyYOLOv4와 제안 방법의 정확도를 보다 정확히 분석하기 위하여, TP, FP, FN, Precision=TP/(TP+FP), Recall=TP/(TP+FN)을 Table 2에 정리하였다. 제안 방법은 베이스라인인 TinyYOLOv4를 프루닝하여 처리속도를 1.6배 개선시켰음에도 불구하고, 앞서 설명한 전처리(3.2절) 및후처리(3.3절) 모듈의 효과로 FP의 증가를 최소화하면서도 FN을 그 이상으로 감소시켜 TP가 증가되는결과를 얻을 수 있었다.즉, 제안 방법은 베이스라인인 TinyYOLOv4를 경량화시켰음에도 불구하고 Pre- cision감소를 최소화하면서도 Recall을 그 이상으로 증가 시켜 전체 정확도가 개선되는 효과를 확인하였다.
Table 2. Accuracy Comparison in Detail.
마지막으로, 실제 Nano보드에서 구현한 제안 방법의 화면 디스플레이를 캡처하면 Fig.16과 같다.
Fig. 16. Screen Capture of the Proposed Method with a Jetson Nano Board[2].
5. 결론 및 향후 연구
실제 돈사에서 돼지 모니터링을 수행하여 유용한 정보를 얻기 위해서는 각 돈방에서의 정확한 돼지탐지가 중요하다.그러나, 최근의 딥러닝 기술을 적용한 정지영상용 객체 탐지기들의 정확도가 크게 개선되었음에도 불구하고, 돈방내 돼지들의 신체 일부가 시설물에 가려서 보이지 않는 겹침 현상 등에 의하여 FalseNegative(FN, 돼지를 탐지하지 못하는미탐지) 에러 및 FalsePositive(FP, 거짓 돼지를 탐지하는 오탐지) 에러들이 발생하는 문제가 있다.
본 논문에서는 돈방내 설치된 고정 카메라에서 획득되는 비디오 데이터의 특성과 영상 처리 기법을 활용하여 딥러닝 기반 돼지 탐지기의 정확도를 개선하는 방법을 제안하였다.즉, 딥러닝 기반 객체 탐지기의 결과를 입력받아 영상 처리에 활용하고, 이러한 영상 처리 결과를 다시 딥러닝 객체 탐지 결과의 보정용으로 활용하여 객체 탐지의 정확도를 지속적으로 개선할 수 있는 순환 구조 방법을 제안하였다. 구체적으로는, 고정 카메라에서 획득되는 비디오 데이터에 딥러닝 기반 객체 탐지기를 적용한 박스 단위의 객체 탐지 결과를 지속적으로 입력받아 배경 추출용 파라미터를 갱신함으로써 개선된 픽셀 단위의 배경영상을 획득할 수 있고, 이를 활용하여 돈방내 먹이통 등과 같은 시설물의 위치를 파악할 수 있다.또한, 이러한 돈방내 시설물 정보를 이용하여 딥러닝 객체탐지 결과를 검증하거나 보정함으로써 정지영상에 대한 객체 탐지 결과의 FN및 FP에러를 줄일 수 있다.마지막으로 제안된 딥러닝 탐지기를 프루닝 기법으로 경량화하여 엔비디아의 JetsonNano보드에서 실시간에 동작시킬 수 있도록 구현하였다.
제안 방법의 유효성을 확인하기 위해 실제 돈사에서 획득한 비디오 데이터로 실험한 결과, 제안 방법은 베이스라인인 TinyYOLOv4[3]대비 정확도(0.92 에서 0.96으로 개선)및 처리속도(18.36FPS에서 30.60 FPS로 개선)가 모두 개선되었음을 확인하였다. 향후연구로는 앙상블 모델[17]을 활용하거나 영상 처리 결과를 직접 딥러닝 탐지기에 attention map 형태로 입력하는 등의 추가적인 정확도 개선 방법에 대한 연구를 수행하고자 한다.
References
- L. Liu, et al., "Deep Learning for Generic Object Detection: A Survey," International Journal of Computer Vision, Vol. 128, pp. 261- 318, 2020. https://doi.org/10.1007/s11263-019-01247-4
- NVIDIA. NVIDIA Jetson Nano, Available at http://www.nvidia.com/object/embedded-systems-dev-kits-modules.html (accessed Feb- ruary 1, 2022).
- A. Bochkovskiy, C. Wang, and H. Liao, "Yolov4: Optimal Speed and Accuracy of Object Detection," arXiv P reprint, arXiv: 2004.10934, 2020.
- I. Setitra and S. Larabi, "Background Subtraction Algorithms with Post Processing: A Review," Proc. of ICPR, 2014.
- S. Mathews, A. Miller, J. Clapp, T. Plotz, and I. Kyriazakis, "Early Detection of Health and Welfare Compromises through Automated Detection of Behavioural Changes in Pigs," The Veterinary Journal, Vol. 217, pp. 43-51, 2016. https://doi.org/10.1016/j.tvjl.2016.09.005
- Y. Chung, H. Kim, H. Lee, D. Park, T. Jeon, and H. Chang, "A Cost-Effective Pigsty Monitoring System based on a Video Sensor," KSII Transaction on Internet and Information Systems, Vol. 8, No. 4, pp. 1481-1498, 2014. https://doi.org/10.3837/tiis.2014.04.018
- J. Lee, L. Jin, D. Park, and Y. Chung, "Automatic Recognition of Aggressive Behavior in Pigs using a Kinect Depth Sensor," Sensors, Vol. 16, No. 5, pp. 631, 2016. https://doi.org/10.3390/s16050631
- K. Jun, S. Kim, and H. Ji, "Estimating Pig Weights from Images Without Constraint on Posture and Illumination," Computers and Electronics in Agriculture, Vol. 153, pp. 169-176, 2018. https://doi.org/10.1016/j.compag.2018.08.006
- S. Lee, H. Ahn, J. Seo, Y. Chung, D. Park, and S. Pan, "Practical Monitoring of Undergrown Pigs for IoT-Based Large-Scale Smart Farm," IEEE Access, Vol. 7, pp. 173796-173810, 2019. https://doi.org/10.1109/access.2019.2955761
- J. Kim, Y. Chung, Y. Choi, J. Sa, H. Kim, Y. Chung, D. Park, and H. Kim, "Depth-based Detection of Standing-pigs in Moving Noise Environments," Sensors, Vol. 17, No. 12, pp. 2757, 2017. https://doi.org/10.3390/s17122757
- M. Ju, Y. Choi, J. Seo, J. Sa, S. Lee, Y. Chung, and D. Park, "A Kinect-based Segmentation of Touching-pigs for Real-time Monitoring," Sensors, Vol. 18, No. 6, pp. 1746, 2018. https://doi.org/10.3390/s18061746
- J. Sa, Y. Choi, H. Lee, Y. Chung, D. Park, and J. Cho, "Fast Pig Detection with a Top-view Camera Under Various Illumination Conditions," Symmetry, Vol. 11, No. 2, pp. 266, 2019. https://doi.org/10.3390/sym11020266
- H. Lee, J. Sa, H. Shin, Y. Chung, D. Park, and H. Kim, "Separation of Occluding Pigs using Deep Learning-based Image Processing Techniques," Journal of Korea Multimedia Society, Vol. 22, No. 2, pp. 136-145, 2019. https://doi.org/10.9717/KMMS.2019.22.2.136
- J. Seo, H. Ahn, D. Kim, S. Lee, Y. Chung, and D. Park, "EmbeddedPigDet: Fast and Accurate Pig Detection for Embedded Board Implementations," Applied Sciences, Vol. 10, No. 8, pp. 2878, 2020. https://doi.org/10.3390/app10082878
- M. Riekert, S. Opderbeck, A. Wild, and E. Gallmann, "Model Selection for 24/7 Pig Positions and Posture Detection by 2D Camera Imaging and Deep Learning," Computers and Electronics in Agriculture, Vol. 187, pp. 106213, 2021. https://doi.org/10.1016/j.compag.2021.106213
- S. Tu, W. Yuan, Y. Liang, F. Wang, and H. Wan, "Automatic Detection and Segmentation for Group-Housed Pigs based on PigMS RCNN," Sensors, Vol. 21, No. 9, pp. 3251, 2021. https://doi.org/10.3390/s21093251
- H. Ahn, S. Son, H. Kim, S. Lee, Y. Chung, and D. Park, "EnsemblePigDet: Ensemble Deep Learning for Accurate Pig Detection," Applied Sciences, Vol. 11, No. 12, pp. 5577, 2021. https://doi.org/10.3390/app11125577
- H. Ahn, S. Son, S. Yu, Y. Suh, J. Son, S. Lee, Y. Chung, and D. Park, "Accurate Pig Detection for Video Monitoring Environment," Journal of Korea Multimedia Society, Vol. 24, No. 7, pp. 890-902, 2021. https://doi.org/10.9717/KMMS.2021.24.7.890
- Open Source Computer Vision: 'OpenCV', Available at http://opencv.org (accessed February 1, 2022).
- C. Stauffer and W. Grimson, "Adaptive Background Mixture Models for Real-Time Tracking," Proc. of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 2, pp. 1063-6919, 1999.
- P. St-Charles, G. Bilodeau, and R. Bergevin, "Subsense: A Universal Change Detection Method with Local Adaptive Sensitivity," IEEE Issue 1, pp. 359-373, 2015.
- M. Tezcan, P. Ishwar, and J. Konrad, "BSUVNet 2.0: Spatio-Temporal Data Augmentations for Video-Agnostic Supervised Background Subtraction," IEEE Access, Vol. 9, pp. 53849- 53860, 2021. https://doi.org/10.1109/ACCESS.2021.3071163
- M. Hong, H. Ahn, O. Atif, J. Lee, D. Park, and Y. Chung, "Field-Applicable Pig Anomaly Detection System using Vocalization for Embedded Board Implementations," Applied Sciences, Vol. 10, No. 19, pp. 6991, 2020. https://doi.org/10.3390/app10196991
- M. Everingham, L. Gool, C. Williams, J. Winn, and A. Zisserman, "The Pascal Visual Object Classes (VOC) Challenge," International Journal of Computer Vision, Vol. 88, pp. 303-338, 2010. https://doi.org/10.1007/s11263-009-0275-4