블로그 이미지
pgmr이상현
Instagram:sh_lee77 머신비전, YOLO, 영상처리, Deep Learning, 딥러닝

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Notice

2019. 12. 7. 21:56 Project

안녕하십니까, 이상현입니다.

16년도에(대학생 시절) 텍스트와 사물을 수화로 번역하는
안드로이드 어플을 개발했었는데, 제가 해당 아이디어를 가지고만 있기에는

아까운 것 같아 영상으로나마 공유드립니다.

 

개발하게된 계기는 가렵지만 긁을 수 없는 그러한 불편함을

해소 시켜드리고자 개발하게 되었습니다.

수화통역센터에 여러 차례 방문을 하면서,

청각장애인 분들 중 대다수가 문맹이라는 사실을 알게되었습니다.
어떤 분들은 화장실의 Lady, Gentleman또한 알지 못해

화장실을 갈 때에도 불편함을 느끼신다고 하여,
그러한 불편함들을 해소시켜드리고자 개발하게되었습니다.

 

posted by pgmr이상현
2019. 4. 1. 23:43 일상 스토리

안녕하십니까, 이상현입니다.

Coex에서 열린 Automationworld Korea Vision Show
전시회에서 딥러닝 비전검사 절차에 대한 세미나를 진행하였습니다.
실제 산업현장에서 AI가 어떻게 적용되는지 궁금하신분은 영상을 시청하시면 많은 도움이될 것 같습니다.

 

 

posted by pgmr이상현
2018. 11. 21. 20:42 TensorFlow Study
안녕하세요, 이상현입니다.

지난 포스팅에서 환경 구축을 끝맞치고, TensorFlow가 정상 동작하는지, 확인을 할 때
Welcome to TensorFlow를 출력 했습니다.

오늘은 그 코드에 대해서 설명을 해보려고 합니다.

import tensorflow as tf
 
welcome =tf.constant("Welcome to TensorFlow!!")
 
sess = tf.Session()
 
sess.run(welcome)

코드는 위와 같습니다.


1. tf.constant

먼저 tf.constant를 설명을 하겠습니다.


위 코드를 보시면 welcome은 프로그래밍을 해보신 분들은
모두가 변수라는 사실을 알 것 입니다.

그렇다면 welcome을 바로 출력을 해보겠습니다.


welcome =tf.constant("Welcome to TensorFlow!!")
print (welcome)


이렇게 출력을 하게되면 일반적으로 프로그래밍을 해보신 분들은 당연히,

Welcome to tensorflow!!가 출력되겠지 라고 생각하셨을텐데 아닙니다.


Tensor("Const:0", shape=(), dtype=string)

위와 같이 출력이 됩니다.


Tensor는 TensorFlow에서 사용하는 자료형입니다.

Const는 n차원 이라고 생각하시면되며, shape는 차원이 가지고 있는 요소의 수입니다.

dtype은 보시고 다들 아셨겠지만 datatype으로 현재는 string으로 문자열입니다.


한가지만 더 해보겟습니다.


a = tf.constant(10)
b = tf.constant(5)
c = tf.constant(5)
d = tf.add(a,b,c)


print (d)

위와 같은 코드를 작성을 하였을 때는 값이 어떻게 나올까요?

20이라는 값이 나올꺼라고 생각을 하시겠지만, 위에서 부터 차례대로 글을 읽으신 분들이라면 20이라고 생각을 안하셨겠죠?

바로

Tensor("Add:0", shape=(), dtype=int32)

위에서 welcome과는 모두가 같지만 dtype만 int를 가지는 것을 확인할 수 있습니다.


자 그렇다면 어떻게 welcome변수와 d가 가지고 있는 Tensor를 어떻게 출력을 할까요?

바로 바로 Session입니다. Session으로 넘어가 보도록 하겠습니다.


2. tf.Session

실질적으로 연산을 수행하는 곳은 바로 tf.Session입니다.

그러면 바로 Session과 run을 이용해서 출력을 해보겠습니다.

sess = tf.Session()


sess.run(welcome)
sess.run(d)


이렇게 Session을 이용해 Tensor들의 연산을 수행했을 때

welcome의 welcome to TensorFlow!!  <--출력 결과와

d의 20 <--이라는 출력 값을 얻을 수 있습니다.


자 이렇게 TensorFlow의 기초인 tf.constant와 tf.Seesion을 간단하게 배워보았습니다.

실습을 통해서 다들 해보시기바랍니다.


감사합니다.

posted by pgmr이상현
2018. 11. 14. 20:02 TensorFlow Study

안녕하세요, 이상현입니다.


이번에 TensorFlow공부를 시작해 보려고합니다.


공부를 하면서 알게되는 내용 공유를 하려고하니, 잘 봐주셨으면 좋겠습니다.



TensorFlow?

Tensorflow는 Machine Learning과 Deep Learning연구를 목적으로,
구글의 연구조직인 구글 브레인 팀의 연구자와 엔지니어들에 의해 개발된
Deep Learning Open Source Library입니다.

Why Tensorflow? 

* 발달된 Community

 - Tensorflow는 가장 활성화 되어있는 Deep Learning Open Source Library입니다.

Pytorch, caffe, Theano, Keras등 많은 Library가 있지만 그중에서도 가장 활성화된 Library가 바로 TensorFlow입니다. 예를 들어 Facebook의 Tensorflow kr라는 커뮤니티가 활성화
되어있으며, 새로운 논문이 
나올때에도 가장 먼저 Open Source로 나오는 것이 바로Tensorflow입니다.


