분류 전체보기 210

Dijkstra Algorithm (Google map 에서도 사용하는 경로 찾기)

Dijkstra Algorithm은 지도에서 가장 빠른 패스를 찾아주는 것 처럼 네트워크에서 두 지점간 가장 짧은 루트를 찾는데 쓰이는 알고리즘이다. 아래와 같은 분야에서 응용될 수 있다.GPS navigation systems finding the fastest route (가장 빠른 루트를 찾는 GPS 네비게이션)Routing data packets in computer networks (컴퓨터 네트워크에 있어서 데이터 패킷의 라우팅)Delivery services optimizing routes for efficiency (배달 서비스의 효율적인 루트 최적화)Social networks (suggesting connections) (쇼셜네트워크에 있어서 커넥션 제안)Finance (finding o..

data science/python 2025.02.21

pandas 를 이용한 일본 월세 부동산 정보 분석 - 2

칼럼의 전처리주소(住所)로 부터 행정구역 도/현 시/구 칼럼을 신설건축연수(築年数)로 부터 문자를 숫자로 변환월세(家賃)를 문자열로 부터 수치 수치 엔 단위로 변환관리비(管理費)를 문자열로 부터 수치 엔 단위로 변환월세합계(家賃合計) 칼럼을 신설(家賃合計=월세(家賃)+ 관리비(管理費))월세단가(家賃単価) 를 신설(=월세합계(家賃合計)÷면적(面積))구조(間取り)로 부터 방수(部屋数) 칼럼을 신설입지( 立地 ) 1 2 3 을 노선(路線) 가까운역(最寄駅) 수단(手段) 시간(時間)으로 분해 1. 주소(住所)로 부터 행정구역 도/현 시/구 칼럼을 신설住所 칼럼(series)의 값들을 apply 의 lambda 로 처리정규표현( https://eldercoder.tistory.com/167 )의 [ ] 를 써서 ..

카테고리 없음 2025.02.18

docker 릴리스

docker 를 개발 PC에서 작성하여 서비스할 서버에 배포를 해야 할 경우, docker hub 사이트를 통하여 업로드하여 다운로드하는 방식으로 가능하다. 하지만 이를 위해서는 돈을 지불해야 한다.https://hub.docker.com/ docker hub를 이용하지 않는 방법을 소개한다. 1. 개발 PC에서의 docker 이미지 리스트 조사 $ docker imagesREPOSITORY   TAG       IMAGE ID       CREATED         SIZEyaho/web           1.0       d3e7f2099862   7 seconds ago   62.6MB  2. 옮길 대상의 docker 를 tar 압축화일로 출력 $ docker save -o  yaho_web_ima..

Commands/docker 2025.02.17

(colab) web scrapping

웹스크래핑이란 웹서버로 부터 html 전체를 가져와서 html 태그내에 있는 유용한 데이터를 추출하는 것이다. 최근 사이트들은 Scrapping 방지를 해 놔서 일반적인 python 의 requests.get(url) 로는 Timeout 에러가 발생한다. 하지만 웹 브라우저(Chrome, Firefox 등등)을 이용하면 제한은 없어지기 때문에 프로그램적으로 웹 브라우저를 통제하기 위해서 python에서 selenium 라이브러리를 통하여 작동할 OS에 설치되어 있는 브라우저에 맞는 Webdriver를 이용한다.  프로그램이 동작할 OS에서의 설정은 까다로운 편이지만, Google Colab 에서는 아래와 같이 간단하게 설정하면 된다.!pip install google-colab-selenium impor..

data science/python 2025.02.16

close contours (convexHull 사용)

과제findContours 에 RETR_EXTERNAL 옵션을 주면 가장 외곽의 연결된 선의 좌표들을 추출하는데, 만약 그 외곽선의 일부가 약한 픽셀로 되어 있다면 결과는 봉쇄되지 않은 contour로 인해 안쪽의 contour 좌표들도 결과로 추출되게 된다.결과적으로 가장 외곽의 contour만 추출하고자 한다.  아이디어모든 contour의 포인터들을 하나의 벡터에 집어넣고 그 벡터를 convexHull 로 처리하면 외곽에 완만한 곡선의 결과 포인트들만 얻을 수 있다.처리속도를 고려한다면 모든 포인트들을 전부 벡터에 넣을 필요는 없고 간격을 두고 처리하는 것도 좋은 아이디어이다.※ convexHull 과 approxPolyDP 의 차이점은 approxPolyDP 가 모든 contour 포인트들 대상으..

opencv 2025.02.16

스캔 이미지 중 여러 영수증 분리하기

과제아래와 같이 영수증을 모아 스캔한 이미지가 있고 영수증 영역을 각각 분리하고자 한다. 아이디어1. 위에 4장은 세로로 길고 아래 한장은 옆으로 눕혀있다.2. 위의 4장은 세로이므로 흑백 이미지로 변환한 후 세로로 길게 (3 x 40) 모펄러지 필터를 적용하자3. 2의 필터로 문자들간에 거리가 40픽셀 이하는 하나로 묶여지게 되었고 큰 덩어리로 서로 분리 되었다.    큰 틀안에 독립된 덩어리들도 존재하지만 5번에서 처리.4. findContours 실시하여 먼저 덩어리의 면적 순으로 내림정렬를 시킨다. 5. 작은 덩어리들은 큰 덩어리 내 혹은 겹치지 않는지 조사하여 합체 시키고, 외에 존재하는 덩어리들은 한 묶음으로 하기 위해 시작점과 끝점을 벡터에 등록한다.6. 큰 덩어리는 빨간색으로 작은 덩어리들..

opencv 2025.02.15

자동차 번호판 추출하기

아이디어1. 흑백으로 변환하여 contour 를 실시2. approxPolyDP로 contour 결과로 부터 꼭지점이 4개(4개의 코너)인 것 중 가장 면적이 넓은 contour를 기억approxPolyDP 알고리즘은 정확한 형태를 추출하는게 아니라 contours를 간단화 하는 것이다.contour의 형태에 적게 공헌하는 포인트들은 제거되고 형태에 공헌을 많이 하는 코너들은 남게 되는 것이다.옵션의 epsilon 은 작을수록 제거되는 포인트들은 줄게되고 큰값 일수록 많은 포인트들이 제거되어 간단화가 크게 이루워 진다.3. boundingRect 로 사각형의 좌표와 사이즈를 추출 주의) 노이즈가 심한 경우 contour결과에 영향을 줄 수 있으니 필터링에 신경을 더 써야 할 경우가 있다.번호판 보다 더 ..

opencv 2025.02.15

Naïve Bayes (나이브 배이스) Classifier - 실전 1

아래와 같이 X_train 과 Y_train 을 가지고 학습을 한 뒤 X_test 가 Y 일지 N 일지 분류하고자 하자.X_train = np.array([  [0, 1, 1],                                 [0, 0, 1],                                 [0, 0, 0],                                 [1, 1, 0]] )Y_train = ['Y', 'N', 'Y', 'Y']X_test = np.array([ [1, 1, 0] ]) Naïve Bayes (나이브 배이스) Classifier 에서 설명한 것 처럼 다시 구성을 하면 아래와 같다.'Y' 의 총수는 3개이고 'N' 의 총수는 1개이다. 전체는 4개의 데이터...