본문 바로가기

분류 전체보기72

[OpenCV] 6. 컬러 스페이스 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다.모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다.영상에 색상과 명암을 표현하는 방법들, 각각의 차이 그리고 활용 방법에 대한 공부 6.1 디지털 영상의 종류디지털화된 이미지는 픽셀(pixel)이라는 단위가 여러 개 모여서 그림을 표현한다.하나의 픽셀을 어떻게 구성하느냐에 따라 이미지를 구분바이너리(binary, 이진) 이미지한 개의 픽셀을 두 가지 값으로만 표현한 이미지두 가지 값은 0과 1 또는 0과 255를 사용한다. 보통 0은 검은색 1이나 255는 흰색을 의미값으로는 명암을 표현할 수 없고, 점의 밀도로 명암을 표현영상 작업에서 피사체의 색상과 명암 정보는.. 2023. 2. 22.
[OpenCV] 5. 관심영역(ROI) 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 이미지에 어떤 연산을 적용해서 새로운 이미지나 정보를 얻어내려고 할 때, 전체 이미지를 대상으로 연산을 하는 것보다 관심이 있는 부분만 잘라내서 하는 것이 훨씬 효과적이다. 관심있는 영역만 잘라내서 연산을 하면, 연산할 데이터의 양을 줄이고 수행 시간을 단축시키는 이점 데이터의 양이 줄어 들면 그 형태도 단순해지므로 적용해야 하는 알고리즘도 단순해지는 이점 이미지 연산은 항상 좌표를 기반으로 해야 하는데, 그 영역이 클 때보다 작을 때 좌표 구하기가 쉽다는 이점 5.1 관심영역 지정 전체 이미지에서 연산과 분석의.. 2023. 2. 21.
[OpenCV] 4. 이벤트 처리 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. OpenCV에는 키보드와 마우스의 입력을 이용할 수 있는 함수를 제공한다. 4.1 키보드 이벤트 cv2.waitKey(delay) : 키보드 입력 알아내는 함수 delay 인자에 밀리초 단위로 숫자를 전달 해당 시간동안 프로그램을 멈추고 대기하다가 키보드의 눌린 키에 대응하는 코드 값을 정수로 반환한다. 지정한 시간까지 키보드 입력이 없으면 -1을 반환 delay 인자에 0을 전달하면 대기 시간을 무한대로 하겠다는 의미, 키를 누를 때까지 프로그램은 멈춘다. key = cv2.waitKey(0) print(key.. 2023. 2. 15.
[OpenCV] 3. 창 관리 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. OpenCV가 제공하는 창 관리 API들, 창을 열 때 사용한 이름을 기반으로 연결되는 것이 특징이다. cv2.namedWindow(title [, option]) : 이름을 갖는 창 열기 title : 창 이름, 제목 줄에 표시 option : 창 옵션, ‘cv2.WINDOW_’로 시작 cv2.WINDOW_NORMAL : 임의의 크기, 사용자 창 크기 조정 기능 cv2.WINDOW_AUTOSIZE : 이미지와 같은 크기, 창 크기 재조정 불가능 cv2.moveWindow(title, x, y) : 창 위치 이동.. 2023. 2. 14.
[DL] Keras fit vs fit_generator 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. Keras를 이용해서 딥러닝 모델을 학습시킬 때 fit() 과 fit_generator() 두 가지 메소드를 사용하여 학습시킬 수 있다. 두 메소드의 차이가 무엇인지, 어떤 것을 사용해야 하는지 궁금해서 비교해보았다. fit fit()은 Scikit-learn의 fit 메소드와 유사하다. 입력으로 준 전체 데이터를 fit 메소드로 통과 시킨다. 그러므로 전체 데이터를 통과 시킬 수 있는 작은 크기의 dataset을 학습 시킬 때 사용한다. fit_generator fit_generator()는 x, y 데이터를 직접 통과시키.. 2023. 2. 14.
[DL] Tensoflow.Keras ImageDataGenerator 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. ImageDataGenerator 사용하기 ImageDataGenerator() 함수는 주어진 데이터를 이용해 변형된 이미지를 만들어 학습셋에 포함 시키는 기능을 제공한다. 이미지 데이터의 수를 확장할 때 효과적으로 사용 가능하다. from keras.preprocessing.image import ImageDataGenerator train_datagen = ImageDataGenerator(rescale = 1.// 255, horizontal_flip = True, vertical_flip = True, width_sh.. 2023. 2. 14.
[OpenCV] 2. 그림, 글씨 그리기 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다. 모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다. 그림 그리기는 객체나 얼굴을 인식해서 그 영역에 사각형을 그려서 표시 하거나 이름을 글씨로 표시 하는 등의 용도로 자주 활용 2.1 직선 그리기 cv2.line() : 직선을 그리는 함수 cv2.line(img, start, end, color [, thickness, lineType]): 직선 그리기 img : 그림 그릴 대상 이밎, Numpy 배열 start : 선 시작 지점 좌표(x, y) end : 선 끝 지점 좌표(x, ) color : 선 색상, (Blue, Green, Red), 0~255 thick.. 2023. 2. 14.
[OpenCV] 1. 이미지와 비디오 입출력 아래 내용은 파이썬으로 만드는 OpenCV 프로젝트(이세우 저) 를 공부하며 정리한 내용들입니다.모든 소스 코드를 확인하고 싶으시다면 제일 하단의 저자 GitHub 주소를 참고하시기 바랍니다.OpenCV를 이용한 대부분의 작업은 파일로 된 이미지를 읽어서 적절한 연산을 적용하고 그 결과를 화면에 표시하거나 다른 파일로 저장하는 것들이다. 기본적으로 이미지와 비디오를 읽어올 수 있어야하고 저장을 할수있어야한다. 1.1 이미지 읽기img = cv2.imread(file_name [, mode_flag]) : 파일로부터 이미지 읽기file_name : 이미지 경로, 문자열mode_flag = cv2.IMREAD_COLOR : 읽기 모드 지정cv2.IMREAD_COLOR : 컬러(BGR) 스케일로 읽기, 기본 .. 2023. 2. 13.
[OpenCV] 0. CV 프로젝트 진행을 위한 OpenCV CV 프로젝트를 진행하기 위해 OpenCV를 판다!! Vision 관련 프로젝트들을 하나씩 진행할수록 OpenCV의 힘을 느낄 수 있고, 공부를 해야할 필요성을 느꼈다. 마침 강의를 듣는 교육기관에서 OpenCV 책을 지급받은 게 있고, 그 책의 평가도 좋기에 처음부터 뜯어보려고 한다. 이글을 보는 분들은 잘 알수도 있지만 아래 이름의 책이다. 파이썬으로 만드는 OPENCV 프로젝트 - 이세우 저, 프로그래밍 인사이트 한번은 책을 집중해서 보면서 필요한 코드는 따라 해보고, 두번째는 노션에 정리를 하면서 다시 한번 더 볼 예정이다. 코드는 실습을 하다가 조금씩 바꿔보기도 할 것이다. 블로그에는 공부하면서 정리한 내용들을 포스팅 해볼 예정이다! 시간이 얼마나 걸릴지 알 수 없고, 꽤 오래 걸릴것 같지만 천.. 2023. 2. 13.
[Dacon] Competetion - Single Nucleotide Polymorphism Classification(+ reveiw) 후기 처음으로 진행중인 데이콘 컴피티션에 참여해보았다. 작년 초에 처음으로 머신러닝과 딥러닝을 접하고 조금씩이라도 공부를 하려고 했지만 잘 안되었다. 그동안은 컴피티션을 시도해본적은 있지만 끝까지 진행하지 못했고 누군가의 코드공유를 따라하기만 했었다. 이번에 머신러닝, 딥러닝 강의를 들을 기회가 생겨서 강의를 듣고 강의 내용들을 직접 적용해보면서 하루하루 진행했다. 수업 진행 내용에 따라 분류모델 중 DecisionTree, RandomForest, XGBoost, Lightgbm을 적용해 보았고, 교차검증과 그리드서치, 랜덤서치를 시도해보았다. 그리고 강사님의 추천으로 강의에서 배우지는 않았지만 Hyperotp라는 모듈을 공부하여 성능을 향상시켜보려고 하였다. (진행한 코드가 궁금하다면 아래 깃허브를 .. 2023. 2. 13.
[Colab] Webcam - Colab 연동하기 아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다. '부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다. 댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다. 감사합니다. Colab에서 Webcam 사용하기 Webcam을 이용한 프로젝트를 진행할때, Colab에서 OpenCV의 VideoCapture(0)를 사용하지 못해서 매번 JupyterNotebook을 사용했었다. Colab에서는 JavaScript를 이용하여 Webcam을 사용할 수 있다고 해서 찾아보았다. 처음에 찾았던 조금 이전 버전내용은 마지막에 Old version으로 따로 붙여놓았다. 지금 Colab에서 사용하는 코드는 전체적으로 비슷했지만 비동기방식 등이 적용되어 조금 더 개선되었다. Colab - Webcam 연동 아래 내.. 2023. 2. 7.
[Git] 내가 보려고 정리한 Git 명령어 모음 내가 보려고 정리한 명령어 시리즈 `Git편`지금껏 코딩 공부를 하면서 조금씩 정리된 내용들입니다.노션에서 정리된 내용들이지만 노션을 사용할 수 없는 상황을 대비해 블로그에서도 볼수있도록 포스팅합니다.새롭게 알게되는 명령어가 생기면 언제든지 수정될 수 있습니다. git 기본정보 입력git config --global user.name '이름'git config --global user.email '이메일' Git 시작git init작업 트리로 사용할 디렉토리에서 입력하면 .git 폴더 생성 Git 상태 확인git status 수정한 파일 스테이징 - git addgit add '파일명' 스테이지에 올라온 파일 커밋하기 - git commitgit commit -m '입력할 메세지'git commit -a.. 2023. 2. 6.