분류 전체보기 92

CNN 알고리즘 (컨벌루션 네트워크)

1. CNN 이란? 이미지 인식 패턴을 찾는데 유용한 알고리즘으로 데이터를 학습하고 새로운 데이터가 들어왔을 때 이미지를 분류해낼 수 있는 알고리즘이다. 자율주행차, 얼굴인식 등에 주로 쓰이는 알고리즘이기도 하다. 예를들어 영상을 인식을 통해 영상 안의 강아지와 고양이를 인식하고 분류할 것이라면,1) 먼저 카메라로 촬영한 영상의 이미지를 가져온다.2) 그다음으로 전처리 과정이 필요하다. 잡음을 없애고 단순화하기 위함이다. 3) 영상 분할 기법을 사용해서 영상에서 동물과 배경을 분리한다.4) 추출된 동물 이미지에서 동물의 특징값을 계산한다.5) 이 특징값들을 이용하여 분류기는 최종 판단을 내린다. => 강아지인지 고양이인지 위의 방법은 전통적인 영상 인식 시스템에서 특징을 추출하는 과정이다. 이렇게 하면 ..

기계학습, 머신러닝이란?

기계 학습 컴퓨터는 스스로 학습할 수 없으니까 우리가 컴퓨터한테 일을 시키려면 반드시 프로그래밍 (=코딩) 을 해서 작업지시를 해야한다. 그러나 컴퓨터가 스스로 학습할 수 있다면? 프로그래밍을 안 하더라도 컴퓨터 스스로 여러가지 일을 할 수 있다! 따라서 주어진 입력을 점차적으로 개선하는 방향으로 해석하도록 컴퓨터에게 지능을 부여하는 것 이것이 바로 기계학습이다. 기계 학습을 통해 새로운 데이터와 답을 주고 데이터의 패턴을 분석하여 규칙을 찾도록 프로그래밍하여 결과값을 예측하는 것이다. 그렇다면 이러한 기계학습은 어디에 이용될까? 예를들면, 넷플릭스에서 비디오를 추천해주는 것도 모두 기계학습을 이용한 예이다. 그외에도 자율주행 시스템, 상품 추천 시스템, 광고시스템, 안면인식, 음성인식, 영상인식 등등 ..

네트워크 기초 TCP/IP, IPv4 와 IPv6

TCP/IP 프로토콜 프로토콜이란? 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지를 정의한 통신 규약 즉, 같은 프로토콜을 사용하는 기기 간에는 통신이 가능하다. 인터넷에서는 TCP/IP 프로토콜에 따라 데이터를 주고받는다. TCP/IP 프로토콜은 5계층으로 구성되어 있는데, 계층별로 다양한 서비스를 제공하는 프로토콜이 지원된다. 계층 프로토콜 전송단위 응용 계층 ) 서비스 제공 응용 프로그램 DNS, FTP, SSH, HTTP, 텔넷 메시지 전송 계층) 응용프로그램으로 데이터전달, 데이터 흐름 제어 전송 신뢰성담당 TCP , UDP 세그먼트 네트워크 계층) 주소 관리 및 경로 탐색 IP, ICMP 패킷 링크 계층 ) 네트워크 장치 드라이버 ARP 프레임 물리 계층 )케이블 전송매체 구리선, 광..

Hello World!/공부 2020.10.06

아두이노 빵판 ( 브레드보드)

아두이노 사용하다보면 여러 포트를 필요로 하기 때문에 배선을 해야하는 상황이 온다. 이때 빵판 (= 브레드보드) 는 어떻게 사용할까? 브레드보드의 + (빨간부분) - (파란부분) 이쪽은 다 연결되어 있는 것이라고 보면 된다. 그라운드는 많이 쓰이는 포트기 때문에 GND (그라운드 포트) 와 - 극 아무데나 연결해주면 -가 완성된 것이다. 그리고 연결하려는 LED 의 + 를 13번 포트에 꽂아주고 -극은 점퍼선을 이용해 빵판의 - 아무곳에나 껴주면 끝!

Hello World!/IoT 2020.09.21

아두이노 - GPS 모듈 사용해보기

처음 아두이노 gps 모듈을 받았을 때 저렇게 왼쪽 사진처럼 핀헤더가 꽂혀있지 않은 상태였다. 핀헤더를 꽂고 점퍼선을 연결하려면 납땜이 필수라고 한다... 그래서 납땜을 해서 핀헤더를 고정하고 점퍼선을 꽂아주었다. 다이소에 파는 납땜기랑 납을 사서 간단히 납땜을 완료했따. Neo6m은 디바이스마트에서 구매했다. GPS 모듈은 MCU 와 UART 통신을 통해 제어한다. 아두이노 우노보드에 GPS 를 달고 여러 예제를 다뤄보았는데 , 실내에서는 도저히 GPS가 잘 안 잡혀 다른 해결책을 생각해봐야겠다...^^;;;

