State, Action, Reward


자율주행 인공지능 

1. State

(1) 도로

(2) 차의 위치와 속도


2. Action

(1) Steering

(2) Accel

(3) Break


3. Reward

(1) 잘 갔는지


Agent => action->Environment-> Reward, state -> Agent


입력에 따라 State가 변함

State 가 안변할 수도 있음


써튼 교수님 책 - Slot machine - state가 안변하는 대표적인 사례


최종 목표

Rewards를 최대화 하는 Action 을 구하라



(1)  Return - Action At 이후에 받은 모든 Reward의 총합

- but 끝이 없는 task라면?? - 연날리기? 

(2) Continuous task 

- Discounted Return 을 최대화 하는 행동을 찾음

(3) Gt = Rt + rGt+1

(4) Value Function

- 어떤 state에 놓여 있을 때 expected discounted return (기대 값)을 최대로 


(5) Bellman Equation - 굉장히 많이 씀

(6) Markov Decision Process?

(7) Monte Carlo Method

- 뭐라도 해본다.

- 단점 : Episode가 끝나야만 알 수 있다.

(8) Q Function

State에서 어떤 Action을 취했을 때의 return

(9) Policy Based 

- State에서 최적의 Action을 알려줌


(10) Deep Deterministic Policy Gradient




Posted by 공놀이나하여보세

https://gist.github.com/haje01/0fb6d63bf065c9831256



Posted by 공놀이나하여보세

printf 설정

https://www.plainy.co.kr/bbs/board.php?bo_table=stm32_lecture&wr_id=21


uart 인터럽트 설정

아래 사이트 참조

https://m.blog.naver.com/PostView.nhn?blogId=wararat&logNo=220722733855&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

http://mul-ku.tistory.com/entry/STM32-UART-%EC%88%98%EC%8B%A0-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%98%88%EC%A0%9CHAL-DRIVER

 

'Embedded > STM32' 카테고리의 다른 글

printf 설정 / uart interrupt 설정  (0) 2017.12.29
Posted by 공놀이나하여보세
가장 빨리 만나는 딥러닝 WITH CAFFE

CUDA Install

http://pythonkim.tistory.com/71

Caffe 설치 시 생기는 문제들은 아래 블로그를 통해 대부분 해결됨
http://iamyoonkim.tistory.com/6

쉘 내부
1. 솔버의 파라미터 : lenet_solver.prototxt
(1) net : 네트워크의 파라미터 파일로 파일 버스를 지정 
lenet_train_test.prototxt 
(2) test_interval: 학습 중 테스트를 실행하는 간격
(3) base_Ir : 학습 시 학습률의 초기값 지정
(4) display : 학습 시 경과를 나타내는 간격
(5) max_iter : 학습을 실행하는 최대 회수 지정
(6) solver_mode : 학습 시 cpu 또는 gpu 선택


2. 네트워크의 파라미터 : lenet_train_test.prototxt

[공통]

(1) name : 계층의 이름을 지정

(2) type : 입력층, 은닉층 타입 지정


[입력층]

(1) top : 입력 데이터와 지도 학습 데이터를 각각 지정

(2) include 

      - phase : 학습 시 또는 테스트 시 어느 경우 그 계층을 이용할 것인지 지정 - TRAIN, TEST

(3) data_param

      - source: 읽기 데이터의 파일 버스를 지정


[은닉층]

(1) Type: "Convolution"은 컨볼루션층을 나타내는 타입

      - bottom: 입력이 되는 계층 지정

      - top : 출력이 되는 계층 지정

      - convolution_param: 컨볼루션층의 파라미터를 지정

              num_output: 컨볼루션층에서의 출력 횟수

              kernel_size: 컨볼루션 창의 크기를 지정

              stride: 컨볼루션 창의 움직이는 크기 지정

(2) Type: "Pooling"은 풀링층을 나타내는 타입

(3) Type: "InnerProduct"는 전결합층을 나타내는 타입


[활성화 함수]

Tanh, Sigmoid, ReLU


[출력층]

Accuracy : 정밀도 산출 

SoftmaxWithLoss : 정밀도 산출




Posted by 공놀이나하여보세

Object Detect - Tensorflow 이용

https://github.com/MarvinTeichmann/KittiBox


Digits Object Detect - Caffe Digits 이용

https://github.com/NVIDIA/DIGITS/tree/master/examples/object-detection



http://goodtogreate.tistory.com/588



ImportError: No module named nets


export PYTHONPATH="$PYTHONPATH:/home/jaehyeuck/tensorflow/models/slim" 




fastmaskR CNN

https://github.com/CharlesShang/FastMaskRCNN


'Machine Learning > TensorFlow' 카테고리의 다른 글

Tensorflow Object Detection API (SSD, Faster-R-CNN)  (0) 2017.08.01
Posted by 공놀이나하여보세

http://pythonkim.tistory.com/71


우분투 무한 로그인


