1. 컴퓨터 비전 이미지 프로세싱, 분류 방법
- opencv 내부 함수사용
- opencv 머신러닝 알고리즘
- 딥러닝
![blue bright lights](https://i0.wp.com/www.pikitimes.com/wp-content/uploads/2023/10/pexels-photo-373543.jpeg?resize=1200%2C800&ssl=1)
2. 컴퓨터비전 Opencv 응용분야
- 문서에서 텍스트 추출 OCR, 텍스트가 아닌 부분 추출
- 비주얼 챗봇 – 이미지 분석 및 관심 있는 특징이나 객체 추철, 의미있고 상황에 맞는 응답 생성
- 실시간 번역 – 이미지에서 텍스트 추출, GPT 이용 번역
- 비주얼 메모리 저널 – 일상 캡처 이미지 분석으로 맥락 이해, GPT이용 상황에 맞는 일기 생성
- 박물관 가이드 : 인식된 객체 여사적 데이터와 연결, GPT 이용 설명적이고 흥미로운 내러티브 생성
3. 머신러닝
- AI : 축적된 데이터를 통계적으로 분석 및 증명하고 새로운 데이터를 예측
- ML : 축적된 데이터(특징추출 수동), 통계적 증명, 예측, 단층신경망
- DL : 축적된 데이터 (특징추출 자동), 통계적증명, 예측, 다층신경망
축적된 데이터 기준
- ML : 정형 데이터 (표형식, csv, tsv, 엑셀시트, 관계형 데이터 (sql))
- DL : 비정형 데이터 (이미지, 소리, 텍스트 등)
- 반정형데이터, json, xml 등
OpenCV 목적 : 이미지 처리, 컴퓨터 비전 -> 속도, 효율성, 실시간 프로세싱 -> 응용프로그램 (실시간 프로세싱)
OpenCV에도 머신러닝, 딥러닝이 있다.
4. 컴퓨터 비전 영상처리(Image processing) 이란?
- 화소(pixel) : 영상의 구성요소
- 화소 처리 : 영상 처리의 출발점
- 영상 : 밝기와 색상이 다른 일정한 수의 화소들로 구성
- 영상처리
- 입력된 영상을 어떤 목적을 위해 처리하는 기술
- 어떤 목적을 위해 수학적 연산을 이용해 화소들에 대해 변화를 주는것
- 아날로그 영상 처리, 디지털 영상 처리
- 영상처리 수준
- 저수준 영상처리(화소, 필터링, 세그멘테이션, 특징추출) : 영상 처리 결과가 영상인 경우
- 고수준 영상처리(객체인식, 영상분석, 비전결과) : 영상 처리 결과가 영상이 아니라, 영상의 특성을 나타내는 경우
- 분류 : 머신러닝(라벨링:공) : k-NN, svm, DTRF, NN -> CNN …
- object_detection : 딥러닝(라벨링, box) -> YOLO, SSD, …
- segmentation은 딥러닝(라벨링, box, 전경배경 분리) -> U-NET, MR-CNN
컴퓨터 비전 영상처리 응용 분야
- 공장 자동화 분야
- 산업용 카메라로 제품 품질 모니터링 및 불량 제거
- 출판 및 사진 분야
- 영상 생성, 품질 향상, 색상을 조작 등의 작업을 위해 영상 처리 기술 사용
- 기존 영상에 영상 처리 기술을 융합하여 새로운 합성 영상
- 기타
영상의 형성 과정 : 아날로그 -> [표본화(샘플) -> 양자화(대표값) -> 부호화(2진화)] -> 디지털
양자화 : 제한된 비트수로 화소 값을 나타내려 밝기 값을 정수화 시키는 과정
- 양자화 하는 이유: 이미지나 신호에서 정보를 유지하면서 크기를 줄이는데 사용된다.
- 표현 가능한 픽셀 값의 수를 줄여 저장 공간을 줄인다.
- 양자화 종류 : k-means 양자, VQ(Vector Quantization), 영역 기반 양자화(Regional based Quantization)
- 양자화는 이미지의 각 픽셀 값이 가질 수 있는 수치 범위를 줄이는 과정이므로 shape는 영향을 미치지 않는다. (데이터 압축, 하드웨어 (센서데이터 -> 아날로그 -> 디지털), 데이터 전송, 시각화, 데이터 분석
명암대비 : 이미지에서 가장 어두운 픽셀과 가장 밝은 픽셀의 차이
- 명암대비가 높으면 이미지의 픽셀값이 넓은 범위로 퍼져있고 무늬나 객체의 구분이 명확하다
- 명암을 조절하는 이유 : 이미지의 시각적 정보나 가독성을 높이는 목정 (명암의 대조값 -> 조명)
참고내용
- osx python opencv 설치
- pip install opencv-python
- pip install opencv-contrib-python
- No module named ‘numpy.core._multiarray_umath’ 에러 발생시 기존 설치한 numpy 패키지 삭제후 다시 설치 (이럴때를 대비해 venv 가상환경으로 작업하자)
- ImportError: ERROR: recursion is detected during loading of “cv2” binary extensions 발생시 opencv 관련 패키지가 중복 설치된 경우 하나의 패키지를 삭제하자
- 확인은 import cv2; print(cv2.__version__)
- tkinter 설치 : pip install tk
- osx 에서는 brew install python-tk 설치 필요함
- tkinter 에러 관련 : osx 에서 tkinter 관련 No module named ‘_tkinter’ 에러 발생하면 brew install python-tk 를 설치해야 한다.
윈도우에서는 파이썬 설치시 tk 옵션을 추가