컴퓨터 비전 10

위성영상으로 식물의 성장과 쇄약을 파악

분광천체관측용으로 사용하는 카메라가 있다. 6년 전쯤 알리에서 구입했는데 아마 카메라 본체가 2,000불, 필터휠이 150불, R, G, B, IR, H, S, O 각각의 필터가 합해서 300불 정도 들었던것 같다.센서는 코닥 제품인데 QHY와 ZWO의 카메라는 원가의 60~70%가 이미지센서 가격이다. 센서내의 공간에서 충분한 소자가 들어갈 수 있도록 가급적 흑백을 사용(컬러보다 흑백이 더 비싸다)하여 RGB삼원색 소자를 사용했을때보다 소자의 양을 늘리는 방식을 활용한다.카메라는 촬영할때마다 필터휠을 돌려서 각각의 렌즈별로 사진을 촬용한다. 그리고 촬영이 마무리된 후 7개의 필터(최소는 R,G,B 3개 필터)에서 확보된 영상을 결합하여 천연색 사진으로 탈바꿈하게 만든다.값비싼 이미지센서와 해상도를 효율..

컴퓨터 비전 2024.07.26

위성영상 데이터 다루기

CPTED과제 진행을 위해 위성촬영을 요청했다. 드디어 받은 이미지를 분석에 앞서 하나씩 학습해본다. 파일구조 탐색coordinate : 좌표계 파일dbf, shp, shx : 벡터이미지와 DBdone확장자: 처리 완료를 의미하는 플래그 파일. 영상촬영 후 처리과정이 있다고 했는데 그 과정이 마무리될때 생성되는 파일인것으로 보인다.xml 확장자:Satellite : 위성명OrbitNumber : 위성의 궤도 46388번째 궤도를 의미OrbitDirection : Ascending은 남에서 북으로 이동중이란 의미ProductLevel : 처리상태 Level1R 임 - 0 은 원시데이터, L1은 기본적 전처리(L1A: 캘리브레이션 보정, L1B: 방사보정과 기하학적 보정 그리고 정규화된 방사측정값 적용, L..

컴퓨터 비전 2024.07.19

Cuda 가동여부 확인 및 YOLO 실행

살다보면 참 다양한 일을 마주치게 된다.pipenv로 yolo를 가동하려고 하다 보면 가끔 GPU 실행이 안된다는 경우를 마주치게 된다. 예를 들어import torchtorch.cuda.is_available()False이런 경우가 있을 수 있다. 하지만 좌절할 필요는 없다.먼저 원인을 파악해보자torch.__version__'2.2.1+CPU'사실 위와 같은 오류를 자주보게 된다.토치가 오류나는 경우는 워낙 자주 접하는 일이라...pipenv환경으로 셋팅하지 않고 글로벌 설치가 되어 있어도 pipenv shell로 들어가다보면 이러한 오류가 자주 발생한다.이럴때의 해결방법은?→ pipenv 환경에서 torch를 재설치하는 방법이 있다.이 경우는 여기서 설치환경을 고르게 되는데...https://pyt..

컴퓨터 비전 2024.04.30

Python 인코딩 에러 및 기타 에러

사용자 정의 패키지 설치시의 문제 Github에서 clone을 뜬 패키지의 경우 설치할때 setup.py를 실행하게 된다. 설치된 폴더에서 pip install -e . 을 실행하면 된다. -e 는 editible 편집가능한, 즉 패키지 수정이 가능하다는 의미 인코딩 문제 UnicodeDecodeError: 'cp949' codec can't decode byte 0xf0 in position 19: illegal multibyte sequence 위와 같은 에러가 발생한다면 인코딩 문제이다. read_text()와 같은 데이터 입력출 코드를 수정해야 한다. read_text(encoding='utf-8')과 같은 형태로 수정해줄 필요가 있다. 페이퍼에 대한 코드 탐색 https://paperswithc..

컴퓨터 비전 2023.11.03

Image Segmentation 코딩

Udemy 강의 https://www.udemy.com/course/yolov8-the-ultimate-course-for-object-detection-tracking/ matplotlib으로 이미지를 표시하지 않으려면 Ipython.display를 사용한다. from IPython.display import Image Image명령으로 표시 가능 Image('/content/image1.jpg') 웹화면에서 비디오를 보여주는 방법 from IPython.display import HTML from base64 import b64encode import os # Input video path save_path = '/content/runs/segment/predict3/demo.mp4' # Compre..

컴퓨터 비전 2023.10.18

Vehicle Counting

동영상을 영화 및 TV로 보낸다. 색연필 아이콘을 클릭해서 비디오에서 사진저장을 클릭해서 프레임을 저장한다. 그림판에서 감지할 라인을 그려준후 위치를 마우스포인트를 위치에 놓으면 좌표가 좌측 하단에 나온다. line =[ (158,501), (1061, 504)] 이러한 감지라인을 만들 수 있다. object_counter={} dictionary를 생성 Bbox의 bottom center가 저 라인을 intersect하는 경우를 카운트하면 된다. 두 직선의 교차는 아래의 함수로 확인 가능하다 def ccw(A, B, C): return (C.y-A.y) * (B.x-A.x) > (B.y-A.y) * (C.x-A.x) def intersect(A, B, C, D): return ccw(A,C,D) != ..

컴퓨터 비전 2023.10.15

YOLO 트레이닝, roboflow

라벨링하는 방법으로 라벨미도 있지만 roboflow가 편리하고 자동화되어있다. 동영상에서 이미지를 간격마다 추출하거나, 트레이닝 셋을 추가로 만들어내는 작업이 가능하다. https://roboflow.com/ Roboflow: Give your software the power to see objects in images and video With just a few dozen example images, you can train a working, state-of-the-art computer vision model in less than 24 hours. roboflow.com roboflow에서 프로젝트를 만든 후 파일을 업로드 파일을 올린 후 save and continue를 클릭 Augmenta..

컴퓨터 비전 2023.10.09

YOLOv8 실행

모델별로 성능의 차이가 있다. 8x는 인식의 범위가 8n에 비하여 증가하나 처리속도가 길어진다. Yolo 설치 !pip install ultralytics==8.0.0 torch를 임포트한 후 GPU 사용가능한지 확인 torch.cuda.is_available() 다음의 명령으로 GPU상태 확인이 가능 print("CUDA Available: ", torch.cuda.is_available()) print("CUDA Version: ", torch.version.cuda) print("PyTorch Version: ", torch.__version__) print("Device Count: ", torch.cuda.device_count()) 사진이나 동영상 인식은 yolo task=detect mode..

컴퓨터 비전 2023.10.09

숨은그림 찾기

위에서 그림을 찾는다 찾을 그림은 바로 import cv2 import matplotlib.pyplot as plt img=cv2.imread('./images/img.jpg') plt.figure(figsize=(16, 12)) plt.imshow(img) 이제 찾을 이미지를 불러들인다. look01=cv2.imread('./images/look01.png') plt.imshow(look01) 찾는다 result=cv2.matchTemplate(img, look01, cv2.TM_CCOEFF) min_val, max_val, min_loc, max_loc=cv2.minMaxLoc(result) 이제 바운딩 박스를 그릴 준비를 한다. top_left=max_loc bottom_right=(top_left..

컴퓨터 비전 2023.09.26