
[Python] YoloV5 custom dataset 학습
2021. 8. 14. 23:50
Python/Machine_vision
- YoloV5를 이용한 마스크 착용/미착용 식별 모델개발 - # YOLO YOLO는 You Only Look Once의 약자로, one-stage-detection방법을 고안해 실시간으로 Object Detection이 가능하다. 장점 : 1. 간단한 처리 과정으로 속도가 매우 빠르다. 2. 이미지 전체를 한 번에 바라보는 방식을 이용하여 class에 대한 이해도가 높아 낮은 False-Positive를 보인다. 3. 일반화된 Object 학습이 가능 1. 준비 https://github.com/ultralytics/yolov5 GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite YOLOv5 🚀 in PyTorch > ON..

[Python] 항공권 크롤링
2021. 7. 31. 23:46
Python/Web_crawling
- Selenium을 활용한 네이버 항공권 크롤링 - 폴리텍 하이테크 AI Engineering 과정 중 짝꿍 한명이 매주 제주도를 가야만 했다. 그래서 주말이 다가올때쯤이면 매번 항공권을 예매하기 위해 가격을 비교하고 있었다. 매주 비행기표를 예매해야만 했기에 값 비싼 비행기표를 예매하는 것은 부담이라고 했다. 그래서 나는 값이 싼 항공권 정보를 자동으로 찾아주는 코드를 구현하여 도움을 주고 싶었다. 짝꿍이 원하는 항공권 정보의 priority 는 다음과 같았다. 1. 짝꿍이 원하는 시간 2. 그 시간대에서의 싼 가격대의 항공권 3. 항공사는 중요하지 않음 사실 네이버 항공권 사이트에 이러한 기능이 다 있지만, 웹 크롤링과 파이썬 리스트 정렬을 활용하여 직접 구현해보고 싶었다. 1. 크롬 드라이버를 통..

[Python] IRIS
2021. 7. 24. 18:59
Python/Machine_learning
- IRIS 머신러닝 최고의 모델 찾기 - 1. seaborn 라이브러리를 활용하여 IRIS dataset 을 로드 2. 데이터 전처리 진행 3. sklearn 에서 제공하는 여러 모델을 활용하여 학습 4. 예측 후 정확도 측정 # IRIS IRIS 붓꽃은 4가지 특성을 가지고, 3가지 종류의 꽃을 구별하는 분류 예제이다. # seaborn seaborn은 matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 패키지이다. # sklearn Scikit-learn은 Python 프로그래밍 언어를위한 무료 소프트웨어 기계 학습 라이브러리이다. # 통계 / 차트를 나타내기 위한 라이브러리 import seaborn as sns import matplotlib.pyplot a..

[Python] CIFAR-10
2021. 7. 24. 18:58
Python/Machine_learning
- Convolution Neural Network를 활용한 CIFAR-10 머신러닝 - 1. tensorflow 의 CIFAR-10 dataset 로드 2. cnn으로 모델 make 3. train dataset 활용해 학습 4. test dataset 활용해 테스트 및 정확도 도출 # CIFAR-10 CIFAR-10 32x32픽셀의 60,000개 컬러 이미지가 포함되어있으며, 각 이미지는 10개의 클래스로 라벨링이 되어있는 dataset이다. 60,000개 중, 50,000개 이미지는 트레이닝, 10,000개 이미지는 테스트 용도로 사용 # Conv2D 합성곱 레이어, 즉 컨벌루션 레이어는 합성곱을 통해, 3차원의 이미지를 그대로 입력층에 받고, 출력 또한 3차원 데이터로 출력하여 다음 Layer로 ..

[Python] 얼굴 인식
2021. 7. 24. 18:56
Python/Machine_vision
- OpenCV 와 haarcascade를 이용한 얼굴 인식 1. 사전 학습된 분류기인 haarcascade_frontalface_alt.xml 을 로드합니다. 2. 객체 탐지 알고리즘인 detectMultiScale 을 실행하기 위해 이미지 프로세싱을 합니다. 3. detectMultiScale 과 rectangle 함수를 이용하여 원본 이미지에 bbox를 그려줍니다. # harrcascade 기계학습을 이용한 객체 탐지 알고리즘입니다. CNN과 같은 신경망이 아닌, 하르 특징 (Haar Features) 계산을 통해 객체를 찾습니다. # 얼굴 찾는 모델 model_file = "face_det_pretrained/haarcascade_frontalface_alt.xml" # 모델 로드 clf = cv..

