2018년 7월 13일 금요일

우분투 18.04 아나콘다 기반 텐서플로우 케라스 설치

아래 글은 우분투 18.04 기반 텐서플로우 케라스 설치 방법을 간략히 요약한 것이다.
아나콘다를 사용하기 때문에 설치는 매우 쉽다. 아래는 설치 후 테스트한 노트북 화면이다. 

2018년 7월 9일 월요일

손쉬운 해킹 도구

이 글은 간단한 해킹 도구에 대한 내용을 요약한다.

Hacker Warehouse

Universal Radio Hacker (hackaday.com)

레퍼런스

2018년 6월 20일 수요일

드론 기반 벨로다인 라이다 스캔

SLAM기술은 LiDAR기술이 저렴해 지면서 점점 더 다양한 분야에 확산되고 있다. 이미 드론이나 무인자율주행차량에 장착된 지 오래이며, 일부는 농업, 광업과 같은 특수한 분야에까지 응용되고 있다. 

2018년 6월 19일 화요일

밸로다인 LiDAR 센서와 VeloView 사용기

이 글은 밸로다인(Velodyne) LiDAR 센서와 VeloView 사용기를 간략히 공유한다.

진행 중인 연구과제 핵심 기술을 좀 더 깊게 이해하기 위해, 벨로다인 센서를 구입해 분석중이다. 2014년부터 진행한 비전 역설계 과제의 활용 센서는 Kinect, Intel RGBD sensor, RPLiDAR 였다. 이때 목적은 저렴한 스캔 기술이 가능한지 파악하는 것이었다. 그때 문제는 정확도와 밀도였는 데, Trimble TX5 LiDAR에 비해 현격하게 차이나는 정확도와 밀도는 플랜트와 같은 정밀 엔지니어링에 활용하기 어려운 수준이었다(플랜트 대상).

밸로다인센서 VLP-16은 IMU 데이터를 입력받을 수 있는 데이터 통합 보드를 함께 제공한다. 센서 스펙은 다음과 같다. 참고로, TX5 같은 전문적인 LiDAR 센서는 최소 수백만 포인트 이상 획득되는 데 실시간은 아니며, 가격이 고가이다. 참고로, 저가 모델인 VLP-16은 7~8백만원대로 구입할 수 있다.
  • Dual Returns
  • 830 grams
  • 16 Channels
  • 100m Range
  • Up to 600,000 Points per Second
  • 360° Horizontal FOV
  • ±15° Vertical FOV
  • Low Power Consumption
  • Protective Design

벨로다인에서 얻은 (X, Y, Z, I) 데이터로 구성된 포인트 클라우드 데이터에는 가속도 값이 포함되어 있지 않다. 센서가 기울어지면, 데이터도 함께 기울어지므로, 이를 보정할려면, IMU에서 제공하는 Xa, Ya, Za 가속도 값이 필수적이다. 통합 보드에 IMU를 장착하고, 데이터를 취득하면, (X, Y, Z, I, Xa, Ya, Za) 값이 함께 TCP/IP 케이블을 통해 컴퓨터에 전달되는 구조이다.
센서, 데이터 통합 보드 및 통신 케이블

벨로다인 라이다 센서

데이터 통합 보드

이론상 VLP-16센서는 100미터까지 스캔을 할 수 있다. 본인은 사무실 공간에서 스캔을 해 보았는 데, 600 미터제곱 면적의 사무실 공간 벽체까지 스캔되는 것을 확인하였다. 참고로, 사무실은 둥근 직사각형 모양이며, 중간에서 벽체까지 거리는 25미터 정도이다.
스캔된 포인트 클라우드 모습

밸로다인 센서를 구동하는 프로그램은 VeloView이다. 윈도우에서는 VeloView를 설치하면드라이버가 함께 설치된다. TCP/IP4 네트워크 등 설정 후, 프로그램을 실행하고 연결된 라이다 장치를 VLP-16으로 선택하면 바로 점군을 실시간으로 볼 수 있다. 

TCP/IP4 설정


단, TCP/IP 이더넷 케이블 통신이므로, 방화벽이 있는 경우, 비활성화해야 한다. 우분투 리눅스에서는 아래 github 링크에서 다운로드 받은 VeloView 소스를 빌드해야 한다. 
VeloView는 포인트 클라우드를 시계열방식으로 캡쳐할 수 있는 기능있다. .pcap 점군 캡쳐파일을 저장한 후, 다시 재생할 수 있다. VeloView의 자세한 기능은 다음 영상을 참고한다.

ParaView는 획득된 점군을 분석하고, 처리하는 프로그램으로 구입시 함께 포함되어 있다. 오픈소스이므로, 다운로드받아 설치해도 된다. 
ParaView 활용 예

