분류 전체보기(217)
-
OpenCV 차선 인식 (2)
Edge 검출을 활용한 차선 인식 HSV, RGB를 통한 차선 인식은 색, 범위를 지정해줘야 하는 문제가 있었고 특히 그림자, 차선이 끊긴 구간에 취약했습니다. 문제를 해결하기 위해 Edge 검출을 활용했습니다. 우선 더욱 효과적인 Edge검출을 위해 Gaussian Filter를 사용해서 잡음을 제거했습니다. 잡음이 제거된 영상을 회색화 시킨 후 밝기 평활화를 통해 밝기 값을 추출한 후 Sobel, Canny 두 가지 필터를 사용해 보고, 비교했습니다. 먼저 Sobel필터가 대각선에 민감하게 반응하도록 2D Filter에 직접 필터 값을 대입했습니다. sobelX = np.array([[0, 1, 2], [-1, 0, 1], [-2, -1, 0]]) gx = cv2.filter2D(equ_frame, ..
2019.09.05 -
OpenCV 차선 인식 (1)
준비 운영체제 : Windows 10 언어 : Python 파이썬에서 OpenCV를 사용하기 위해 cv2 라이브러리를 설치했습니다. 추가로 numpy 라이브러리도 사용합니다. 보편적으로 아래와 같은 순서를 거쳐 차선을 인식합니다. 하지만 위 순서와는 조금 다르게 HSV 범위 값을 사용해서 색 추출을 활용한 차선 인식을 시도해봤습니다. HSV 차선 인식 차선 인식을 하기 위해 가장 먼저 차선의 색인 노란색과 흰색의 HSV범위 값이 필요했습니다. HSV 범위 값 추출은 마우스 이벤트를 활용해 10초 간격, 픽셀 단위로 추출했습니다. 영상의 프레임마다 차선의 명도가 다르기 때문에 단일 값으로 범위를 주지 않고 추출한 값의 최댓값과 최솟값으로 HSV 범위를 지정했습니다. frame = cv2.GaussianBl..
2019.09.03 -
파이썬을 파이썬답게 (1)
프로그래머스 파이썬을 파이썬답게 강의를 듣고 정리한 글입니다. 파이썬을 파이썬답게 | 프로그래머스 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코드를 low level 언어( C / C++ ) 코드처럼 짜시는 분 ##### Glossary 본 강의에서 사용하는 파이썬 용어에 익숙하지 않은 분들을 위해, [Python 3.6 programmers.co.kr 1. 몫과 나머지 -몫과 나머지를 공백으로 구분해서 출력합니다. 작성한 코드, 답 a, b = map(int, input().strip().split(' ')) print(a//b, a%b) #..
2019.09.02 -
OpenCV 어플리케이션 만들기
준비 운영체제 : Windows 10 개발환경 : Andriod Studio OpenCV를 사용해 간단한 어플리케이션을 제작합니다. (그레이스케일, HSV, Smoothing 필터 구현) 안드로이드에서 OpenCV를 사용하기 위해서는 준비과정이 필요합니다. 크게 NDK방법과 Java api 방법으로 나뉩니다. NDK방법은 C++를 사용하고 준비과정이 조금 더 복잡합니다. Java api를 사용했습니다. OpenCV Java api 세팅방법 Android Studio 2.2에서 OpenCV 3.1 세팅하기 OpenCV와 Android Studio 버전에 따라 다른 내용이 생길 수 있으니 주의 바랍니다. 1. 안드로이드 SDK 다운로드 OpenCV 다운로드 페이지에서 OpenCV for Android를 다운..
2019.08.29 -
아두이노 카페소음측정기(완성)
이전 과정들을 통해 센서 값을 불러오고 MySQL을 활용해 데이터베이스에 저장했습니다. 이제 실제로 활용이 가능하도록 저장된 데이터를 웹 페이지와 연동합니다. 반응형 웹을 사용해서 스마트폰에서도 사용이 가능하도록 했으며 부트스트랩, 구글 차트, 카카오 맵 API를 사용했습니다. 반응형 웹, 실시간 소음 측정 반응형 웹인 부트스트랩을 사용해서 PC에서는 왼쪽과 같은 화면, 모바일에서는 오른쪽과 같은 화면이 출력됩니다. 데이터베이스에 저장된 가장 최근에 측정된 소음 값을 불러와서 실시간으로 현재 소음을 확인할 수 있습니다. 또 소음에 따라 색상이 변하도록 했습니다. 0~50 초록색 51~80 주황색 80~ 빨간색 if(0
2019.08.28 -
인스타그램 해시태그 크롤링(2)
멀티 프로세스 사용해보기 크롤링할 데이터는 많은데 파이썬에서는 기본으로 하나의 프로세스만 동작하기 대문에 시간이 오래 걸립니다. 이 문제를 해결하기 위해 파이썬에서는 멀티 프로세스, 멀티스레드 방법을 사용할 수 있습니다. 그중 멀티 프로세스 방법을 사용해서 크롤링하는 방법 사용했습니다. 멀티 프로세스와 멀티스레드는 아래와 같은 차이점이 있습니다. 멀티프로세스 멀티스레드 멀티 프로세싱은 CPU를 추가하여 컴퓨팅 성능을 향상 멀티 스레딩은 단일 프로세스의 다중 스레드를 만들어 컴퓨팅 성능을 향상 여러 프로세스가 동시에 실행됩니다. 단일 프로세스의 여러 스레드가 동시에 실행됩니다. 프로세스 생성은 시간 소모적이며 리소스 집약적입니다. 쓰레드 생성은 감지 시간과 자원 모두에서 경제적입니다. 다중 처리는 대칭 또..
2019.08.27