Python(39)
-
MNIST 데이터를 이용한 글자 인식 프로그램 (1)
요약 기계학습은 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 사용하여 학습하는 것을 말합니다. 이 프로젝트에서는 손 글씨로 된 숫자 데이터로 이루어진 MNIST 데이터를 사용하여 학습합니다. 사용자가 직접 그린 손 글씨 이미지를 학습된 매개변수로 이루어진 신경망을 통과시켜 어떤 수를 입력했는지 판단하고 정확도를 출력하는 코드 작성을 목표로 합니다. 완성된 코드를 바탕으로 단순 신경망을 통한 학습이외에도 오차역전파법, CNN을 사용한 학습 데이터를 사용하여 각각의 정확도를 비교합니다. 프로젝트 준비(설계) 코드의 실행순서를 간략하게 요약하면 다음과 같습니다. 1. 코드를 실행시키면 CV창이 보여지고 사용자가 CV창에 마우스를 사용해서 숫자를 그립니다. 2. 스페이스바를 누르면 2..
2019.10.08 -
인스타그램 이미지 다운로더 만들기
게시물 ID 가져오기 저번에 만들었던 인스타그램 아이디, 해시태그를 수집하는 크롤러를 만들고 나서 코드를 조금만 수정하면 인스타그램 이미지 다운로더도 만들 수 있겠다는 생각에 만들어봤습니다. 기본적으로 게시물 각각의 ID를 수집하는건 저번에 설명드린 것과 같습니다. 아래 글을 참고해주세요. 인스타그램 해시태그 크롤링(1) 준비 -운영체제 : Windows 10 -언어 : Python -웹 드라이버 : chromedriver.exe 프로그램 실행 과정 1. 인스타그램 해시태그를 크롤링합니다. 2. 검색어를 입력하면 검색어에 관한 게시물의 작성자 ID와 해시태그.. yeowool0217.tistory.com 크롬 웹 드라이버 버전 확인은 필수입니다. 이미지 URL 가져오기 1. 게시물 ID 가져오기 2. 이..
2019.10.01 -
Perceptron을 이용한 Tic-Tac-Toe게임구현 (2)
학습시키기 한 번의 학습으로 매개변수 값을 얼마나 경신하는지 정하는 ‘학습률’은 0.1로 설정했습니다. 모든 학습 준비가 끝났기 때문에 ‘tf.Session’함수를 사용해서 연산합니다. 손실함수의 최솟값을 찾기 위해서 반복하며 학습합니다. with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for step in range(1001): sess.run(train, feed_dict={X: X_train, Y: y_train}) if step % 100 == 0: print(step, sess.run(cost, feed_dict={X: X_train, Y: y_train}), sess.run(W)) Tensorflow를 사용했기 때문..
2019.09.20 -
Perceptron을 이용한 Tic-Tac-Toe게임구현 (1)
준비 Windows 10 Python Tic-Tac-Toe Dataset Tic-Tac-Toe게임 학습을 진행하기 전에 학습할 데이터의 분석과 게임 구현을 위해 Tic-Tac-Teo 게임의 규칙을 알아봤습니다. Tic-Tac-Toe게임은 9칸의 공간에 한 명은 ‘O’ 다른 한 명은‘X’를 번갈아 그리며‘O’나 ‘X’ 3개가 직선으로 이어지게 만들면 승리하는 게임입니다. 아래 그림은 전체적인 프로그램 실행 순서를 도식화 해 놓은 그림입니다. Tic-Tac-Toe게임은 바둑돌로 하는 오목게임과 비슷합니다. 3행 3열 총 9칸에서 두는 삼목 게임이라고 할 수 있겠네요. Tic-Tac-Toe Dataset 학습을 위해서는 학습할 데이터가 필요하기 때문에 데이터의 구현이 필요했습니다. 3*3개의 칸을 채워야 하기..
2019.09.20 -
파이썬을 파이썬답게 (3)
파이썬을 파이썬답게 | 프로그래머스 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코드를 low level 언어( C / C++ ) 코드처럼 짜시는 분 ##### Glossary 본 강의에서 사용하는 파이썬 용어에 익숙하지 않은 분들을 위해, [Python 3.6 programmers.co.kr 1. 2차원 리스트를 1차원 리스트로 만들기 -문자열을 담은 이차원 리스트, mylist 가 solution 함수의 파라미터로 주어집니다. solution 함수가 mylist를 일차원 리스트로 만들어 리턴하도록 코드를 작성해주세요. 파이썬의 sum함수를 사..
2019.09.14 -
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