3차원 점군은 대용량이다. 임베디드 보드는 대용량 점군 처리가 가능한 것이어야 하며, 다음과 같은 것을 추천한다. 
NVIDIA TX2
NVIDIA TX2 CARRIER BOARD(캐리어 보드. TX2 개발보드 크기가 너무 커 이동성이 떨어진다면 캐리어 보드를 사용하면 된다)

다음은 라떼판다(LATTE PANDA) 임베디드 컴퓨터에 VELOVIEW를 설치한 후 실행한 모습이다. 큰 문제 없이 포인트 클라우드가 실시간으로 획득되어 가시화되는 것을 확인할 수 있다.
 



아래는 ODROID XU4에 VLP16를 마운트해 만든 드론 기반 LiDAR 스캔 프로젝트 사례이다. 

이제, 엔지니어링 전용 라이다, 토탈 스테이션과 밸로다인 센서의 정확도, 밀도를 확인 비교해 볼 계획이다.

2018년 6월 13일 수요일

어린이를 위한 코딩 로봇

이 글은 코딩을 배우기에 적당한 코딩 로봇을 간략히 소개합니다.


1.Fable : A Modular Robot for everyone
https://goo.gl/tXSH1N

2. Tenergy ODEV Tomo STEM Robot 2-in-1 Transformable and Programmable APP Controlled Robot
http://amzn.to/2GwP4EG

3. Makeblock mBot Kit - STEM Education - Arduino - Scratch 2.0 - Programmable Robot Kit for Kids to Learn Coding, Robotics and Electronics (2.4G Version - School Prefer)
http://amzn.to/2DQWjt6

4. WowWee COJI The Coding Robot Toy
http://amzn.to/2DKPJAh

5. Evo App-Connected Coding Robot
http://amzn.to/2GvzVn0




2018년 5월 29일 화요일

우분투 18.04와 NVIDIA 드라이버 설치 솔류션

어김없이 우분투 LTS가 버전업되었다.

우리는 수많은 난관을 헤쳐나가야 하는 버전업을 선택할 것인가, 현재에 안주할 것인가를 선택해야 한다.
사서 고생 or 현실 안주

구글링을 해 보니 18.04버전은 더 좋아졌다는 커멘트가 많다. 버전업 되었는 데 당연하겠지라고 무시하려 하다가 혹시 그 거지같은 NVIDIA, UNITY 이슈 해결되었을지 모른다는 기대로 부팅 USB를 만들어본다(결국 이 문제는 그대로 남아있었다.T.T~).

우분투(UBUNTU)와 NVIDIA 그래픽카드 궁합은 서로 좋지 않다. 컴퓨터에 NVIDIA가 설치되어 있고, 우부투 설치 시 화면이 안보이거나 저해상도라 설치하기 어렵다면 심중팔구 NVIDIA 드라이버 문제이다.
 저해상도 문제(옵션이 안보이니 설치가 불가능 T.T~)
황당하기 그지 없는 블랙 스크린
무한 로긴

이런 문제로 날밤 새고, 아까운 시간과 체력을 날린게 얼마인가. 우분투 10번 설치는 기본. 수명 줄어드는 것이 느껴진다.
 
시지프스 빙의(ㅅㅂ)

물론, BIOS에서 NVIDIA를 비활성화하고 내장 그래픽으로 우분투를 사용할 수도 있다. 만약, 당신이 우분투로 유투브 영화나 뮤직 비디오 감상에만 사용한다면, 이 방법은 충분히 효과적이다.

하지만, 지구 정복?을 꿈꾸는 개발자나 연구자라면 NVIDIA GPU를 사용해 딥러닝(DEEP LEARNING) 모델을 만들고 싶거나, 비전, 그래픽, ROS 등 관련된 다양한 오픈소스 패키지를 사용해 보고 싶을 테고, 내장 그래픽카드로 설치된 우분투는 아무 의미 없는 운영체제나 마찬가지일 것이다. 그렇다고, 아마존(AMAZON) 머신러닝 인스턴스를 사용하기에는 내것이 아닌것 같고, 용량이나 기간을 많이 사용할수록 결국 돈 내야 한다는 것이 맘에 들지 않는다.