apt로 nvidia-current 를 설치할 경우 무한 로그인에 빠져들 수 있습니다. 

이럴 경우 로그인 화면에서 tty 화면으로 이동합니다.


ctrl + alt + f1


여기에서 로그인 후 기존에 설치된 드라이버를 모두 삭제하고 375 버전을 설치합니다.


sudo apt-get purge nvidia-*

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

sudo apt-get install nvidia-375


그 이후 reboot 명령으로 재시작을 하면 문제 해결~



출처: http://mikelim.mintocean.com/entry/Ubuntu-1604-Nvidia-드라이버-설치-후-무한-로그인-될-경우 [Simple is best]



Posted by 공놀이나하여보세

http://dsnight.tistory.com/44


http://www.ftdichip.com/Support/SoftwareExamples/Android_Projects.htm

android.zip 다운

'Software > Android' 카테고리의 다른 글

블루투스 앱 + usb to serial  (0) 2017.07.18
Posted by 공놀이나하여보세


qr코드 인식 : http://blog.daum.net/pg365/186


1. 그레이로 변경

        image = cv2.imread("sample.jpg", cv2.IMREAD_COLOR)

        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)


        hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

2. 이미지 저장

cv2.imwrite('image.jpg', image)

3. 블랙 화이트 분리

ret,thresh1 = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)


4. 화이트 색상 HSV 값

http://stackoverflow.com/questions/22588146/tracking-white-color-using-python-opencv


sensitivity = 15
lower_white = np.array([0,0,255-sensitivity])
upper_white = np.array([255,sensitivity,255])

5. 색상 반전

imagem = cv2.bitwise_not(imagem)


6. 카메라 해상도 변경

cap = cv2.VideoCapture(0)

cap.set(3, 1280.)
cap.set(4, 720.)


7. 외곽선 추출

python

http://www.pyimagesearch.com/2014/04/21/building-pokedex-python-finding-game-boy-screen-step-4-6/


        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

        gray = cv2.bilateralFilter(gray, 11, 17, 17)

        edged = cv2.Canny(gray, 30, 200)


        cnts = cv2.findContours(edged.copy(), cv2.RETR_TREE,

                cv2.CHAIN_APPROX_SIMPLE)[-2]


cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:10]

            

            screenCnt = None


            


            

            print 'start'

            for cnt in cnts:

                epsilon = 0.1 * cv2.arcLength(cnt, True)

                polygon = cv2.approxPolyDP(cnt, epsilon, True)


                if len(polygon) == 4:

                #if True:

                    screenCnt = polygon

                    #cv2.drawContours(temp, [screenCnt], -1, (0, 255, 0), 3)

                    cv2.drawContours(image, [screenCnt], -1, (0, 255, 0), 3)

                    #cv2.imshow("Screen", temp)

                    print 'find!!'

                    break

            print 'end' 

c

===========아래===========

http://hongkwan.blogspot.kr/2013/01/opencv-7-4-example.html

cv::findContours(image, 
contours, // 외곽선 벡터 
CV_RETR_EXTERNAL, // 외부 외곽선 검색
CV_CHAIN_APPROX_NONE); // 각 외곽선의 모든 화소 탐색
// 지정된 플래그 - 첫 번째는 외부 외곽선이 필요함을 나타내며 객체의 구멍을 무시
// 두 번째 플래그는 외곽선의 형태를 지정 - 현재 옵션으로 벡터는 외곽선 내의 모든 화소 목록
// CV_CHAIN_APPROX_SIMPLE 플래그로 하면 마지막 점이 수평 또는 수직, 대각선 외곽선에 포함됨
// 다른 플래그는 간결한 표현을 얻기 위해 외곽선의 정교하게 연결된 근사치를 제공

// 이전 영상으로 9개 외곽선을 contours.size()로 얻음
// drawContours() 함수는 영상 내의 각 외곽선을 그릴 수 있는 함수
// 하얀 영상 내 검은 외곽선 그리기
cv::Mat result(image.size(), CV_8U, cv::Scalar(255));
cv::drawContours(result, contours,
-1, // 모든 외곽선 그리기
cv::Scalar(0), // 검게
2); // 두께를 2로
// 세 번째 파라미터가 음수라면 모든 외곽선이 그려짐
// 반면 그려져야 하는 외곽선의 첨자를 지정할 수 있음

8. 


'영상처리 > OpenCV' 카테고리의 다른 글

마커 인식  (0) 2017.02.03
OpenCV - Diffence Image 영상차  (0) 2017.01.04
Posted by 공놀이나하여보세

Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Trace/breakpoint trap (core dumped)

위와 같은 에러가날 때가 있다.


이때는 아래처럼 코드에 한줄을 추가해주면 된다.

import matplotlib 

matplotlib.use('Agg')


출처 : https://github.com/yosinski/deep-visualization-toolbox/issues/10

Posted by 공놀이나하여보세

http://blog.naver.com/samsjang/220498694383

Posted by 공놀이나하여보세