[Python] 손 글씨 인식
2021. 7. 24. 18:47
Python/Machine_vision
- OpenCV connectedComponentsWithStats를 활용한 손 글씨 인식 - 1. 손 글씨 이미지를 불러옵니다. 2. 이미지 프로세싱을 통해 글자는 흰색(255), 배경은 검은색(0)으로 만들어 줍니다. 3. connectedComponentsWithStats 함수를 이용해 글자를 인식합니다. 4. 인식한 글자에 bbox를 그려줍니다. # labeling 레이블링은 객체 구역을 영역 단위로 분석하는 것입니다. 서로 연결되어 있는 객체 픽셀에 고유한 번호를 지정하는 작업입니다. 일반적으로 이진 영상에서 수행합니다. 0은 배경 1 이상은 객체로 판단합니다. 객체들이 서로 연결되어 있으면 같은 번호를 지정합니다. # cv2.connectedComponentsWithStats 반환 값으로 re..

[Python] 계산기
2021. 6. 27. 16:48
Python/Basic
- Class를 활용한 계산기 구현 - class를 활용하여 간단한 예제인 계산기를 구현합니다. # 4칙 연산 가능한 클래스 FourCal class FourCal: # __init__ 은 클래스를 호출할 때 가장 먼저 실행되는 함수 # first, second 인자를 받음 def __init__(self, first, second): self.first = first self.second = second # 인자를 받아서 self.first 와 self.second에 저장한다. # self는 클래스 안에서만 사용가능한 멤버변수 def setdata(self, first, second): self.first = first self.second = second # add 함수 -> self.first + ..

[Python] MNIST
2021. 6. 27. 15:02
Python/Machine_learning
- RandomForestClassifier를 활용한 mnist 머신 러닝 및 confution matrix - 머신 러닝의 대표적인 예제인 mnist를 랜덤 포레스트를 활용 1. 데이터를 로드 2. 학습을 시킨 후 모델을 저장 3. 저장된 모델로 테스트를 진행하고 정확도를 도출 4. 모델의 출력 결과와 정답본을 비교하여 confusion matrix를 생성 5. confusion matrix를 시각화 # MNIST MNIST는 (Modified National Institute of Standards and Technology database)는 손으로 쓴 숫자들로 이루어진 대형 데이터 베이스이며, 28 x 28 픽셀로 된 60,000개의 트레이닝 이미지와 10,000개의 테스트 이미지를 포함한다. #..

[Python] 식단정보 크롤링
2021. 6. 20. 17:49
Python/Web_crawling
- Selenium을 활용한 학교 식단정보 크롤링 - 1. 크롬 드라이버를 통해 학교 식단 홈페이지에 접속 2. table로 이루어진 식단표에 접근하여 데이터를 받아 출력 시작하기 전에 자신의 chrome 과 맞는 버전의 chromedriver.exe 파일을 설치해, 실행하려는 코드와 같은 경로 상에 위치 import time from selenium import webdriver 필요한 라이브러리들 import time 라이브러리는 웹상에서 로딩하는 시간을 기다려주기 위함임 # 크롬 드라이버 실행 driver = webdriver.Chrome('./chromedriver.exe') # 주소 앞에 . 붙여서 chromedriver 실행 # 학교 식단정보 홈페이지 주소를 가지고 옴. driver.get("..

[Python] 소수판단 코드
2021. 6. 20. 14:39
Python/Basic
- for문과 if문을 활용한 소수판단 코드 구현 - 1. 테스트할 숫자를 userinput으로 받습니다. 2. for문을 돌면서 testNum을 testNum보다 작은 숫자들로 나누어 나머지가 0인지 확인합니다. 3. 나머지가 0이면 나누어 떨어지는 숫자가 존재하므로 소수가 아닙니다. 4. testNum보다 작은 숫자들 중 for문을 다 돌 때까지 나머지가 0인 숫자가 없으면 소수입니다. # 테스트할 숫자를 userinput 으로 받음 testNum = int(input('숫자를 입력하세요 : ')) # for 문을 이용해 testNum 보다 작을 숫자들을 소수인지 판단할 것임 # i --> 2 ~ testNum-1 for i in range(2, testNum): # testNum 을 i 로 나눴을 ..