수많은 구글링과 시행착오 끝에 찾은 NVIDIA 우분투 그래픽 드라이버 베스트 솔류션 테크트리는 다음과 같다.
  1. 우분투 18.04 설치 USB 디스크 준비 
  2. 컴퓨터 부팅 시 F2를 눌어 BIOS 로 진입
  3. 그래픽 가속이나 NVIDIA 관련 메뉴를 찾아 가속기능을 비활성화함
  4. 재부팅
  5. 우분투 18.04 설치: 2번 단계로 인해 내장 그래픽이 동작하고, 설정 화면이 다 보일 만큼 충분한 해상도로 설정 가능할 것임
  6. 재부팅 후 우분투 로긴
  7. 우분투에서 터미널 실행 후 아래 명령 입력
    1. sudo apt-get purge nvidia-* 
    2. 리부팅
    3. sudo apt-get install nvidia-352
    4. 리부팅
  8. 부팅 시 F2 눌러 BIOS 진입
  9. 그래픽 가속이나 NVIDIA 관련 메뉴를 찾아 가속기능을 활성화함
  10. 터미널에서 sudo nvidia-setting 실행해 잘 동작하는 NVIDIA 상태 확인
이 후 우리는 NVIDIA 가속된 아름다운 우분투 화면을 볼 수 있다.^^

이제 수많은 오픈소스 패키지를 apt-get install 할 수 있다.

OpenCV, PCL, ROS Kinectic full desktop version 도 잘된다^^

유명한 Unigine Heaven 를 설치해 GPU 성능 테스트를 해 본다. GPU full option에서 30 fps 이상 찍는다.

ㅎ 이 감동의 순간을 즐기자.

레퍼런스
블랙 스크린은 이 링크를 참고한다.
한글 등 설정은 이 링크를 참고한다.


2018년 5월 7일 월요일

지능적 비전 지원을 위한 Azure 기반 프로젝트 키넥트

키넥트 사용했던 분들 꽤 많았을 겁니다. 이렇게 좋은 센서를 생산 중단한 마이크로소프트가 이해되지 않았던 적이 있었죠. 역시 마소는 우리의 기대를 저버리지 않고 훨씬 좋아진 키넥트 센서를 꾸준히 개발하고 있었습니다.

이 글은 마이크로소프트의 지능적 비전 지원을 위한 Azure 기반 프로젝트 키넥트 기술 소개입니다.


Satya Nadella의 Build 기조 연설에서 Azure 에서 Project Kinect 지원을 소개했습니다. 단순히 키넥트만 지원하는 것이 아니라, Azure와 연계되는 딥러닝 등 다양한 도구와 연결되어, 재미있고 유용한 유스케이스 구현이 가능함을 언급하였습니다.

주변 공간과 사물을 인식할 수 있는 능력을 Kinect와 Azure 연계된 머신러닝 등 도구가 지웜함으로써 지능적인 지각을 가능하게 해 줍니다. Azure AI 서비스와 적은 전력 소모와 높은 정확도로 동작하는 Kinect 의 ToF 깊이 센서 기술은 심도 이미지를 이용한 다양한 비전이 가능해 집니다.

건축가인 Cyrus Bamji는 이 센서를 이용해 ISSCC (International Solid-State Circuits Conference) 컨퍼런스에 활용 사례를 발표하였고 호평을 받았습니다. 이 새로운 키넥트 센서는 HoloLens의 차기 버전을 제공할 센서이기도 합니다. 센서 스펙은 다음과 같습니다.
  • 1024x1024 픽셀
  • 225-950mw 저전력소모
  • 원거리 캡쳐 가능한 넓은 동작범위
  • 햇빛에 덜 민감한 글로벌 셔터 다중 위상 깊이 계산 기술
  • 고주파수 낮은 피크 전류 작동
XBox360 Kinect를 처음 만들었을 때 많은 사람들이 관심을 가졌고, 크리에이티브 개발자들은 게임을 넘어 다양한 분야에 이를 사용했었습니다. 창의적인 작품이 만들어졌습니다. 작년 2세대 키넥트 생산은 중단했지만, 인텔 RealSense 개발에 마이크로소프트는 계속 협력했었습니다.

HoloLens 3세대는 Kinect 깊이 감지 기술을 이용해 더욱 놀라운 결과를 보여줄 계획입니다. 여기에서는 사람과 공간 환경을 이해하고, 시선, 몸짓, 음성으로 입력을 받으며, 3D 홀로그램과 몰입형 공간 사운드를 지원할 것입니다. 4세대는 진보된 키넥트 센서를 사용해 지능형 클라우드 및 인텔리전트에 연결된 서비스를 지원합니다 .

Azure는 이미 머신 러닝, 인지 기술, IoT Edge를 지원하고 있습니다. Azure AI 서비스와 통합되어 점점 더 많은 센서를 기반으로 하는 생태계가 풍성해 질 것입니다. 자세한 내용는 다음 링크를 확인하시길 바랍니다.


점점 더 흥미롭고 재미있는 혼합현실 세상이 펼쳐지는 것 같습니다.^^