제 8회 BOAZ 빅데이터 컨퍼런스 -04 YOLO WOW (You Only Look Once at What yOu Want)BOAZ Bigdata
[제 8회 BOAZ 빅데이터 컨퍼런스]
YOLO라는 유명 Object Detection 모델은 너무 모범생입니다. 모든 것을 보고 모든 것을 탐지합니다. 하지만 세상은 티내는 모범생을 좋아하지않습니다! 다 알면서도 모른척, 필요할 땐 하나에 집중할 수 있는 진짜 모범생 모델로 가꾸어봤습니다. 더 나아가 CCTV와 같은 영상 감시 매체에서,특정 도메인 탐지를 통해 유의미한 감시가 될 가는성을 제시하고 구현하였습니다.
9기 권순찬 박선희 오희령
****국내최초 빅데이터 대학생 연합동아리 BOAZ****
페이스북: https://www.facebook.com/BOAZbigdata/
블로그: http://blog.naver.com/boazbigdata
인스타그램: http://www.instagram.com/boaz_bigdata
딥러닝으로 구현된 Object Detection Model에 대한 정리 1편입니다.
R-CNN, Fast R-CNN, Faster R-CNN, YOLO, SSD(Single Shot Detector) 등 주요 모델들이 나온 배경과 각 모델들이 해결하고자 했던 문제들에 대해 요약된 형태로 정리되어 있습니다.
2016.6 기준으로 정리된 내용이며, 이후 내용에 대한 슬라이드는 따로 업로드 예정입니다.
요약 논문 목록 및 관련 링크는 : https://github.com/ildoonet/deep-object-detection-models/
Deep learning기법을 이상진단 등에 적용할 경우, 정상과 이상 data-set간의 심각한 unbalance가 문제. 본 논문에서는 GAN 기법을 이용하여 정상 data-set만의 Manifold(축약된 모델)를 찾아낸 후 Query data에 대하여 기 훈련된 GAN 모델로 Manifold로의 mapping을 수행함으로서 기 훈련된 정상 data-set과의 차이가 있는지 여부를 판단하여 Query data의 이상 유무를 결정하고 영상 내에 존재하는 이상 영역을 pixel-wise segmentation 하여 제시함.
제 8회 BOAZ 빅데이터 컨퍼런스 -04 YOLO WOW (You Only Look Once at What yOu Want)BOAZ Bigdata
[제 8회 BOAZ 빅데이터 컨퍼런스]
YOLO라는 유명 Object Detection 모델은 너무 모범생입니다. 모든 것을 보고 모든 것을 탐지합니다. 하지만 세상은 티내는 모범생을 좋아하지않습니다! 다 알면서도 모른척, 필요할 땐 하나에 집중할 수 있는 진짜 모범생 모델로 가꾸어봤습니다. 더 나아가 CCTV와 같은 영상 감시 매체에서,특정 도메인 탐지를 통해 유의미한 감시가 될 가는성을 제시하고 구현하였습니다.
9기 권순찬 박선희 오희령
****국내최초 빅데이터 대학생 연합동아리 BOAZ****
페이스북: https://www.facebook.com/BOAZbigdata/
블로그: http://blog.naver.com/boazbigdata
인스타그램: http://www.instagram.com/boaz_bigdata
딥러닝으로 구현된 Object Detection Model에 대한 정리 1편입니다.
R-CNN, Fast R-CNN, Faster R-CNN, YOLO, SSD(Single Shot Detector) 등 주요 모델들이 나온 배경과 각 모델들이 해결하고자 했던 문제들에 대해 요약된 형태로 정리되어 있습니다.
2016.6 기준으로 정리된 내용이며, 이후 내용에 대한 슬라이드는 따로 업로드 예정입니다.
요약 논문 목록 및 관련 링크는 : https://github.com/ildoonet/deep-object-detection-models/
Deep learning기법을 이상진단 등에 적용할 경우, 정상과 이상 data-set간의 심각한 unbalance가 문제. 본 논문에서는 GAN 기법을 이용하여 정상 data-set만의 Manifold(축약된 모델)를 찾아낸 후 Query data에 대하여 기 훈련된 GAN 모델로 Manifold로의 mapping을 수행함으로서 기 훈련된 정상 data-set과의 차이가 있는지 여부를 판단하여 Query data의 이상 유무를 결정하고 영상 내에 존재하는 이상 영역을 pixel-wise segmentation 하여 제시함.
[2023] Cut and Learn for Unsupervised Object Detection and Instance Segmentationtaeseon ryu
CutLER은 라벨 없이 객체 탐지와 분할 모델을 훈련시키는 간단한 방법입니다. 자가 지도 학습 모델의 객체를 찾는 능력을 이용하고, 이를 강화하여 최첨단 위치 지정 모델을 사람의 라벨 없이 훈련시킵니다. CutLER은 먼저 MaskCut 방법을 사용하여 이미지에서 여러 객체의 대략적인 마스크를 생성한 다음, 이러한 마스크에 대해 견고한 손실 함수를 사용하여 탐지기를 학습시킵니다. 모델의 예측 결과로 자가 훈련을 통해 성능을 더욱 향상시킵니다. 이전 연구에 비해 CutLER은 더 간단하며 다양한 탐지 아키텍처와 호환되고 여러 객체를 탐지할 수 있습니다. 또한 CutLER은 무감독 탐지기로서 다양한 도메인의 벤치마크에서 AP50 성능을 2.7배 이상 향상시킵니다.
오늘 논문 리뷰를 위해 자연어처리 조해창님이 자세한 리뷰를 도와주셨습니다 많은 관심 미리 감사드립니다!
[2023] Cut and Learn for Unsupervised Object Detection and Instance Segmentationtaeseon ryu
CutLER은 라벨 없이 객체 탐지와 분할 모델을 훈련시키는 간단한 방법입니다. 자가 지도 학습 모델의 객체를 찾는 능력을 이용하고, 이를 강화하여 최첨단 위치 지정 모델을 사람의 라벨 없이 훈련시킵니다. CutLER은 먼저 MaskCut 방법을 사용하여 이미지에서 여러 객체의 대략적인 마스크를 생성한 다음, 이러한 마스크에 대해 견고한 손실 함수를 사용하여 탐지기를 학습시킵니다. 모델의 예측 결과로 자가 훈련을 통해 성능을 더욱 향상시킵니다. 이전 연구에 비해 CutLER은 더 간단하며 다양한 탐지 아키텍처와 호환되고 여러 객체를 탐지할 수 있습니다. 또한 CutLER은 무감독 탐지기로서 다양한 도메인의 벤치마크에서 AP50 성능을 2.7배 이상 향상시킵니다.
오늘 논문 리뷰를 위해 자연어처리 조해창님이 자세한 리뷰를 도와주셨습니다 많은 관심 미리 감사드립니다!
You Only Look Once: Unified, Real-Time Object Detection
1. You Only Look Once: Unified, real-time object detection
Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. p. 779-788.
발표자 : 오유진
2. Abstract
Key point
• 이미지의 bounding box 를 실시간으로 검출
• Object detection 을 regression 문제로 접근해, 별도의 region proposal 을 위한 구조 없이 한 번에 전체 이미지로부터 어떤 object 들이 어디에
위치하고 있는지 예측 가능
‐ RCNN 류에서는 bounding box 를 찾고 region proposal, 각 bounding box 에 대해 classification/regression 을 하는 다단계 방식.
regression, detection score 두 가지 task를 모두 수행 → 속도가 느림
• 속도가 빠르지만 정확도가 떨어짐
3. YOLO
[YOLO Detection System]
• 이미지 내의 bounding box 와 class probability 를 single regression problem 으로 간주해, 이미지를 한 번 보는 것으로 object 의
종류와 위치를 추측
[YOLO가 가지고 있는 상대적인 장/단점]
• 장점
‐ 간단한 처리과정으로 속도가 매우 빠름
‐ Background error(False positive)가 낮음
‐ Object 에 대한 더 일반화된 특징을 학습
• 단점
‐ 상대적으로 낮은 정확도(특히, 작은 object 에 대해)
✓ 이전의 object detection 문제가 어떻게 regression 으로
해결되었나?
RCNN 기반의 모델들은 sliding window 사용하거나,
물체가 있을 것 같은 곳이나 아무데나 bounding box를 뿌린 후
이것을 모두 분류한 다음 필요 없는 것들 지우고 점수 매기는 방법
-> 한번만 이미지를 보고 resize 해서 CNN 한번만 거치고
NMS 통해서 object detection
4. • Input image 를 𝐒 × 𝐒 grid 로 나눔
• 각 grid cell 이 해당 object 를 감지하고, grid cell 은 B 개의 bonding box에 대한 confidence score 를 예측
‐ Score 는 모델이 해당 box 에 object 가 얼마나 포함되고 예측 정확도가 얼마나 정확한지 반영
‐ Confidence Score: 𝑷𝒓 𝒐𝒃𝒋𝒆𝒄𝒕 ∗ 𝑰𝑶𝑼 𝒑𝒓𝒆𝒅
𝒕𝒓𝒖𝒕𝒉
, (object 가 존재하지 않으면 0)
• 각각의 bounding box 는 5개의 prediction 으로 구성: (x, y, w, h, confidence)
‐ (x, y) 좌표는 grid cell 의 bound 기준으로 한 상자의 중심
‐ Confidence 는 predicted box 와 모든 ground truth box 사이의 IOU
• 각각의 grid cell 은 C 개의 conditional class probability 를 가짐
‐ Conditional Class Probability: 𝑷𝒓 𝑪𝒍𝒂𝒔𝒔𝒊 𝑶𝒃𝒋𝒆𝒄𝒕)
• Test time 에 conditional class probability 와 bounding box 의 confidence score 를 곱해 class 별 confidence score 계산
‐ 𝐂𝐥𝐬𝐬𝐒𝐩𝐞𝐜𝐢𝐟𝐢𝐜𝐂𝐨𝐧𝐟𝐢𝐝𝐞𝐧𝐜𝐞𝐒𝐜𝐨𝐫𝐞 = 𝑷𝒓 𝑪𝒍𝒂𝒔𝒔𝒊 𝑶𝒃𝒋𝒆𝒄𝒕) ∗ 𝑷𝒓 𝑶𝒃𝒋𝒆𝒄𝒕 ∗ 𝑰𝑶𝑼 𝒑𝒓𝒆𝒅
𝒕𝒓𝒖𝒕𝒉
= 𝑷𝒓 𝑪𝒍𝒂𝒔𝒔𝒊 ∗ 𝑰𝑶𝑼 𝒑𝒓𝒆𝒅
𝒕𝒓𝒖𝒕𝒉
YOLO – Unified Detection
PASCAL VOC 에서 S=7, B=2, C=20
𝑆 × 𝑆 𝐵 × 5 + 𝐶 tensor
5. • GoogleNet model 기반으로 구축
• Convolutional layer 24개, Fully connected layer 2개로 구성
– 1 × 1 reduction layer 에 3 × 3 Convolutional layer 가 뒤따르는 모양을 사용
• Final output 은 7 × 7 × 30 tensor
• Fast YOLO 는 9개의 convolutional layer와 더 적은 수의 filter 사용해 속도 높여 사용
YOLO – network design
Feature extractor
Object classifier
27. YOLO – loss function
Object가 존재하는 grid cell 𝑖 의 predictor bounding box 𝑗 → 가장 좋은 BB 만 더 가중되게 하기 위해서
Object가 존재하지 않는 grid cell 𝑖 의 bounding box 𝑗
Object가 존재하는 grid cell 𝑖 → object 가 있는지 없는지
1) Object 가 존재하는 grid cell 𝑖 의 predictor bounding box 𝑗 에 대해 x
와 y 의 loss 를 계산
2) Object 가 존재하는 grid cell 𝑖 의 predictor bounding box 𝑗에 대해, w
와 h 의 loss 를 계산
• Large box 에 대해서 small deviation 반영 위해 제곱근 취한 후 SSE
(같은 error라도 large box 의 경우 상대적으로 IOU 에 영향을 적게 줌)
3) Object 가 존재하는 grid cell 𝑖 의 predictor bounding box 𝑗 에 대해,
confidence score 의 loss 계산 𝑪𝒊 = 𝟏
4) Object 가 존재하지 않는 grid cell 𝑖 의 bounding box 𝑗 에 대해 confidence
score 의 loss를 계산 𝑪𝒊 = 𝟎
5) Object 가 존재하는 grid cell 𝑖 에 대해, conditional class probability 의 loss 계
산 (Correct class c: 𝒑𝒊 𝒄 = 𝟏, otherwise: 𝒑𝒊 𝒄 = 𝟎)
𝜆 𝑐𝑜𝑜𝑟𝑑, coordinates(x,y,w,h)에 대한 loss 와 다른 loss 들과의 균형을 위한 balancing parameter
𝜆 𝑛𝑜𝑜𝑏𝑗, obj 가 있는 box 와 없는 box 간에 균형을 위한 balancing parameter (obj 가 없는 cell 이 더 많기 때문)
28. YOLO – training
• ImageNet 1000-class dataset 으로 20개의 convolutional layer 를 pre-training
• Pre-training 이후 4 convolutional layers 와 2 fully connected layers 를 추가
• BB 의 width 와 height 는 이미지의 width 와 height 로 normalize
• BB 의 x 와 y 는 특정 grid cell 의 위치의 offset 값 사용
• 𝜆 𝑐𝑜𝑜𝑟𝑑 = 5, 𝜆 𝑛𝑜𝑜𝑏𝑗 = 0.5 → BB 안에 object 가 있는지 없는 미리 판단하기 때문에 𝜆 𝑐𝑜𝑜𝑟𝑑 가 더 높음
• Batch size : 64
• Momentum : 0.9
• Learning rate : 0.001에서 0.01로 epoch 마다 천천히 상승시킴. 이후 75 epoch 동안 0.01, 30 epoch 동안 0.001, 마지막 30 epoch 동안 0.0001
• Dropout Rate : 0.5
• Activation function : leaky rectified linear activation
[ limitation]
• 각각의 grid cell 이 하나의 class 만을 예측하기 때문에, 작은 object 여러 개가 (새 무리) 붙어있으면 제대로 예측하지 못함
• Bounding box 의 형태가 training data 를 통해 학습되기때문에, 새로운 형태의 bounding box의 경우 정확한 예측이 어려움
• 몇 단계의 layer 를 거쳐서 나온 feature map 을 대상으로 bounding box 를 예측하므로 localization 이 다소 부정확해짐
29. YOLO – Experiments(detection system 비교)
• Fast YOLO 는 155fps 로 가장 빠른 처리 성능을 보임
• YOLO 와 Faster RCNN 과 유사한 mAP 수준
• Fast RCNN 은 error 는 background 영역에서 대부분
발생, YOLO error 는 localization 부분에서 발생
• Fast RCNN 과 YOLO 를 함께 사용하면 background
error 문제를 보완할 수 있음
30. YOLO – Experiments(detection system 비교)
• 정확도 측면에서 Fast RCNN + YOLO 가 최상위권
• 다른 distribution 을 가지는 환경에 모델이 얼마나 잘 일반화하는지 알아
보기 위한 실험 수행
– Artwork dataset(Picasso, People-Art)에서 실험
• YOLO 는 높은 AP 값을 보이면서 다양한 BB 검출