이미지 인식 Image recognition 

나무라는 추상적인 개념

선택적 주의 집중 selective attention 

문맥 context  

종합적 이해 

 

'픽셀을 읽어들여 어떻게 문맥 정보를 추출하고 이들을 어떻게 종합하여 이해할 것인가' 

'인간이 이미지를 인식하는 매커니즘을 밝혀내고, 이를 기계로 하여금 모방하도록 해 보자' 

 

요인 Feature를 정의하여 사용하고, 

이들을 종합하고 이해하도록 하기 위해 Learning model과 Learning algorithm을 사용하여 이를 머신 러닝 차원으로 해결하고자 하였다. 

 

 

이런 이미지 인식 시도를 통해 자신감을 얻은 공학자들은, 

기계의 이미지 인식 성능의 Benchmark로 삼을 수 있는 데이터셋들을 만들기 시작함. 

 

 

그 중 초창기 이미지 인식 대회 중 가장 대표적인 것이 Pascal VOC Challenge라고 한다. 

 

* Pascal VOC는 컴퓨터 비전 연구 분야에서 널리 사용되는 데이터 형식 중 하나. 

PASCAL Visual Object Classes Challenge라는  거대 스케일의 이미지 데이터셋 인식 성능을 겨루는 경연 대회에서 따온 이름이다. 이 대회를 기점으로 Classification, Detection, Segmentation 등 이미지 인식에서 다루는 문제들이 상당 부분 정형화되었다고 할 수 있다고 함. 

 

Pascal VOC형식은 XML을 사용해 이미지에 대한 정보와 이미지 내의 객체에 대한 Annotation을 저장함. 각 객체에 대한 바운딩박스, 객체 클래스, 때로는 객체의 특정 부위나 상태에 대한 정보도 포함할 수 있음. 

 

* Pascal VOC 형식

<annotation>
    <folder>VOC2007</folder>
    <filename>000001.jpg</filename>
    <source>
        <database>The VOC2007 Database</database>
        <annotation>PASCAL VOC2007</annotation>
        <image>flickr</image>
        <flickrid>341012865</flickrid>
    </source>
    <owner>
        <flickrid>Fried Camels</flickrid>
        <name>Jinky the Fruit Bat</name>
    </owner>
    <size>
        <width>353</width>
        <height>500</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>dog</name>
        <pose>Left</pose>
        <truncated>1</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>48</xmin>
            <ymin>240</ymin>
            <xmax>195</xmax>
            <ymax>371</ymax>
        </bndbox>
    </object>
    <object>
        <name>person</name>
        <pose>Left</pose>
        <truncated>1</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>8</xmin>
            <ymin>12</ymin>
            <xmax>352</xmax>
            <ymax>498</ymax>
        </bndbox>
    </object>
</annotation>

 

01). PASCAL VOC · GitBook (deepbaksuvision.github.io)

 

01). PASCAL VOC · GitBook

No results matching ""

deepbaksuvision.github.io

 

 

Classification 

주요 목표는 주어진 이미지 안에 어느 특정한 클래스에 해당하는 사물포함되어 있는지 여부분류하는 모델을 만드는 것. Class는 분류대상이 되는 Catagory 하나하나를 지칭. 반드시 Class를 먼저 정해놓고 작업을 시작해야 함. 

Classification 수행의 결과로 주어진 이미지 안에 특정 클래스의 사물이 존재할 가능성, 믿음을 나타내는 신뢰도 점수 Confidence score를 구한다.  

 

 

단일 사물일 경우, 큰 신뢰도 값을 선정하면 되지만, 복수의 사물일 경우 그럴 수가 없음. 

그래서 PASCAL VOC Challenge의 경우 각 클래스마다 문턱값(threshold)을 미리 설정해서, 클래스 별 신뢰도가 문턱값보다 큰 경우에 한하여 해당 클래스가 포함되어 있을 것이라고 결론 짓도록 함. 

 

각 클래스마다의 문턱값을 결정하는 문제는, 어떤 평가 척도를 사용하여 평가할 것인지의 문제와 엮어서 같이 고민해야 함. 

복수 사물 분류 문제가 현실 상황에 부합하지만 상대적으로 어려운 문제이기도 함. 

 

Evaluation measure 평가 척도는 정확도 Accuracy. 

정확도 = 올바르게 분류한 이미지수 / 전체 이미지 수 

단일 사물 분류에서는 위에서 정의한 정확도를 평가 척도로 사용해도 큰 문제가 없지만, 복수 사물에서는 곤란함. 

 

그래서 정확도 대신 정밀도Precision 및 재현율Recall 등의 평가 척도를 사용한다. 

클래스C의 정밀도 = 올바르게 분류한 클래스C 이미지수 / 클래스C일 것으로 예측한 이미지 수 

클래스C의 재현율 = 올바르게 분류한 클래스C 이미지수 / 전체 클래스C 이미지 수

 

각 클래스에 대한 정밀도 및 재현율을 계산한 뒤, 이들 전체의 대표값을 취하고, 이를 최종적인 평가 척도로 삼는다 함 

 

Mean precision 평균 정밀도 

Mean recall 평균 재현율

 

 

다시 문턱값 계산으로. 

 

car 클래스의 문턱값을 높게 잡으면, car 클래스로 예측하게 되는 이미지 갯수가 감소함. 

정밀도는 상승하지만 정확도가 낮은 실제 car 이미지들을 놓치게 되므로 재현율은 하락함. 

 

car 클래스의 문턱값을 낮게 잡으면, car 클래스로 예측하게 되는 이미지 갯수가 증가함. 

좀만 비슷해도 car로 예측하면서 재현율이 상승하나 car가 아닌 것도 car로 예측하게 되어 정밀도 하락함. 

 

위에서도 보이듯이 정밀도와 재현율 간에는 서로 약한 trade-off 관계가 존재한다. 

 

정밀도-재현율 곡선 Precision-recall curve 

근데 문턱값을 이 그래프만 보고 정하면 안된다고 함

'이는 마치 시험 시작 직전에 시험 출제 문제를 1분 정도 슬쩍 컨닝한 뒤 시험을 보는 것과 같은 행동입니다.' ㅋㅋㅋㅋㅋ

 

그래서 나온 것이 

평균 정밀도 Average precision 

 

평균 정밀도는 각 문턱값에서 얻어지는 정밀도를 재현율의 증가량으로 곱한 것들의 총합으로 정의되며, 정밀도-재현율 곡선과 재현율 축 사이의 넓이에 해당. 

 

Classification에서 성능이 좋은 모델을 Detection 또는 Segmentation을 위한 구조로 변형하여 사용할 경우, 우수한 성능을 발휘한다고 함. 

 

 

잘 읽었다.. 다음 포스팅도 계속 이어짐.. 구독해야지  

https://www.cognex.com/ko-kr/blogs/deep-learning/research/overview-image-recognition-pascal-voc-challenge-1

 

이미지 인식 문제의 개요: PASCAL VOC Challenge를 중심으로 (1) - 블로그| 코그넥스

이미지 Classification 문제와 딥러닝: AlexNet으로 개vs고양이 분류하기

www.cognex.com

 

+ Recent posts