본문 바로가기

etc/FastCampus 챌린지

패스트캠퍼스 OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online 챌린지 참여 후기!!!!!!!!!!!!!!

728x90
반응형

패스트캠퍼스 OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online 챌린지 참여 후기!!!!!!!!!!!!!!

드디어 끝이 났다 반복되는 작심삼일을 한번에 타계할 방법
역시 현금이 최고다
인강을 듣고 하루 1개의 게시물을 업로드 하면 수강신청 비용을 환급해주는 이것이야 말로 나같은 사람한테 필요함 ㅜㅜ

2천자 이내로 글을 써야한다는데 코드는 글자수로 인식이 안되나 보다
한번더 주어진 기회를 잡기위해 열심히 다시 쓰는중!!

정말 열심히 공부도 했고 모르는게 반이였지만 구글링에 블로그 뒤적뒤적 거려가며 지식을 조금씩 조금씩 채워나갔다
챌린지가 끝난 지금은 다시 마음이 풀어져서 

또 강의를 통해서 많은 키워드를 알게 되서 검색해서 또 공부하고 하다보니 처음과는 많이 달리진걸 스스로 느낀다

처음 시작할때 기억이 새록새록

학습에 필요한 역량들도 정리해가면서 기초부터 해보자란 마음은 작심삼일 ㅠㅠ

Computer Vision 

Python 
Visual Studio Code 
Algorithm 
Machine Learning 
OpenCV 4.x 
Math 
Numpy
Deep Learning

 

선행학습

• Python 기초 사용법 
• NumPy 라이브러리 사용법 
• 고등학교 수준의 수학 지식

강사님이 쓰신 책도 구매했었는데

반도 못읽고 뒹굴뒹굴 거리고 있다....... 

 

▪ 컬러 영상의 픽셀 값 표현 
• R, G, B 색 성분의 크기를 각각 0 ~ 255 범위의 정수로 표현 
▪ 0 : 해당 색 성분이 전혀 없는 상태 
▪ 255 : 해당 색 성분이 가득 있는 상태

우리집 고양이 사진도 데이터로 희생시킴 ㅎㅎ

오래오래 건강하게 살아라 니코야

 

고영희씨 그레이로 변환하기!

이런식으로 공부하다보니까 오히려 더 흥미가 생겼다 
주변 사물들을 대상으로 사진을 처리하는거다 보니 접근하기 편해졌다

가만히 앉아서 이론만 공부하기 보다는 이런게 훨씬 수월하고 빨리 와닿음 ㅜㅜ

물론 황박사님께서 제공해주시는 코드를 복붙해서 만든것임 ㅎㅎㅎㅎ

 

다행히 이론보다 실습에 흥미가 있어서 MNIST 를 처음 시작으로 재미있게 했다

이런거 볼줄도 몰랏는데 MNIST 를 해보니 이해도 잘 된다

가장 큰 장점은 이렇게 강의자료로 제공해주는 코드를 실행시키면서

이해가 더 빨리 된다는 점!

강사님께서 코드도 공유해주셔서 그냥 복사 붙이기하고 경로만 잘 수정해주면

문제없이 돌려보면서 확인 할 수 있다

import sys
import numpy as np
import cv2
# from PIL import Image



# image = Image.open('./1.jpg')
# resize_image = image.resize((512,512))
# resize_image.save('./2.jpg')


# 비디오 파일 열기
cap = cv2.VideoCapture('a.mp4')

if not cap.isOpened():
    print('Video open failed!')
    sys.exit()

# 배경 영상 등록
ret, back = cap.read()

if not ret:
    print('Background image registration failed!')
    sys.exit()

back = cv2.cvtColor(back, cv2.COLOR_BGR2GRAY)
back = cv2.GaussianBlur(back, (0, 0), 1.0)

# 비디오 매 프레임 처리
while True:
    ret, frame = cap.read()

    if not ret:
        break

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    gray = cv2.GaussianBlur(gray, (0, 0), 1.0)

    # 차영상 구하기 & 이진화
    diff = cv2.absdiff(gray, back)
    _, diff = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)

    # 레이블링을 이용하여 바운딩 박스 표시
    cnt, _, stats, _ = cv2.connectedComponentsWithStats(diff)

    for i in range(1, cnt):
        x, y, w, h, s = stats[i]

        if s < 100:
            continue

        cv2.rectangle(frame, (x, y, w, h), (0, 0, 255), 2)

    cv2.imshow('frame', frame)
    cv2.imshow('diff', diff)

    if cv2.waitKey(30) == 27:
        break

cap.release()
cv2.destroyAllWindows()

 

하나 더 좋은건 

나는 여기서 배운 걸 실무에서 응용했다

알아보기는 힘들겠지만 나름 스마트팩토리 유사하게 흉내는 냈음

 

이런걸 머신비전이라고 하는데

• 공장 자동화: 제품의 불량 검사, 위치 확인, 측정 등 
• 높은 정확도와 빠른 처리 시간 요구 
• 조명, 렌즈, 필터, 실시간 (Real-time) 처리

주로 이런 곳에 자주 쓰인다

 

회사에서 적용해볼수있는게 뭐가 없을까 찾아보다가

실무에 적응해봄 여러 필터들을 사용해서 진행 함

이런식으로 

나는 파이썬도 잘 모르고 비전은 이번이 처음이었는데

사실 아직 100% 다 공부하고 습득했다고 말 할 수는 없다

하지만 앞으로도 꾸준히 재수강(평생소장) 하면서 좀 더 갈고 닦을 예정임 

 

 컴퓨터 비전 분야는 이렇게 다양하게 뻗어나간다

단순히 비전을 공부했다가 아니라 더 깊이 있게 하고싶어서 머신러닝쪽으로 손을 건들여봤다

최근에는 강의에서 배운 yolo 를 해보니 재미있고 신기해서

라즈베리파이를 구매하였다

여기에 yolo 를 올려서 실시간 디텍팅을 해볼 계획임

 

https://github.com/ultralytics/yolov5

 

ultralytics/yolov5

YOLOv5 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

github.com

 

황박사님 수업을 듣고 찾아보니 버전5 까지 나옴

이걸 좀 뜯어보려고 여기 저기 찾아보고 있지만 쉽지가 않다

하지만 검색이 반 이상을 차지하였고 공유한 코드를 복붙 복붙을 해가면서 겨우겨우 풀어나갔다

object detection의 정확도를 계속 높여갈 방법을 찾아가면서 재밌게 해나갔고

어느 순간 배는 나오고 컴퓨터 앞에 앉아있는 시간이 길어져만 갔다

아 이제 다 끝나서 너무 홀가분한데

한편으론 또 허무하고 그렇다

이 챌린지 동기부여 확실히 되고 의미있는건 확실 함

패스트캠퍼스가 당신의 삶에도 변화를 가져다 줄수 있길 진심으로 기대해봄

이상!

https://bit.ly/2DBM8d4

 

OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online. | 패스트캠퍼스

황선규 박사에게 배우는 컴퓨터 비전과 딥러닝. 고급 알고리즘의 원리를 제대로 이해하고 수십 가지의 실습을 통해 내 것으로 만드세요.

www.fastcampus.co.kr

 

728x90
반응형