Hello World!/IoT 2020.09.21

아두이노 와이파이 ESP8266 + ESP-01

아두이노에서 와이파이 통신을 위해 구매한 ESP8266 과 ESP-01 디바이스마트에서 구매했다. 어댑터 모듈에 시리얼 와이파이 모듈을 꽂은 후 점퍼선을 연결해주었다! 이걸로 와이파이가 연결되는지 해보았다! Arduino 스케치에 입력해줄 코드 ! 이렇게 입력하고 업로드를 해준 후 시리얼 모니터를 켜서 AT 라고 입력해본다. 이때 Both NL & CR 과 9600 보드레이트로 맞춰주지 않으면 이상한 글자가 나왔다.. OK 확인 후 이제 연결할 수 있는 와이파이들을 확인해본다. AT+CWLAP 을 치면 연결할 수 있는 와이파이들이 나온다. 연결할 와이파이를 고르고 AT+CWJAP="SSID","PASSWORD" 와이파이이름과 비밀번호를 차례로 써주고 엔터를 치면 연결이 된다. 연결이 완료되면 이런 메시지..

Hello World!/IoT 2020.09.16

안드로이드스튜디오에서 Jsoup으로 웹 크롤링하기 (Java)

jsoup 이란 특정 url의 html을 파싱해주는 라이브러리 파싱이란? 컴퓨터 과학에서 파싱((syntactic) parsing)은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 파스 트리(parse tree)를 만드는 과정을 말한다. 안드로이드스튜디오에 build.gradle(Modul: app) 에 dependencies를 추가해준다 → implementation 'org.jsoup:jsoup:1.13.1' manifest 에는 이부분도 http 통신을 위해 추가! 그다음 크롤링하고 싶은 웹페이지에 들어간다. 나는 빨간 부분을 가져오고 싶었다. 네트워크에서 데이터를 받아오려면 별도의 Thread가 필요하다! 그러지 않으면 이런 에러를 볼 수 있다!! doc.select( )..

안드로이드스튜디오에서 위치기반 서비스 만들기 (+ googleMap)

안드로이드 기반 폰 위치는 위치관리자 라는 시스템 서비스가 관리한다. 현재 나의 위치를 확인하면서, 관심있는 장소들을 마커로 찍어주는 것을 해볼 것이다. 이건 완성된 모습! 여기서 기능을 좀 더 추가해봐야겠다! 1. 먼저 안드로이드 프로젝트를 만들 때 Template 를 googleMap 을 열어준다. Settings 에 가서 android SDK - SDK Tools 에서 Google Play services 가 설치되어 있어야한다. 2. 만들어진 xml 파일을 보면 링크가 있는데 이걸 따라 들어가본다. 3. 동의 및 계속하기를 누르고 API 발급받기를 누른 후 받아온 키를 YOUR_KEY_HERE 에 복붙! 4. 실행해보면 지도 마커가 시드니에 위치되어 있다. MapsActivity.class 의 이..

알고리즘의 성능을 나타내는 복잡도

복잡도는 알고리즘의 성능을 나타내는 척도다. 복잡도 - 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지 의미 - 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지 의미 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 알고리즘 문제를 풀 때 '복잡도' 는 시간 복잡도이다. 시간 제한이 문제를 푸는 시간을 정한 듯하지만, 코딩 테스트에서는 작성한 프로그램이 모든 입력을 받아 이를 처리하고 실행 결과를 출력하는 데까지 걸리는 시간을 의미한다. 프로그램을 비효율적으로 코딩해서 시간제한을 넘긴다면 -> '시간초과' 와 함께 오답^^ 시간복잡도를 표현할 때는 빅오 표기법을 사용한다. 빅오 표기법 (아래로 갈수록 느림 !) 명칭 O(1) 상수 시간 O(l..

Hello World!/공부 2020.09.07

아두이노 LED

1) pwm 을 이용한 아두이노 밝기 조절 analogWrite(pin번호 , i) i는 0~255 까지만 받아들일 수 있다. 256이 들어간다면? LED 가 꺼진다! PWM (아두이노 판에 보면 ~ 로 표시되어 있음)PWM 을 통해 자신이 원하는 전압으로 바꿀 수 있다. 시리얼을 통해서 컴퓨터와 통신할수도 있는데,컴퓨터 -> 아두이노로 값을 보내준다. if(Serial.available()) { / /Serial.available() => 시리얼에 읽을 값이 있다면, Serial.println(Serial.read()); int r = Serial.parseInt(); // 컴퓨터에서 정수 입력 - > 아두이노에서 반응 analogWrite(8 , r) ; }0~ 255 로 밝기 조절이 가능하다! 2)..

Hello World!/IoT 2020.09.07