카테고리 없음

[Swift] WWDC19 Understanding Images in Vision Framework

냄수 2024. 11. 16. 22:38
반응형

Understanding Images in Vision Framework세션을 정리한 글입니다.

 

Saliency

정의: 이미지를 보고 가장먼저 시선이 끌리는 곳

saliency에는 두가지 유형이있음

attention base(주의 기반)

  • human aspected
  • trained on eye movements

이미지가 표시될때 보는 위치에 따라 생성

사람들이 이미지를 볼때 처음 보는 위치를 반영하고 강조표시함

 

objectness base(객체성 기반)

  • foreground objects
  • trained on object segmentation

이미지의 피사체를 강조하는것을 목표로함

이미지의 피사체 분할에 대해 훈련

 

 

사람사진으로 비교해보면

 

 

attention base는 사람의 얼굴을 먼저 보는 경향이 있기 때문에 얼굴주변이 가장 두드러지고

objectness base는 인물이 이미지의 주체라면 인물 전체가 강조되야함

따라서 attension base가 더 복잡

왜냐하면 매우 인간적인 요인에 의해 결정되기때문!

 

attension기반 saliency를 결정하는 주요요소 숫자는 대비, 얼굴, 피사체, 지평선 및 빛임

예를들어서

우산색상이 정말 돋보여서 눈에 띄지만

우리눈은 우산이 향하는곳을 추적하려고하기에 도로도 눈에 띄게됨

 

히트맵은 Float로 이뤄진 아주작은 CV픽셀버퍼로 이뤄짐

0~1사이의 범위에서 0은 중요하지않고 1은 가장두드린것을 나타냄

VNGenerateAttentionBasedSaliencyImageRequest

VNGenerateObjectnessBasedSaliencyImageRequest를 사용

 

Image Classification

분류체계를 구성할때 규칙이 존재함

클래스가 시각적으로 식별가능해야함

휴일이나 축제같은 추상적개념을 피함

고유명사, 형용사 또는 기본 모양과 관련된 클래스 뿐만아니라 논란여지있는 클래스도 피함

 

VNClassifyImageRequest사용

임계값보다 낮으면 객체가 이미지에 존재하지 않는다고 말함

그렇다면 임계값을 어떻게 선택할까?

위 그림에서 자전거도 오토바이로 인식되면 화가날것 임

아래와같이 코드를 개선함

hasMinimumPrecision 및 재현율값을 사용하여 필터링을 수행함

 

높은 재현율 검색에 대해 이야기햇는데

오토바이가 없는데 존재하는게 싫어서 높은 임계값을 적용하면

실제로 오토바이 이미지만 얻을 순 있지만

전체적으로는 적은 수의 이미지를 얻음

 

정밀도 및 재현율 곡선(PR Curve)

recall(재현율) = 0.7 을 달성한 작동지점에 precision(정밀도) = 0.74 인것을 알수있음

내 응용프로그램에 적합한 수준을 달성하는 균형점을 찾고싶음

hasMinimalPrecision을 지정할때 실제로는 그래프에서 작업하려는 영역을 선택하는것

 

 

 

Image Similarity

가장 기본적인 방법은 픽셀자체를 사용하는것

즉 ,픽셀값이 비슷한 경우이다

그러나 이런방식으로 검색하면 매우 취약함

회전, 조명, 확대같은 작은변경으로 쉽게 속일 수 있음

 

feature print는 이미지의 내용을 설명하는 벡터임

얼마나 유사한지 비교할 수 있음

값이 작을수록 두 이미지가 의미론적으로 더 유사한것임

시각적으로 유사하지않더라도 시각적으로 유사한 다른 동물 쌍보다 훨씬 더 유사한 feature print를 가지고있음을 알 수 있음

 

New detectors

동공감지 개선

VNDetectFaceLandmarksRequest 를 이용하여 얼굴랜드마크 얻을 수 있음

랜드마크속성은 FaceLandmarks2D클래스임

신뢰도 점수로 구성되고

각 얼굴 영역에 대한 평균 단일 신뢰도 점수임

pointCount는 얼굴영역 나타내는 포인트수 알려줌 (65 or 76등)

 

Face Capture Quality

얼굴캡처 품질

이미지를 전체적으로 살펴보고 품질이 얼마나 나쁜지 좋은지 알려주는 점수를 제공

VNDetectFaceCaptureQualityRequest 사용

 

human detector(new) & animal detector(new)

추적된개체를 다시 캡처하고 추적시퀀스를 계속 진행할 수 있음

VNTrackObjectRequest 사용

 

New revisions

 

반응형