[C#/Kinect SDK2] 중간상황(2017.3.20)

  1. 향후 진행을 위해 Depth Window로 이용.
  2. 예제를 백분 이용하여 매번 frame이 올때마다 배경은 reload되는 방식으로, 좌표나 점들의 표시는 객체를 미리 생성해두고, 그 객체의 좌표를 그때그때 옮기는 방식으로 했다.
  3. HDFace의 좌표를 정확히 얻고자 센서에 가까이 가면 손 좌표가 잘 인식되지 않는 느낌이다. 좌측손의 빨간점이 자꾸 튄다.
  4. 얼굴을 기준으로 상자 3개를 이용해 버튼을 만들고, 좌측 손이 다가가면 파랗게 변하게 했다. 다음번엔 저 상태에서 주먹을 쥐면 녹색으로 변하면서 Click과 같은 event를 발생시키고자 한다.

 

[C#/Kinect SDK 2] 진행상황 정리

얼굴은 자진 모자이크.

참고사이트

  1. http://kinect.github.io/tutorial/lab01/index.html
  2. http://pterneas.com/2015/06/06/kinect-hd-face/
  3. https://writeablebitmapex.codeplex.com/

#1. HDFace 그리기(2)는 Depth window를 사용하기 때문에 발생한 좌표의 괴리. 이것을 해결하기위해 CoordinateMapper를 이용한다.

#2. 문제였던 것이 전송된 frame을 바로  WPF에서 image 객체에 쏴주면서 rectangle을 그리다 보면 지속적인 깜박임이 발생.

이를 해결하기 위해 전송된 frame을 Bitmap으로 변환하는 방식으로(1) Bitmap에 직접 도형을 그려줌. 이를 위해 사용한 것이 WriteableBitmapEx Library(3).

#3. 신기하게도 배경화면을 image의 source를 Bitmap으로 하고, HDFace는 canvas에서 그려주는 방식으로 하고 있다. 그래서 그런것인지 HDFace 그림이 전혀 끊기지 않고 부드럽게 움직인다. 배경만 Bitmap으로 해줘도 이런 문제를 해결할 수 있는 것인지 궁금하다. 테스트는 추후에.

 

 

[Tensorflow] 텐서보드(tensorboard) 이용

소스코드에 몇줄을 추가함으로써 아주 쉽게 결과를 확인해볼 수 있다. 6000번 시행시킨 결과 cost는 점차 감소하고 accuracy는 점차 증가한다. 생각보다 training 횟수가 꽤 많다.(그래봤자 몇ms차이지만)

텐서플로우를 몇일간 사용해본 결과, 중요한 것은 -항상 그렇지만- 데이터 라고 다시한번 느끼게된다. 이전에 데이터를 계산하는 flow를 구성하는데 뛰어난 머리가 필요했다면, 이러한 부분이 이미 다 구현되어버린 상태인것. 잠깐 사족을 더하자면, 내가 우리나라 의료에 관련된 데이터들을 이용한 모든것 (=왓슨?은 미국데이터려나)에 신뢰성에 의문이 있는 부분도 바로 이 부분이다. 데이터..논문이 하나 만들어짐에 있어서 사용되는 데이터가 어떻게 수집되는지를 보면 정교하게 하는 경우가 그리 많지 않은 듯 하다.

이제 다음은 실제 device에서 좌표 수집을 시작해볼 예정, Tensorflow자체도 더 공부해야할 부분이 많지만 일단 이 정도로도 충분히 기본적인 부분은 해결될 것 같다.

 

[Tensorflow] 일주일간 진행상황

홍콩과기대 김성훈 교수님의 강의가 정말 어마어마하다.

http://hunkim.github.io/ml/

처음에 텐서플로우가 처음나왔을때 이게 뭔 소리지? 했던 부분들이 완벽히 이해되는 강좌. 이해를 하고 나니 훨씬 사용이 쉬워진 느낌.

궁극적으로는 softmax기법을 이용해서 5~6차원의 데이터를 classification하는 부분으로 진행해야하는데, 일단 오늘은 2차원에서만 테스트를 진행

다음과 같은 분포에서

hypothesis = tf.nn.softmax(tf.matmul(X, W))
cost = tf.reduce_mean(tf.reduce_sum(-Y*tf.log(hypothesis), reduction_indices=1))

기본적인 softmax로 진행했고, accuracy를 구했더니

correct_prediction = tf.equal(tf.argmax(Y,1),tf.argmax(hypothesis,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))    
print session.run(tf.argmax(Y,1),feed_dict={Y:ty3})
print session.run(tf.argmax(hypothesis,1),feed_dict={X:tm4})
print session.run(accuracy, feed_dict={X:tm4,Y:ty3})
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
[0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0
 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
0.94

94% 결과를 보였다. 위에서 잘못나온 좌표를 그래프랑 비교해보니, 사실 그렇게 (사람이 보기에) 헷갈릴만한 좌표는 아니었는데, 그래서 직접시행해보니

print session.run(hypothesis,feed_dict={X:[[1,-0.43,0.47]]})

[[ 0.48978248 0.51021749]]

print session.run(hypothesis,feed_dict={X:[[1,-0.4,0.4]]})
[[ 0.50540406 0.49459586]]

딱 -0.4, 0.4 부근의 값들이 0.5 내외의 결과를 만들어내는 좌표인 탓인 것 같다.

3개의 그룹에서는 57%로 출력. 생각보다 낮게나온다.

그래서 학습을 2000번에서 4000번으로 증가시켜봤다. 그랬더니 73%

6000번때는 85%, 10000번에는 90%까지 증가함을 확인.

다음번엔 3차원 자료를 이용해볼 예정

덕수궁 미술관 유영국 미술전, 덕수궁 석조전

간만의 주말 나들이. 덕수궁을 눈앞에 두고 처음 가보게 되었다. 원래 목표는 덕수궁 미술관이었으나 석조전 모습이 인상깊어 들어가봤다. 원래는 시간대별로 15명 예약제로 진행되는데, 인터넷에 들어가보니 2자리 빈 시간대가 있어서 예약, 미술관을 먼저 봤지만 덕수궁 사진먼저 올려본다.

구글에서 가져온 사진(출처 : 한국전력공사 블로그)

석조전에 대한 이미지 검색결과

우리나라에 이런 유럽풍 건물이 있다는 사실 자체가 신기했다.

내부 가이드의 설명을 듣다보니, 보수공사가 2014년에 끝났다고 한다. 즉 개방된지 얼마 안된듯 한데, 지금은 이렇게 시간대별로 가이드투어만 진행하나, 추후에는 일반인들에게 공개될 예정인지 내부에 이런저런 해설들도 있었다.

45분가량의 가이드, 뒤늦게 부국강병을 추구했던 고종황제의 뜻, 정작 이 곳을 활용조차 못했던 대한제국의 말기. 그리고 암살의혹 등등. 중간중간 울컥했던 시간.

잘 가꾸면 경복궁 만큼이나 의미있는 유적지가 될 수도 있을 것 같은 느낌이었다.

유영국 전. 100주년 기념으로 개인소장품까지 양해를 구해서 모아놓은, 추후에 이 작가에 대해 이 정도로 많은 작품을 볼 수 있는 기회가 많지 않을 것이라고 한다.

현대미술에 가까운 그림이나, 이것을 이미 1960년대 부터 그렸던 작가로, 아래와 같이 강렬한 색과 공간분할이 특징적이다.

유영국 미술에 대한 이미지 검색결과

그러나 실제로 내가 마음에 들었던 작품은 아래 두 점.

집에 걸어두고 싶다.

고 김환기 작가, 이중섭 작가와도 인연이 있는 작가라는데, 언제 김환기 미술관도 한번 방문해봐야겠다.

미술전을 보다가 인상깊었던 한 구절.

“세월이란 참으로 묘한 것이어서 어떤 시대고 간에 꼭 있을만한 사람을 반드시 심어놓고 지나갑니다.”

 

이비인후과 의사, 프로그래머, 여행, 음악과 미술