1. 정석적인 평균 필터 적용(픽셀 전부에 필터링 적용)


  • 코드

  • 우선 이미지는 RGB의 3 채널로 이루어져 있으며 각 픽셀의 값은 0~1 사이의 값
  • get_pixel이라는 YOLO의 내장 함수로 탐지해낸 객체 안의 픽셀값을 불러와서 평균 필터를 하나하나 적용하는 방법을 사용
  • set_pixel이라는 YOLO의 내장 함수로 필터링을 거친 픽셀의 값을 원래 값과 교체
  • 객체의 모든 픽셀에 적용(반복문)
  • 결과

  • 성능이 좋은 데스크탑임에도 불구하고 프레임이 16밖에 나오지 않았음
  • 좀 더 모자이크처럼 보이고 필터 처리량을 줄이기 위한 방법을 찾아보기로 함

2. 일정한 간격으로 필터링


  • 코드

  • 픽셀값을 가로 10칸, 세로 10칸씩 건너서 필터링하며 동일한 값으로 setting(10 x 10)
  • for문안의 변수를 10씩 증가시키며 반복하고 아래에서 10 x 10 만큼 같은 값으로 setting 해주었음
  • 결과

  • 처음 만들어본 처리 방식(모든 픽셀 값에 필터링을 적용)보다 2배 높은 속도를 보임(30 FPS)
  • 데스크톱에서는 빠르게 실행되지만 보드에서는 좀 더 최적화를 할 필요가 있어 보임

3. TX1 board - 임베디드 환경 최적화


  • 코드

  • 평균 필터 부분을 완전히 없애버림(연산의 최소화)
  • 10 x 10의 행렬 중에서 가장 첫 번째 값을 복사하여 전체에 채워줌
  • 결과

  • 모자이크의 모양은 예쁘지 않지만 최대한으로 최적화된 프로그램을 만들어냄
  • 데스크톱에서는 별다른 변화가 없지만 연산량이 최소화됨
  • 동작 동영상 : https://giantpark197cm.tistory.com/211
 

[6월7일]1학기 최종 보고서 - 현재까지 진행상황과 추가할 기능들

 

giantpark197cm.tistory.com

+ Recent posts