그러면 오늘은 간단하게 TensorFlow의 환경구축을 먼저 시작하겠습니다.

저의 환경은 아래와 같습니다.

Window 10-64bit

Anaconda3 5.1.0-64bit

Tensorflow 1.8.0

Python 3.6.4



1. ANACONDA 가상환경 설치


* ANACONDA 설치 이유
 - Anaconda는 600만명이 넘는 사용자들을 보유하고 있으며, 250개가 넘는 패키지들이 내포되어 있어, 번잡하게 환경을 구축할 필요 없이 개발을 손 쉽게 할수있습니다.


* 독립성

 - 가상환경을 여러개를 만들 수 있어, 각각 독립적으로 환경을 다르게 구축할 수 있습니다.


Anaconda설치  <--Click

왼쪽 하단의 Python 3.6 Version Download를 클릭합니다.


Next

I Agree

Just Me 클릭 Next 클릭

Next

Install

설치 진행중

Next

Skip 클릭

Anaconda의 설치가 완료 되었습니다.

좌측 하단의 돋보기 모양 검색버튼을 클릭후 Anaconda를 검색합니다.

그러면 위와 같이 Anaconda Prompt가 보이게됩니다. 실행시켜 줍니다.

실행이 되었습니다.

PiP를 이용, TensorFlow GPU Version을 설치합니다.

pip install tensorflow-gpu 입력합니다.

NVDIA의 GPU를 사용하지 않는 PC의 경우는 CPU Version으로 설치합니다.

pip install tensorflow 입력합니다.

import tensorflow 입력합니다.

CPU Version을 설치하신 분들은 정상적으로 작동이됩니다.

허나 GPU Version으로 설치하신 분들은 Error가 발생하게 됩니다.


GPU Version을 잘못 설치를 한게 아닌 CUDA와 cuDNN을 설치하지 않아서 나오는 Error입니다.

GPU Version을 설치하신 분들에 한해서 2번째 환경구축 게시물로 이동하시면 되겠습니다.

감사합니다.

posted by pgmr이상현


구글의 알파고로 AI또는 Deep Learning에 대한 사람들의 관심이 뜨거웠습니다.

저 또한 신기하고 놀라웠습니다. 갑자기 주제 이야기를 하다가 왜 알파고를 이야기

하나 의아 하실 수 있는데 아이디어는 여기서부터 시작 됩니다.

Deep Learning의 방향은 여러 방향이 있겠지만, 그중 이미지 학습이 있는데요.
이 이미지 학습을 통해서 야생동물인 고라니 또는 멧돼지를 학습시켜 인식을 하면

어떨까? 라는 생각을 하면서 

Deep Learning(YOLO)기반의 Smart Scarecrow를 개발하는 계기가 됩니다.


또 작년부터 지도교수님이 보여주시고 알려주셨던,

NVIDIA의 Cat Chaser 또한 개발의 계기가 됩니다. 

(cat chaser클릭 시 NVIDIA cat chaser페이지로 이동)

Cat Chaser는 엔비디아 엔지니어인 로버트 본드가 자택 부지에 대변을 보는 고양이가 끊이지 않는다는 점을 해결하기 위해 고양이만 쫓아내기 위해 만든 시스템입니다. 이 시스템은 IP 카메라를 이용해 정원을 7초 간격으로 모니터링한다. 촬영한 사진 처리는 엔비디아의 임베디드 모듈 시스템인 젯슨 TX1(Jetson TX1)을 이용했다. 여기에 딥러닝 기술(FCN)을 더해 고양이 사진을 대량으로 학습해 정원에 침입한 고양이를 확실하게 감지해낸다고 한다.

이 시스템이 고양이를 찾게 되면 와이파이를 이용해 정원으로 신호를 보내고 스프링클러를 자동으로 작동시킨다. 이러한 Deep Learning 학습기술과 어떠한 Action을 취하면 야생동물을 쫓아낼 수 있지 않을까 생각을 하며 개발을 시작하게 됩니다.


Cat Chaser의 시스템 구성도는 다음과 같습니다.

1. IP카메라를 이용해 정원을 촬영합니다.

2. 촬영중인 영상을 Photon Server로 보내줍니다.

3. Photon Server는 Jetson TX1으로 영상을 보내줍니다.

4. Jetson TX1은 FCN Algorithm을 통해서 고양이의 유무를 확인한 뒤 다시 Photon Server로 결과를 전송합니다.

5. Photon Server는 고양이의 유무에 따라 스프링클러의 작동여부를 결정합니다. 


다시 처음으로 돌아가서 개발배경인 야생동물로 인한 농작물피해에 대해 조사를 해보게 되었습니다.

5년간 643억원의 농작물 피해로 연간 100억원이 넘는 피해입니다. 야생동물로 인한 농작물 피해가 상당하다는 것을 알수 있습니다.


아래 영상은 현재 아마존에서 판매되고 있는 유사제품입니다. 

시청하시고 문제점이 무엇인지 확인해 봅시다.

현재 아마존에서 판매하고있는 제품들은 모두 동작감지센서로 작동합니다.

그렇기에 사람이 앞에 지나가도 동작을 감지하고 스프링클러를 작동시켜 사람에게도

피해를 주는것을 알 수 있습니다. 그렇기에 이러한 문제점을 해결하기위해 야생동물만을 인식하고 쫓아내는 Deep Learning(YOLO)기반의 Smart Scarecrow로 졸업작품 주제로 선정하게 됩니다.

posted by pgmr이상현
prev 1 next