분류 전체보기

    텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #3 - 데이터 학습 및 모델 만들기

    2019/01/30 - [프로그래밍/딥러닝] - 텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #2 - 데이터 만들기 이제는 딥러닝의 핵심인 학습과 모델이다. 텐서플로우를 백엔드로 하는 케라스를 이용해 학습 및 모델을 만들었으며 인공신경망은 3개의 relu 은닉층을 가진다. train.py from keras.models import Sequential from keras.layers import Dense from keras.callbacks import ModelCheckpoint, EarlyStopping import pandas as pd import numpy import tensorflow as tf import matplotlib.pyplot as plt seed = 0 numpy.rand..

    텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #2 - 데이터 만들기

    2019/01/26 - [프로그래밍/딥러닝] - 텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #1 - 템플릿 매칭 이전 글에 이어서 이번에는 텐서플로우로 학습할 데이터를 생성하는 과정을 소개한다. make_data.py import numpy as np from PIL import ImageGrab import cv2 import cv2 as cv import keyboard template1 = cv.imread('images/cactus1.png', 0) template2 = cv.imread('images/cactus2.png', 0) template3 = cv.imread('images/bird1.png', 0) template4 = cv.imread('images/bird2.png', 0) ..

    텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #1 - 템플릿 매칭

    최근 딥러닝을 공부하면서 가장 처음 만든 모델을 공유하고자 한다. 바로 인터넷 연결이 안될때 즐길수 있는 크롬 브라우저의 공룡게임을 머신러닝으로 학습시켜 제작한 AI이다. 전에 제작한 2018/03/02 - [아두이노/프로젝트] - 아두이노 크롬 공룡게임 자동 플레이 의 AI 버전이라고 생각하면 편하다. 이미 모델은 완성되었지만 3단계 정도로 나누어 개발과정을 소개하고자 한다. 만약 완성된 코드가 궁금하다면 필자의 깃허브 링크 https://github.com/Hydragon516/Deep-Learning-Google-Chrome-Dinosaur-Game 에 전체 코드들과 모델 데이터, 실행방법 등을 확인할 수 있다. (필자의 딥러닝에 대한 지식은 "모두의 딥러닝"이라는 좋은 입문서의 내용이 전부라서 초..

    윈도우 환경에서 YOLO로 실시간 객체탐지

    YOLO는 you only look once 의 줄임말로 딥러닝에 관심이 있다면 한번쯤 들어봤을 법한 강력한 객체 인식 알고리즘이다. https://pjreddie.com/darknet/yolo/ 개발자의 홈페이지에 리눅스 환경에서 설치와 실행하는 방법이 자세히 나와있다. 필자는 우분투가 설치된 컴퓨터가 있지만 윈도우 환경에서 실행해보고자 한다. 방법은 크게 2가지가 있는데 만약 C언어로 개발할 계획이면 visual studio에서 YOLO를 빌드하는 방법이 있고 (YOLO는 C를 기본으로 개발됬다.), 파이썬을 더 선호한다면 파이썬의 강력한 딥러닝 툴인 텐서플로우를 이용하는 방법이 있다. 여기서는 후자의 방법을 소개한다. YOLO를 실행하는 환경을 개발자는 darknet 이라고 명명했는데, 어떤 고마운..

    텐서플로우와 케라스로 딥러닝 환경 구축하기

    최근 딥러닝에 관심을 가지게 되면서 관련된 책을 구입해 독학해보는 중이다. 이 책이 딥러닝을 처음 공부하기에는 최고의 책이 아닌가 싶다. 파이썬, 텐서플로우, 케라스 조합으로 딥러닝의 기초부터 자세하고 쉽게 설명해 마음이 든다. (다만 책에 오류와 오타가 좀 있는데 한번 문의해볼 생각이다.) 그래서 이 참에 위 책의 내용을 토대로 배운 딥러닝 개발환경을 구축하는 방법을 공유하고자 한다. 우선 필자의 경우는 노트북에 외장 그래픽 카드가 장착되어 있으므로 GPU를 사용하는 방식으로 구축하고자 한다. 만약 본인이 GPU가 없다면 아래 내용의 3번부터 시작하면 된다. 1. CUDA 설치 GPU의 연산을 효율적으로 도와주는 CUDA는 아래 링크에서 다운이 가능하다. https://developer.nvidia.c..

    가성비 블루투스 이어폰 QCY-T1 구입

    사실 구매한지는 좀 됬는데 이제야 후기를 올린다.최근 국내에서 인기있어진 QCY-T1이라는 블루투스 이어폰을 알리익스프레스에서 약 18달러에 구입해 사용해봤다. 확실히 국내 유명 IT 리뷰어들이 극찬한것 처럼 가성비는 매우 뛰어난 것 같다.필자가 막귀라 음질에 대해서는 평가하기 어렵지만 그래도 장단점을 나열해보면 아래와 같다. 장점 : 밀착력이 매우 뛰어나 외부소음이 거의 안들린다, 가볍고 배터리도 매우 오래가는 편, 케이스에 뚜껑이 없어서 오히려 편하다. 등등단점 : 물리식 버튼, 케이스로 충전중에 케이스 배터리가 먼저 방전되면 케이스 안에서도 이어폰이 페어링을 시도한다, 아주 가끔 왼쪽의 페어링 불량 등등

    아두이노 다채널 미디 플레이어 제작 #5 - PCB 발주 및 완성

    사실 좀더 일찍 완성할수도 있었지만 이제서야 완성하게 됬다. 이번에는 좀 특이하게 원형으로 PCB를 제작해 봤는데 생각보다 잘 나와준것 같다. 오랜만에 영상을 편집해 업로드 했다. 이번 영상은 영어로 제작했는데, 최근 외국 자작 포럼등에 관심이 생겨서 그곳에 프로젝트를 공유해보고자 영어로 만들어봤다. (사실 영어실력은 좋지 않은 편이다. 그래도 한번쯤 도전해보고 싶었다.) 영문 글은 https://www.hackster.io/hydragon516/arduino-5-channel-midi-player-fdf335 에서도 확인이 가능하다. 관련글2018/02/15 - [아두이노/기초] - 미디파일을 tone()으로 변환하기 [아두이노]2018/02/16 - [아두이노/프로젝트] - 아두이노 3채널 미디 오케..

    USB to TTL 변환기가 인식되지 않을때 해결법

    아두이노 프로미니는 자체적인 시리얼 변환기가 없기 때문에 아래와 같은 USB to TTL 변환기가 있어야 개발이 가능하다. 이러한 변환기는 드라이버가 있어야 컴퓨터에서 정상적으로 인식하는데, 드라이버의 종류는 변환기에 장착된 칩셋에 따라 달라진다. 그런데 저렴한 제품의 경우 (특히 알리에서 구매했을 경우) 이 칩셋 명이 보이지 않는데, 찾아보니 위와같은 모양의 변환기를 가졌을 경우 PL2303이라는 드라이버가 필요하다. 그런데 구글에서 해당 드라이버를 검색해 설치한 뒤 컴퓨터에 꼽아도 아래와 같이 제대로 인식되지 않았다. 구글링을 좀 해보니 해결법이 나왔다. 우선 아래 링크에서 드라이버를 다운받는다. https://drive.google.com/open?id=11455hFdCaNENKdNZ-9n6bVoH..

    Blynk와 아두이노에서 미세먼지센서 사용하기

    더 정확한 센서를 사용하는 방법은 아래 글을 참고하자 https://diy-project.tistory.com/145 아두이노 + PMS5003 센서로 미세먼지 측정하기 비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준 diy-project.tistory.com 이전글 2018/12/26 - [IOT 프로젝트] - Blynk와 아두이노로 온습도 표시하기와 이어지는 내용이다. 미세먼지 센서중 미세먼지 센서중 GP2Y1010AU 센서는 가격이 매우 저렴하고 사용법이 간단해 아두이노에서 자주 사용되는 센서중 하나이다. 필자의 경우 알리익스프레스에..

    Blynk와 아두이노로 온습도 표시하기

    지금까지 Blynk를 사용하면 Wemos D1과 같은 esp8266 계열의 보드를 반드시 사용했었다. 이러한 보드들은 자체적으로 WiFi칩이 내장되어있어 편리하지만 아두이노에 비해 사용가능한 디지털과 아날로그 핀의 개수가 현저히 적다는 것이 문제이다. 그래서 이번에는 아두이노를 그대로 사용하고 esp 01 모듈을 WiFi 쉴드처럼 이용하여 Blynk통신을 해볼 생각이다. esp 01의 핀 배치는 위와 같다. 이 모듈을 아두이노에서 사용하기 위해서는 팜웨어를 업데이트 해야하는데 아래 글을 참고했다. http://deneb21.tistory.com/343 팜웨어가 업데이트 되었다면 DHT22 온습도 모듈과 esp 01, 아두이노를 아래와 같이 연결한다. 아두이노 esp 01 DHT22 3.3V 8 5V + ..

    EKEN H9R 액션캠 구매 후기

    아주 오랜만에 올리는 제품후기인 것 같다. (사실 블로그에 글쓰는 것도 오래간만이긴 하지만)이번에 막굴릴 액션캠이 하나 필요해(특히 방수용) 알리익스프레스를 뒤지던중 EKEN사의 H9R이라는 4K 화질을 지원하는 제품을 찾아서 구매해 보았다. 구매 링크 : http://bitly.kr/tXUB한때 대륙에 실수라 불린 이른바 짭프로는 sjcam사의 sj시리스 였는데 요즘은 sj시리즈와 성능과 가격이 비슷한 제품들이 많이 등장했다. 그 중 최근에는 EKEN 회사가 새롭게 떠오르는 중인 것 같다. 구매 옵션은 아무것도 추가하지 않아 (이러한 가성비(?) 카메라는 전문적인 촬영에는 어울리지 않아 옵션은 별 의미가 없다.) 기본적인 카메라, 방수케이스, 기타 악세사리등을 포함하는 기본 SET으로 주문했다. 세일할..

    실시간으로 전세계 미세먼지 분포를 보여주는 사이트

    잠잠하던 미세먼지가 요즘 다시 극성이다. 마스크를 착용해야 목에 이물감이 없을 정도니 이제는 미세먼지 문제가 정말 심각하게 여겨진다. 우리나라의 미세먼지가 어느정도인지 아래 사이트에서 쉽게 확인이 가능하다. 실시간 영상을 보여주는데 PM2.5, PM10등 종류를 바꿀수도 있다. https://www.airvisual.com/earth 위 사진처럼 중국은 거의 전세계 최고의 공기오염을 보여준다. (2위는 아마도 인도가 아닐까 싶다. 만만치 않게 붉다.) 그 영향권안의 한국도 만만치 않다. 아무래도 집에 공기청정기를 놔둬야 할 것 같다.

    OpenCV로 차선인식하기 [허프변환]

    허프변환(Hough transform)은 직선을 찾는 가장 유명하고 일반적인 알고리즘이다. 전에 자율주행 차를 제작했을때 (2018/08/09 - [아두이노/프로젝트] - 자율주행차량 만들기(아두이노+OpenCV) #3 - 계획수정) 차선인식과 관련해 개인적으로 많은 질문을 받았었다. 그래서 허프변환을 이용해 차선을 검출하는 방법을 소개해 볼까한다. 허프변환은 직선 차선을 검출하는 하나의 좋은 예가 될 수있지만 정밀한 검출은 어렵다는 것을 상기하길 바란다. 허프변환의 원리와 코드는 아래의 사이트를 참고했음을 밝힌다. https://docs.opencv.org/3.4.0/d9/db0/tutorial_hough_lines.html 개발환경은 파이썬 3.6x, OpenCV, 파이참이다. OpenCV 설치는 2..

    네이버 얼굴인식 API를 이용해 얼굴인식하기

    네이버 개발자 센터(https://developers.naver.com/main/) 는 네이버에서 제작한 다양한 API서비스를 제공한다. 그 중 네이버 Clova에는 얼굴인식을 구현하는 API를 제공하고있다. 이번에 시도해볼 것은 네이버 API를 이용해 사진속 얼굴을 인식해 표시하는 예제를 제작해보는 것이다. 우선 개발자센터에 들어가 네이버 Clova에 얼굴인식 API를 신청해 클라이언트 ID등을 발급받아야 한다. 이 과정은 인터넷에 자세히 나와있으므로 여기선 다루지 않는다. (별로 어렵지도 않다.) Python 개발환경에 아래 코드를 입력한다. 123456789101112131415161718192021import cv2import requestsimport jsonclient_id = "*****"c..

    아두이노에서 Wii 눈차크 사용하기 [Wii Nunchuck]

    일본의 유명 게임회사인 닌텐도의 게임기 시리즈 중 닌텐도 Wii는 각각 3축 가속도계가 달린 Wiimote와 Wii Nunchuck을 게임 콘솔로 이용한다. (Nunchuck을 정확히 뭐라고 읽는지 애매하지만 눈차크나 넌척등으로 흔히 알려진듯 하다.) 특히 Nunchuck은 3축 각속도 센서, 2개의 버튼, 1개의 조이스틱이 포함되어있어 자작품 만들기에 유용한 컨트롤러이다. 게다사 I2C통신이 기본이라 아두이노에서 사용하기도 편하다. 알리에서 호환 컨트롤러를 저렴한 가격에 구할 수 있다. Wii Nunchuck의 커넥터는 일반적인 커넥터와 다르다. 총 6개의 핀중에 4개만 사용하며 위의 사진에서 1번은 SDA, 3번은 3.3V (특이하게 3.3V전원을 이용한다.) 4번은 GND, 6번은 SCL이다. 특이..

    아두이노 다채널 미디 플레이어 제작 #4 - Attiny85 ver

    이상하게 생각했을지도 모르지만 사실 모든 채널에 아두이노 프로 마이크로를 이용할 필요는 없었다. 사실 프로 마이크로는 HID 장치로 인시되어 PC와 미디 통신만 하면 되기 때문에 I2C 통신의 slave들은 일반적인 아두이노나 기타 다른 보드를 이용해도 무방했다. 프로 마이크로를 사용하게에는 보드의 성능의 너무 과분한 감이 있었다. 지금까지 미디 플레이어의 주된 코드는 2018/02/16 - [아두이노/프로젝트] - 아두이노 3채널 미디 오케스트라 의 글처럼 USBMIDI 라는 라이브러리를 기반으로 작동했다. 문제는 이 라이브러리가 HID 장비로 인식 가능한 레오나르도나 프로 마이크로에만 적용이 가능했기 때문에 slave들의 코드는 라이브러리를 사용하지 않고 새롭게 코드를 만들어야 했다. 미디신호를 to..

    딥러닝 기반의 GOTURN 방식으로 물체 추적하기 [OpenCV/Python]

    딥러닝 기반의 물체 추적방식은 다양하지만 OpenCV 내에서 가장 간단하게 해볼수있는 방법은 바로 GOTURN을 이용하는 것이다. 출처 : https://www.learnopencv.com/goturn-deep-learning-based-object-tracking/ 이번에 소개해볼 GOTURN의 소스코드와 기타 자료들은 모두 https://www.learnopencv.com/goturn-deep-learning-based-object-tracking/를 참고했음을 밝힌다. 우선 파이썬 개발환경에 아래 코드를 입력한다. # Copyright 2018 Satya Mallick (LearnOpenCV.com) # Import modules import cv2, sys, os if not (os.path.is..

    알리익스프레스 저렴한 오실로스코프 [DSO138]

    DSO138라는 모델명의 디지털 오실로스코프는 중국의 아주 저렴한 오실로스코프로 꽤나 알려진 제품이다. (구입 링크 : http://bitly.kr/1Hx1) 물론 수십만원에 달하는 오실로스코프와는 매우 떨어지는 성능을 보여주지만 (감지 가능한 주파수도 200kHZ 미만이고 여러 기능들이 생략되었다.) 그래도 휴대용으로 간단히 사용하기에는 부족하지 않는 성능을 보여준다. 참고로 전원은 9V 전원을 이용한다. (요즘 9V전원을 쓰는 제품이 별로 없어 구하기 좀 애매한 전원이다.) 포럼 글을 읽어보면 일반적인 9V 사각 전지로 정상동작이 어렵다는 글이 종종 보여서 전에 제작해둔 2018/08/22 - [자작] - 스틱 PC용 보조배터리 자작 #2 (feat 초밥) 9V 보조 배터리를 이용했다.위 사진은 아두..

    알리산 RC용 4채널 송수신기 테스트

    알리에서 물건을 사다보면 가끔씩 별 필요도 없는 물건을 충동 구매할때가 있는데 이 RC 송수신기도 사실 충동구매였던것 같다. (구매 링크 : http://bitly.kr/riIV) 요즘 중국판 블랙프라이데이라는 광군절이 곧 시작되어 엄청나게 세일하는 것 처럼 보이지만 필자가 구매했을때는 배송비 포함 18달러 정도로 광군절 세일 가격과 비슷하다(...) 결론은 알리의 광군절 할인은 싸보이는 듯 하면서 평상시와 비슷하다는 뜻이다. (혹시 알리에서 제품을 구입하기위해 광군절을 기다리고 있다면 이 점을 유의하자) 어쨋든 RC송수신기 치고 매우 저렴한 가격에 팔고있어 한번 구입해봤으며 정말 빨리 도착했다. (이런 판매자가 제일 마음에 든다.) 간단하게 서보모터만 물려서 테스트해봤다. 5V전원을 아두이노로해서 그런..

    아두이노 다채널 미디 플레이어 제작 #3 - 5채널 테스트

    스피커 부족으로 잠시 미뤄두었던 미디 플래이어 프로젝트를 부저를 구하면서 다시 시작했다. 다행이 잘 작동한다. 소스코드는 공개하겠지만 해당 영상의 버전과 다른 버전을 올릴 것이다. 우선 쓸데없이 프로 마이크로를 6개나 사용하기 때문에 좀 더 간결한 방식으로 바꿀 예정이다. 관련글2018/02/15 - [아두이노/기초] - 미디파일을 tone()으로 변환하기 [아두이노]2018/02/16 - [아두이노/프로젝트] - 아두이노 3채널 미디 오케스트라2018/08/27 - [아두이노/프로젝트] - 아두이노 다채널 미디 플레이어 제작 #1 - I2C 통신 테스트2018/10/10 - [아두이노/프로젝트] - 아두이노 다채널 미디 플레이어 제작 #2 - 중간점검2018/10/28 - [아두이노/프로젝트] - 아두..

# 테스트용